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 #endif /* __WINE_D3D10EFFECT_H */