diff options
| author | nitsuja- <nitsuja-@hotmail.com> | 2011-01-06 02:24:03 +0000 |
|---|---|---|
| committer | nitsuja- <nitsuja-@hotmail.com> | 2011-01-06 02:24:03 +0000 |
| commit | 4f45b422a2ecf18fc45d2d60ac3afa5bae993c1b (patch) | |
| tree | 9f66c729c01f2cd4dee73f314eec8abcdf9774e6 /Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp | |
| parent | 95b6d3f4453fa3fa02fffcb889cb8f5018a24263 (diff) | |
a little cleanup of dx9 depth conversion code that r6751 made unnecessary, and a question about D3DFMT_D24X8 checks, and (most importantly) spelled Stretch right in video config
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6757 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp')
| -rw-r--r-- | Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp index b1da00de83..d02913847a 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp @@ -50,8 +50,14 @@ enum COPY_TYPE_MATRIXCOLOR, NUM_COPY_TYPES }; +enum +{ + DEPTH_CONVERSION_TYPE_NONE, + DEPTH_CONVERSION_TYPE_ON, + NUM_DEPTH_CONVERSION_TYPES +}; -static LPDIRECT3DPIXELSHADER9 s_CopyProgram[NUM_COPY_TYPES][PixelShaderCache::NUM_DEPTH_CONVERSION_TYPES][MAX_SSAA_SHADERS]; +static LPDIRECT3DPIXELSHADER9 s_CopyProgram[NUM_COPY_TYPES][NUM_DEPTH_CONVERSION_TYPES][MAX_SSAA_SHADERS]; static LPDIRECT3DPIXELSHADER9 s_ClearProgram = NULL; static LPDIRECT3DPIXELSHADER9 s_rgba6_to_rgb8 = NULL; static LPDIRECT3DPIXELSHADER9 s_rgb8_to_rgba6 = NULL; @@ -61,9 +67,9 @@ LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetColorMatrixProgram(int SSAAMode) return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } -LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetDepthMatrixProgram(int SSAAMode, int depthConversionType) +LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetDepthMatrixProgram(int SSAAMode, bool depthConversion) { - return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][depthConversionType % NUM_DEPTH_CONVERSION_TYPES][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][depthConversion ? DEPTH_CONVERSION_TYPE_ON : DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetColorCopyProgram(int SSAAMode) @@ -189,25 +195,19 @@ static LPDIRECT3DPIXELSHADER9 CreateCopyShader(int copyMatrixType, int depthConv break; } - switch(depthConversionType % PixelShaderCache::NUM_DEPTH_CONVERSION_TYPES) + if(depthConversionType != DEPTH_CONVERSION_TYPE_NONE) { - case PixelShaderCache::DEPTH_CONVERSION_TYPE_NONE: - break; - case PixelShaderCache::DEPTH_CONVERSION_TYPE_16BIT: - case PixelShaderCache::DEPTH_CONVERSION_TYPE_24BIT: WRITE(p, "float4 EncodedDepth = frac((texcol.r * (16777215.0f/16777216.0f)) * float4(1.0f,256.0f,256.0f*256.0f,1.0f));\n" "texcol = round(EncodedDepth * (16777216.0f/16777215.0f) * float4(255.0f,255.0f,255.0f,15.0f)) / float4(255.0f,255.0f,255.0f,15.0f);\n"); - break; } - //Apply Gamma Correction - if((depthConversionType % PixelShaderCache::NUM_DEPTH_CONVERSION_TYPES) == PixelShaderCache::DEPTH_CONVERSION_TYPE_NONE) + else { + //Apply Gamma Correction WRITE(p, "texcol = pow(texcol,uv1.xxxx);\n"); } if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) { - WRITE(p, "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"); } else |
