dlls/d3d8/device.c

Gerald Pfeifer gerald at pfeifer.com
Wed Aug 6 02:49:36 CDT 2003


I may be wrong, and I'm sorry if that's the case, but are you sure the
following new code in dlls/d3d8/device.c does what you believe it does?

    if ((This->StateBlock->texture_state[Stage][D3DTSS_ALPHAARG1] == D3DTA_TEXTURE) &&
        ((oldTxt == NULL) && (pTexture != NULL)) ||
        ((pTexture == NULL) && (oldTxt != NULL)))
    {
        reapplyFlags |= REAPPLY_ALPHAOP;
    }

&& binds stronger than ||, so in fact the above boils down to

  (first line && second line) || third line

while it occurs to me that you ment to achieve the following

    if ( This->StateBlock->texture_state[Stage][D3DTSS_ALPHAARG1] == D3DTA_TEXTURE)
         && ( ( oldTxt == NULL  &&  pTexture != NULL )
              || ( pTexture == NULL  &&  oldTxt != NULL ) ) )

(Personally, I think it's also nicer to omit the parentheses around ==
and !=, but that's a different one.)

Gerald
-- 
Gerald Pfeifer (Jerry)   gerald at pfeifer.com   http://www.pfeifer.com/gerald/



More information about the wine-devel mailing list