Henri Verbeet : wined3d: Store the relative addressing mode in struct wined3d_shader_dst_param.

Alexandre Julliard julliard at winehq.org
Fri Apr 10 08:10:14 CDT 2009


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Apr 10 09:15:06 2009 +0200

wined3d: Store the relative addressing mode in struct wined3d_shader_dst_param.

---

 dlls/wined3d/baseshader.c      |    1 +
 dlls/wined3d/glsl_shader.c     |    3 +--
 dlls/wined3d/vertexshader.c    |    1 +
 dlls/wined3d/wined3d_private.h |    1 +
 4 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 5f19a99..235778e 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -220,6 +220,7 @@ static void shader_parse_dst_param(DWORD param, DWORD addr_param, struct wined3d
     dst->write_mask = param & WINED3DSP_WRITEMASK_ALL;
     dst->modifiers = param & WINED3DSP_DSTMOD_MASK;
     dst->shift = (param & WINED3DSP_DSTSHIFT_MASK) >> WINED3DSP_DSTSHIFT_SHIFT;
+    dst->has_rel_addr = param & WINED3DSHADER_ADDRMODE_RELATIVE;
     dst->token = param;
     dst->addr_token = addr_param;
 }
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 042c33e..6a01ed7 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -1278,8 +1278,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->token & WINED3DSHADER_ADDRMODE_RELATIVE, wined3d_dst->addr_token,
-            glsl_dst->reg_name, &is_color, ins);
+            wined3d_dst->has_rel_addr, wined3d_dst->addr_token, glsl_dst->reg_name, &is_color, ins);
     return shader_glsl_get_write_mask(wined3d_dst, glsl_dst->mask_str);
 }
 
diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c
index e0640e9..32fba08 100644
--- a/dlls/wined3d/vertexshader.c
+++ b/dlls/wined3d/vertexshader.c
@@ -185,6 +185,7 @@ static void vshader_set_input(
     This->semantics_in[regnum].reg.write_mask = WINED3DSP_WRITEMASK_ALL;
     This->semantics_in[regnum].reg.modifiers = 0;
     This->semantics_in[regnum].reg.shift = 0;
+    This->semantics_in[regnum].reg.has_rel_addr = FALSE;
     This->semantics_in[regnum].reg.token = reg_token;
     This->semantics_in[regnum].reg.addr_token = 0;
 }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 0d1dfe2..1e4f9ac 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -451,6 +451,7 @@ struct wined3d_shader_dst_param
     DWORD write_mask;
     DWORD modifiers;
     DWORD shift;
+    BOOL has_rel_addr;
     DWORD token;
     DWORD addr_token;
 };




More information about the wine-cvs mailing list