diff options
| author | Rodolfo Osvaldo Bogado <rodolfoosvaldobogado@gmail.com> | 2009-11-23 14:08:08 +0000 |
|---|---|---|
| committer | Rodolfo Osvaldo Bogado <rodolfoosvaldobogado@gmail.com> | 2009-11-23 14:08:08 +0000 |
| commit | 55dc7efaa427f442bec4fa5cdbb7ad0ecba19082 (patch) | |
| tree | a91c84ba52cfdd127b7cbb69e1c6617ef4475146 /Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp | |
| parent | 37f1e1ca73596b2f12efba53ef107263bd0eee8c (diff) | |
corrected viewport and scissor test behavior in both plugins.
some code cleanup in d3d.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4605 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 | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp index 08917a7011..f622b335e0 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp @@ -90,32 +90,33 @@ void SetPSConstant4fv(int const_number, const float *f) void PixelShaderCache::Init() { - char pmatrixprog[1024]; - sprintf(pmatrixprog,"uniform sampler samp0 : register(s0);\n" - "uniform float4 cColMatrix[5] : register(c%d);\n" - "void main(\n" + char pprog[1024]; + sprintf(pprog,"void main(\n" "out float4 ocol0 : COLOR0,\n" - " in float3 uv0 : TEXCOORD0){\n" - "float4 texcol = tex2D(samp0,uv0.xy);\n" - "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n" - "}\n",C_COLORMATRIX); - char pcopyprog[1024]; - sprintf(pcopyprog,"uniform sampler samp0 : register(s0);\n" + " in float4 incol0 : COLOR0){\n" + "ocol0 = incol0;\n" + "}\n"); + s_ClearProgram = D3D::CompilePixelShader(pprog, (int)strlen(pprog)); + + sprintf(pprog,"uniform sampler samp0 : register(s0);\n" "void main(\n" "out float4 ocol0 : COLOR0,\n" " in float3 uv0 : TEXCOORD0){\n" "ocol0 = tex2D(samp0,uv0.xy);\n" "}\n"); - - char pclearprog[1024]; - sprintf(pclearprog,"void main(\n" + s_ColorCopyProgram = D3D::CompilePixelShader(pprog, (int)strlen(pprog)); + + sprintf(pprog,"uniform sampler samp0 : register(s0);\n" + "uniform float4 cColMatrix[5] : register(c%d);\n" + "void main(\n" "out float4 ocol0 : COLOR0,\n" - " in float4 incol0 : COLOR0){\n" - "ocol0 = incol0;\n" - "}\n"); + " in float3 uv0 : TEXCOORD0){\n" + "float4 texcol = tex2D(samp0,uv0.xy);\n" + "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n" + "}\n",C_COLORMATRIX); + s_ColorMatrixProgram = D3D::CompilePixelShader(pprog, (int)strlen(pprog)); - char pdmatrixprog[1024]; - sprintf(pdmatrixprog,"uniform sampler samp0 : register(s0);\n" + sprintf(pprog,"uniform sampler samp0 : register(s0);\n" "uniform float4 cColMatrix[5] : register(c%d);\n" "void main(\n" "out float4 ocol0 : COLOR0,\n" @@ -125,11 +126,7 @@ void PixelShaderCache::Init() "texcol = float4((EncodedDepth.rgb * (16777216.0f/16777215.0f)),1.0f);\n" "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n" "}\n",C_COLORMATRIX); - - s_ColorMatrixProgram = D3D::CompilePixelShader(pmatrixprog, (int)strlen(pmatrixprog)); - s_ColorCopyProgram = D3D::CompilePixelShader(pcopyprog, (int)strlen(pcopyprog)); - s_DepthMatrixProgram = D3D::CompilePixelShader(pdmatrixprog, (int)strlen(pdmatrixprog)); - s_ClearProgram = D3D::CompilePixelShader(pclearprog, (int)strlen(pclearprog)); + s_DepthMatrixProgram = D3D::CompilePixelShader(pprog, (int)strlen(pprog)); Clear(); } |
