Merge pull request #3387 from raven02/patch-19

Use stenciltest for glblendFuncSeparate()
This commit is contained in:
Henrik Rydgård 2013-08-26 05:55:01 -07:00
commit 9667b9e316

View File

@ -217,14 +217,14 @@ void TransformDrawEngine::ApplyDrawState(int prim) {
}
// At this point, through all paths above, glBlendFuncA and glBlendFuncB will be set right somehow.
#if 1
// Fixes some Persona 2 issues, may be correct? (that is, don't change dest alpha at all if blending)
// If this doesn't break anything else, it's likely to be right.
// I guess an alternative solution would be to simply disable alpha writes if alpha blending is enabled.
glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, GL_ZERO, GL_ONE);
#else
glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, glBlendFuncA, glBlendFuncB);
#endif
if (!gstate.isStencilTestEnabled()) {
// Fixes some Persona 2 issues, may be correct? (that is, don't change dest alpha at all if blending)
// If this doesn't break anything else, it's likely to be right.
// I guess an alternative solution would be to simply disable alpha writes if alpha blending is enabled.
glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, GL_ZERO, GL_ONE);
} else {
glstate.blendFuncSeparate.set(glBlendFuncA, glBlendFuncB, glBlendFuncA, glBlendFuncB);
}
glstate.blendEquation.set(eqLookup[blendFuncEq]);
}