From 8ac4c98be20afd6ee4d82f4f01c7c7592f23f791 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 15 Apr 2009 10:06:28 +0200 Subject: [PATCH] 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 cd156ba7e2..a7a79c190f 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 8ae6a19f4f..e0cedbc350 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 0868b6c60e..3c8eac145d 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 9a476bc090..11d69f30ae 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; };