diff options
| author | Rodolfo Osvaldo Bogado <rodolfoosvaldobogado@gmail.com> | 2009-10-26 02:38:23 +0000 |
|---|---|---|
| committer | Rodolfo Osvaldo Bogado <rodolfoosvaldobogado@gmail.com> | 2009-10-26 02:38:23 +0000 |
| commit | 08b2686d90677895812d8f852511d2237ea64681 (patch) | |
| tree | bb8d04f72a5e059ca18636942f2c1b65bb9d2954 /Source/Core/VideoCommon/Src/PixelShaderManager.cpp | |
| parent | 264992456a54d4efba50cd0a3f8ffa8493591a31 (diff) | |
as sl1nk3.s say make the updates directly to the viewport and let the scale fixed in 2^24.
please test specially in paper mario and Killer 7 that where games where supposedly this was used.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4470 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon/Src/PixelShaderManager.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/PixelShaderManager.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp index f298629536..deb4646a27 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp @@ -31,7 +31,7 @@ static bool s_bZTextureTypeChanged; static bool s_bDepthRangeChanged; static bool s_bFogColorChanged; static bool s_bFogParamChanged; -static float lastDepthRange[4]; // 0 = far z, 1 = far - near, 2 = scale , 3 = offset +static float lastDepthRange[2]; // 0 = far z, 1 = far - near static float lastRGBAfull[2][4][4]; static float lastCustomTexScale[8][2]; static u8 s_nTexDimsChanged; @@ -54,10 +54,6 @@ void PixelShaderManager::Init() lastZBias = 0; s_texturemask = 0; memset(lastRGBAfull, 0, sizeof(lastRGBAfull)); - lastDepthRange[0]=16777216.0f; - lastDepthRange[1]=16777216.0f; - lastDepthRange[2]=16777216.0f; - lastDepthRange[3]=0.0f; Dirty(); } @@ -136,7 +132,7 @@ void PixelShaderManager::SetConstants() if (s_bZBiasChanged || s_bDepthRangeChanged) { //ERROR_LOG("pixel=%x,%x, bias=%x\n", bpmem.zcontrol.pixel_format, bpmem.ztex2.type, lastZBias); - SetPSConstant4f(C_ZBIAS+1, (lastDepthRange[0] + lastDepthRange[3]) / lastDepthRange[2], (lastDepthRange[1] + lastDepthRange[3]) / lastDepthRange[2], 0, (float)( (((int)lastZBias<<8)>>8))/16777215.0f); + SetPSConstant4f(C_ZBIAS+1, lastDepthRange[0] / 16777216.0f, lastDepthRange[1] / 16777216.0f, 0, (float)( (((int)lastZBias<<8)>>8))/16777216.0f); s_bZBiasChanged = s_bDepthRangeChanged = false; } @@ -332,18 +328,18 @@ void PixelShaderManager::SetViewport(float* viewport) void PixelShaderManager::SetZScale(float data) { - if (lastDepthRange[2] != data) + if (lastDepthRange[0] != data) { - lastDepthRange[2] = data; + lastDepthRange[0] = data; s_bDepthRangeChanged = true; } } void PixelShaderManager::SetZOffset(float data) { - if (lastDepthRange[3] != data) + if (lastDepthRange[1] != data) { - lastDepthRange[3] = data; + lastDepthRange[1] = data; s_bDepthRangeChanged = true; } } |
