Tuesday, May 23, 2006, 10:17:51 PM, Jacob Peters wrote:
ChangeLog: Implemented separate alpha blending renderstates
I reworked my previous patch and I'm pretty sure it'll work now.
You sure in terms you tested this with some game/demo/test program? Or that the code just looks right?
Few suggestions:
if (This->separateAlphaBlendEnabled) {
TRACE("glBlendFuncSeparateEXT RGBSrc=%x, RGBDst=%x AlphaSrc=%x AlphaDst=%x\n", This->srcBlend, This->dstBlend, This->srcBlendAlpha, This->dstBlendAlpha);
Please use 4 spaces indent not 8. Also don't make such huge lines. Something like this looks much better:
+ if (This->separateAlphaBlendEnabled) { + TRACE("glBlendFuncSeparateEXT RGBSrc=%x, RGBDst=%x AlphaSrc=%x AlphaDst=%x\n", + This->srcBlend, This->dstBlend, This->srcBlendAlpha, This->dstBlendAlpha);
if(Value && GL_SUPPORT(EXT_BLEND_EQUATION_SEPARATE) && GL_SUPPORT(EXT_BLEND_FUNC_SEPARATE)) This->separateAlphaBlendEnabled = TRUE;
else This->separateAlphaBlendEnabled = FALSE;
This would look better this way:
+ This->separateAlphaBlendEnabled = Value && + GL_SUPPORT(EXT_BLEND_EQUATION_SEPARATE) && + GL_SUPPORT(EXT_BLEND_FUNC_SEPARATE);
- UINT blendEquation;
- UINT blendEquationAlpha
Don't add to the object variables that are useless outside the IWineD3DDeviceImpl_SetRenderState.
Vitaliy Margolen