Module: wine Branch: master Commit: 62d9dc21776d715392b17de2454857c87cbf269d URL: http://source.winehq.org/git/wine.git/?a=commit;h=62d9dc21776d715392b17de245...
Author: Henri Verbeet hverbeet@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; };