]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/d3dx9shader/d3dx9shader.factor
Change C-ENUM: to always take a type. Use f for anonymous enums. Update all uses.
[factor.git] / basis / windows / directx / d3dx9shader / d3dx9shader.factor
1 USING: alien.c-types alien.syntax classes.struct math
2 windows.com windows.com.syntax windows.directx.d3d9
3 windows.directx.d3dx9core windows.directx.d3dx9math
4 windows.types ;
5 IN: windows.directx.d3dx9shader
6
7 LIBRARY: d3dx9
8
9 : D3DXSHADER_DEBUG                          ( -- n ) 1 0 shift ; inline
10 : D3DXSHADER_SKIPVALIDATION                 ( -- n ) 1 1 shift ; inline
11 : D3DXSHADER_SKIPOPTIMIZATION               ( -- n ) 1 2 shift ; inline
12 : D3DXSHADER_PACKMATRIX_ROWMAJOR            ( -- n ) 1 3 shift ; inline
13 : D3DXSHADER_PACKMATRIX_COLUMNMAJOR         ( -- n ) 1 4 shift ; inline
14 : D3DXSHADER_PARTIALPRECISION               ( -- n ) 1 5 shift ; inline
15 : D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT        ( -- n ) 1 6 shift ; inline
16 : D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT        ( -- n ) 1 7 shift ; inline
17 : D3DXSHADER_NO_PRESHADER                   ( -- n ) 1 8 shift ; inline
18 : D3DXSHADER_AVOID_FLOW_CONTROL             ( -- n ) 1 9 shift ; inline
19 : D3DXSHADER_PREFER_FLOW_CONTROL            ( -- n ) 1 10 shift ; inline
20 : D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY ( -- n ) 1 12 shift ; inline
21 : D3DXSHADER_IEEE_STRICTNESS                ( -- n ) 1 13 shift ; inline
22 : D3DXSHADER_USE_LEGACY_D3DX9_31_DLL        ( -- n ) 1 16 shift ; inline
23
24 : D3DXSHADER_OPTIMIZATION_LEVEL0            ( -- n ) 1 14 shift ; inline
25 : D3DXSHADER_OPTIMIZATION_LEVEL1            ( -- n ) 0 ; inline
26 : D3DXSHADER_OPTIMIZATION_LEVEL2            ( -- n ) 1 14 shift 1 15 shift bitor ; inline
27 : D3DXSHADER_OPTIMIZATION_LEVEL3            ( -- n ) 1 15 shift ; inline
28
29 : D3DXCONSTTABLE_LARGEADDRESSAWARE          ( -- n ) 1 17 shift ; inline
30
31 TYPEDEF: LPCSTR D3DXHANDLE
32 TYPEDEF: D3DXHANDLE* LPD3DXHANDLE
33
34 STRUCT: D3DXMACRO
35     { Name       LPCSTR }
36     { Definition LPCSTR } ;
37 TYPEDEF: D3DXMACRO* LPD3DXMACRO
38
39 STRUCT: D3DXSEMANTIC
40     { Usage      UINT }
41     { UsageIndex UINT } ;
42 TYPEDEF: D3DXSEMANTIC* LPD3DXSEMANTIC
43
44 C-ENUM: D3DXREGISTER_SET
45     D3DXRS_BOOL
46     D3DXRS_INT4
47     D3DXRS_FLOAT4
48     D3DXRS_SAMPLER ;
49 TYPEDEF: D3DXREGISTER_SET* LPD3DXREGISTER_SET
50
51 C-ENUM: D3DXPARAMETER_CLASS
52     D3DXPC_SCALAR
53     D3DXPC_VECTOR
54     D3DXPC_MATRIX_ROWS
55     D3DXPC_MATRIX_COLUMNS
56     D3DXPC_OBJECT
57     D3DXPC_STRUCT ;
58 TYPEDEF: D3DXPARAMETER_CLASS* LPD3DXPARAMETER_CLASS
59
60 C-ENUM:
61     D3DXPT_VOID
62     D3DXPT_BOOL
63     D3DXPT_INT
64     D3DXPT_FLOAT
65     D3DXPT_STRING
66     D3DXPT_TEXTURE
67     D3DXPT_TEXTURE1D
68     D3DXPT_TEXTURE2D
69     D3DXPT_TEXTURE3D
70     D3DXPT_TEXTURECUBE
71     D3DXPT_SAMPLER
72     D3DXPT_SAMPLER1D
73     D3DXPT_SAMPLER2D
74     D3DXPT_SAMPLER3D
75     D3DXPT_SAMPLERCUBE
76     D3DXPT_PIXELSHADER
77     D3DXPT_VERTEXSHADER
78     D3DXPT_PIXELFRAGMENT
79     D3DXPT_VERTEXFRAGMENT
80     D3DXPT_UNSUPPORTED ;
81 TYPEDEF: int D3DXPARAMETER_TYPE
82 TYPEDEF: D3DXPARAMETER_TYPE* LPD3DXPARAMETER_TYPE
83
84 STRUCT: D3DXCONSTANTTABLE_DESC
85     { Creator   LPCSTR }
86     { Version   DWORD  }
87     { Constants UINT   } ;
88 TYPEDEF: D3DXCONSTANTTABLE_DESC* LPD3DXCONSTANTTABLE_DESC
89
90 STRUCT: D3DXCONSTANT_DESC
91     { Name          LPCSTR              }
92     { RegisterSet   D3DXREGISTER_SET    }
93     { RegisterIndex UINT                }
94     { RegisterCount UINT                }
95     { Class         D3DXPARAMETER_CLASS }
96     { Type          D3DXPARAMETER_TYPE  }
97     { Rows          UINT                }
98     { Columns       UINT                }
99     { Elements      UINT                }
100     { StructMembers UINT                }
101     { Bytes         UINT                }
102     { DefaultValue  LPCVOID             } ;
103 TYPEDEF: D3DXCONSTANT_DESC* LPD3DXCONSTANT_DESC
104
105 C-TYPE: ID3DXConstantTable
106 TYPEDEF: ID3DXConstantTable* LPD3DXCONSTANTTABLE
107
108 COM-INTERFACE: ID3DXConstantTable IUnknown {AB3C758F-093E-4356-B762-4DB18F1B3A01}
109     LPVOID GetBufferPointer ( )
110     DWORD GetBufferSize ( )
111     HRESULT GetDesc ( D3DXCONSTANTTABLE_DESC* pDesc )
112     HRESULT GetConstantDesc ( D3DXHANDLE hConstant, D3DXCONSTANT_DESC* pConstantDesc, UINT* pCount )
113     UINT GetSamplerIndex ( D3DXHANDLE hConstant )
114     D3DXHANDLE GetConstant ( D3DXHANDLE hConstant, UINT Index )
115     D3DXHANDLE GetConstantByName ( D3DXHANDLE hConstant, LPCSTR pName )
116     D3DXHANDLE GetConstantElement ( D3DXHANDLE hConstant, UINT Index )
117     HRESULT SetDefaults ( LPDIRECT3DDEVICE9 pDevice )
118     HRESULT SetValue ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes )
119     HRESULT SetBool ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL b )
120     HRESULT SetBoolArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL* pb, UINT Count )
121     HRESULT SetInt ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT n )
122     HRESULT SetIntArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT* pn, UINT Count )
123     HRESULT SetFloat ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT f )
124     HRESULT SetFloatArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT* pf, UINT Count )
125     HRESULT SetVector ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXVECTOR4* pVector )
126     HRESULT SetVectorArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXVECTOR4* pVector, UINT Count )
127     HRESULT SetMatrix ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
128     HRESULT SetMatrixArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
129     HRESULT SetMatrixPointerArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count )
130     HRESULT SetMatrixTranspose ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
131     HRESULT SetMatrixTransposeArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
132     HRESULT SetMatrixTransposePointerArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count ) ;
133
134 C-TYPE: ID3DXTextureShader
135 TYPEDEF: ID3DXTextureShader* LPD3DXTEXTURESHADER
136
137 COM-INTERFACE: ID3DXTextureShader IUnknown {3E3D67F8-AA7A-405d-A857-BA01D4758426}
138     HRESULT GetFunction ( LPD3DXBUFFER* ppFunction )
139     HRESULT GetConstantBuffer ( LPD3DXBUFFER* ppConstantBuffer )
140     HRESULT GetDesc ( D3DXCONSTANTTABLE_DESC* pDesc )
141     HRESULT GetConstantDesc ( D3DXHANDLE hConstant, D3DXCONSTANT_DESC* pConstantDesc, UINT* pCount )
142     D3DXHANDLE GetConstant ( D3DXHANDLE hConstant, UINT Index )
143     D3DXHANDLE GetConstantByName ( D3DXHANDLE hConstant, LPCSTR pName )
144     D3DXHANDLE GetConstantElement ( D3DXHANDLE hConstant, UINT Index )
145     HRESULT SetDefaults ( )
146     HRESULT SetValue ( D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes )
147     HRESULT SetBool ( D3DXHANDLE hConstant, BOOL b )
148     HRESULT SetBoolArray ( D3DXHANDLE hConstant, BOOL* pb, UINT Count )
149     HRESULT SetInt ( D3DXHANDLE hConstant, INT n )
150     HRESULT SetIntArray ( D3DXHANDLE hConstant, INT* pn, UINT Count )
151     HRESULT SetFloat ( D3DXHANDLE hConstant, FLOAT f )
152     HRESULT SetFloatArray ( D3DXHANDLE hConstant, FLOAT* pf, UINT Count )
153     HRESULT SetVector ( D3DXHANDLE hConstant, D3DXVECTOR4* pVector )
154     HRESULT SetVectorArray ( D3DXHANDLE hConstant, D3DXVECTOR4* pVector, UINT Count )
155     HRESULT SetMatrix ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
156     HRESULT SetMatrixArray ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
157     HRESULT SetMatrixPointerArray ( D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count )
158     HRESULT SetMatrixTranspose ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
159     HRESULT SetMatrixTransposeArray ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
160     HRESULT SetMatrixTransposePointerArray ( D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count ) ;
161
162 C-ENUM:
163     D3DXINC_LOCAL
164     D3DXINC_SYSTEM ;
165 TYPEDEF: int D3DXINCLUDE_TYPE
166 TYPEDEF: D3DXINCLUDE_TYPE* LPD3DXINCLUDE_TYPE
167
168 C-TYPE: ID3DXInclude
169 TYPEDEF: ID3DXInclude* LPD3DXINCLUDE
170
171 COM-INTERFACE: ID3DXInclude f {00000000-0000-0000-0000-000000000000}
172     HRESULT Open ( D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes )
173     HRESULT Close ( LPCVOID pData ) ;
174
175 FUNCTION: HRESULT
176     D3DXAssembleShaderFromFileA (
177         LPCSTR                          pSrcFile,
178         D3DXMACRO*                      pDefines,
179         LPD3DXINCLUDE                   pInclude,
180         DWORD                           Flags,
181         LPD3DXBUFFER*                   ppShader,
182         LPD3DXBUFFER*                   ppErrorMsgs ) ;
183
184 FUNCTION: HRESULT
185     D3DXAssembleShaderFromFileW (
186         LPCWSTR                         pSrcFile,
187         D3DXMACRO*                      pDefines,
188         LPD3DXINCLUDE                   pInclude,
189         DWORD                           Flags,
190         LPD3DXBUFFER*                   ppShader,
191         LPD3DXBUFFER*                   ppErrorMsgs ) ;
192
193 ALIAS: D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileW
194
195 FUNCTION: HRESULT
196     D3DXAssembleShaderFromResourceA (
197         HMODULE                         hSrcModule,
198         LPCSTR                          pSrcResource,
199         D3DXMACRO*                      pDefines,
200         LPD3DXINCLUDE                   pInclude,
201         DWORD                           Flags,
202         LPD3DXBUFFER*                   ppShader,
203         LPD3DXBUFFER*                   ppErrorMsgs ) ;
204
205 FUNCTION: HRESULT
206     D3DXAssembleShaderFromResourceW (
207         HMODULE                         hSrcModule,
208         LPCWSTR                         pSrcResource,
209         D3DXMACRO*                      pDefines,
210         LPD3DXINCLUDE                   pInclude,
211         DWORD                           Flags,
212         LPD3DXBUFFER*                   ppShader,
213         LPD3DXBUFFER*                   ppErrorMsgs ) ;
214
215 ALIAS: D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceW
216
217 FUNCTION: HRESULT
218     D3DXAssembleShader (
219         LPCSTR                          pSrcData,
220         UINT                            SrcDataLen,
221         D3DXMACRO*                      pDefines,
222         LPD3DXINCLUDE                   pInclude,
223         DWORD                           Flags,
224         LPD3DXBUFFER*                   ppShader,
225         LPD3DXBUFFER*                   ppErrorMsgs ) ;
226
227 FUNCTION: HRESULT
228     D3DXCompileShaderFromFileA (
229         LPCSTR                          pSrcFile,
230         D3DXMACRO*                      pDefines,
231         LPD3DXINCLUDE                   pInclude,
232         LPCSTR                          pFunctionName,
233         LPCSTR                          pProfile,
234         DWORD                           Flags,
235         LPD3DXBUFFER*                   ppShader,
236         LPD3DXBUFFER*                   ppErrorMsgs,
237         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
238
239 FUNCTION: HRESULT
240     D3DXCompileShaderFromFileW (
241         LPCWSTR                         pSrcFile,
242         D3DXMACRO*                      pDefines,
243         LPD3DXINCLUDE                   pInclude,
244         LPCSTR                          pFunctionName,
245         LPCSTR                          pProfile,
246         DWORD                           Flags,
247         LPD3DXBUFFER*                   ppShader,
248         LPD3DXBUFFER*                   ppErrorMsgs,
249         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
250
251 ALIAS: D3DXCompileShaderFromFile D3DXCompileShaderFromFileW
252
253 FUNCTION: HRESULT
254     D3DXCompileShaderFromResourceA (
255         HMODULE                         hSrcModule,
256         LPCSTR                          pSrcResource,
257         D3DXMACRO*                      pDefines,
258         LPD3DXINCLUDE                   pInclude,
259         LPCSTR                          pFunctionName,
260         LPCSTR                          pProfile,
261         DWORD                           Flags,
262         LPD3DXBUFFER*                   ppShader,
263         LPD3DXBUFFER*                   ppErrorMsgs,
264         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
265
266 FUNCTION: HRESULT
267     D3DXCompileShaderFromResourceW (
268         HMODULE                         hSrcModule,
269         LPCWSTR                         pSrcResource,
270         D3DXMACRO*                      pDefines,
271         LPD3DXINCLUDE                   pInclude,
272         LPCSTR                          pFunctionName,
273         LPCSTR                          pProfile,
274         DWORD                           Flags,
275         LPD3DXBUFFER*                   ppShader,
276         LPD3DXBUFFER*                   ppErrorMsgs,
277         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
278
279 ALIAS: D3DXCompileShaderFromResource D3DXCompileShaderFromResourceW
280
281 FUNCTION: HRESULT
282     D3DXCompileShader (
283         LPCSTR                          pSrcData,
284         UINT                            SrcDataLen,
285         D3DXMACRO*                      pDefines,
286         LPD3DXINCLUDE                   pInclude,
287         LPCSTR                          pFunctionName,
288         LPCSTR                          pProfile,
289         DWORD                           Flags,
290         LPD3DXBUFFER*                   ppShader,
291         LPD3DXBUFFER*                   ppErrorMsgs,
292         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
293
294 FUNCTION: HRESULT
295     D3DXDisassembleShader (
296         DWORD*                          pShader,         
297         BOOL                            EnableColorCode, 
298         LPCSTR                          pComments,       
299         LPD3DXBUFFER*                   ppDisassembly ) ;
300
301 FUNCTION: LPCSTR
302     D3DXGetPixelShaderProfile (
303         LPDIRECT3DDEVICE9               pDevice ) ;
304
305 FUNCTION: LPCSTR
306     D3DXGetVertexShaderProfile (
307         LPDIRECT3DDEVICE9               pDevice ) ;
308
309 FUNCTION: HRESULT
310     D3DXFindShaderComment (
311         DWORD*                          pFunction,
312         DWORD                           FourCC,
313         LPCVOID*                        ppData,
314         UINT*                           pSizeInBytes ) ;
315         
316 FUNCTION: UINT
317     D3DXGetShaderSize (
318         DWORD*                    pFunction ) ;
319
320 FUNCTION: DWORD
321     D3DXGetShaderVersion (
322         DWORD*                    pFunction ) ;
323
324 FUNCTION: HRESULT
325     D3DXGetShaderInputSemantics (
326         DWORD*                          pFunction,
327         D3DXSEMANTIC*                   pSemantics,
328         UINT*                           pCount ) ;
329
330 FUNCTION: HRESULT
331     D3DXGetShaderOutputSemantics (
332         DWORD*                          pFunction,
333         D3DXSEMANTIC*                   pSemantics,
334         UINT*                           pCount ) ;
335
336 FUNCTION: HRESULT
337     D3DXGetShaderSamplers (
338         DWORD*                          pFunction,
339         LPCSTR*                         pSamplers,
340         UINT*                           pCount ) ;
341
342 FUNCTION: HRESULT
343     D3DXGetShaderConstantTable (
344         DWORD*                          pFunction,
345         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
346
347 FUNCTION: HRESULT
348     D3DXGetShaderConstantTableEx (
349         DWORD*                          pFunction,
350         DWORD                           Flags,
351         LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
352
353 FUNCTION: HRESULT
354     D3DXCreateTextureShader (
355         DWORD*                          pFunction,      
356         LPD3DXTEXTURESHADER*            ppTextureShader ) ;
357     
358 FUNCTION: HRESULT 
359     D3DXPreprocessShaderFromFileA (
360         LPCSTR                       pSrcFile,
361         D3DXMACRO*                   pDefines,
362         LPD3DXINCLUDE                pInclude,
363         LPD3DXBUFFER*                ppShaderText,
364         LPD3DXBUFFER*                ppErrorMsgs ) ;
365                                              
366 FUNCTION: HRESULT 
367     D3DXPreprocessShaderFromFileW (
368         LPCWSTR                      pSrcFile,
369         D3DXMACRO*                   pDefines,
370         LPD3DXINCLUDE                pInclude,
371         LPD3DXBUFFER*                ppShaderText,
372         LPD3DXBUFFER*                ppErrorMsgs ) ;
373
374 ALIAS: D3DXPreprocessShaderFromFile D3DXPreprocessShaderFromFileW
375
376 FUNCTION: HRESULT 
377     D3DXPreprocessShaderFromResourceA (
378         HMODULE                      hSrcModule,
379         LPCSTR                       pSrcResource,
380         D3DXMACRO*                   pDefines,
381         LPD3DXINCLUDE                pInclude,
382         LPD3DXBUFFER*                ppShaderText,
383         LPD3DXBUFFER*                ppErrorMsgs ) ;
384
385 FUNCTION: HRESULT 
386     D3DXPreprocessShaderFromResourceW (
387         HMODULE                      hSrcModule,
388         LPCWSTR                      pSrcResource,
389         D3DXMACRO*                   pDefines,
390         LPD3DXINCLUDE                pInclude,
391         LPD3DXBUFFER*                ppShaderText,
392         LPD3DXBUFFER*                ppErrorMsgs ) ;
393
394 ALIAS: D3DXPreprocessShaderFromResource D3DXPreprocessShaderFromResourceW
395
396 FUNCTION: HRESULT 
397     D3DXPreprocessShader (
398         LPCSTR                       pSrcData,
399         UINT                         SrcDataSize,
400         D3DXMACRO*                   pDefines,
401         LPD3DXINCLUDE                pInclude,
402         LPD3DXBUFFER*                ppShaderText,
403         LPD3DXBUFFER*                ppErrorMsgs ) ;
404
405 STRUCT: D3DXSHADER_CONSTANTTABLE
406     { Size         DWORD }
407     { Creator      DWORD }
408     { Version      DWORD }
409     { Constants    DWORD }
410     { ConstantInfo DWORD }
411     { Flags        DWORD }
412     { Target       DWORD } ;
413 TYPEDEF: D3DXSHADER_CONSTANTTABLE* LPD3DXSHADER_CONSTANTTABLE
414
415 STRUCT: D3DXSHADER_CONSTANTINFO
416     { Name           DWORD }
417     { RegisterSet    WORD  }
418     { RegisterIndex  WORD  }
419     { RegisterCount  WORD  }
420     { Reserved       WORD  }
421     { TypeInfo       DWORD }
422     { DefaultValue   DWORD } ;
423 TYPEDEF: D3DXSHADER_CONSTANTINFO* LPD3DXSHADER_CONSTANTINFO
424
425 STRUCT: D3DXSHADER_TYPEINFO
426     { Class            WORD  }
427     { Type             WORD  }
428     { Rows             WORD  }
429     { Columns          WORD  }
430     { Elements         WORD  }
431     { StructMembers    WORD  }
432     { StructMemberInfo DWORD } ;
433 TYPEDEF: D3DXSHADER_TYPEINFO* LPD3DXSHADER_TYPEINFO
434
435 STRUCT: D3DXSHADER_STRUCTMEMBERINFO
436     { Name     DWORD }
437     { TypeInfo DWORD } ;
438 TYPEDEF: D3DXSHADER_STRUCTMEMBERINFO* LPD3DXSHADER_STRUCTMEMBERINFO
439