Rico Schüller : d3d10: Improve d3d10_variable_type().
Alexandre Julliard
julliard at winehq.org
Mon Oct 26 10:08:36 CDT 2009
Module: wine
Branch: master
Commit: 0da0fa7e4d604b99791ae2857d2a476daa461347
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0da0fa7e4d604b99791ae2857d2a476daa461347
Author: Rico Schüller <kgbricola at web.de>
Date: Sun Oct 25 17:11:34 2009 +0100
d3d10: Improve d3d10_variable_type().
---
dlls/d3d10/effect.c | 52 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 42 insertions(+), 10 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index af78987..0d1eab0 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -299,17 +299,49 @@ static D3D10_SHADER_VARIABLE_CLASS d3d10_variable_class(DWORD c)
}
}
-static D3D10_SHADER_VARIABLE_TYPE d3d10_variable_type(DWORD t)
+static D3D10_SHADER_VARIABLE_TYPE d3d10_variable_type(DWORD t, BOOL is_object)
{
- switch (t)
+ if(is_object)
{
- case 1: return D3D10_SVT_FLOAT;
- case 2: return D3D10_SVT_INT;
- case 3: return D3D10_SVT_UINT;
- case 4: return D3D10_SVT_BOOL;
- default:
- FIXME("Unknown variable type %#x.\n", t);
- return 0;
+ switch (t)
+ {
+ case 1: return D3D10_SVT_STRING;
+ case 2: return D3D10_SVT_BLEND;
+ case 3: return D3D10_SVT_DEPTHSTENCIL;
+ case 4: return D3D10_SVT_RASTERIZER;
+ case 5: return D3D10_SVT_PIXELSHADER;
+ case 6: return D3D10_SVT_VERTEXSHADER;
+ case 7: return D3D10_SVT_GEOMETRYSHADER;
+
+ case 10: return D3D10_SVT_TEXTURE1D;
+ case 11: return D3D10_SVT_TEXTURE1DARRAY;
+ case 12: return D3D10_SVT_TEXTURE2D;
+ case 13: return D3D10_SVT_TEXTURE2DARRAY;
+ case 14: return D3D10_SVT_TEXTURE2DMS;
+ case 15: return D3D10_SVT_TEXTURE2DMSARRAY;
+ case 16: return D3D10_SVT_TEXTURE3D;
+ case 17: return D3D10_SVT_TEXTURECUBE;
+
+ case 19: return D3D10_SVT_RENDERTARGETVIEW;
+ case 20: return D3D10_SVT_DEPTHSTENCILVIEW;
+ case 21: return D3D10_SVT_SAMPLER;
+ default:
+ FIXME("Unknown variable type %#x.\n", t);
+ return 0;
+ }
+ }
+ else
+ {
+ switch (t)
+ {
+ case 1: return D3D10_SVT_FLOAT;
+ case 2: return D3D10_SVT_INT;
+ case 3: return D3D10_SVT_UINT;
+ case 4: return D3D10_SVT_BOOL;
+ default:
+ FIXME("Unknown variable type %#x.\n", t);
+ return 0;
+ }
}
}
@@ -352,7 +384,7 @@ static HRESULT parse_fx10_type(struct d3d10_effect_type *t, const char *ptr, con
read_dword(&ptr, &tmp);
t->column_count = (tmp & D3D10_FX10_TYPE_COLUMN_MASK) >> D3D10_FX10_TYPE_COLUMN_SHIFT;
t->row_count = (tmp & D3D10_FX10_TYPE_ROW_MASK) >> D3D10_FX10_TYPE_ROW_SHIFT;
- t->basetype = d3d10_variable_type((tmp & D3D10_FX10_TYPE_BASETYPE_MASK) >> D3D10_FX10_TYPE_BASETYPE_SHIFT);
+ t->basetype = d3d10_variable_type((tmp & D3D10_FX10_TYPE_BASETYPE_MASK) >> D3D10_FX10_TYPE_BASETYPE_SHIFT, FALSE);
t->type_class = d3d10_variable_class((tmp & D3D10_FX10_TYPE_CLASS_MASK) >> D3D10_FX10_TYPE_CLASS_SHIFT);
TRACE("Type description: %#x.\n", tmp);
More information about the wine-cvs
mailing list