Henri Verbeet : wined3d: Store the source modifiers in struct wined3d_shader_src_param.

Alexandre Julliard julliard at winehq.org
Thu Apr 16 14:34:47 CDT 2009


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

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

wined3d: Store the source modifiers in struct wined3d_shader_src_param.

---

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

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index cd156ba..a7a79c1 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -1173,7 +1173,7 @@ static void pshader_hw_tex(const struct wined3d_shader_instruction *ins)
   }
   else if (shader_version < WINED3DPS_VERSION(2,0))
   {
-      DWORD src_mod = ins->src[0].token & WINED3DSP_SRCMOD_MASK;
+      DWORD src_mod = ins->src[0].modifiers;
       if (src_mod == WINED3DSPSM_DZ) {
           projected = TRUE;
       } else if(src_mod == WINED3DSPSM_DW) {
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 8ae6a19..e0cedbc 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -229,6 +229,7 @@ static void shader_parse_src_param(DWORD param, DWORD addr_param, struct wined3d
     src->register_type = ((param & WINED3DSP_REGTYPE_MASK) >> WINED3DSP_REGTYPE_SHIFT)
             | ((param & WINED3DSP_REGTYPE_MASK2) >> WINED3DSP_REGTYPE_SHIFT2);
     src->register_idx = param & WINED3DSP_REGNUM_MASK;
+    src->modifiers = param & WINED3DSP_SRCMOD_MASK;
     src->token = param;
     src->addr_token = addr_param;
 }
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 0868b6c..3c8eac1 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2459,7 +2459,7 @@ static void pshader_glsl_tex(const struct wined3d_shader_instruction *ins)
     }
     else if (shader_version < WINED3DPS_VERSION(2,0))
     {
-        DWORD src_mod = ins->src[0].token & WINED3DSP_SRCMOD_MASK;
+        DWORD src_mod = ins->src[0].modifiers;
 
         if (src_mod == WINED3DSPSM_DZ) {
             sample_flags |= WINED3D_GLSL_SAMPLE_PROJECTED;
@@ -2559,7 +2559,7 @@ static void pshader_glsl_texcoord(const struct wined3d_shader_instruction *ins)
                 ins->dst[0].register_idx, dst_mask);
     } else {
         DWORD reg = ins->src[0].register_idx;
-        DWORD src_mod = ins->src[0].token & WINED3DSP_SRCMOD_MASK;
+        DWORD src_mod = ins->src[0].modifiers;
         char dst_swizzle[6];
 
         shader_glsl_get_swizzle(ins->src[0].token, FALSE, write_mask, dst_swizzle);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 9a476bc..11d69f3 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -466,6 +466,7 @@ struct wined3d_shader_src_param
 {
     WINED3DSHADER_PARAM_REGISTER_TYPE register_type;
     UINT register_idx;
+    DWORD modifiers;
     DWORD token;
     DWORD addr_token;
 };




More information about the wine-cvs mailing list