From 699eae0cf7461bf6bc771ef5dae03ff99a4cb57a Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 6 May 2009 10:05:45 +0200 Subject: [PATCH] wined3d: Shift the writemask in the frontend. --- dlls/wined3d/shader_sm1.c | 6 +++++- dlls/wined3d/wined3d_private.h | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/dlls/wined3d/shader_sm1.c b/dlls/wined3d/shader_sm1.c index a353f48d3c0..d13df03ce6e 100644 --- a/dlls/wined3d/shader_sm1.c +++ b/dlls/wined3d/shader_sm1.c @@ -76,6 +76,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d_shader); #define WINED3DSP_DSTSHIFT_SHIFT 24 #define WINED3DSP_DSTSHIFT_MASK (0xf << WINED3DSP_DSTSHIFT_SHIFT) +/* Write mask */ +#define WINED3D_SM1_WRITEMASK_SHIFT 16 +#define WINED3D_SM1_WRITEMASK_MASK (0xf << WINED3D_SM1_WRITEMASK_SHIFT) + /* Swizzle mask */ #define WINED3DSP_SWIZZLE_SHIFT 16 #define WINED3DSP_SWIZZLE_MASK (0xff << WINED3DSP_SWIZZLE_SHIFT) @@ -351,7 +355,7 @@ static void shader_parse_dst_param(DWORD param, const struct wined3d_shader_src_ dst->register_type = ((param & WINED3DSP_REGTYPE_MASK) >> WINED3DSP_REGTYPE_SHIFT) | ((param & WINED3DSP_REGTYPE_MASK2) >> WINED3DSP_REGTYPE_SHIFT2); dst->register_idx = param & WINED3DSP_REGNUM_MASK; - dst->write_mask = param & WINED3DSP_WRITEMASK_ALL; + dst->write_mask = (param & WINED3D_SM1_WRITEMASK_MASK) >> WINED3D_SM1_WRITEMASK_SHIFT; dst->modifiers = (param & WINED3DSP_DSTMOD_MASK) >> WINED3DSP_DSTMOD_SHIFT; dst->shift = (param & WINED3DSP_DSTSHIFT_MASK) >> WINED3DSP_DSTSHIFT_SHIFT; dst->rel_addr = rel_addr; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 282814ac64a..85811e7a311 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -351,11 +351,11 @@ typedef enum _WINED3DSHADER_PARAM_SRCMOD_TYPE WINED3DSPSM_NOT = 13, } WINED3DSHADER_PARAM_SRCMOD_TYPE; -#define WINED3DSP_WRITEMASK_0 0x00010000 /* .x r */ -#define WINED3DSP_WRITEMASK_1 0x00020000 /* .y g */ -#define WINED3DSP_WRITEMASK_2 0x00040000 /* .z b */ -#define WINED3DSP_WRITEMASK_3 0x00080000 /* .w a */ -#define WINED3DSP_WRITEMASK_ALL 0x000F0000 /* all */ +#define WINED3DSP_WRITEMASK_0 0x1 /* .x r */ +#define WINED3DSP_WRITEMASK_1 0x2 /* .y g */ +#define WINED3DSP_WRITEMASK_2 0x4 /* .z b */ +#define WINED3DSP_WRITEMASK_3 0x8 /* .w a */ +#define WINED3DSP_WRITEMASK_ALL 0xf /* all */ typedef enum _WINED3DSHADER_PARAM_DSTMOD_TYPE { -- 2.11.4.GIT