summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/PixelShaderManager.cpp
diff options
context:
space:
mode:
authorRodolfo Osvaldo Bogado <rodolfoosvaldobogado@gmail.com>2009-10-26 02:38:23 +0000
committerRodolfo Osvaldo Bogado <rodolfoosvaldobogado@gmail.com>2009-10-26 02:38:23 +0000
commit08b2686d90677895812d8f852511d2237ea64681 (patch)
treebb8d04f72a5e059ca18636942f2c1b65bb9d2954 /Source/Core/VideoCommon/Src/PixelShaderManager.cpp
parent264992456a54d4efba50cd0a3f8ffa8493591a31 (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.cpp16
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;
}
}