diff options
| author | Matthew Parlane <parlane@gmail.com> | 2013-04-25 01:41:45 +1200 |
|---|---|---|
| committer | Matthew Parlane <parlane@gmail.com> | 2013-04-25 01:41:45 +1200 |
| commit | c3dbbe011d4d9e06d6b4badc6e42e830b35fabd2 (patch) | |
| tree | bb57013c56f8e4336d3a81cb28608f663f678fe8 /Source/Core/VideoCommon/Src/VertexShaderManager.cpp | |
| parent | e98069b647029417abf6b26d7bd30e0c3ea77863 (diff) | |
| parent | 62ebfa0a78f2cbb8d40d2ae974ee9d404ddf6721 (diff) | |
Merge branch 'master' into wii-network
Diffstat (limited to 'Source/Core/VideoCommon/Src/VertexShaderManager.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/VertexShaderManager.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp index 6682125570..75e6735577 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp @@ -86,15 +86,18 @@ float PHackValue(std::string sValue) c[i] = '\0'; break; } + c[i] = (cStr[i] == ',') ? '.' : *(cStr+i); if (c[i] == '.') fp = true; } + cStr = c; sTof.str(cStr); sTof >> f; - if (!fp) f /= 0xF4240; + if (!fp) + f /= 0xF4240; delete [] c; return f; @@ -183,6 +186,7 @@ void VertexShaderManager::SetConstants() { if (g_ActiveConfig.backend_info.APIType == API_OPENGL && !g_ActiveConfig.backend_info.bSupportsGLSLUBO) Dirty(); + if (nTransformMatricesChanged[0] >= 0) { int startn = nTransformMatricesChanged[0] / 4; @@ -191,6 +195,7 @@ void VertexShaderManager::SetConstants() SetMultiVSConstant4fv(C_TRANSFORMMATRICES + startn, endn - startn, pstart); nTransformMatricesChanged[0] = nTransformMatricesChanged[1] = -1; } + if (nNormalMatricesChanged[0] >= 0) { int startn = nNormalMatricesChanged[0] / 3; @@ -238,7 +243,9 @@ void VertexShaderManager::SetConstants() SetVSConstant4f(C_LIGHTS+5*i+j+1, 0.00001f, xfmemptr[1], xfmemptr[2], 0); } else + { SetVSConstant4fv(C_LIGHTS+5*i+j+1, xfmemptr); + } } } @@ -479,21 +486,24 @@ void VertexShaderManager::InvalidateXFRange(int start, int end) if (((u32)start >= (u32)MatrixIndexA.PosNormalMtxIdx * 4 && (u32)start < (u32)MatrixIndexA.PosNormalMtxIdx * 4 + 12) || ((u32)start >= XFMEM_NORMALMATRICES + ((u32)MatrixIndexA.PosNormalMtxIdx & 31) * 3 && - (u32)start < XFMEM_NORMALMATRICES + ((u32)MatrixIndexA.PosNormalMtxIdx & 31) * 3 + 9)) { + (u32)start < XFMEM_NORMALMATRICES + ((u32)MatrixIndexA.PosNormalMtxIdx & 31) * 3 + 9)) + { bPosNormalMatrixChanged = true; } if (((u32)start >= (u32)MatrixIndexA.Tex0MtxIdx*4 && (u32)start < (u32)MatrixIndexA.Tex0MtxIdx*4+12) || ((u32)start >= (u32)MatrixIndexA.Tex1MtxIdx*4 && (u32)start < (u32)MatrixIndexA.Tex1MtxIdx*4+12) || ((u32)start >= (u32)MatrixIndexA.Tex2MtxIdx*4 && (u32)start < (u32)MatrixIndexA.Tex2MtxIdx*4+12) || - ((u32)start >= (u32)MatrixIndexA.Tex3MtxIdx*4 && (u32)start < (u32)MatrixIndexA.Tex3MtxIdx*4+12)) { + ((u32)start >= (u32)MatrixIndexA.Tex3MtxIdx*4 && (u32)start < (u32)MatrixIndexA.Tex3MtxIdx*4+12)) + { bTexMatricesChanged[0] = true; } if (((u32)start >= (u32)MatrixIndexB.Tex4MtxIdx*4 && (u32)start < (u32)MatrixIndexB.Tex4MtxIdx*4+12) || ((u32)start >= (u32)MatrixIndexB.Tex5MtxIdx*4 && (u32)start < (u32)MatrixIndexB.Tex5MtxIdx*4+12) || ((u32)start >= (u32)MatrixIndexB.Tex6MtxIdx*4 && (u32)start < (u32)MatrixIndexB.Tex6MtxIdx*4+12) || - ((u32)start >= (u32)MatrixIndexB.Tex7MtxIdx*4 && (u32)start < (u32)MatrixIndexB.Tex7MtxIdx*4+12)) { + ((u32)start >= (u32)MatrixIndexB.Tex7MtxIdx*4 && (u32)start < (u32)MatrixIndexB.Tex7MtxIdx*4+12)) + { bTexMatricesChanged[1] = true; } |
