diff options
| author | XTra.KrazzY <XTra.KrazzY@gmail.com> | 2009-02-22 18:13:50 +0000 |
|---|---|---|
| committer | XTra.KrazzY <XTra.KrazzY@gmail.com> | 2009-02-22 18:13:50 +0000 |
| commit | 0a3f193cbcc6674ddcd6e5a8ae2a123bbe034a46 (patch) | |
| tree | 805c134f0b582875ad23fcab2b5636a13c4e5b3c /Source/Core | |
| parent | 3dfac4fcc8f64e26184349193fec357d5a68974a (diff) | |
(Tiny) Collapsing
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2372 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoCommon/Src/VertexShaderManager.cpp | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp index 70a30c6f1c..679a3fdb80 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp @@ -442,36 +442,12 @@ void VertexShaderManager::SetProjection(float* _pProjection, int constantIndex) void VertexShaderManager::SetMaterialColor(int index, u32 data) { - // TODO: collapse - switch (index) - { - case 0: - nMaterialsChanged |= 1; - s_fMaterials[0] = ((data>>24)&0xFF)/255.0f; - s_fMaterials[1] = ((data>>16)&0xFF)/255.0f; - s_fMaterials[2] = ((data>>8)&0xFF)/255.0f; - s_fMaterials[3] = ((data)&0xFF)/255.0f; - break; - case 1: - nMaterialsChanged |= 2; - s_fMaterials[4] = ((data>>24)&0xFF)/255.0f; - s_fMaterials[5] = ((data>>16)&0xFF)/255.0f; - s_fMaterials[6] = ((data>>8)&0xFF)/255.0f; - s_fMaterials[7] = ((data)&0xFF)/255.0f; - break; - case 2: - nMaterialsChanged |= 4; - s_fMaterials[8] = ((data>>24)&0xFF)/255.0f; - s_fMaterials[9] = ((data>>16)&0xFF)/255.0f; - s_fMaterials[10] = ((data>>8)&0xFF)/255.0f; - s_fMaterials[11] = ((data)&0xFF)/255.0f; - break; - case 3: - nMaterialsChanged |= 8; - s_fMaterials[12] = ((data>>24)&0xFF)/255.0f; - s_fMaterials[13] = ((data>>16)&0xFF)/255.0f; - s_fMaterials[14] = ((data>>8)&0xFF)/255.0f; - s_fMaterials[15] = ((data)&0xFF)/255.0f; - break; - } + int ind = index * 4; + + nMaterialsChanged |= (1 << index); + + s_fMaterials[ind++] = ((data>>24)&0xFF)/255.0f; + s_fMaterials[ind++] = ((data>>16)&0xFF)/255.0f; + s_fMaterials[ind++] = ((data>>8)&0xFF)/255.0f; + s_fMaterials[ind] = ((data)&0xFF)/255.0f; } |
