From 6421d45f53543788014e6ba16a6ee1b558ae777d Mon Sep 17 00:00:00 2001 From: "H. Verbeet" Date: Sun, 1 Jul 2007 23:41:47 +0200 Subject: [PATCH] wined3d: In tex_colorop() & tex_alphaop(), only check the mapped stage against GL_LIMITS(textures) if the texture is used. --- dlls/wined3d/state.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 8223e301f48..fbd0cd3b04e 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -1672,11 +1672,8 @@ static void tex_colorop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D if (mapped_stage != -1) { if (GL_SUPPORT(ARB_MULTITEXTURE)) { - if (mapped_stage >= GL_LIMITS(textures)) { - if (stateblock->textureState[stage][WINED3DTSS_COLOROP] != WINED3DTOP_DISABLE && - stateblock->textureState[stage][WINED3DTSS_COLOROP] != 0) { - FIXME("Attempt to enable unsupported stage!\n"); - } + if (tex_used && mapped_stage >= GL_LIMITS(textures)) { + FIXME("Attempt to enable unsupported stage!\n"); return; } GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + mapped_stage)); @@ -1758,17 +1755,15 @@ static void tex_colorop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D static void tex_alphaop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *context) { DWORD stage = (state - STATE_TEXTURESTAGE(0, 0)) / WINED3D_HIGHEST_TEXTURE_STATE; DWORD mapped_stage = stateblock->wineD3DDevice->texUnitMap[stage]; + BOOL tex_used = stateblock->wineD3DDevice->fixed_function_usage_map[stage]; DWORD op, arg1, arg2, arg0; TRACE("Setting alpha op for stage %d\n", stage); /* Do not care for enabled / disabled stages, just assign the settigns. colorop disables / enables required stuff */ if (mapped_stage != -1) { if (GL_SUPPORT(ARB_MULTITEXTURE)) { - if (stage >= GL_LIMITS(textures)) { - if (stateblock->textureState[stage][WINED3DTSS_COLOROP] != WINED3DTOP_DISABLE && - stateblock->textureState[stage][WINED3DTSS_COLOROP] != 0) { - FIXME("Attempt to enable unsupported stage!\n"); - } + if (tex_used && mapped_stage >= GL_LIMITS(textures)) { + FIXME("Attempt to enable unsupported stage!\n"); return; } GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + mapped_stage));