H. Verbeet : wined3d: Skip NULL textures rather than non-NULL ones, assign -1 to skipped stages.
Module: wine Branch: master Commit: 957474f223d28751c65eb87515bf9b7da2767624 URL: http://source.winehq.org/git/wine.git/?a=commit;h=957474f223d28751c65eb87515... Author: H. Verbeet <hverbeet(a)gmail.com> Date: Mon Dec 25 23:02:41 2006 +0100 wined3d: Skip NULL textures rather than non-NULL ones, assign -1 to skipped stages. Downgrade a FIXME to a WARN. --- dlls/wined3d/device.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 4966d0c..0ad4512 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3735,15 +3735,26 @@ static void IWineD3DDeviceImpl_FindTexUn /* Now work out the mapping */ tex = 0; This->oneToOneTexUnitMap = FALSE; - FIXME("Non 1:1 mapping UNTESTED!\n"); + WARN("Non 1:1 mapping UNTESTED!\n"); for(i = 0; i < This->stateBlock->lowest_disabled_stage; i++) { - if(This->stateBlock->textures[i] == NULL) tex++; + /* Skip NULL textures */ + if (!This->stateBlock->textures[i]) { + /* Map to -1, so the check below doesn't fail if a non-NULL + * texture is set on this stage */ + TRACE("Mapping texture stage %d to -1\n", i); + This->texUnitMap[i] = -1; + + continue; + } + TRACE("Mapping texture stage %d to unit %d\n", i, tex); if(This->texUnitMap[i] != tex) { This->texUnitMap[i] = tex; IWineD3DDeviceImpl_MarkStateDirty(This, STATE_SAMPLER(i)); markTextureStagesDirty(This, i); } + + ++tex; } } }
participants (1)
-
Alexandre Julliard