Stefan Dösinger : wined3d: Make pixel shader input an array.

Alexandre Julliard julliard at winehq.org
Tue Nov 6 08:24:40 CST 2007


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu Oct 18 14:45:32 2007 +0200

wined3d: Make pixel shader input an array.

---

 dlls/wined3d/glsl_shader.c |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 7e79e27..2aadbfc 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -617,9 +617,8 @@ void shader_generate_glsl_declarations(
     }
 
     /* Declare input register temporaries */
-    for (i=0; i < This->baseShader.limits.packed_input; i++) {
-        if (reg_maps->packed_input[i])
-            shader_addline(buffer, "vec4 IN%lu;\n", i);
+    if(pshader) {
+        shader_addline(buffer, "vec4 IN[%lu];\n", This->baseShader.limits.packed_input);
     }
 
     /* Declare output register temporaries */
@@ -775,7 +774,7 @@ static void shader_glsl_get_register_name(
         if (pshader) {
             /* Pixel shaders >= 3.0 */
             if (WINED3DSHADER_VERSION_MAJOR(This->baseShader.hex_version) >= 3)
-                sprintf(tmpStr, "IN%u", reg);
+                sprintf(tmpStr, "IN[%u]", reg);
              else {
                 if (reg==0)
                     strcpy(tmpStr, "gl_Color");
@@ -2514,28 +2513,28 @@ void pshader_glsl_input_pack(
 
            case WINED3DDECLUSAGE_COLOR:
                if (usage_idx == 0)
-                   shader_addline(buffer, "IN%u%s = vec4(gl_Color)%s;\n",
+                   shader_addline(buffer, "IN[%u]%s = vec4(gl_Color)%s;\n",
                        i, reg_mask, reg_mask);
                else if (usage_idx == 1)
-                   shader_addline(buffer, "IN%u%s = vec4(gl_SecondaryColor)%s;\n",
+                   shader_addline(buffer, "IN[%u]%s = vec4(gl_SecondaryColor)%s;\n",
                        i, reg_mask, reg_mask);
                else
-                   shader_addline(buffer, "IN%u%s = vec4(unsupported_color_input)%s;\n",
+                   shader_addline(buffer, "IN[%u]%s = vec4(unsupported_color_input)%s;\n",
                        i, reg_mask, reg_mask);
                break;
 
            case WINED3DDECLUSAGE_TEXCOORD:
-               shader_addline(buffer, "IN%u%s = vec4(gl_TexCoord[%u])%s;\n",
+               shader_addline(buffer, "IN[%u]%s = vec4(gl_TexCoord[%u])%s;\n",
                    i, reg_mask, usage_idx, reg_mask );
                break;
 
            case WINED3DDECLUSAGE_FOG:
-               shader_addline(buffer, "IN%u%s = vec4(gl_FogFragCoord)%s;\n",
+               shader_addline(buffer, "IN[%u]%s = vec4(gl_FogFragCoord)%s;\n",
                    i, reg_mask, reg_mask);
                break;
 
            default:
-               shader_addline(buffer, "IN%u%s = vec4(unsupported_input)%s;\n",
+               shader_addline(buffer, "IN[%u]%s = vec4(unsupported_input)%s;\n",
                    i, reg_mask, reg_mask);
         }
     }




More information about the wine-cvs mailing list