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