2 //////////////////////////////////////////////////////////////////////////////
4 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // Content: D3DX effect types and Shaders
9 //////////////////////////////////////////////////////////////////////////////
13 #ifndef __D3DX9EFFECT_H__
14 #define __D3DX9EFFECT_H__
17 //----------------------------------------------------------------------------
18 // D3DXFX_DONOTSAVESTATE
19 // This flag is used as a parameter to ID3DXEffect::Begin(). When this flag
20 // is specified, device state is not saved or restored in Begin/End.
21 // D3DXFX_DONOTSAVESHADERSTATE
22 // This flag is used as a parameter to ID3DXEffect::Begin(). When this flag
23 // is specified, shader device state is not saved or restored in Begin/End.
24 // This includes pixel/vertex shaders and shader constants
25 // D3DXFX_DONOTSAVESAMPLERSTATE
26 // This flag is used as a parameter to ID3DXEffect::Begin(). When this flag
27 // is specified, sampler device state is not saved or restored in Begin/End.
28 //----------------------------------------------------------------------------
30 #define D3DXFX_DONOTSAVESTATE (1 << 0)
31 #define D3DXFX_DONOTSAVESHADERSTATE (1 << 1)
32 #define D3DXFX_DONOTSAVESAMPLERSTATE (1 << 2)
35 //----------------------------------------------------------------------------
36 // D3DX_PARAMETER_SHARED
37 // Indicates that the value of a parameter will be shared with all effects
38 // which share the same namespace. Changing the value in one effect will
41 // D3DX_PARAMETER_LITERAL
42 // Indicates that the value of this parameter can be treated as literal.
43 // Literal parameters can be marked when the effect is compiled, and their
44 // cannot be changed after the effect is compiled. Shared parameters cannot
46 //----------------------------------------------------------------------------
48 #define D3DX_PARAMETER_SHARED (1 << 0)
49 #define D3DX_PARAMETER_LITERAL (1 << 1)
50 #define D3DX_PARAMETER_ANNOTATION (1 << 2)
53 //----------------------------------------------------------------------------
55 //----------------------------------------------------------------------------
57 typedef struct _D3DXEFFECT_DESC
59 LPCSTR Creator
; // Creator string
60 UINT Parameters
; // Number of parameters
61 UINT Techniques
; // Number of techniques
62 UINT Functions
; // Number of function entrypoints
67 //----------------------------------------------------------------------------
68 // D3DXPARAMETER_DESC:
69 //----------------------------------------------------------------------------
71 typedef struct _D3DXPARAMETER_DESC
73 LPCSTR Name
; // Parameter name
74 LPCSTR Semantic
; // Parameter semantic
75 D3DXPARAMETER_CLASS Class
; // Class
76 D3DXPARAMETER_TYPE Type
; // Component type
77 UINT Rows
; // Number of rows
78 UINT Columns
; // Number of columns
79 UINT Elements
; // Number of array elements
80 UINT Annotations
; // Number of annotations
81 UINT StructMembers
; // Number of structure member sub-parameters
82 DWORD Flags
; // D3DX_PARAMETER_* flags
83 UINT Bytes
; // Parameter size, in bytes
88 //----------------------------------------------------------------------------
89 // D3DXTECHNIQUE_DESC:
90 //----------------------------------------------------------------------------
92 typedef struct _D3DXTECHNIQUE_DESC
94 LPCSTR Name
; // Technique name
95 UINT Passes
; // Number of passes
96 UINT Annotations
; // Number of annotations
101 //----------------------------------------------------------------------------
103 //----------------------------------------------------------------------------
105 typedef struct _D3DXPASS_DESC
107 LPCSTR Name
; // Pass name
108 UINT Annotations
; // Number of annotations
110 CONST DWORD
*pVertexShaderFunction
; // Vertex shader function
111 CONST DWORD
*pPixelShaderFunction
; // Pixel shader function
116 //----------------------------------------------------------------------------
117 // D3DXFUNCTION_DESC:
118 //----------------------------------------------------------------------------
120 typedef struct _D3DXFUNCTION_DESC
122 LPCSTR Name
; // Function name
123 UINT Annotations
; // Number of annotations
129 //////////////////////////////////////////////////////////////////////////////
130 // ID3DXEffectPool ///////////////////////////////////////////////////////////
131 //////////////////////////////////////////////////////////////////////////////
133 typedef interface ID3DXEffectPool ID3DXEffectPool
;
134 typedef interface ID3DXEffectPool
*LPD3DXEFFECTPOOL
;
136 // {9537AB04-3250-412e-8213-FCD2F8677933}
137 DEFINE_GUID(IID_ID3DXEffectPool
,
138 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
142 #define INTERFACE ID3DXEffectPool
144 DECLARE_INTERFACE_(ID3DXEffectPool
, IUnknown
)
147 STDMETHOD(QueryInterface
)(THIS_ REFIID iid
, LPVOID
*ppv
) PURE
;
148 STDMETHOD_(ULONG
, AddRef
)(THIS
) PURE
;
149 STDMETHOD_(ULONG
, Release
)(THIS
) PURE
;
155 //////////////////////////////////////////////////////////////////////////////
156 // ID3DXBaseEffect ///////////////////////////////////////////////////////////
157 //////////////////////////////////////////////////////////////////////////////
159 typedef interface ID3DXBaseEffect ID3DXBaseEffect
;
160 typedef interface ID3DXBaseEffect
*LPD3DXBASEEFFECT
;
162 // {3B7A6FFB-3A69-46d7-BC01-A6B2AD4C2BB0}
163 DEFINE_GUID(IID_ID3DXBaseEffect
,
164 0x3b7a6ffb, 0x3a69, 0x46d7, 0xbc, 0x1, 0xa6, 0xb2, 0xad, 0x4c, 0x2b, 0xb0);
168 #define INTERFACE ID3DXBaseEffect
170 DECLARE_INTERFACE_(ID3DXBaseEffect
, IUnknown
)
173 STDMETHOD(QueryInterface
)(THIS_ REFIID iid
, LPVOID
*ppv
) PURE
;
174 STDMETHOD_(ULONG
, AddRef
)(THIS
) PURE
;
175 STDMETHOD_(ULONG
, Release
)(THIS
) PURE
;
178 STDMETHOD(GetDesc
)(THIS_ D3DXEFFECT_DESC
* pDesc
) PURE
;
179 STDMETHOD(GetParameterDesc
)(THIS_ D3DXHANDLE hParameter
, D3DXPARAMETER_DESC
* pDesc
) PURE
;
180 STDMETHOD(GetTechniqueDesc
)(THIS_ D3DXHANDLE hTechnique
, D3DXTECHNIQUE_DESC
* pDesc
) PURE
;
181 STDMETHOD(GetPassDesc
)(THIS_ D3DXHANDLE hPass
, D3DXPASS_DESC
* pDesc
) PURE
;
182 STDMETHOD(GetFunctionDesc
)(THIS_ D3DXHANDLE hShader
, D3DXFUNCTION_DESC
* pDesc
) PURE
;
185 STDMETHOD_(D3DXHANDLE
, GetParameter
)(THIS_ D3DXHANDLE hParameter
, UINT Index
) PURE
;
186 STDMETHOD_(D3DXHANDLE
, GetParameterByName
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pName
) PURE
;
187 STDMETHOD_(D3DXHANDLE
, GetParameterBySemantic
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pSemantic
) PURE
;
188 STDMETHOD_(D3DXHANDLE
, GetParameterElement
)(THIS_ D3DXHANDLE hParameter
, UINT Index
) PURE
;
189 STDMETHOD_(D3DXHANDLE
, GetTechnique
)(THIS_ UINT Index
) PURE
;
190 STDMETHOD_(D3DXHANDLE
, GetTechniqueByName
)(THIS_ LPCSTR pName
) PURE
;
191 STDMETHOD_(D3DXHANDLE
, GetPass
)(THIS_ D3DXHANDLE hTechnique
, UINT Index
) PURE
;
192 STDMETHOD_(D3DXHANDLE
, GetPassByName
)(THIS_ D3DXHANDLE hTechnique
, LPCSTR pName
) PURE
;
193 STDMETHOD_(D3DXHANDLE
, GetFunction
)(THIS_ UINT Index
) PURE
;
194 STDMETHOD_(D3DXHANDLE
, GetFunctionByName
)(THIS_ LPCSTR pName
) PURE
;
195 STDMETHOD_(D3DXHANDLE
, GetAnnotation
)(THIS_ D3DXHANDLE hObject
, UINT Index
) PURE
;
196 STDMETHOD_(D3DXHANDLE
, GetAnnotationByName
)(THIS_ D3DXHANDLE hObject
, LPCSTR pName
) PURE
;
198 // Get/Set Parameters
199 STDMETHOD(SetValue
)(THIS_ D3DXHANDLE hParameter
, LPCVOID pData
, UINT Bytes
) PURE
;
200 STDMETHOD(GetValue
)(THIS_ D3DXHANDLE hParameter
, LPVOID pData
, UINT Bytes
) PURE
;
201 STDMETHOD(SetBool
)(THIS_ D3DXHANDLE hParameter
, BOOL b
) PURE
;
202 STDMETHOD(GetBool
)(THIS_ D3DXHANDLE hParameter
, BOOL
* pb
) PURE
;
203 STDMETHOD(SetBoolArray
)(THIS_ D3DXHANDLE hParameter
, CONST BOOL
* pb
, UINT Count
) PURE
;
204 STDMETHOD(GetBoolArray
)(THIS_ D3DXHANDLE hParameter
, BOOL
* pb
, UINT Count
) PURE
;
205 STDMETHOD(SetInt
)(THIS_ D3DXHANDLE hParameter
, INT n
) PURE
;
206 STDMETHOD(GetInt
)(THIS_ D3DXHANDLE hParameter
, INT
* pn
) PURE
;
207 STDMETHOD(SetIntArray
)(THIS_ D3DXHANDLE hParameter
, CONST INT
* pn
, UINT Count
) PURE
;
208 STDMETHOD(GetIntArray
)(THIS_ D3DXHANDLE hParameter
, INT
* pn
, UINT Count
) PURE
;
209 STDMETHOD(SetFloat
)(THIS_ D3DXHANDLE hParameter
, FLOAT f
) PURE
;
210 STDMETHOD(GetFloat
)(THIS_ D3DXHANDLE hParameter
, FLOAT
* pf
) PURE
;
211 STDMETHOD(SetFloatArray
)(THIS_ D3DXHANDLE hParameter
, CONST FLOAT
* pf
, UINT Count
) PURE
;
212 STDMETHOD(GetFloatArray
)(THIS_ D3DXHANDLE hParameter
, FLOAT
* pf
, UINT Count
) PURE
;
213 STDMETHOD(SetVector
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXVECTOR4
* pVector
) PURE
;
214 STDMETHOD(GetVector
)(THIS_ D3DXHANDLE hParameter
, D3DXVECTOR4
* pVector
) PURE
;
215 STDMETHOD(SetVectorArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXVECTOR4
* pVector
, UINT Count
) PURE
;
216 STDMETHOD(GetVectorArray
)(THIS_ D3DXHANDLE hParameter
, D3DXVECTOR4
* pVector
, UINT Count
) PURE
;
217 STDMETHOD(SetMatrix
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
) PURE
;
218 STDMETHOD(GetMatrix
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
) PURE
;
219 STDMETHOD(SetMatrixArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
220 STDMETHOD(GetMatrixArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
221 STDMETHOD(SetMatrixPointerArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
222 STDMETHOD(GetMatrixPointerArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
223 STDMETHOD(SetMatrixTranspose
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
) PURE
;
224 STDMETHOD(GetMatrixTranspose
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
) PURE
;
225 STDMETHOD(SetMatrixTransposeArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
226 STDMETHOD(GetMatrixTransposeArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
227 STDMETHOD(SetMatrixTransposePointerArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
228 STDMETHOD(GetMatrixTransposePointerArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
229 STDMETHOD(SetString
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pString
) PURE
;
230 STDMETHOD(GetString
)(THIS_ D3DXHANDLE hParameter
, LPCSTR
* ppString
) PURE
;
231 STDMETHOD(SetTexture
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DBASETEXTURE9 pTexture
) PURE
;
232 STDMETHOD(GetTexture
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DBASETEXTURE9
*ppTexture
) PURE
;
233 STDMETHOD(SetPixelShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DPIXELSHADER9 pPShader
) PURE
;
234 STDMETHOD(GetPixelShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DPIXELSHADER9
*ppPShader
) PURE
;
235 STDMETHOD(SetVertexShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DVERTEXSHADER9 pVShader
) PURE
;
236 STDMETHOD(GetVertexShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DVERTEXSHADER9
*ppVShader
) PURE
;
238 //Set Range of an Array to pass to device
239 //Useful for sending only a subrange of an array down to the device
240 STDMETHOD(SetArrayRange
)(THIS_ D3DXHANDLE hParameter
, UINT uStart
, UINT uEnd
) PURE
;
245 //----------------------------------------------------------------------------
246 // ID3DXEffectStateManager:
247 // ------------------------
248 // This is a user implemented interface that can be used to manage device
249 // state changes made by an Effect.
250 //----------------------------------------------------------------------------
252 typedef interface ID3DXEffectStateManager ID3DXEffectStateManager
;
253 typedef interface ID3DXEffectStateManager
*LPD3DXEFFECTSTATEMANAGER
;
255 // {79AAB587-6DBC-4fa7-82DE-37FA1781C5CE}
256 DEFINE_GUID(IID_ID3DXEffectStateManager
,
257 0x79aab587, 0x6dbc, 0x4fa7, 0x82, 0xde, 0x37, 0xfa, 0x17, 0x81, 0xc5, 0xce);
260 #define INTERFACE ID3DXEffectStateManager
262 DECLARE_INTERFACE_(ID3DXEffectStateManager
, IUnknown
)
264 // The user must correctly implement QueryInterface, AddRef, and Release.
267 STDMETHOD(QueryInterface
)(THIS_ REFIID iid
, LPVOID
*ppv
) PURE
;
268 STDMETHOD_(ULONG
, AddRef
)(THIS
) PURE
;
269 STDMETHOD_(ULONG
, Release
)(THIS
) PURE
;
271 // The following methods are called by the Effect when it wants to make
272 // the corresponding device call. Note that:
273 // 1. Users manage the state and are therefore responsible for making the
274 // the corresponding device calls themselves inside their callbacks.
275 // 2. Effects pay attention to the return values of the callbacks, and so
276 // users must pay attention to what they return in their callbacks.
278 STDMETHOD(SetTransform
)(THIS_ D3DTRANSFORMSTATETYPE State
, CONST D3DMATRIX
*pMatrix
) PURE
;
279 STDMETHOD(SetMaterial
)(THIS_ CONST D3DMATERIAL9
*pMaterial
) PURE
;
280 STDMETHOD(SetLight
)(THIS_ DWORD Index
, CONST D3DLIGHT9
*pLight
) PURE
;
281 STDMETHOD(LightEnable
)(THIS_ DWORD Index
, BOOL Enable
) PURE
;
282 STDMETHOD(SetRenderState
)(THIS_ D3DRENDERSTATETYPE State
, DWORD Value
) PURE
;
283 STDMETHOD(SetTexture
)(THIS_ DWORD Stage
, LPDIRECT3DBASETEXTURE9 pTexture
) PURE
;
284 STDMETHOD(SetTextureStageState
)(THIS_ DWORD Stage
, D3DTEXTURESTAGESTATETYPE Type
, DWORD Value
) PURE
;
285 STDMETHOD(SetSamplerState
)(THIS_ DWORD Sampler
, D3DSAMPLERSTATETYPE Type
, DWORD Value
) PURE
;
286 STDMETHOD(SetNPatchMode
)(THIS_ FLOAT NumSegments
) PURE
;
287 STDMETHOD(SetFVF
)(THIS_ DWORD FVF
) PURE
;
288 STDMETHOD(SetVertexShader
)(THIS_ LPDIRECT3DVERTEXSHADER9 pShader
) PURE
;
289 STDMETHOD(SetVertexShaderConstantF
)(THIS_ UINT RegisterIndex
, CONST FLOAT
*pConstantData
, UINT RegisterCount
) PURE
;
290 STDMETHOD(SetVertexShaderConstantI
)(THIS_ UINT RegisterIndex
, CONST INT
*pConstantData
, UINT RegisterCount
) PURE
;
291 STDMETHOD(SetVertexShaderConstantB
)(THIS_ UINT RegisterIndex
, CONST BOOL
*pConstantData
, UINT RegisterCount
) PURE
;
292 STDMETHOD(SetPixelShader
)(THIS_ LPDIRECT3DPIXELSHADER9 pShader
) PURE
;
293 STDMETHOD(SetPixelShaderConstantF
)(THIS_ UINT RegisterIndex
, CONST FLOAT
*pConstantData
, UINT RegisterCount
) PURE
;
294 STDMETHOD(SetPixelShaderConstantI
)(THIS_ UINT RegisterIndex
, CONST INT
*pConstantData
, UINT RegisterCount
) PURE
;
295 STDMETHOD(SetPixelShaderConstantB
)(THIS_ UINT RegisterIndex
, CONST BOOL
*pConstantData
, UINT RegisterCount
) PURE
;
299 //////////////////////////////////////////////////////////////////////////////
300 // ID3DXEffect ///////////////////////////////////////////////////////////////
301 //////////////////////////////////////////////////////////////////////////////
303 typedef interface ID3DXEffect ID3DXEffect
;
304 typedef interface ID3DXEffect
*LPD3DXEFFECT
;
306 // {0F0DCC9F-6152-4117-A933-FFAC29C43AA4}
307 DEFINE_GUID(IID_ID3DXEffect
,
308 0xf0dcc9f, 0x6152, 0x4117, 0xa9, 0x33, 0xff, 0xac, 0x29, 0xc4, 0x3a, 0xa4);
311 #define INTERFACE ID3DXEffect
313 DECLARE_INTERFACE_(ID3DXEffect
, ID3DXBaseEffect
)
316 STDMETHOD(QueryInterface
)(THIS_ REFIID iid
, LPVOID
*ppv
) PURE
;
317 STDMETHOD_(ULONG
, AddRef
)(THIS
) PURE
;
318 STDMETHOD_(ULONG
, Release
)(THIS
) PURE
;
321 STDMETHOD(GetDesc
)(THIS_ D3DXEFFECT_DESC
* pDesc
) PURE
;
322 STDMETHOD(GetParameterDesc
)(THIS_ D3DXHANDLE hParameter
, D3DXPARAMETER_DESC
* pDesc
) PURE
;
323 STDMETHOD(GetTechniqueDesc
)(THIS_ D3DXHANDLE hTechnique
, D3DXTECHNIQUE_DESC
* pDesc
) PURE
;
324 STDMETHOD(GetPassDesc
)(THIS_ D3DXHANDLE hPass
, D3DXPASS_DESC
* pDesc
) PURE
;
325 STDMETHOD(GetFunctionDesc
)(THIS_ D3DXHANDLE hShader
, D3DXFUNCTION_DESC
* pDesc
) PURE
;
328 STDMETHOD_(D3DXHANDLE
, GetParameter
)(THIS_ D3DXHANDLE hParameter
, UINT Index
) PURE
;
329 STDMETHOD_(D3DXHANDLE
, GetParameterByName
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pName
) PURE
;
330 STDMETHOD_(D3DXHANDLE
, GetParameterBySemantic
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pSemantic
) PURE
;
331 STDMETHOD_(D3DXHANDLE
, GetParameterElement
)(THIS_ D3DXHANDLE hParameter
, UINT Index
) PURE
;
332 STDMETHOD_(D3DXHANDLE
, GetTechnique
)(THIS_ UINT Index
) PURE
;
333 STDMETHOD_(D3DXHANDLE
, GetTechniqueByName
)(THIS_ LPCSTR pName
) PURE
;
334 STDMETHOD_(D3DXHANDLE
, GetPass
)(THIS_ D3DXHANDLE hTechnique
, UINT Index
) PURE
;
335 STDMETHOD_(D3DXHANDLE
, GetPassByName
)(THIS_ D3DXHANDLE hTechnique
, LPCSTR pName
) PURE
;
336 STDMETHOD_(D3DXHANDLE
, GetFunction
)(THIS_ UINT Index
) PURE
;
337 STDMETHOD_(D3DXHANDLE
, GetFunctionByName
)(THIS_ LPCSTR pName
) PURE
;
338 STDMETHOD_(D3DXHANDLE
, GetAnnotation
)(THIS_ D3DXHANDLE hObject
, UINT Index
) PURE
;
339 STDMETHOD_(D3DXHANDLE
, GetAnnotationByName
)(THIS_ D3DXHANDLE hObject
, LPCSTR pName
) PURE
;
341 // Get/Set Parameters
342 STDMETHOD(SetValue
)(THIS_ D3DXHANDLE hParameter
, LPCVOID pData
, UINT Bytes
) PURE
;
343 STDMETHOD(GetValue
)(THIS_ D3DXHANDLE hParameter
, LPVOID pData
, UINT Bytes
) PURE
;
344 STDMETHOD(SetBool
)(THIS_ D3DXHANDLE hParameter
, BOOL b
) PURE
;
345 STDMETHOD(GetBool
)(THIS_ D3DXHANDLE hParameter
, BOOL
* pb
) PURE
;
346 STDMETHOD(SetBoolArray
)(THIS_ D3DXHANDLE hParameter
, CONST BOOL
* pb
, UINT Count
) PURE
;
347 STDMETHOD(GetBoolArray
)(THIS_ D3DXHANDLE hParameter
, BOOL
* pb
, UINT Count
) PURE
;
348 STDMETHOD(SetInt
)(THIS_ D3DXHANDLE hParameter
, INT n
) PURE
;
349 STDMETHOD(GetInt
)(THIS_ D3DXHANDLE hParameter
, INT
* pn
) PURE
;
350 STDMETHOD(SetIntArray
)(THIS_ D3DXHANDLE hParameter
, CONST INT
* pn
, UINT Count
) PURE
;
351 STDMETHOD(GetIntArray
)(THIS_ D3DXHANDLE hParameter
, INT
* pn
, UINT Count
) PURE
;
352 STDMETHOD(SetFloat
)(THIS_ D3DXHANDLE hParameter
, FLOAT f
) PURE
;
353 STDMETHOD(GetFloat
)(THIS_ D3DXHANDLE hParameter
, FLOAT
* pf
) PURE
;
354 STDMETHOD(SetFloatArray
)(THIS_ D3DXHANDLE hParameter
, CONST FLOAT
* pf
, UINT Count
) PURE
;
355 STDMETHOD(GetFloatArray
)(THIS_ D3DXHANDLE hParameter
, FLOAT
* pf
, UINT Count
) PURE
;
356 STDMETHOD(SetVector
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXVECTOR4
* pVector
) PURE
;
357 STDMETHOD(GetVector
)(THIS_ D3DXHANDLE hParameter
, D3DXVECTOR4
* pVector
) PURE
;
358 STDMETHOD(SetVectorArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXVECTOR4
* pVector
, UINT Count
) PURE
;
359 STDMETHOD(GetVectorArray
)(THIS_ D3DXHANDLE hParameter
, D3DXVECTOR4
* pVector
, UINT Count
) PURE
;
360 STDMETHOD(SetMatrix
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
) PURE
;
361 STDMETHOD(GetMatrix
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
) PURE
;
362 STDMETHOD(SetMatrixArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
363 STDMETHOD(GetMatrixArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
364 STDMETHOD(SetMatrixPointerArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
365 STDMETHOD(GetMatrixPointerArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
366 STDMETHOD(SetMatrixTranspose
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
) PURE
;
367 STDMETHOD(GetMatrixTranspose
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
) PURE
;
368 STDMETHOD(SetMatrixTransposeArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
369 STDMETHOD(GetMatrixTransposeArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
370 STDMETHOD(SetMatrixTransposePointerArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
371 STDMETHOD(GetMatrixTransposePointerArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
372 STDMETHOD(SetString
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pString
) PURE
;
373 STDMETHOD(GetString
)(THIS_ D3DXHANDLE hParameter
, LPCSTR
* ppString
) PURE
;
374 STDMETHOD(SetTexture
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DBASETEXTURE9 pTexture
) PURE
;
375 STDMETHOD(GetTexture
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DBASETEXTURE9
*ppTexture
) PURE
;
376 STDMETHOD(SetPixelShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DPIXELSHADER9 pPShader
) PURE
;
377 STDMETHOD(GetPixelShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DPIXELSHADER9
*ppPShader
) PURE
;
378 STDMETHOD(SetVertexShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DVERTEXSHADER9 pVShader
) PURE
;
379 STDMETHOD(GetVertexShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DVERTEXSHADER9
*ppVShader
) PURE
;
381 //Set Range of an Array to pass to device
382 //Usefull for sending only a subrange of an array down to the device
383 STDMETHOD(SetArrayRange
)(THIS_ D3DXHANDLE hParameter
, UINT uStart
, UINT uEnd
) PURE
;
388 STDMETHOD(GetPool
)(THIS_ LPD3DXEFFECTPOOL
* ppPool
) PURE
;
390 // Selecting and setting a technique
391 STDMETHOD(SetTechnique
)(THIS_ D3DXHANDLE hTechnique
) PURE
;
392 STDMETHOD_(D3DXHANDLE
, GetCurrentTechnique
)(THIS
) PURE
;
393 STDMETHOD(ValidateTechnique
)(THIS_ D3DXHANDLE hTechnique
) PURE
;
394 STDMETHOD(FindNextValidTechnique
)(THIS_ D3DXHANDLE hTechnique
, D3DXHANDLE
*pTechnique
) PURE
;
395 STDMETHOD_(BOOL
, IsParameterUsed
)(THIS_ D3DXHANDLE hParameter
, D3DXHANDLE hTechnique
) PURE
;
397 // Using current technique
398 // Begin starts active technique
399 // BeginPass begins a pass
400 // CommitChanges updates changes to any set calls in the pass. This should be called before
401 // any DrawPrimitive call to d3d
402 // EndPass ends a pass
403 // End ends active technique
404 STDMETHOD(Begin
)(THIS_ UINT
*pPasses
, DWORD Flags
) PURE
;
405 STDMETHOD(BeginPass
)(THIS_ UINT Pass
) PURE
;
406 STDMETHOD(CommitChanges
)(THIS
) PURE
;
407 STDMETHOD(EndPass
)(THIS
) PURE
;
408 STDMETHOD(End
)(THIS
) PURE
;
410 // Managing D3D Device
411 STDMETHOD(GetDevice
)(THIS_ LPDIRECT3DDEVICE9
* ppDevice
) PURE
;
412 STDMETHOD(OnLostDevice
)(THIS
) PURE
;
413 STDMETHOD(OnResetDevice
)(THIS
) PURE
;
415 // Logging device calls
416 STDMETHOD(SetStateManager
)(THIS_ LPD3DXEFFECTSTATEMANAGER pManager
) PURE
;
417 STDMETHOD(GetStateManager
)(THIS_ LPD3DXEFFECTSTATEMANAGER
*ppManager
) PURE
;
420 STDMETHOD(BeginParameterBlock
)(THIS
) PURE
;
421 STDMETHOD_(D3DXHANDLE
, EndParameterBlock
)(THIS
) PURE
;
422 STDMETHOD(ApplyParameterBlock
)(THIS_ D3DXHANDLE hParameterBlock
) PURE
;
425 STDMETHOD(CloneEffect
)(THIS_ LPDIRECT3DDEVICE9 pDevice
, LPD3DXEFFECT
* ppEffect
) PURE
;
429 //////////////////////////////////////////////////////////////////////////////
430 // ID3DXEffectCompiler ///////////////////////////////////////////////////////
431 //////////////////////////////////////////////////////////////////////////////
433 typedef interface ID3DXEffectCompiler ID3DXEffectCompiler
;
434 typedef interface ID3DXEffectCompiler
*LPD3DXEFFECTCOMPILER
;
436 // {15A709EB-5A8E-40a0-86A9-0C024124339B}
437 DEFINE_GUID(IID_ID3DXEffectCompiler
,
438 0x15a709eb, 0x5a8e, 0x40a0, 0x86, 0xa9, 0xc, 0x2, 0x41, 0x24, 0x33, 0x9b);
442 #define INTERFACE ID3DXEffectCompiler
444 DECLARE_INTERFACE_(ID3DXEffectCompiler
, ID3DXBaseEffect
)
447 STDMETHOD(QueryInterface
)(THIS_ REFIID iid
, LPVOID
*ppv
) PURE
;
448 STDMETHOD_(ULONG
, AddRef
)(THIS
) PURE
;
449 STDMETHOD_(ULONG
, Release
)(THIS
) PURE
;
452 STDMETHOD(GetDesc
)(THIS_ D3DXEFFECT_DESC
* pDesc
) PURE
;
453 STDMETHOD(GetParameterDesc
)(THIS_ D3DXHANDLE hParameter
, D3DXPARAMETER_DESC
* pDesc
) PURE
;
454 STDMETHOD(GetTechniqueDesc
)(THIS_ D3DXHANDLE hTechnique
, D3DXTECHNIQUE_DESC
* pDesc
) PURE
;
455 STDMETHOD(GetPassDesc
)(THIS_ D3DXHANDLE hPass
, D3DXPASS_DESC
* pDesc
) PURE
;
456 STDMETHOD(GetFunctionDesc
)(THIS_ D3DXHANDLE hShader
, D3DXFUNCTION_DESC
* pDesc
) PURE
;
459 STDMETHOD_(D3DXHANDLE
, GetParameter
)(THIS_ D3DXHANDLE hParameter
, UINT Index
) PURE
;
460 STDMETHOD_(D3DXHANDLE
, GetParameterByName
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pName
) PURE
;
461 STDMETHOD_(D3DXHANDLE
, GetParameterBySemantic
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pSemantic
) PURE
;
462 STDMETHOD_(D3DXHANDLE
, GetParameterElement
)(THIS_ D3DXHANDLE hParameter
, UINT Index
) PURE
;
463 STDMETHOD_(D3DXHANDLE
, GetTechnique
)(THIS_ UINT Index
) PURE
;
464 STDMETHOD_(D3DXHANDLE
, GetTechniqueByName
)(THIS_ LPCSTR pName
) PURE
;
465 STDMETHOD_(D3DXHANDLE
, GetPass
)(THIS_ D3DXHANDLE hTechnique
, UINT Index
) PURE
;
466 STDMETHOD_(D3DXHANDLE
, GetPassByName
)(THIS_ D3DXHANDLE hTechnique
, LPCSTR pName
) PURE
;
467 STDMETHOD_(D3DXHANDLE
, GetFunction
)(THIS_ UINT Index
) PURE
;
468 STDMETHOD_(D3DXHANDLE
, GetFunctionByName
)(THIS_ LPCSTR pName
) PURE
;
469 STDMETHOD_(D3DXHANDLE
, GetAnnotation
)(THIS_ D3DXHANDLE hObject
, UINT Index
) PURE
;
470 STDMETHOD_(D3DXHANDLE
, GetAnnotationByName
)(THIS_ D3DXHANDLE hObject
, LPCSTR pName
) PURE
;
472 // Get/Set Parameters
473 STDMETHOD(SetValue
)(THIS_ D3DXHANDLE hParameter
, LPCVOID pData
, UINT Bytes
) PURE
;
474 STDMETHOD(GetValue
)(THIS_ D3DXHANDLE hParameter
, LPVOID pData
, UINT Bytes
) PURE
;
475 STDMETHOD(SetBool
)(THIS_ D3DXHANDLE hParameter
, BOOL b
) PURE
;
476 STDMETHOD(GetBool
)(THIS_ D3DXHANDLE hParameter
, BOOL
* pb
) PURE
;
477 STDMETHOD(SetBoolArray
)(THIS_ D3DXHANDLE hParameter
, CONST BOOL
* pb
, UINT Count
) PURE
;
478 STDMETHOD(GetBoolArray
)(THIS_ D3DXHANDLE hParameter
, BOOL
* pb
, UINT Count
) PURE
;
479 STDMETHOD(SetInt
)(THIS_ D3DXHANDLE hParameter
, INT n
) PURE
;
480 STDMETHOD(GetInt
)(THIS_ D3DXHANDLE hParameter
, INT
* pn
) PURE
;
481 STDMETHOD(SetIntArray
)(THIS_ D3DXHANDLE hParameter
, CONST INT
* pn
, UINT Count
) PURE
;
482 STDMETHOD(GetIntArray
)(THIS_ D3DXHANDLE hParameter
, INT
* pn
, UINT Count
) PURE
;
483 STDMETHOD(SetFloat
)(THIS_ D3DXHANDLE hParameter
, FLOAT f
) PURE
;
484 STDMETHOD(GetFloat
)(THIS_ D3DXHANDLE hParameter
, FLOAT
* pf
) PURE
;
485 STDMETHOD(SetFloatArray
)(THIS_ D3DXHANDLE hParameter
, CONST FLOAT
* pf
, UINT Count
) PURE
;
486 STDMETHOD(GetFloatArray
)(THIS_ D3DXHANDLE hParameter
, FLOAT
* pf
, UINT Count
) PURE
;
487 STDMETHOD(SetVector
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXVECTOR4
* pVector
) PURE
;
488 STDMETHOD(GetVector
)(THIS_ D3DXHANDLE hParameter
, D3DXVECTOR4
* pVector
) PURE
;
489 STDMETHOD(SetVectorArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXVECTOR4
* pVector
, UINT Count
) PURE
;
490 STDMETHOD(GetVectorArray
)(THIS_ D3DXHANDLE hParameter
, D3DXVECTOR4
* pVector
, UINT Count
) PURE
;
491 STDMETHOD(SetMatrix
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
) PURE
;
492 STDMETHOD(GetMatrix
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
) PURE
;
493 STDMETHOD(SetMatrixArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
494 STDMETHOD(GetMatrixArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
495 STDMETHOD(SetMatrixPointerArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
496 STDMETHOD(GetMatrixPointerArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
497 STDMETHOD(SetMatrixTranspose
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
) PURE
;
498 STDMETHOD(GetMatrixTranspose
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
) PURE
;
499 STDMETHOD(SetMatrixTransposeArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
500 STDMETHOD(GetMatrixTransposeArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
* pMatrix
, UINT Count
) PURE
;
501 STDMETHOD(SetMatrixTransposePointerArray
)(THIS_ D3DXHANDLE hParameter
, CONST D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
502 STDMETHOD(GetMatrixTransposePointerArray
)(THIS_ D3DXHANDLE hParameter
, D3DXMATRIX
** ppMatrix
, UINT Count
) PURE
;
503 STDMETHOD(SetString
)(THIS_ D3DXHANDLE hParameter
, LPCSTR pString
) PURE
;
504 STDMETHOD(GetString
)(THIS_ D3DXHANDLE hParameter
, LPCSTR
* ppString
) PURE
;
505 STDMETHOD(SetTexture
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DBASETEXTURE9 pTexture
) PURE
;
506 STDMETHOD(GetTexture
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DBASETEXTURE9
*ppTexture
) PURE
;
507 STDMETHOD(SetPixelShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DPIXELSHADER9 pPShader
) PURE
;
508 STDMETHOD(GetPixelShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DPIXELSHADER9
*ppPShader
) PURE
;
509 STDMETHOD(SetVertexShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DVERTEXSHADER9 pVShader
) PURE
;
510 STDMETHOD(GetVertexShader
)(THIS_ D3DXHANDLE hParameter
, LPDIRECT3DVERTEXSHADER9
*ppVShader
) PURE
;
512 //Set Range of an Array to pass to device
513 //Usefull for sending only a subrange of an array down to the device
514 STDMETHOD(SetArrayRange
)(THIS_ D3DXHANDLE hParameter
, UINT uStart
, UINT uEnd
) PURE
;
517 // Parameter sharing, specialization, and information
518 STDMETHOD(SetLiteral
)(THIS_ D3DXHANDLE hParameter
, BOOL Literal
) PURE
;
519 STDMETHOD(GetLiteral
)(THIS_ D3DXHANDLE hParameter
, BOOL
*pLiteral
) PURE
;
522 STDMETHOD(CompileEffect
)(THIS_ DWORD Flags
,
523 LPD3DXBUFFER
* ppEffect
, LPD3DXBUFFER
* ppErrorMsgs
) PURE
;
525 STDMETHOD(CompileShader
)(THIS_ D3DXHANDLE hFunction
, LPCSTR pTarget
, DWORD Flags
,
526 LPD3DXBUFFER
* ppShader
, LPD3DXBUFFER
* ppErrorMsgs
, LPD3DXCONSTANTTABLE
* ppConstantTable
) PURE
;
530 //////////////////////////////////////////////////////////////////////////////
531 // APIs //////////////////////////////////////////////////////////////////////
532 //////////////////////////////////////////////////////////////////////////////
539 //----------------------------------------------------------------------------
540 // D3DXCreateEffectPool:
541 // ---------------------
542 // Creates an effect pool. Pools are used for sharing parameters between
543 // multiple effects. For all effects within a pool, shared parameters of the
544 // same name all share the same value.
548 // Returns the created pool.
549 //----------------------------------------------------------------------------
552 D3DXCreateEffectPool(
553 LPD3DXEFFECTPOOL
* ppPool
);
556 //----------------------------------------------------------------------------
559 // Creates an effect from an ascii or binary effect description.
563 // Pointer of the device on which to create the effect
565 // Name of the file containing the effect description
567 // Module handle. if NULL, current module will be used.
569 // Resource name in module
571 // Pointer to effect description
573 // Size of the effect description in bytes
575 // Optional NULL-terminated array of preprocessor macro definitions.
577 // Optional interface pointer to use for handling #include directives.
578 // If this parameter is NULL, #includes will be honored when compiling
579 // from file, and will error when compiling from resource or memory.
581 // Pointer to ID3DXEffectPool object to use for shared parameters.
582 // If NULL, no parameters will be shared.
584 // Returns a buffer containing created effect.
585 // ppCompilationErrors
586 // Returns a buffer containing any error messages which occurred during
587 // compile. Or NULL if you do not care about the error messages.
589 //----------------------------------------------------------------------------
592 D3DXCreateEffectFromFileA(
593 LPDIRECT3DDEVICE9 pDevice
,
595 CONST D3DXMACRO
* pDefines
,
596 LPD3DXINCLUDE pInclude
,
598 LPD3DXEFFECTPOOL pPool
,
599 LPD3DXEFFECT
* ppEffect
,
600 LPD3DXBUFFER
* ppCompilationErrors
);
603 D3DXCreateEffectFromFileW(
604 LPDIRECT3DDEVICE9 pDevice
,
606 CONST D3DXMACRO
* pDefines
,
607 LPD3DXINCLUDE pInclude
,
609 LPD3DXEFFECTPOOL pPool
,
610 LPD3DXEFFECT
* ppEffect
,
611 LPD3DXBUFFER
* ppCompilationErrors
);
614 #define D3DXCreateEffectFromFile D3DXCreateEffectFromFileW
616 #define D3DXCreateEffectFromFile D3DXCreateEffectFromFileA
621 D3DXCreateEffectFromResourceA(
622 LPDIRECT3DDEVICE9 pDevice
,
625 CONST D3DXMACRO
* pDefines
,
626 LPD3DXINCLUDE pInclude
,
628 LPD3DXEFFECTPOOL pPool
,
629 LPD3DXEFFECT
* ppEffect
,
630 LPD3DXBUFFER
* ppCompilationErrors
);
633 D3DXCreateEffectFromResourceW(
634 LPDIRECT3DDEVICE9 pDevice
,
636 LPCWSTR pSrcResource
,
637 CONST D3DXMACRO
* pDefines
,
638 LPD3DXINCLUDE pInclude
,
640 LPD3DXEFFECTPOOL pPool
,
641 LPD3DXEFFECT
* ppEffect
,
642 LPD3DXBUFFER
* ppCompilationErrors
);
645 #define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceW
647 #define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceA
653 LPDIRECT3DDEVICE9 pDevice
,
656 CONST D3DXMACRO
* pDefines
,
657 LPD3DXINCLUDE pInclude
,
659 LPD3DXEFFECTPOOL pPool
,
660 LPD3DXEFFECT
* ppEffect
,
661 LPD3DXBUFFER
* ppCompilationErrors
);
665 //----------------------------------------------------------------------------
666 // D3DXCreateEffectCompiler:
667 // -------------------------
668 // Creates an effect from an ascii or binary effect description.
672 // Name of the file containing the effect description
674 // Module handle. if NULL, current module will be used.
676 // Resource name in module
678 // Pointer to effect description
680 // Size of the effect description in bytes
682 // Optional NULL-terminated array of preprocessor macro definitions.
684 // Optional interface pointer to use for handling #include directives.
685 // If this parameter is NULL, #includes will be honored when compiling
686 // from file, and will error when compiling from resource or memory.
688 // Pointer to ID3DXEffectPool object to use for shared parameters.
689 // If NULL, no parameters will be shared.
691 // Returns a buffer containing created effect compiler.
693 // Returns a buffer containing any error messages which occurred during
694 // parse. Or NULL if you do not care about the error messages.
696 //----------------------------------------------------------------------------
699 D3DXCreateEffectCompilerFromFileA(
701 CONST D3DXMACRO
* pDefines
,
702 LPD3DXINCLUDE pInclude
,
704 LPD3DXEFFECTCOMPILER
* ppCompiler
,
705 LPD3DXBUFFER
* ppParseErrors
);
708 D3DXCreateEffectCompilerFromFileW(
710 CONST D3DXMACRO
* pDefines
,
711 LPD3DXINCLUDE pInclude
,
713 LPD3DXEFFECTCOMPILER
* ppCompiler
,
714 LPD3DXBUFFER
* ppParseErrors
);
717 #define D3DXCreateEffectCompilerFromFile D3DXCreateEffectCompilerFromFileW
719 #define D3DXCreateEffectCompilerFromFile D3DXCreateEffectCompilerFromFileA
724 D3DXCreateEffectCompilerFromResourceA(
727 CONST D3DXMACRO
* pDefines
,
728 LPD3DXINCLUDE pInclude
,
730 LPD3DXEFFECTCOMPILER
* ppCompiler
,
731 LPD3DXBUFFER
* ppParseErrors
);
734 D3DXCreateEffectCompilerFromResourceW(
736 LPCWSTR pSrcResource
,
737 CONST D3DXMACRO
* pDefines
,
738 LPD3DXINCLUDE pInclude
,
740 LPD3DXEFFECTCOMPILER
* ppCompiler
,
741 LPD3DXBUFFER
* ppParseErrors
);
744 #define D3DXCreateEffectCompilerFromResource D3DXCreateEffectCompilerFromResourceW
746 #define D3DXCreateEffectCompilerFromResource D3DXCreateEffectCompilerFromResourceA
751 D3DXCreateEffectCompiler(
754 CONST D3DXMACRO
* pDefines
,
755 LPD3DXINCLUDE pInclude
,
757 LPD3DXEFFECTCOMPILER
* ppCompiler
,
758 LPD3DXBUFFER
* ppParseErrors
);
760 //----------------------------------------------------------------------------
761 // D3DXDisassembleEffect:
762 // -----------------------
765 //----------------------------------------------------------------------------
768 D3DXDisassembleEffect(
769 LPD3DXEFFECT pEffect
,
770 BOOL EnableColorCode
,
771 LPD3DXBUFFER
*ppDisassembly
);
779 #endif //__D3DX9EFFECT_H__