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