summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorXTra.KrazzY <XTra.KrazzY@gmail.com>2009-02-22 18:13:50 +0000
committerXTra.KrazzY <XTra.KrazzY@gmail.com>2009-02-22 18:13:50 +0000
commit0a3f193cbcc6674ddcd6e5a8ae2a123bbe034a46 (patch)
tree805c134f0b582875ad23fcab2b5636a13c4e5b3c /Source/Core
parent3dfac4fcc8f64e26184349193fec357d5a68974a (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.cpp40
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;
}