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