2 * Copyright 2009 Henri Verbeet for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef __WINE_D3D10EFFECT_H
21 #define __WINE_D3D10EFFECT_H
25 #define D3D10_EFFECT_VARIABLE_POOLED 0x1
26 #define D3D10_EFFECT_VARIABLE_ANNOTATION 0x2
27 #define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT 0x4
29 typedef struct _D3D10_EFFECT_TYPE_DESC
32 D3D10_SHADER_VARIABLE_CLASS Class;
33 D3D10_SHADER_VARIABLE_TYPE Type;
41 } D3D10_EFFECT_TYPE_DESC;
43 typedef struct _D3D10_EFFECT_VARIABLE_DESC
50 UINT ExplicitBindPoint;
51 } D3D10_EFFECT_VARIABLE_DESC;
53 DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd);
55 #define INTERFACE ID3D10EffectType
56 DECLARE_INTERFACE(ID3D10EffectType)
58 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
59 STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE;
60 STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
61 STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ LPCSTR name) PURE;
62 STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ LPCSTR semantic) PURE;
63 STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT index) PURE;
64 STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT index) PURE;
68 DEFINE_GUID(IID_ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
70 #define INTERFACE ID3D10EffectVariable
71 DECLARE_INTERFACE(ID3D10EffectVariable)
73 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
74 STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
75 STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
76 STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
77 STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
78 STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
79 STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
80 STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
81 STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
82 STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
83 STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
84 STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
85 STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
86 STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
87 STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
88 STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
89 STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
90 STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
91 STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
92 STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
93 STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
94 STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
95 STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
96 STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
97 STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
101 DEFINE_GUID(IID_ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
103 #define INTERFACE ID3D10EffectConstantBuffer
104 DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
106 /* ID3D10EffectVariable methods */
107 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
108 STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
109 STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
110 STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
111 STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
112 STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
113 STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
114 STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
115 STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
116 STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
117 STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
118 STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
119 STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
120 STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
121 STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
122 STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
123 STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
124 STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
125 STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
126 STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
127 STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
128 STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
129 STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
130 STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
131 STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
132 /* ID3D10EffectConstantBuffer methods */
133 STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *buffer) PURE;
134 STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **buffer) PURE;
135 STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *view) PURE;
136 STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **view) PURE;
140 #endif /* __WINE_D3D10EFFECT_H */