wined3d: Handle the sampler type shift in the frontend.
Henri Verbeet
hverbeet at codeweavers.com
Wed Apr 29 02:55:07 CDT 2009
---
dlls/wined3d/baseshader.c | 8 ++++++--
dlls/wined3d/wined3d_private_types.h | 19 ++++++++-----------
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index d8035b7..f9f2f80 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -38,6 +38,10 @@ WINE_DECLARE_DEBUG_CHANNEL(d3d);
#define WINED3DSP_DCL_USAGEINDEX_SHIFT 16
#define WINED3DSP_DCL_USAGEINDEX_MASK (0xf << WINED3DSP_DCL_USAGEINDEX_SHIFT)
+/* DCL sampler type */
+#define WINED3DSP_TEXTURETYPE_SHIFT 27
+#define WINED3DSP_TEXTURETYPE_MASK (0xf << WINED3DSP_TEXTURETYPE_SHIFT)
+
/* Opcode-related masks */
#define WINED3DSI_OPCODE_MASK 0x0000ffff
@@ -269,7 +273,7 @@ static void shader_sm1_read_semantic(const DWORD **ptr, struct wined3d_shader_se
semantic->usage = (usage_token & WINED3DSP_DCL_USAGE_MASK) >> WINED3DSP_DCL_USAGE_SHIFT;
semantic->usage_idx = (usage_token & WINED3DSP_DCL_USAGEINDEX_MASK) >> WINED3DSP_DCL_USAGEINDEX_SHIFT;
- semantic->sampler_type = usage_token & WINED3DSP_TEXTURETYPE_MASK;
+ semantic->sampler_type = (usage_token & WINED3DSP_TEXTURETYPE_MASK) >> WINED3DSP_TEXTURETYPE_SHIFT;
shader_parse_dst_param(dst_token, NULL, &semantic->reg);
}
@@ -824,7 +828,7 @@ static void shader_dump_decl_usage(DWORD decl, DWORD param, DWORD shader_version
TRACE("dcl");
if (regtype == WINED3DSPR_SAMPLER) {
- DWORD ttype = decl & WINED3DSP_TEXTURETYPE_MASK;
+ DWORD ttype = (decl & WINED3DSP_TEXTURETYPE_MASK) >> WINED3DSP_TEXTURETYPE_SHIFT;
switch (ttype) {
case WINED3DSTT_2D: TRACE("_2d"); break;
diff --git a/dlls/wined3d/wined3d_private_types.h b/dlls/wined3d/wined3d_private_types.h
index 9f62a9c..30d6900 100644
--- a/dlls/wined3d/wined3d_private_types.h
+++ b/dlls/wined3d/wined3d_private_types.h
@@ -31,18 +31,15 @@
#define WINED3DFMT_FLAG_RENDERTARGET 0x10
#define WINED3DFMT_FLAG_FOURCC 0x20
-/** DCL sampler texture type **/
-#define WINED3DSP_TEXTURETYPE_SHIFT 27
-#define WINED3DSP_TEXTURETYPE_MASK 0x78000000
-
-typedef enum _WINED3DSAMPLER_TEXTURE_TYPE {
- WINED3DSTT_UNKNOWN = 0 << WINED3DSP_TEXTURETYPE_SHIFT,
- WINED3DSTT_1D = 1 << WINED3DSP_TEXTURETYPE_SHIFT,
- WINED3DSTT_2D = 2 << WINED3DSP_TEXTURETYPE_SHIFT,
- WINED3DSTT_CUBE = 3 << WINED3DSP_TEXTURETYPE_SHIFT,
- WINED3DSTT_VOLUME = 4 << WINED3DSP_TEXTURETYPE_SHIFT,
-
- WINED3DSTT_FORCE_DWORD = 0x7FFFFFFF
+typedef enum _WINED3DSAMPLER_TEXTURE_TYPE
+{
+ WINED3DSTT_UNKNOWN = 0,
+ WINED3DSTT_1D = 1,
+ WINED3DSTT_2D = 2,
+ WINED3DSTT_CUBE = 3,
+ WINED3DSTT_VOLUME = 4,
+
+ WINED3DSTT_FORCE_DWORD = 0x7FFFFFFF
} WINED3DSAMPLER_TEXTURE_TYPE;
/** Register types **/
--
1.6.0.6
--------------080607070507040705060802--
More information about the wine-patches
mailing list