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(a)pfeifer.com http://www.pfeifer.com/gerald/
if ((This->StateBlock->texture_state[Stage][D3DTSS_ALPHAARG1] == D3DTA_TEXTURE) && ((oldTxt == NULL) && (pTexture != NULL)) || ((pTexture == NULL) && (oldTxt != NULL))) {
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 ) ) )
You are 100% correct - I'll fix it next time I get into Linux... Thanks for the feedback, its nice to know someone notices these things :-) Jason
participants (2)
-
Ann and Jason Edmeades -
Gerald Pfeifer