H. Verbeet : wined3d: Cleanup device_map_fixed_function_samplers().

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 29 08:14:50 CDT 2007


Module: wine
Branch: master
Commit: 99e3abab3028ee38bd107d888988e64e029731f0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=99e3abab3028ee38bd107d888988e64e029731f0

Author: H. Verbeet <hverbeet at 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));




More information about the wine-cvs mailing list