Rico Schüller : d3d10: Add the ID3D10ShaderReflection interface.
Alexandre Julliard
julliard at winehq.org
Fri Jul 23 10:05:46 CDT 2010
Module: wine
Branch: master
Commit: d2469219ac437372fa810f7796607ea903d74085
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d2469219ac437372fa810f7796607ea903d74085
Author: Rico Schüller <kgbricola at web.de>
Date: Wed Jul 21 20:44:55 2010 +0200
d3d10: Add the ID3D10ShaderReflection interface.
---
include/d3d10shader.h | 81 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/include/d3d10shader.h b/include/d3d10shader.h
index fef32e7..728028c 100644
--- a/include/d3d10shader.h
+++ b/include/d3d10shader.h
@@ -82,6 +82,14 @@ typedef enum _D3D10_SHADER_VARIABLE_TYPE
D3D10_SVT_FORCE_DWORD = 0x7fffffff
} D3D10_SHADER_VARIABLE_TYPE, *LPD3D10_SHADER_VARIABLE_TYPE;
+typedef enum _D3D10_SHADER_INPUT_TYPE
+{
+ D3D10_SIT_CBUFFER = 0,
+ D3D10_SIT_TBUFFER = 1,
+ D3D10_SIT_TEXTURE = 2,
+ D3D10_SIT_SAMPLER = 3
+} D3D10_SHADER_INPUT_TYPE, *LPD3D10_SHADER_INPUT_TYPE;
+
typedef enum D3D10_CBUFFER_TYPE
{
D3D10_CT_CBUFFER = 0,
@@ -119,6 +127,28 @@ typedef struct _D3D10_SHADER_MACRO
LPCSTR Definition;
} D3D10_SHADER_MACRO, *LPD3D10_SHADER_MACRO;
+typedef enum D3D10_RESOURCE_RETURN_TYPE
+{
+ D3D10_RETURN_TYPE_UNORM = 1,
+ D3D10_RETURN_TYPE_SNORM = 2,
+ D3D10_RETURN_TYPE_SINT = 3,
+ D3D10_RETURN_TYPE_UINT = 4,
+ D3D10_RETURN_TYPE_FLOAT = 5,
+ D3D10_RETURN_TYPE_MIXED = 6
+} D3D10_RESOURCE_RETURN_TYPE;
+
+typedef struct _D3D10_SHADER_INPUT_BIND_DESC
+{
+ LPCSTR Name;
+ D3D10_SHADER_INPUT_TYPE Type;
+ UINT BindPoint;
+ UINT BindCount;
+ UINT uFlags;
+ D3D10_RESOURCE_RETURN_TYPE ReturnType;
+ D3D10_SRV_DIMENSION Dimension;
+ UINT NumSamples;
+} D3D10_SHADER_INPUT_BIND_DESC;
+
typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
{
LPCSTR SemanticName;
@@ -130,6 +160,38 @@ typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
BYTE ReadWriteMask;
} D3D10_SIGNATURE_PARAMETER_DESC;
+typedef struct _D3D10_SHADER_DESC
+{
+ UINT Version;
+ LPCSTR Creator;
+ UINT Flags;
+ UINT ConstantBuffers;
+ UINT BoundResources;
+ UINT InputParameters;
+ UINT OutputParameters;
+ UINT InstructionCount;
+ UINT TempRegisterCount;
+ UINT TempArrayCount;
+ UINT DefCount;
+ UINT DclCount;
+ UINT TextureNormalInstructions;
+ UINT TextureLoadInstructions;
+ UINT TextureCompInstructions;
+ UINT TextureBiasInstructions;
+ UINT TextureGradientInstructions;
+ UINT FloatInstructionCount;
+ UINT IntInstructionCount;
+ UINT UintInstructionCount;
+ UINT StaticFlowControlCount;
+ UINT DynamicFlowControlCount;
+ UINT MacroInstructionCount;
+ UINT ArrayInstructionCount;
+ UINT CutInstructionCount;
+ UINT EmitInstructionCount;
+ D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology;
+ UINT GSMaxOutputVertexCount;
+} D3D10_SHADER_DESC;
+
typedef struct _D3D10_SHADER_BUFFER_DESC
{
LPCSTR Name;
@@ -192,6 +254,25 @@ DECLARE_INTERFACE(ID3D10ShaderReflectionConstantBuffer)
};
#undef INTERFACE
+DEFINE_GUID(IID_ID3D10ShaderReflection, 0xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa);
+
+#define INTERFACE ID3D10ShaderReflection
+DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D10ShaderReflection methods */
+ STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ LPCSTR name) PURE;
+ STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+ STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+};
+#undef INTERFACE
+
LPCSTR WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device);
LPCSTR WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device);
LPCSTR WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device);
More information about the wine-cvs
mailing list