diff options
| author | hrydgard <hrydgard@gmail.com> | 2009-09-15 21:49:15 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2009-09-15 21:49:15 +0000 |
| commit | 20922cf3f00283ab2df1f4a0f4a7ea509296d926 (patch) | |
| tree | cdbda17fed0f3ea91c891c7670bf382b9d31da2d /Source/Core/VideoCommon/Src/VertexShaderManager.cpp | |
| parent | c71f76834ed7dfa22478b2f90ddcd752ac856ac2 (diff) | |
D3D: More reset fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4282 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon/Src/VertexShaderManager.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/VertexShaderManager.cpp | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp index b19fb54a8a..c90e8531f9 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp @@ -58,39 +58,35 @@ void UpdateViewport(); void VertexShaderManager::Init() { - nTransformMatricesChanged[0] = nTransformMatricesChanged[1] = -1; - nNormalMatricesChanged[0] = nNormalMatricesChanged[1] = -1; - nPostTransformMatricesChanged[0] = nPostTransformMatricesChanged[1] = -1; - nLightsChanged[0] = nLightsChanged[1] = -1; - bTexMatricesChanged[0] = bTexMatricesChanged[1] = false; - bPosNormalMatrixChanged = bProjectionChanged = bViewportChanged = false; - nMaterialsChanged = 0; - - memset(&xfregs, 0, sizeof(xfregs)); - memset(xfmem, 0, sizeof(xfmem)); - - ResetView(); + Dirty(); + + memset(&xfregs, 0, sizeof(xfregs)); + memset(xfmem, 0, sizeof(xfmem)); + + ResetView(); } void VertexShaderManager::Shutdown() { } + +void VertexShaderManager::Dirty() +{ + nTransformMatricesChanged[0] = 0; nTransformMatricesChanged[1] = 256; + nNormalMatricesChanged[0] = 0; nNormalMatricesChanged[1] = 96; + nPostTransformMatricesChanged[0] = 0; nPostTransformMatricesChanged[1] = 256; + nLightsChanged[0] = 0; nLightsChanged[1] = 0x80; + bPosNormalMatrixChanged = true; + bTexMatricesChanged[0] = bTexMatricesChanged[1] = true; + bProjectionChanged = true; + bPosNormalMatrixChanged = bTexMatricesChanged[0] = bTexMatricesChanged[1] = true; + nMaterialsChanged = 15; +} + // Syncs the shader constant buffers with xfmem // TODO: A cleaner way to control the matricies without making a mess in the parameters field void VertexShaderManager::SetConstants() { - - // TODO: Is this still needed? - //nTransformMatricesChanged[0] = 0; nTransformMatricesChanged[1] = 256; - //nNormalMatricesChanged[0] = 0; nNormalMatricesChanged[1] = 96; - //nPostTransformMatricesChanged[0] = 0; nPostTransformMatricesChanged[1] = 256; - //nLightsChanged[0] = 0; nLightsChanged[1] = 0x80; - //bPosNormalMatrixChanged = true; - //bTexMatricesChanged[0] = bTexMatricesChanged[1] = true; - //bProjectionChanged = true; - //bPosNormalMatrixChanged = bTexMatricesChanged[0] = bTexMatricesChanged[1] = true; - //nMaterialsChanged = 15; - if (nTransformMatricesChanged[0] >= 0) { int startn = nTransformMatricesChanged[0] / 4; @@ -487,7 +483,7 @@ void VertexShaderManager::TranslateView(float x, float y) Matrix33::Multiply(s_viewInvRotationMatrix, vector, result); - for(int i = 0; i < 3; i++) + for (int i = 0; i < 3; i++) s_fViewTranslationVector[i] += result[i]; bProjectionChanged = true; |
