Henri Verbeet : wined3d: Pass a struct wined3d_shader_src_param to shader_glsl_get_register_name() for the relative addressing token.

Alexandre Julliard julliard at winehq.org
Mon Apr 20 11:33:07 CDT 2009


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Apr 17 09:46:57 2009 +0200

wined3d: Pass a struct wined3d_shader_src_param to shader_glsl_get_register_name() for the relative addressing token.

---

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

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 429695b..79b95fc 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -1022,7 +1022,7 @@ static void shader_glsl_gen_modifier (
 /** Writes the GLSL variable name that corresponds to the register that the
  * DX opcode parameter is trying to access */
 static void shader_glsl_get_register_name(WINED3DSHADER_PARAM_REGISTER_TYPE register_type, UINT register_idx,
-        BOOL rel_addr, const DWORD addr_token, char *register_name, BOOL *is_color,
+        const struct wined3d_shader_src_param *rel_addr, char *register_name, BOOL *is_color,
         const struct wined3d_shader_instruction *ins)
 {
     /* oPos, oFog and oPts in D3D */
@@ -1051,7 +1051,7 @@ static void shader_glsl_get_register_name(WINED3DSHADER_PARAM_REGISTER_TYPE regi
                 if (rel_addr)
                 {
                     glsl_src_param_t rel_param;
-                    shader_glsl_add_src_param(ins, addr_token, NULL, WINED3DSP_WRITEMASK_0, &rel_param);
+                    shader_glsl_add_src_param(ins, rel_addr->token, NULL, WINED3DSP_WRITEMASK_0, &rel_param);
 
                     /* Removing a + 0 would be an obvious optimization, but macos doesn't see the NOP
                      * operation there
@@ -1106,7 +1106,7 @@ static void shader_glsl_get_register_name(WINED3DSHADER_PARAM_REGISTER_TYPE regi
         if (rel_addr)
         {
            glsl_src_param_t rel_param;
-           shader_glsl_add_src_param(ins, addr_token, NULL, WINED3DSP_WRITEMASK_0, &rel_param);
+           shader_glsl_add_src_param(ins, rel_addr->token, NULL, WINED3DSP_WRITEMASK_0, &rel_param);
            if (register_idx)
                sprintf(register_name, "%cC[%s + %u]", prefix, rel_param.param_str, register_idx);
            else
@@ -1277,7 +1277,7 @@ static void shader_glsl_add_src_param(const struct wined3d_shader_instruction *i
     swizzle_str[0] = '\0';
 
     shader_glsl_get_register_name(shader_get_regtype(param), param & WINED3DSP_REGNUM_MASK,
-            !!addr_param, addr_param ? addr_param->token : 0, src_param->reg_name, &is_color, ins);
+            addr_param, src_param->reg_name, &is_color, ins);
 
     shader_glsl_get_swizzle(param, is_color, mask, swizzle_str);
     shader_glsl_gen_modifier(param, src_param->reg_name, swizzle_str, src_param->param_str);
@@ -1295,8 +1295,7 @@ static DWORD shader_glsl_add_dst_param(const struct wined3d_shader_instruction *
     glsl_dst->reg_name[0] = '\0';
 
     shader_glsl_get_register_name(wined3d_dst->register_type, wined3d_dst->register_idx,
-            !!wined3d_dst->rel_addr, wined3d_dst->rel_addr ? wined3d_dst->rel_addr->token : 0,
-            glsl_dst->reg_name, &is_color, ins);
+            wined3d_dst->rel_addr, glsl_dst->reg_name, &is_color, ins);
     return shader_glsl_get_write_mask(wined3d_dst, glsl_dst->mask_str);
 }
 




More information about the wine-cvs mailing list