zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
d3dx9shader.h
Go to the documentation of this file.
1 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // File: d3dx9shader.h
6 // Content: D3DX Shader APIs
7 //
9 
10 #include "d3dx9.h"
11 
12 #ifndef __D3DX9SHADER_H__
13 #define __D3DX9SHADER_H__
14 
15 
16 //---------------------------------------------------------------------------
17 // D3DXTX_VERSION:
18 // --------------
19 // Version token used to create a procedural texture filler in effects
20 // Used by D3DXFill[]TX functions
21 //---------------------------------------------------------------------------
22 #define D3DXTX_VERSION(_Major,_Minor) (('T' << 24) | ('X' << 16) | ((_Major) << 8) | (_Minor))
23 
24 
25 
26 //----------------------------------------------------------------------------
27 // D3DXSHADER flags:
28 // -----------------
29 // D3DXSHADER_DEBUG
30 // Insert debug file/line/type/symbol information.
31 //
32 // D3DXSHADER_SKIPVALIDATION
33 // Do not validate the generated code against known capabilities and
34 // constraints. This option is only recommended when compiling shaders
35 // you KNOW will work. (ie. have compiled before without this option.)
36 // Shaders are always validated by D3D before they are set to the device.
37 //
38 // D3DXSHADER_SKIPOPTIMIZATION
39 // Instructs the compiler to skip optimization steps during code generation.
40 // Unless you are trying to isolate a problem in your code using this option
41 // is not recommended.
42 //
43 // D3DXSHADER_PACKMATRIX_ROWMAJOR
44 // Unless explicitly specified, matrices will be packed in row-major order
45 // on input and output from the shader.
46 //
47 // D3DXSHADER_PACKMATRIX_COLUMNMAJOR
48 // Unless explicitly specified, matrices will be packed in column-major
49 // order on input and output from the shader. This is generally more
50 // efficient, since it allows vector-matrix multiplication to be performed
51 // using a series of dot-products.
52 //
53 // D3DXSHADER_PARTIALPRECISION
54 // Force all computations in resulting shader to occur at partial precision.
55 // This may result in faster evaluation of shaders on some hardware.
56 //
57 // D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT
58 // Force compiler to compile against the next highest available software
59 // target for vertex shaders. This flag also turns optimizations off,
60 // and debugging on.
61 //
62 // D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT
63 // Force compiler to compile against the next highest available software
64 // target for pixel shaders. This flag also turns optimizations off,
65 // and debugging on.
66 //
67 // D3DXSHADER_NO_PRESHADER
68 // Disables Preshaders. Using this flag will cause the compiler to not
69 // pull out static expression for evaluation on the host cpu
70 //
71 // D3DXSHADER_AVOID_FLOW_CONTROL
72 // Hint compiler to avoid flow-control constructs where possible.
73 //
74 // D3DXSHADER_PREFER_FLOW_CONTROL
75 // Hint compiler to prefer flow-control constructs where possible.
76 //
77 //----------------------------------------------------------------------------
78 
79 #define D3DXSHADER_DEBUG (1 << 0)
80 #define D3DXSHADER_SKIPVALIDATION (1 << 1)
81 #define D3DXSHADER_SKIPOPTIMIZATION (1 << 2)
82 #define D3DXSHADER_PACKMATRIX_ROWMAJOR (1 << 3)
83 #define D3DXSHADER_PACKMATRIX_COLUMNMAJOR (1 << 4)
84 #define D3DXSHADER_PARTIALPRECISION (1 << 5)
85 #define D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT (1 << 6)
86 #define D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT (1 << 7)
87 #define D3DXSHADER_NO_PRESHADER (1 << 8)
88 #define D3DXSHADER_AVOID_FLOW_CONTROL (1 << 9)
89 #define D3DXSHADER_PREFER_FLOW_CONTROL (1 << 10)
90 #define D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
91 #define D3DXSHADER_IEEE_STRICTNESS (1 << 13)
92 #define D3DXSHADER_USE_LEGACY_D3DX9_31_DLL (1 << 16)
93 
94 
95 // optimization level flags
96 #define D3DXSHADER_OPTIMIZATION_LEVEL0 (1 << 14)
97 #define D3DXSHADER_OPTIMIZATION_LEVEL1 0
98 #define D3DXSHADER_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15))
99 #define D3DXSHADER_OPTIMIZATION_LEVEL3 (1 << 15)
100 
101 
102 
103 //----------------------------------------------------------------------------
104 // D3DXCONSTTABLE flags:
105 // -------------------
106 
107 #define D3DXCONSTTABLE_LARGEADDRESSAWARE (1 << 17)
108 
109 
110 
111 //----------------------------------------------------------------------------
112 // D3DXHANDLE:
113 // -----------
114 // Handle values used to efficiently reference shader and effect parameters.
115 // Strings can be used as handles. However, handles are not always strings.
116 //----------------------------------------------------------------------------
117 
118 #ifndef D3DXFX_LARGEADDRESS_HANDLE
119 typedef LPCSTR D3DXHANDLE;
120 #else
121 typedef UINT_PTR D3DXHANDLE;
122 #endif
124 
125 
126 //----------------------------------------------------------------------------
127 // D3DXMACRO:
128 // ----------
129 // Preprocessor macro definition. The application pass in a NULL-terminated
130 // array of this structure to various D3DX APIs. This enables the application
131 // to #define tokens at runtime, before the file is parsed.
132 //----------------------------------------------------------------------------
133 
134 typedef struct _D3DXMACRO
135 {
136  LPCSTR Name;
137  LPCSTR Definition;
138 
140 
141 
142 //----------------------------------------------------------------------------
143 // D3DXSEMANTIC:
144 //----------------------------------------------------------------------------
145 
146 typedef struct _D3DXSEMANTIC
147 {
150 
152 
153 
154 
155 //----------------------------------------------------------------------------
156 // D3DXREGISTER_SET:
157 //----------------------------------------------------------------------------
158 
159 typedef enum _D3DXREGISTER_SET
160 {
165 
166  // force 32-bit size enum
167  D3DXRS_FORCE_DWORD = 0x7fffffff
168 
170 
171 
172 //----------------------------------------------------------------------------
173 // D3DXPARAMETER_CLASS:
174 //----------------------------------------------------------------------------
175 
177 {
184 
185  // force 32-bit size enum
186  D3DXPC_FORCE_DWORD = 0x7fffffff
187 
189 
190 
191 //----------------------------------------------------------------------------
192 // D3DXPARAMETER_TYPE:
193 //----------------------------------------------------------------------------
194 
196 {
217 
218  // force 32-bit size enum
219  D3DXPT_FORCE_DWORD = 0x7fffffff
220 
222 
223 
224 //----------------------------------------------------------------------------
225 // D3DXCONSTANTTABLE_DESC:
226 //----------------------------------------------------------------------------
227 
229 {
230  LPCSTR Creator; // Creator string
231  DWORD Version; // Shader version
232  UINT Constants; // Number of constants
233 
235 
236 
237 //----------------------------------------------------------------------------
238 // D3DXCONSTANT_DESC:
239 //----------------------------------------------------------------------------
240 
241 typedef struct _D3DXCONSTANT_DESC
242 {
243  LPCSTR Name; // Constant name
244 
245  D3DXREGISTER_SET RegisterSet; // Register set
246  UINT RegisterIndex; // Register index
247  UINT RegisterCount; // Number of registers occupied
248 
250  D3DXPARAMETER_TYPE Type; // Component type
251 
252  UINT Rows; // Number of rows
253  UINT Columns; // Number of columns
254  UINT Elements; // Number of array elements
255  UINT StructMembers; // Number of structure member sub-parameters
256 
257  UINT Bytes; // Data size, in bytes
258  LPCVOID DefaultValue; // Pointer to default value
259 
261 
262 
263 
264 //----------------------------------------------------------------------------
265 // ID3DXConstantTable:
266 //----------------------------------------------------------------------------
267 
270 
271 // {AB3C758F-093E-4356-B762-4DB18F1B3A01}
272 DEFINE_GUID(IID_ID3DXConstantTable,
273 0xab3c758f, 0x93e, 0x4356, 0xb7, 0x62, 0x4d, 0xb1, 0x8f, 0x1b, 0x3a, 0x1);
274 
275 
276 #undef INTERFACE
277 #define INTERFACE ID3DXConstantTable
278 
280 {
281  // IUnknown
282  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
283  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
284  STDMETHOD_(ULONG, Release)(THIS) PURE;
285 
286  // Buffer
287  STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
288  STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
289 
290  // Descs
291  STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
292  STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
293  STDMETHOD_(UINT, GetSamplerIndex)(THIS_ D3DXHANDLE hConstant) PURE;
294 
295  // Handle operations
296  STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
297  STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, LPCSTR pName) PURE;
298  STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
299 
300  // Set Constants
301  STDMETHOD(SetDefaults)(THIS_ LPDIRECT3DDEVICE9 pDevice) PURE;
302  STDMETHOD(SetValue)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes) PURE;
303  STDMETHOD(SetBool)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL b) PURE;
304  STDMETHOD(SetBoolArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST BOOL* pb, UINT Count) PURE;
305  STDMETHOD(SetInt)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT n) PURE;
306  STDMETHOD(SetIntArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST INT* pn, UINT Count) PURE;
307  STDMETHOD(SetFloat)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT f) PURE;
308  STDMETHOD(SetFloatArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST FLOAT* pf, UINT Count) PURE;
309  STDMETHOD(SetVector)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector) PURE;
310  STDMETHOD(SetVectorArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
311  STDMETHOD(SetMatrix)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
312  STDMETHOD(SetMatrixArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
313  STDMETHOD(SetMatrixPointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
314  STDMETHOD(SetMatrixTranspose)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
315  STDMETHOD(SetMatrixTransposeArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
316  STDMETHOD(SetMatrixTransposePointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
317 };
318 
319 
320 //----------------------------------------------------------------------------
321 // ID3DXTextureShader:
322 //----------------------------------------------------------------------------
323 
324 typedef interface ID3DXTextureShader ID3DXTextureShader;
326 
327 // {3E3D67F8-AA7A-405d-A857-BA01D4758426}
328 DEFINE_GUID(IID_ID3DXTextureShader,
329 0x3e3d67f8, 0xaa7a, 0x405d, 0xa8, 0x57, 0xba, 0x1, 0xd4, 0x75, 0x84, 0x26);
330 
331 #undef INTERFACE
332 #define INTERFACE ID3DXTextureShader
333 
335 {
336  // IUnknown
337  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
338  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
339  STDMETHOD_(ULONG, Release)(THIS) PURE;
340 
341  // Gets
342  STDMETHOD(GetFunction)(THIS_ LPD3DXBUFFER *ppFunction) PURE;
343  STDMETHOD(GetConstantBuffer)(THIS_ LPD3DXBUFFER *ppConstantBuffer) PURE;
344 
345  // Descs
346  STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
347  STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
348 
349  // Handle operations
350  STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
351  STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, LPCSTR pName) PURE;
352  STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
353 
354  // Set Constants
355  STDMETHOD(SetDefaults)(THIS) PURE;
356  STDMETHOD(SetValue)(THIS_ D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes) PURE;
357  STDMETHOD(SetBool)(THIS_ D3DXHANDLE hConstant, BOOL b) PURE;
358  STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hConstant, CONST BOOL* pb, UINT Count) PURE;
359  STDMETHOD(SetInt)(THIS_ D3DXHANDLE hConstant, INT n) PURE;
360  STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hConstant, CONST INT* pn, UINT Count) PURE;
361  STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hConstant, FLOAT f) PURE;
362  STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hConstant, CONST FLOAT* pf, UINT Count) PURE;
363  STDMETHOD(SetVector)(THIS_ D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector) PURE;
364  STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
365  STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
366  STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
367  STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
368  STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
369  STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
370  STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
371 };
372 
373 
374 //----------------------------------------------------------------------------
375 // D3DXINCLUDE_TYPE:
376 //----------------------------------------------------------------------------
377 
378 typedef enum _D3DXINCLUDE_TYPE
379 {
382 
383  // force 32-bit size enum
384  D3DXINC_FORCE_DWORD = 0x7fffffff
385 
387 
388 
389 //----------------------------------------------------------------------------
390 // ID3DXInclude:
391 // -------------
392 // This interface is intended to be implemented by the application, and can
393 // be used by various D3DX APIs. This enables application-specific handling
394 // of #include directives in source files.
395 //
396 // Open()
397 // Opens an include file. If successful, it should fill in ppData and
398 // pBytes. The data pointer returned must remain valid until Close is
399 // subsequently called. The name of the file is encoded in UTF-8 format.
400 // Close()
401 // Closes an include file. If Open was successful, Close is guaranteed
402 // to be called before the API using this interface returns.
403 //----------------------------------------------------------------------------
404 
405 typedef interface ID3DXInclude ID3DXInclude;
406 typedef interface ID3DXInclude *LPD3DXINCLUDE;
407 
408 #undef INTERFACE
409 #define INTERFACE ID3DXInclude
410 
412 {
413  STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;
414  STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;
415 };
416 
417 
419 // APIs //////////////////////////////////////////////////////////////////////
421 
422 #ifdef __cplusplus
423 extern "C" {
424 #endif //__cplusplus
425 
426 
427 //----------------------------------------------------------------------------
428 // D3DXAssembleShader:
429 // -------------------
430 // Assembles a shader.
431 //
432 // Parameters:
433 // pSrcFile
434 // Source file name
435 // hSrcModule
436 // Module handle. if NULL, current module will be used
437 // pSrcResource
438 // Resource name in module
439 // pSrcData
440 // Pointer to source code
441 // SrcDataLen
442 // Size of source code, in bytes
443 // pDefines
444 // Optional NULL-terminated array of preprocessor macro definitions.
445 // pInclude
446 // Optional interface pointer to use for handling #include directives.
447 // If this parameter is NULL, #includes will be honored when assembling
448 // from file, and will error when assembling from resource or memory.
449 // Flags
450 // See D3DXSHADER_xxx flags
451 // ppShader
452 // Returns a buffer containing the created shader. This buffer contains
453 // the assembled shader code, as well as any embedded debug info.
454 // ppErrorMsgs
455 // Returns a buffer containing a listing of errors and warnings that were
456 // encountered during assembly. If you are running in a debugger,
457 // these are the same messages you will see in your debug output.
458 //----------------------------------------------------------------------------
459 
460 
461 HRESULT WINAPI
463  LPCSTR pSrcFile,
464  CONST D3DXMACRO* pDefines,
465  LPD3DXINCLUDE pInclude,
466  DWORD Flags,
467  LPD3DXBUFFER* ppShader,
468  LPD3DXBUFFER* ppErrorMsgs);
469 
470 HRESULT WINAPI
472  LPCWSTR pSrcFile,
473  CONST D3DXMACRO* pDefines,
474  LPD3DXINCLUDE pInclude,
475  DWORD Flags,
476  LPD3DXBUFFER* ppShader,
477  LPD3DXBUFFER* ppErrorMsgs);
478 
479 #ifdef UNICODE
480 #define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileW
481 #else
482 #define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileA
483 #endif
484 
485 
486 HRESULT WINAPI
488  HMODULE hSrcModule,
489  LPCSTR pSrcResource,
490  CONST D3DXMACRO* pDefines,
491  LPD3DXINCLUDE pInclude,
492  DWORD Flags,
493  LPD3DXBUFFER* ppShader,
494  LPD3DXBUFFER* ppErrorMsgs);
495 
496 HRESULT WINAPI
498  HMODULE hSrcModule,
499  LPCWSTR pSrcResource,
500  CONST D3DXMACRO* pDefines,
501  LPD3DXINCLUDE pInclude,
502  DWORD Flags,
503  LPD3DXBUFFER* ppShader,
504  LPD3DXBUFFER* ppErrorMsgs);
505 
506 #ifdef UNICODE
507 #define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceW
508 #else
509 #define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceA
510 #endif
511 
512 
513 HRESULT WINAPI
515  LPCSTR pSrcData,
516  UINT SrcDataLen,
517  CONST D3DXMACRO* pDefines,
518  LPD3DXINCLUDE pInclude,
519  DWORD Flags,
520  LPD3DXBUFFER* ppShader,
521  LPD3DXBUFFER* ppErrorMsgs);
522 
523 
524 
525 //----------------------------------------------------------------------------
526 // D3DXCompileShader:
527 // ------------------
528 // Compiles a shader.
529 //
530 // Parameters:
531 // pSrcFile
532 // Source file name.
533 // hSrcModule
534 // Module handle. if NULL, current module will be used.
535 // pSrcResource
536 // Resource name in module.
537 // pSrcData
538 // Pointer to source code.
539 // SrcDataLen
540 // Size of source code, in bytes.
541 // pDefines
542 // Optional NULL-terminated array of preprocessor macro definitions.
543 // pInclude
544 // Optional interface pointer to use for handling #include directives.
545 // If this parameter is NULL, #includes will be honored when compiling
546 // from file, and will error when compiling from resource or memory.
547 // pFunctionName
548 // Name of the entrypoint function where execution should begin.
549 // pProfile
550 // Instruction set to be used when generating code. Currently supported
551 // profiles are "vs_1_1", "vs_2_0", "vs_2_a", "vs_2_sw", "ps_1_1",
552 // "ps_1_2", "ps_1_3", "ps_1_4", "ps_2_0", "ps_2_a", "ps_2_sw", "tx_1_0"
553 // Flags
554 // See D3DXSHADER_xxx flags.
555 // ppShader
556 // Returns a buffer containing the created shader. This buffer contains
557 // the compiled shader code, as well as any embedded debug and symbol
558 // table info. (See D3DXGetShaderConstantTable)
559 // ppErrorMsgs
560 // Returns a buffer containing a listing of errors and warnings that were
561 // encountered during the compile. If you are running in a debugger,
562 // these are the same messages you will see in your debug output.
563 // ppConstantTable
564 // Returns a ID3DXConstantTable object which can be used to set
565 // shader constants to the device. Alternatively, an application can
566 // parse the D3DXSHADER_CONSTANTTABLE block embedded as a comment within
567 // the shader.
568 //----------------------------------------------------------------------------
569 
570 HRESULT WINAPI
572  LPCSTR pSrcFile,
573  CONST D3DXMACRO* pDefines,
574  LPD3DXINCLUDE pInclude,
575  LPCSTR pFunctionName,
576  LPCSTR pProfile,
577  DWORD Flags,
578  LPD3DXBUFFER* ppShader,
579  LPD3DXBUFFER* ppErrorMsgs,
580  LPD3DXCONSTANTTABLE* ppConstantTable);
581 
582 HRESULT WINAPI
584  LPCWSTR pSrcFile,
585  CONST D3DXMACRO* pDefines,
586  LPD3DXINCLUDE pInclude,
587  LPCSTR pFunctionName,
588  LPCSTR pProfile,
589  DWORD Flags,
590  LPD3DXBUFFER* ppShader,
591  LPD3DXBUFFER* ppErrorMsgs,
592  LPD3DXCONSTANTTABLE* ppConstantTable);
593 
594 #ifdef UNICODE
595 #define D3DXCompileShaderFromFile D3DXCompileShaderFromFileW
596 #else
597 #define D3DXCompileShaderFromFile D3DXCompileShaderFromFileA
598 #endif
599 
600 
601 HRESULT WINAPI
603  HMODULE hSrcModule,
604  LPCSTR pSrcResource,
605  CONST D3DXMACRO* pDefines,
606  LPD3DXINCLUDE pInclude,
607  LPCSTR pFunctionName,
608  LPCSTR pProfile,
609  DWORD Flags,
610  LPD3DXBUFFER* ppShader,
611  LPD3DXBUFFER* ppErrorMsgs,
612  LPD3DXCONSTANTTABLE* ppConstantTable);
613 
614 HRESULT WINAPI
616  HMODULE hSrcModule,
617  LPCWSTR pSrcResource,
618  CONST D3DXMACRO* pDefines,
619  LPD3DXINCLUDE pInclude,
620  LPCSTR pFunctionName,
621  LPCSTR pProfile,
622  DWORD Flags,
623  LPD3DXBUFFER* ppShader,
624  LPD3DXBUFFER* ppErrorMsgs,
625  LPD3DXCONSTANTTABLE* ppConstantTable);
626 
627 #ifdef UNICODE
628 #define D3DXCompileShaderFromResource D3DXCompileShaderFromResourceW
629 #else
630 #define D3DXCompileShaderFromResource D3DXCompileShaderFromResourceA
631 #endif
632 
633 
634 HRESULT WINAPI
636  LPCSTR pSrcData,
637  UINT SrcDataLen,
638  CONST D3DXMACRO* pDefines,
639  LPD3DXINCLUDE pInclude,
640  LPCSTR pFunctionName,
641  LPCSTR pProfile,
642  DWORD Flags,
643  LPD3DXBUFFER* ppShader,
644  LPD3DXBUFFER* ppErrorMsgs,
645  LPD3DXCONSTANTTABLE* ppConstantTable);
646 
647 
648 //----------------------------------------------------------------------------
649 // D3DXDisassembleShader:
650 // ----------------------
651 // Takes a binary shader, and returns a buffer containing text assembly.
652 //
653 // Parameters:
654 // pShader
655 // Pointer to the shader byte code.
656 // ShaderSizeInBytes
657 // Size of the shader byte code in bytes.
658 // EnableColorCode
659 // Emit HTML tags for color coding the output?
660 // pComments
661 // Pointer to a comment string to include at the top of the shader.
662 // ppDisassembly
663 // Returns a buffer containing the disassembled shader.
664 //----------------------------------------------------------------------------
665 
666 HRESULT WINAPI
668  CONST DWORD* pShader,
669  BOOL EnableColorCode,
670  LPCSTR pComments,
671  LPD3DXBUFFER* ppDisassembly);
672 
673 
674 //----------------------------------------------------------------------------
675 // D3DXGetPixelShaderProfile/D3DXGetVertexShaderProfile:
676 // -----------------------------------------------------
677 // Returns the name of the HLSL profile best suited to a given device.
678 //
679 // Parameters:
680 // pDevice
681 // Pointer to the device in question
682 //----------------------------------------------------------------------------
683 
684 LPCSTR WINAPI
686  LPDIRECT3DDEVICE9 pDevice);
687 
688 LPCSTR WINAPI
690  LPDIRECT3DDEVICE9 pDevice);
691 
692 
693 //----------------------------------------------------------------------------
694 // D3DXFindShaderComment:
695 // ----------------------
696 // Searches through a shader for a particular comment, denoted by a FourCC in
697 // the first DWORD of the comment. If the comment is not found, and no other
698 // error has occurred, S_FALSE is returned.
699 //
700 // Parameters:
701 // pFunction
702 // Pointer to the function DWORD stream
703 // FourCC
704 // FourCC used to identify the desired comment block.
705 // ppData
706 // Returns a pointer to the comment data (not including comment token
707 // and FourCC). Can be NULL.
708 // pSizeInBytes
709 // Returns the size of the comment data in bytes. Can be NULL.
710 //----------------------------------------------------------------------------
711 
712 HRESULT WINAPI
714  CONST DWORD* pFunction,
715  DWORD FourCC,
716  LPCVOID* ppData,
717  UINT* pSizeInBytes);
718 
719 
720 //----------------------------------------------------------------------------
721 // D3DXGetShaderSize:
722 // ------------------
723 // Returns the size of the shader byte-code, in bytes.
724 //
725 // Parameters:
726 // pFunction
727 // Pointer to the function DWORD stream
728 //----------------------------------------------------------------------------
729 
730 UINT WINAPI
732  CONST DWORD* pFunction);
733 
734 
735 //----------------------------------------------------------------------------
736 // D3DXGetShaderVersion:
737 // -----------------------
738 // Returns the shader version of a given shader. Returns zero if the shader
739 // function is NULL.
740 //
741 // Parameters:
742 // pFunction
743 // Pointer to the function DWORD stream
744 //----------------------------------------------------------------------------
745 
746 DWORD WINAPI
748  CONST DWORD* pFunction);
749 
750 //----------------------------------------------------------------------------
751 // D3DXGetShaderSemantics:
752 // -----------------------
753 // Gets semantics for all input elements referenced inside a given shader.
754 //
755 // Parameters:
756 // pFunction
757 // Pointer to the function DWORD stream
758 // pSemantics
759 // Pointer to an array of D3DXSEMANTIC structures. The function will
760 // fill this array with the semantics for each input element referenced
761 // inside the shader. This array is assumed to contain at least
762 // MAXD3DDECLLENGTH elements.
763 // pCount
764 // Returns the number of elements referenced by the shader
765 //----------------------------------------------------------------------------
766 
767 HRESULT WINAPI
769  CONST DWORD* pFunction,
770  D3DXSEMANTIC* pSemantics,
771  UINT* pCount);
772 
773 HRESULT WINAPI
775  CONST DWORD* pFunction,
776  D3DXSEMANTIC* pSemantics,
777  UINT* pCount);
778 
779 
780 //----------------------------------------------------------------------------
781 // D3DXGetShaderSamplers:
782 // ----------------------
783 // Gets semantics for all input elements referenced inside a given shader.
784 //
785 // pFunction
786 // Pointer to the function DWORD stream
787 // pSamplers
788 // Pointer to an array of LPCSTRs. The function will fill this array
789 // with pointers to the sampler names contained within pFunction, for
790 // each sampler referenced inside the shader. This array is assumed to
791 // contain at least 16 elements.
792 // pCount
793 // Returns the number of samplers referenced by the shader
794 //----------------------------------------------------------------------------
795 
796 HRESULT WINAPI
798  CONST DWORD* pFunction,
799  LPCSTR* pSamplers,
800  UINT* pCount);
801 
802 
803 //----------------------------------------------------------------------------
804 // D3DXGetShaderConstantTable:
805 // ---------------------------
806 // Gets shader constant table embedded inside shader. A constant table is
807 // generated by D3DXAssembleShader and D3DXCompileShader, and is embedded in
808 // the body of the shader.
809 //
810 // Parameters:
811 // pFunction
812 // Pointer to the function DWORD stream
813 // Flags
814 // See D3DXCONSTTABLE_xxx
815 // ppConstantTable
816 // Returns a ID3DXConstantTable object which can be used to set
817 // shader constants to the device. Alternatively, an application can
818 // parse the D3DXSHADER_CONSTANTTABLE block embedded as a comment within
819 // the shader.
820 //----------------------------------------------------------------------------
821 
822 HRESULT WINAPI
824  CONST DWORD* pFunction,
825  LPD3DXCONSTANTTABLE* ppConstantTable);
826 
827 HRESULT WINAPI
829  CONST DWORD* pFunction,
830  DWORD Flags,
831  LPD3DXCONSTANTTABLE* ppConstantTable);
832 
833 
834 
835 //----------------------------------------------------------------------------
836 // D3DXCreateTextureShader:
837 // ------------------------
838 // Creates a texture shader object, given the compiled shader.
839 //
840 // Parameters
841 // pFunction
842 // Pointer to the function DWORD stream
843 // ppTextureShader
844 // Returns a ID3DXTextureShader object which can be used to procedurally
845 // fill the contents of a texture using the D3DXFillTextureTX functions.
846 //----------------------------------------------------------------------------
847 
848 HRESULT WINAPI
850  CONST DWORD* pFunction,
851  LPD3DXTEXTURESHADER* ppTextureShader);
852 
853 
854 //----------------------------------------------------------------------------
855 // D3DXPreprocessShader:
856 // ---------------------
857 // Runs the preprocessor on the specified shader or effect, but does
858 // not actually compile it. This is useful for evaluating the #includes
859 // and #defines in a shader and then emitting a reformatted token stream
860 // for debugging purposes or for generating a self-contained shader.
861 //
862 // Parameters:
863 // pSrcFile
864 // Source file name
865 // hSrcModule
866 // Module handle. if NULL, current module will be used
867 // pSrcResource
868 // Resource name in module
869 // pSrcData
870 // Pointer to source code
871 // SrcDataLen
872 // Size of source code, in bytes
873 // pDefines
874 // Optional NULL-terminated array of preprocessor macro definitions.
875 // pInclude
876 // Optional interface pointer to use for handling #include directives.
877 // If this parameter is NULL, #includes will be honored when assembling
878 // from file, and will error when assembling from resource or memory.
879 // ppShaderText
880 // Returns a buffer containing a single large string that represents
881 // the resulting formatted token stream
882 // ppErrorMsgs
883 // Returns a buffer containing a listing of errors and warnings that were
884 // encountered during assembly. If you are running in a debugger,
885 // these are the same messages you will see in your debug output.
886 //----------------------------------------------------------------------------
887 
888 HRESULT WINAPI
890  LPCSTR pSrcFile,
891  CONST D3DXMACRO* pDefines,
892  LPD3DXINCLUDE pInclude,
893  LPD3DXBUFFER* ppShaderText,
894  LPD3DXBUFFER* ppErrorMsgs);
895 
896 HRESULT WINAPI
898  LPCWSTR pSrcFile,
899  CONST D3DXMACRO* pDefines,
900  LPD3DXINCLUDE pInclude,
901  LPD3DXBUFFER* ppShaderText,
902  LPD3DXBUFFER* ppErrorMsgs);
903 
904 #ifdef UNICODE
905 #define D3DXPreprocessShaderFromFile D3DXPreprocessShaderFromFileW
906 #else
907 #define D3DXPreprocessShaderFromFile D3DXPreprocessShaderFromFileA
908 #endif
909 
910 HRESULT WINAPI
912  HMODULE hSrcModule,
913  LPCSTR pSrcResource,
914  CONST D3DXMACRO* pDefines,
915  LPD3DXINCLUDE pInclude,
916  LPD3DXBUFFER* ppShaderText,
917  LPD3DXBUFFER* ppErrorMsgs);
918 
919 HRESULT WINAPI
921  HMODULE hSrcModule,
922  LPCWSTR pSrcResource,
923  CONST D3DXMACRO* pDefines,
924  LPD3DXINCLUDE pInclude,
925  LPD3DXBUFFER* ppShaderText,
926  LPD3DXBUFFER* ppErrorMsgs);
927 
928 #ifdef UNICODE
929 #define D3DXPreprocessShaderFromResource D3DXPreprocessShaderFromResourceW
930 #else
931 #define D3DXPreprocessShaderFromResource D3DXPreprocessShaderFromResourceA
932 #endif
933 
934 HRESULT WINAPI
936  LPCSTR pSrcData,
937  UINT SrcDataSize,
938  CONST D3DXMACRO* pDefines,
939  LPD3DXINCLUDE pInclude,
940  LPD3DXBUFFER* ppShaderText,
941  LPD3DXBUFFER* ppErrorMsgs);
942 
943 
944 #ifdef __cplusplus
945 }
946 #endif //__cplusplus
947 
948 
950 // Shader comment block layouts //////////////////////////////////////////////
952 
953 //----------------------------------------------------------------------------
954 // D3DXSHADER_CONSTANTTABLE:
955 // -------------------------
956 // Shader constant information; included as an CTAB comment block inside
957 // shaders. All offsets are BYTE offsets from start of CONSTANTTABLE struct.
958 // Entries in the table are sorted by Name in ascending order.
959 //----------------------------------------------------------------------------
960 
962 {
963  DWORD Size; // sizeof(D3DXSHADER_CONSTANTTABLE)
964  DWORD Creator; // LPCSTR offset
965  DWORD Version; // shader version
966  DWORD Constants; // number of constants
967  DWORD ConstantInfo; // D3DXSHADER_CONSTANTINFO[Constants] offset
968  DWORD Flags; // flags shader was compiled with
969  DWORD Target; // LPCSTR offset
970 
972 
973 
975 {
976  DWORD Name; // LPCSTR offset
977  WORD RegisterSet; // D3DXREGISTER_SET
978  WORD RegisterIndex; // register number
979  WORD RegisterCount; // number of registers
980  WORD Reserved; // reserved
981  DWORD TypeInfo; // D3DXSHADER_TYPEINFO offset
982  DWORD DefaultValue; // offset of default value
983 
985 
986 
987 typedef struct _D3DXSHADER_TYPEINFO
988 {
989  WORD Class; // D3DXPARAMETER_CLASS
990  WORD Type; // D3DXPARAMETER_TYPE
991  WORD Rows; // number of rows (matrices)
992  WORD Columns; // number of columns (vectors and matrices)
993  WORD Elements; // array dimension
994  WORD StructMembers; // number of struct members
995  DWORD StructMemberInfo; // D3DXSHADER_STRUCTMEMBERINFO[Members] offset
996 
998 
999 
1001 {
1002  DWORD Name; // LPCSTR offset
1003  DWORD TypeInfo; // D3DXSHADER_TYPEINFO offset
1004 
1006 
1007 
1008 
1009 #endif //__D3DX9SHADER_H__
1010 
struct _D3DXSEMANTIC D3DXSEMANTIC
struct _D3DXMACRO * LPD3DXMACRO
HRESULT WINAPI D3DXCompileShaderFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs, LPD3DXCONSTANTTABLE *ppConstantTable)
D3DXREGISTER_SET RegisterSet
Definition: d3dx9shader.h:245
LPCSTR WINAPI D3DXGetPixelShaderProfile(LPDIRECT3DDEVICE9 pDevice)
HRESULT WINAPI D3DXPreprocessShaderFromFileA(LPCSTR pSrcFile, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPD3DXBUFFER *ppShaderText, LPD3DXBUFFER *ppErrorMsgs)
struct IDirect3DDevice9 * LPDIRECT3DDEVICE9
Definition: d3d9.h:587
HRESULT WINAPI D3DXPreprocessShaderFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPD3DXBUFFER *ppShaderText, LPD3DXBUFFER *ppErrorMsgs)
D3DXHANDLE * LPD3DXHANDLE
Definition: d3dx9shader.h:123
typedef INT(WINAPI *PFNWGLGETGPUINFOAMDPROC)(UINT id
HRESULT WINAPI D3DXCompileShader(LPCSTR pSrcData, UINT SrcDataLen, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs, LPD3DXCONSTANTTABLE *ppConstantTable)
GLclampf f
Definition: glew.h:3390
typedef HRESULT(WINAPI *LPD3DXIMTSIGNALCALLBACK)(CONST D3DXVECTOR2 *uv
HRESULT WINAPI D3DXGetShaderConstantTable(CONST DWORD *pFunction, LPD3DXCONSTANTTABLE *ppConstantTable)
GLclampd n
Definition: glew.h:7287
HRESULT WINAPI D3DXAssembleShader(LPCSTR pSrcData, UINT SrcDataLen, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs)
HRESULT WINAPI D3DXDisassembleShader(CONST DWORD *pShader, BOOL EnableColorCode, LPCSTR pComments, LPD3DXBUFFER *ppDisassembly)
HRESULT WINAPI D3DXCompileShaderFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs, LPD3DXCONSTANTTABLE *ppConstantTable)
_D3DXREGISTER_SET
Definition: d3dx9shader.h:159
HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs)
_D3DXPARAMETER_TYPE
Definition: d3dx9shader.h:195
struct _D3DXSEMANTIC * LPD3DXSEMANTIC
typedef UINT(WINAPI *PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc)
enum _D3DXPARAMETER_TYPE * LPD3DXPARAMETER_TYPE
struct _D3DXSHADER_CONSTANTTABLE D3DXSHADER_CONSTANTTABLE
DECLARE_INTERFACE_(IXAudio2, IUnknown)
Definition: XAudio2.h:425
LPCSTR WINAPI D3DXGetVertexShaderProfile(LPDIRECT3DDEVICE9 pDevice)
struct _D3DXSHADER_CONSTANTINFO * LPD3DXSHADER_CONSTANTINFO
interface ID3DXConstantTable ID3DXConstantTable
Definition: d3dx9shader.h:268
HRESULT WINAPI D3DXGetShaderSamplers(CONST DWORD *pFunction, LPCSTR *pSamplers, UINT *pCount)
HRESULT WINAPI D3DXGetShaderInputSemantics(CONST DWORD *pFunction, D3DXSEMANTIC *pSemantics, UINT *pCount)
interface ID3DXConstantTable * LPD3DXCONSTANTTABLE
Definition: d3dx9shader.h:269
HRESULT WINAPI D3DXFindShaderComment(CONST DWORD *pFunction, DWORD FourCC, LPCVOID *ppData, UINT *pSizeInBytes)
LPCSTR Definition
Definition: d3dx9shader.h:137
enum _D3DXPARAMETER_CLASS * LPD3DXPARAMETER_CLASS
HRESULT WINAPI D3DXCompileShaderFromFileA(LPCSTR pSrcFile, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs, LPD3DXCONSTANTTABLE *ppConstantTable)
enum _D3DXREGISTER_SET * LPD3DXREGISTER_SET
enum _D3DXPARAMETER_CLASS D3DXPARAMETER_CLASS
HRESULT WINAPI D3DXPreprocessShaderFromFileW(LPCWSTR pSrcFile, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPD3DXBUFFER *ppShaderText, LPD3DXBUFFER *ppErrorMsgs)
_D3DXINCLUDE_TYPE
Definition: d3dx9shader.h:378
struct _D3DXSHADER_CONSTANTINFO D3DXSHADER_CONSTANTINFO
struct _D3DXSHADER_CONSTANTTABLE * LPD3DXSHADER_CONSTANTTABLE
enum _D3DXINCLUDE_TYPE D3DXINCLUDE_TYPE
interface ID3DXInclude * LPD3DXINCLUDE
Definition: d3dx9shader.h:406
HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD *pFunction, DWORD Flags, LPD3DXCONSTANTTABLE *ppConstantTable)
DEFINE_GUID(KSDATAFORMAT_SUBTYPE_PCM, 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71)
struct _D3DXCONSTANTTABLE_DESC * LPD3DXCONSTANTTABLE_DESC
DWORD WINAPI D3DXGetShaderVersion(CONST DWORD *pFunction)
HRESULT WINAPI D3DXGetShaderOutputSemantics(CONST DWORD *pFunction, D3DXSEMANTIC *pSemantics, UINT *pCount)
enum _D3DXINCLUDE_TYPE * LPD3DXINCLUDE_TYPE
struct _D3DXSHADER_STRUCTMEMBERINFO D3DXSHADER_STRUCTMEMBERINFO
DECLARE_INTERFACE(IXAudio2Voice)
Definition: XAudio2.h:596
interface ID3DXInclude ID3DXInclude
Definition: d3dx9shader.h:405
enum _D3DXREGISTER_SET D3DXREGISTER_SET
typedef LPVOID(WINAPI *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC
GLuint GLfloat GLfloat GLfloat x1
Definition: glew.h:11582
HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs)
struct _D3DXMACRO D3DXMACRO
D3DXPARAMETER_TYPE Type
Definition: d3dx9shader.h:250
struct _D3DXCONSTANT_DESC * LPD3DXCONSTANT_DESC
LPCSTR D3DXHANDLE
Definition: d3dx9shader.h:119
HRESULT WINAPI D3DXCreateTextureShader(CONST DWORD *pFunction, LPD3DXTEXTURESHADER *ppTextureShader)
HRESULT WINAPI D3DXPreprocessShader(LPCSTR pSrcData, UINT SrcDataSize, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPD3DXBUFFER *ppShaderText, LPD3DXBUFFER *ppErrorMsgs)
HRESULT WINAPI D3DXAssembleShaderFromFileA(LPCSTR pSrcFile, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs)
typedef DWORD(WINAPI *XInputGetState_t)(DWORD dwUserIndex
HRESULT WINAPI D3DXCompileShaderFromFileW(LPCWSTR pSrcFile, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs, LPD3DXCONSTANTTABLE *ppConstantTable)
struct _D3DXCONSTANT_DESC D3DXCONSTANT_DESC
GLdouble GLdouble GLdouble b
Definition: glew.h:8383
interface ID3DXBuffer * LPD3DXBUFFER
Definition: d3dx9core.h:97
UINT WINAPI D3DXGetShaderSize(CONST DWORD *pFunction)
struct _D3DXSHADER_TYPEINFO D3DXSHADER_TYPEINFO
LPCSTR Name
Definition: d3dx9shader.h:136
interface ID3DXTextureShader ID3DXTextureShader
Definition: d3dx9shader.h:317
struct _D3DXCONSTANTTABLE_DESC D3DXCONSTANTTABLE_DESC
HRESULT WINAPI D3DXPreprocessShaderFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, LPD3DXBUFFER *ppShaderText, LPD3DXBUFFER *ppErrorMsgs)
D3DXPARAMETER_CLASS Class
Definition: d3dx9shader.h:249
enum _D3DXPARAMETER_TYPE D3DXPARAMETER_TYPE
HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR pSrcFile, CONST D3DXMACRO *pDefines, LPD3DXINCLUDE pInclude, DWORD Flags, LPD3DXBUFFER *ppShader, LPD3DXBUFFER *ppErrorMsgs)
struct _D3DXSHADER_STRUCTMEMBERINFO * LPD3DXSHADER_STRUCTMEMBERINFO
_D3DXPARAMETER_CLASS
Definition: d3dx9shader.h:176
typedef BOOL(WINAPI *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC
struct _D3DXSHADER_TYPEINFO * LPD3DXSHADER_TYPEINFO
interface ID3DXTextureShader * LPD3DXTEXTURESHADER
Definition: d3dx9shader.h:325