Module: wine Branch: master Commit: 1fe1676ae9dfd1664683d507986e3882423b496c URL: http://source.winehq.org/git/wine.git/?a=commit;h=1fe1676ae9dfd1664683d50798...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Oct 8 13:12:18 2010 +0200
wined3d: SM4 immediate constants are typeless.
---
dlls/wined3d/glsl_shader.c | 4 ++-- dlls/wined3d/shader.c | 4 ++-- dlls/wined3d/shader_sm4.c | 12 ++++++------ dlls/wined3d/wined3d_private.h | 12 +++--------- 4 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 8e9795e..0b5bb36 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1477,11 +1477,11 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register * case WINED3DSPR_IMMCONST: switch (reg->immconst_type) { - case WINED3D_IMMCONST_FLOAT: + case WINED3D_IMMCONST_SCALAR: sprintf(register_name, "%.8e", *(const float *)reg->immconst_data); break;
- case WINED3D_IMMCONST_FLOAT4: + case WINED3D_IMMCONST_VEC4: sprintf(register_name, "vec4(%.8e, %.8e, %.8e, %.8e)", *(const float *)®->immconst_data[0], *(const float *)®->immconst_data[1], *(const float *)®->immconst_data[2], *(const float *)®->immconst_data[3]); diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 075c204..bc39b3b 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -1033,11 +1033,11 @@ static void shader_dump_register(const struct wined3d_shader_register *reg, TRACE("("); switch (reg->immconst_type) { - case WINED3D_IMMCONST_FLOAT: + case WINED3D_IMMCONST_SCALAR: TRACE("%.8e", *(const float *)reg->immconst_data); break;
- case WINED3D_IMMCONST_FLOAT4: + case WINED3D_IMMCONST_VEC4: TRACE("%.8e, %.8e, %.8e, %.8e", *(const float *)®->immconst_data[0], *(const float *)®->immconst_data[1], *(const float *)®->immconst_data[2], *(const float *)®->immconst_data[3]); diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c index ecd1ec3..a438614 100644 --- a/dlls/wined3d/shader_sm4.c +++ b/dlls/wined3d/shader_sm4.c @@ -90,8 +90,8 @@ enum wined3d_sm4_register_type
enum wined3d_sm4_immconst_type { - WINED3D_SM4_IMMCONST_FLOAT = 0x1, - WINED3D_SM4_IMMCONST_FLOAT4 = 0x2, + WINED3D_SM4_IMMCONST_SCALAR = 0x1, + WINED3D_SM4_IMMCONST_VEC4 = 0x2, };
struct wined3d_sm4_data @@ -354,14 +354,14 @@ static void shader_sm4_read_src_param(void *data, const DWORD **ptr, struct wine
switch(immconst_type) { - case WINED3D_SM4_IMMCONST_FLOAT: - src_param->reg.immconst_type = WINED3D_IMMCONST_FLOAT; + case WINED3D_SM4_IMMCONST_SCALAR: + src_param->reg.immconst_type = WINED3D_IMMCONST_SCALAR; memcpy(src_param->reg.immconst_data, *ptr, 1 * sizeof(DWORD)); *ptr += 1; break;
- case WINED3D_SM4_IMMCONST_FLOAT4: - src_param->reg.immconst_type = WINED3D_IMMCONST_FLOAT4; + case WINED3D_SM4_IMMCONST_VEC4: + src_param->reg.immconst_type = WINED3D_IMMCONST_VEC4; memcpy(src_param->reg.immconst_data, *ptr, 4 * sizeof(DWORD)); *ptr += 4; break; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 467eb28..3651c32 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -313,8 +313,8 @@ typedef enum _WINED3DSHADER_PARAM_REGISTER_TYPE
enum wined3d_immconst_type { - WINED3D_IMMCONST_FLOAT, - WINED3D_IMMCONST_FLOAT4, + WINED3D_IMMCONST_SCALAR, + WINED3D_IMMCONST_VEC4, };
#define WINED3DSP_NOSWIZZLE (0 | (1 << 2) | (2 << 4) | (3 << 6)) @@ -2821,13 +2821,7 @@ static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg) }
case WINED3DSPR_IMMCONST: - switch(reg->immconst_type) - { - case WINED3D_IMMCONST_FLOAT: - return TRUE; - default: - return FALSE; - } + return reg->immconst_type == WINED3D_IMMCONST_SCALAR;
default: return FALSE;