Module: wine Branch: master Commit: 99e3abab3028ee38bd107d888988e64e029731f0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=99e3abab3028ee38bd107d8889...
Author: H. Verbeet hverbeet@gmail.com Date: Thu Jun 28 23:32:38 2007 +0200
wined3d: Cleanup device_map_fixed_function_samplers().
---
dlls/wined3d/device.c | 34 +++++----------------------------- 1 files changed, 5 insertions(+), 29 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 55b161d..5d3a7ce 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3263,47 +3263,23 @@ static void device_map_fixed_function_samplers(IWineD3DDeviceImpl *This) { device_update_fixed_function_usage_map(This);
if (This->stateBlock->lowest_disabled_stage <= GL_LIMITS(textures)) { - for (i = 0; i < MAX_FRAGMENT_SAMPLERS; ++i) { + for (i = 0; i < This->stateBlock->lowest_disabled_stage; ++i) { + if (!This->fixed_function_usage_map[i]) continue; + if (This->texUnitMap[i] != i) { device_map_stage(This, i, i); IWineD3DDeviceImpl_MarkStateDirty(This, STATE_SAMPLER(i)); - if (i < MAX_TEXTURES) { - markTextureStagesDirty(This, i); - } + markTextureStagesDirty(This, i); } } return; }
- /* No pixel shader, and we do not have enough texture units available. Try to skip NULL textures - * First, see if we can succeed at all - */ - tex = 0; - for (i = 0; i < This->stateBlock->lowest_disabled_stage; ++i) { - if (!This->fixed_function_usage_map[i]) ++tex; - } - - if (GL_LIMITS(textures) + tex < This->stateBlock->lowest_disabled_stage) { - FIXME("Too many bound textures to support the combiner settings\n"); - return; - } - /* Now work out the mapping */ tex = 0; - This->oneToOneTexUnitMap = FALSE; - WARN("Non 1:1 mapping UNTESTED!\n"); for (i = 0; i < This->stateBlock->lowest_disabled_stage; ++i) { - /* Skip NULL textures */ - if (!This->fixed_function_usage_map[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); - device_map_stage(This, i, -1); - - continue; - } + if (!This->fixed_function_usage_map[i]) continue;
- TRACE("Mapping texture stage %d to unit %d\n", i, tex); if (This->texUnitMap[i] != tex) { device_map_stage(This, i, tex); IWineD3DDeviceImpl_MarkStateDirty(This, STATE_SAMPLER(i));