summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/VertexShaderManager.cpp
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2009-09-15 21:49:15 +0000
committerhrydgard <hrydgard@gmail.com>2009-09-15 21:49:15 +0000
commit20922cf3f00283ab2df1f4a0f4a7ea509296d926 (patch)
treecdbda17fed0f3ea91c891c7670bf382b9d31da2d /Source/Core/VideoCommon/Src/VertexShaderManager.cpp
parentc71f76834ed7dfa22478b2f90ddcd752ac856ac2 (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.cpp46
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;