[4/5] wined3d: Only call activate_dimensions() if the texture is
used
H. Verbeet
hverbeet at gmail.com
Wed Jun 27 16:47:33 CDT 2007
Prevents activate_dimensions() from being run with higher texture units active.
Changelog:
- Only call activate_dimensions() if the texture is used
-------------- next part --------------
---
dlls/wined3d/state.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index cbe30fe..bdb4d5b 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -1658,6 +1658,7 @@ static void activate_dimensions(DWORD stage, IWineD3DStateBlockImpl *stateblock,
static void tex_colorop(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];
TRACE("Setting color op for stage %d\n", stage);
@@ -1718,7 +1719,7 @@ static void tex_colorop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D
* if the sampler for this stage is dirty
*/
if(!isStateDirty(context, STATE_SAMPLER(stage))) {
- if (mapped_stage != -1) activate_dimensions(stage, stateblock, context);
+ if (tex_used) activate_dimensions(stage, stateblock, context);
}
/* Set the texture combiners */
More information about the wine-patches
mailing list