Module: wine
Branch: master
Commit: 99e3abab3028ee38bd107d888988e64e029731f0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=99e3abab3028ee38bd107d888…
Author: H. Verbeet <hverbeet(a)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));