wined3d: Only call activate_dimensions() if the texture is used.

This commit is contained in:
H. Verbeet 2007-07-01 23:41:04 +02:00 committed by Alexandre Julliard
parent 5e78a83cb2
commit 9ed84211c1
1 changed files with 2 additions and 1 deletions

View File

@ -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 */