[5/5] wined3d: Cleanup shader_glsl_load_psamplers()

H. Verbeet hverbeet at gmail.com
Sun Jul 1 16:41:57 CDT 2007


The for loop should loop over the d3d samplers, not the amount of
supported GL fragment samplers. In practice the actual value will
often be the same though. Checking stateBlock->textures[i] against
NULL is unnecessary. mapped_unit should be checked against
GL_LIMITS(fragment_samplers). Overall, this patch makes
shader_glsl_load_psamplers() similar to shader_glsl_load_vsamplers().

Changelog:
  - Cleanup shader_glsl_load_psamplers()
-------------- next part --------------
---

 dlls/wined3d/glsl_shader.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 1e77b96..00536b5 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -85,15 +85,17 @@ static void shader_glsl_load_psamplers(
     int i;
     char sampler_name[20];
 
-    for (i=0; i< GL_LIMITS(fragment_samplers); ++i) {
-        if (stateBlock->textures[i] != NULL) {
-            snprintf(sampler_name, sizeof(sampler_name), "Psampler%d", i);
-            name_loc = GL_EXTCALL(glGetUniformLocationARB(programId, sampler_name));
-            if (name_loc != -1) {
-                int mapped_unit = stateBlock->wineD3DDevice->texUnitMap[i];
+    for (i = 0; i < MAX_FRAGMENT_SAMPLERS; ++i) {
+        snprintf(sampler_name, sizeof(sampler_name), "Psampler%d", i);
+        name_loc = GL_EXTCALL(glGetUniformLocationARB(programId, sampler_name));
+        if (name_loc != -1) {
+            int mapped_unit = stateBlock->wineD3DDevice->texUnitMap[i];
+            if (mapped_unit != -1 && mapped_unit < GL_LIMITS(fragment_samplers)) {
                 TRACE("Loading %s for texture %d\n", sampler_name, mapped_unit);
                 GL_EXTCALL(glUniform1iARB(name_loc, mapped_unit));
                 checkGLcall("glUniform1iARB");
+            } else {
+                ERR("Trying to load sampler %s on unsupported unit %d\n", sampler_name, mapped_unit);
             }
         }
     }


More information about the wine-patches mailing list