[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