diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index 112e57d5a0..beb44c45d9 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -761,18 +761,16 @@ static void WriteStage(char *&p, int n, u32 texture_mask, u32 HLSL) if(!(cc.d == TEVCOLORARG_ZERO && cc.op == 0)) WRITE(p, "%s%s",tevCInputTable[cc.d],tevOpTable[cc.op]); - if (cc.a == TEVCOLORARG_ZERO && cc.b == TEVCOLORARG_ZERO) - WRITE(p, "float3(0.0f,0.0f,0.0f)"); - else if (cc.a == TEVCOLORARG_ZERO && cc.c == TEVCOLORARG_ZERO) - WRITE(p, "float3(0.0f,0.0f,0.0f)"); - else if (cc.b == TEVCOLORARG_ZERO && cc.c == TEVCOLORARG_ZERO) + if (cc.a == cc.b) WRITE(p,"%s",tevCInputTable[cc.a]); + else if (cc.c == TEVCOLORARG_ZERO) + WRITE(p,"%s",tevCInputTable[cc.a]); + else if (cc.c == TEVCOLORARG_ONE) + WRITE(p,"%s",tevCInputTable[cc.b]); else if (cc.a == TEVCOLORARG_ZERO) WRITE(p,"%s*%s",tevCInputTable[cc.b],tevCInputTable[cc.c]); else if (cc.b == TEVCOLORARG_ZERO) WRITE(p,"%s*(float3(1.0f,1.0f,1.0f)-%s)",tevCInputTable[cc.a],tevCInputTable[cc.c]); - else if (cc.c == TEVCOLORARG_ZERO) - WRITE(p,"%s",tevCInputTable[cc.a]); else WRITE(p, "lerp(%s,%s,%s)",tevCInputTable[cc.a], tevCInputTable[cc.b],tevCInputTable[cc.c]); @@ -809,18 +807,14 @@ static void WriteStage(char *&p, int n, u32 texture_mask, u32 HLSL) if(!(ac.d == TEVALPHAARG_ZERO && ac.op == 0)) WRITE(p, "%s%s",tevAInputTable[ac.d],tevOpTable[ac.op]); - if (ac.a == TEVALPHAARG_ZERO && ac.b == TEVALPHAARG_ZERO) - WRITE(p, "0.0f"); - else if (ac.a == TEVALPHAARG_ZERO && ac.c == TEVALPHAARG_ZERO) - WRITE(p, "0.0f"); - else if (ac.b == TEVALPHAARG_ZERO && ac.c == TEVALPHAARG_ZERO) + if (ac.a == ac.b) + WRITE(p,"%s",tevAInputTable[ac.a]); + else if (ac.c == TEVALPHAARG_ZERO) WRITE(p,"%s",tevAInputTable[ac.a]); else if (ac.a == TEVALPHAARG_ZERO) WRITE(p,"%s*%s",tevAInputTable[ac.b],tevAInputTable[ac.c]); else if (ac.b == TEVALPHAARG_ZERO) WRITE(p,"%s*(1.0f-%s)",tevAInputTable[ac.a],tevAInputTable[ac.c]); - else if (ac.c == TEVALPHAARG_ZERO) - WRITE(p,"%s",tevAInputTable[ac.a]); else WRITE(p, "lerp(%s,%s,%s)",tevAInputTable[ac.a],tevAInputTable[ac.b],tevAInputTable[ac.c]);