]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/d3dx9anim/d3dx9anim.factor
factor: FUNCTION: rename by hand...
[factor.git] / basis / windows / directx / d3dx9anim / d3dx9anim.factor
1 USING: alien.c-types alien.syntax classes.struct windows.com
2 windows.com.syntax windows.directx windows.directx.d3d9
3 windows.directx.d3dx9core windows.directx.d3dx9math
4 windows.directx.d3dx9mesh windows.directx.d3dx9xof
5 windows.types ;
6 IN: windows.directx.d3dx9anim
7
8 LIBRARY: d3dx9
9
10 TYPEDEF: int D3DXMESHDATATYPE
11 CONSTANT: D3DXMESHTYPE_MESH      1
12 CONSTANT: D3DXMESHTYPE_PMESH     2
13 CONSTANT: D3DXMESHTYPE_PATCHMESH 3
14 CONSTANT: D3DXMESHTYPE_FORCE_DWORD 0x7fffffff
15
16 STRUCT: D3DXMESHDATA
17     { Type D3DXMESHDATATYPE }
18     { Mesh void*            } ;
19 TYPEDEF: D3DXMESHDATA* LPD3DXMESHDATA
20
21 STRUCT: D3DXMESHCONTAINER
22     { Name                LPSTR                }
23     { MeshData            D3DXMESHDATA         }
24     { pMaterials          LPD3DXMATERIAL       }
25     { pEffects            LPD3DXEFFECTINSTANCE }
26     { NumMaterials        DWORD                }
27     { pAdjacency          DWORD*               }
28     { pSkinInfo           LPD3DXSKININFO       }
29     { pNextMeshContainer  D3DXMESHCONTAINER*   } ;
30 TYPEDEF: D3DXMESHCONTAINER* LPD3DXMESHCONTAINER
31
32 STRUCT: D3DXFRAME
33     { Name                  LPSTR               }
34     { TransformationMatrix  D3DXMATRIX          }
35     { pMeshContainer        LPD3DXMESHCONTAINER }
36     { pFrameSibling         D3DXFRAME*          }
37     { pFrameFirstChild      D3DXFRAME*          } ;
38 TYPEDEF: D3DXFRAME* LPD3DXFRAME
39
40 C-TYPE: ID3DXAllocateHierarchy
41 TYPEDEF: ID3DXAllocateHierarchy* LPD3DXALLOCATEHIERARCHY
42
43 COM-INTERFACE: ID3DXAllocateHierarchy f {00000000-0000-0000-0000-000000000000}
44     HRESULT CreateFrame ( LPCSTR Name, LPD3DXFRAME* ppNewFrame )
45     HRESULT CreateMeshContainer (
46         LPCSTR               Name,
47         D3DXMESHDATA*        pMeshData,
48         D3DXMATERIAL*        pMaterials,
49         D3DXEFFECTINSTANCE*  pEffectInstances,
50         DWORD                NumMaterials,
51         DWORD*               pAdjacency,
52         LPD3DXSKININFO       pSkinInfo,
53         LPD3DXMESHCONTAINER* ppNewMeshContainer )
54     HRESULT DestroyFrame ( LPD3DXFRAME pFrameToFree )
55     HRESULT DestroyMeshContainer ( LPD3DXMESHCONTAINER pMeshContainerToFree )  ;
56
57 C-TYPE: ID3DXLoadUserData
58 TYPEDEF: ID3DXLoadUserData* LPD3DXLOADUSERDATA
59
60 COM-INTERFACE: ID3DXLoadUserData f {00000000-0000-0000-0000-000000000000}
61     HRESULT LoadTopLevelData ( LPD3DXFILEDATA pXofChildData )
62     HRESULT LoadFrameChildData ( LPD3DXFRAME pFrame,
63                                  LPD3DXFILEDATA pXofChildData )
64     HRESULT LoadMeshChildData ( LPD3DXMESHCONTAINER pMeshContainer,
65                                 LPD3DXFILEDATA pXofChildData ) ;
66
67 C-TYPE: ID3DXSaveUserData
68 TYPEDEF: ID3DXSaveUserData* LPD3DXSAVEUSERDATA
69
70 COM-INTERFACE: ID3DXSaveUserData f {00000000-0000-0000-0000-000000000000}
71     HRESULT AddFrameChildData (
72         D3DXFRAME*           pFrame,
73         LPD3DXFILESAVEOBJECT pXofSave,
74         LPD3DXFILESAVEDATA   pXofFrameData )
75
76     HRESULT AddMeshChildData (
77         D3DXMESHCONTAINER*   pMeshContainer,
78         LPD3DXFILESAVEOBJECT pXofSave,
79         LPD3DXFILESAVEDATA   pXofMeshData )
80     HRESULT AddTopLevelDataObjectsPre ( LPD3DXFILESAVEOBJECT pXofSave )
81     HRESULT AddTopLevelDataObjectsPost ( LPD3DXFILESAVEOBJECT pXofSave )
82     HRESULT RegisterTemplates ( LPD3DXFILE pXFileApi )
83     HRESULT SaveTemplates ( LPD3DXFILESAVEOBJECT pXofSave ) ;
84
85 TYPEDEF: int D3DXCALLBACK_SEARCH_FLAGS
86 CONSTANT: D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION 1
87 CONSTANT: D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION    2
88 CONSTANT: D3DXCALLBACK_SEARCH_FORCE_DWORD                0x7fffffff
89
90 C-TYPE: ID3DXAnimationSet
91 TYPEDEF: ID3DXAnimationSet* LPD3DXANIMATIONSET
92
93 COM-INTERFACE: ID3DXAnimationSet IUnknown {698CFB3F-9289-4d95-9A57-33A94B5A65F9}
94     LPCSTR GetName ( )
95     double GetPeriod ( )
96     double GetPeriodicPosition ( double Position )
97     UINT GetNumAnimations ( )
98     HRESULT GetAnimationNameByIndex ( UINT Index, LPCSTR* ppName )
99     HRESULT GetAnimationIndexByName ( LPCSTR pName, UINT* pIndex )
100     HRESULT GetSRT (
101         double          PeriodicPosition,
102         UINT            Animation,
103         D3DXVECTOR3*    pScale,
104         D3DXQUATERNION* pRotation,
105         D3DXVECTOR3*    pTranslation )
106     HRESULT GetCallback (
107         double  Position,
108         DWORD   Flags,
109         double* pCallbackPosition,
110         LPVOID* ppCallbackData ) ;
111
112 TYPEDEF: int D3DXPLAYBACK_TYPE
113 CONSTANT: D3DXPLAY_LOOP          0
114 CONSTANT: D3DXPLAY_ONCE          1
115 CONSTANT: D3DXPLAY_PINGPONG      2
116 CONSTANT: D3DXPLAY_FORCE_DWORD   0x7fffffff
117
118 STRUCT: D3DXKEY_VECTOR3
119     { Time  FLOAT       }
120     { Value D3DXVECTOR3 } ;
121 TYPEDEF: D3DXKEY_VECTOR3* LPD3DXKEY_VECTOR3
122
123 STRUCT: D3DXKEY_QUATERNION
124     { Time  FLOAT          }
125     { Value D3DXQUATERNION } ;
126 TYPEDEF: D3DXKEY_QUATERNION* LPD3DXKEY_QUATERNION
127
128 STRUCT: D3DXKEY_CALLBACK
129     { Time          FLOAT  }
130     { pCallbackData LPVOID } ;
131 TYPEDEF: D3DXKEY_CALLBACK* LPD3DXKEY_CALLBACK
132
133 TYPEDEF: int D3DXCOMPRESSION_FLAGS
134 CONSTANT: D3DXCOMPRESS_DEFAULT 0
135 CONSTANT: D3DXCOMPRESS_FORCE_DWORD 0x7fffffff
136
137 C-TYPE: ID3DXKeyframedAnimationSet
138 TYPEDEF: ID3DXKeyframedAnimationSet* LPD3DXKEYFRAMEDANIMATIONSET
139
140 COM-INTERFACE: ID3DXKeyframedAnimationSet ID3DXAnimationSet {FA4E8E3A-9786-407d-8B4C-5995893764AF}
141     D3DXPLAYBACK_TYPE GetPlaybackType ( )
142     double GetSourceTicksPerSecond ( )
143     UINT GetNumScaleKeys ( UINT Animation )
144     HRESULT GetScaleKeys ( UINT Animation, LPD3DXKEY_VECTOR3 pScaleKeys )
145     HRESULT GetScaleKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pScaleKey )
146     HRESULT SetScaleKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pScaleKey )
147     UINT GetNumRotationKeys ( UINT Animation )
148     HRESULT GetRotationKeys ( UINT Animation, LPD3DXKEY_QUATERNION pRotationKeys )
149     HRESULT GetRotationKey ( UINT Animation, UINT Key, LPD3DXKEY_QUATERNION pRotationKey )
150     HRESULT SetRotationKey ( UINT Animation, UINT Key, LPD3DXKEY_QUATERNION pRotationKey )
151     UINT GetNumTranslationKeys ( UINT Animation )
152     HRESULT GetTranslationKeys ( UINT Animation, LPD3DXKEY_VECTOR3 pTranslationKeys )
153     HRESULT GetTranslationKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey )
154     HRESULT SetTranslationKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey )
155     UINT GetNumCallbackKeys ( )
156     HRESULT GetCallbackKeys ( LPD3DXKEY_CALLBACK pCallbackKeys )
157     HRESULT GetCallbackKey ( UINT Key, LPD3DXKEY_CALLBACK pCallbackKey )
158     HRESULT SetCallbackKey ( UINT Key, LPD3DXKEY_CALLBACK pCallbackKey )
159     HRESULT UnregisterScaleKey ( UINT Animation, UINT Key )
160     HRESULT UnregisterRotationKey ( UINT Animation, UINT Key )
161     HRESULT UnregisterTranslationKey ( UINT Animation, UINT Key )
162     HRESULT RegisterAnimationSRTKeys (
163         LPCSTR              pName,
164         UINT                NumScaleKeys,
165         UINT                NumRotationKeys,
166         UINT                NumTranslationKeys,
167         D3DXKEY_VECTOR3*    pScaleKeys,
168         D3DXKEY_QUATERNION* pRotationKeys,
169         D3DXKEY_VECTOR3*    pTranslationKeys,
170         DWORD*              pAnimationIndex )
171     HRESULT Compress (
172         DWORD         Flags,
173         FLOAT         Lossiness,
174         LPD3DXFRAME   pHierarchy,
175         LPD3DXBUFFER* ppCompressedData )
176     HRESULT UnregisterAnimation ( UINT Index ) ;
177
178 C-TYPE: ID3DXCompressedAnimationSet
179 TYPEDEF: ID3DXCompressedAnimationSet* LPD3DXCOMPRESSEDANIMATIONSET
180
181 COM-INTERFACE: ID3DXCompressedAnimationSet ID3DXAnimationSet {6CC2480D-3808-4739-9F88-DE49FACD8D4C}
182     D3DXPLAYBACK_TYPE GetPlaybackType ( )
183     double GetSourceTicksPerSecond ( )
184     HRESULT GetCompressedData ( LPD3DXBUFFER* ppCompressedData )
185     UINT GetNumCallbackKeys ( )
186     HRESULT GetCallbackKeys ( LPD3DXKEY_CALLBACK pCallbackKeys ) ;
187
188 TYPEDEF: int D3DXPRIORITY_TYPE
189 CONSTANT: D3DXPRIORITY_LOW         0
190 CONSTANT: D3DXPRIORITY_HIGH        1
191 CONSTANT: D3DXPRIORITY_FORCE_DWORD 0x7fffffff
192
193 STRUCT: D3DXTRACK_DESC
194     { Priority              D3DXPRIORITY_TYPE }
195     { Weight                FLOAT             }
196     { Speed                 FLOAT             }
197     { Position              double            }
198     { Enable                BOOL              } ;
199 TYPEDEF: D3DXTRACK_DESC* LPD3DXTRACK_DESC
200
201 TYPEDEF: int D3DXEVENT_TYPE
202 CONSTANT: D3DXEVENT_TRACKSPEED    0
203 CONSTANT: D3DXEVENT_TRACKWEIGHT   1
204 CONSTANT: D3DXEVENT_TRACKPOSITION 2
205 CONSTANT: D3DXEVENT_TRACKENABLE   3
206 CONSTANT: D3DXEVENT_PRIORITYBLEND 4
207 CONSTANT: D3DXEVENT_FORCE_DWORD   0x7fffffff
208
209 TYPEDEF: int D3DXTRANSITION_TYPE
210 CONSTANT: D3DXTRANSITION_LINEAR        0
211 CONSTANT: D3DXTRANSITION_EASEINEASEOUT 1
212 CONSTANT: D3DXTRANSITION_FORCE_DWORD   0x7fffffff
213
214 UNION-STRUCT: D3DXEVENT_DESC_UNION
215     { Weight            FLOAT  }
216     { Speed             FLOAT  }
217     { Position          double }
218     { Enable            BOOL   } ;
219 STRUCT: D3DXEVENT_DESC
220     { Type                   D3DXEVENT_TYPE       }
221     { Track                  UINT                 }
222     { StartTime              double               }
223     { Duration               double               }
224     { Transition             D3DXTRANSITION_TYPE  }
225     { Union                  D3DXEVENT_DESC_UNION } ;
226 TYPEDEF: D3DXEVENT_DESC* LPD3DXEVENT_DESC
227
228 TYPEDEF: DWORD D3DXEVENTHANDLE
229 TYPEDEF: D3DXEVENTHANDLE* LPD3DXEVENTHANDLE
230
231 C-TYPE: ID3DXAnimationCallbackHandler
232 TYPEDEF: ID3DXAnimationCallbackHandler* LPD3DXANIMATIONCALLBACKHANDLER
233
234 COM-INTERFACE: ID3DXAnimationCallbackHandler f {00000000-0000-0000-0000-000000000000}
235     HRESULT HandleCallback ( UINT Track, LPVOID pCallbackData ) ;
236
237 C-TYPE: ID3DXAnimationController
238 TYPEDEF: ID3DXAnimationController* LPD3DXANIMATIONCONTROLLER
239
240 COM-INTERFACE: ID3DXAnimationController IUnknown {AC8948EC-F86D-43e2-96DE-31FC35F96D9E}
241     UINT GetMaxNumAnimationOutputs ( )
242     UINT GetMaxNumAnimationSets ( )
243     UINT GetMaxNumTracks ( )
244     UINT GetMaxNumEvents ( )
245     HRESULT RegisterAnimationOutput (
246         LPCSTR          pName,
247         D3DXMATRIX*     pMatrix,
248         D3DXVECTOR3*    pScale,
249         D3DXQUATERNION* pRotation,
250         D3DXVECTOR3*    pTranslation )
251     HRESULT RegisterAnimationSet ( LPD3DXANIMATIONSET pAnimSet )
252     HRESULT UnregisterAnimationSet ( LPD3DXANIMATIONSET pAnimSet )
253     UINT GetNumAnimationSets ( )
254     HRESULT GetAnimationSet ( UINT Index, LPD3DXANIMATIONSET* ppAnimationSet )
255     HRESULT GetAnimationSetByName ( LPCSTR szName, LPD3DXANIMATIONSET* ppAnimationSet )
256     HRESULT AdvanceTime ( double TimeDelta, LPD3DXANIMATIONCALLBACKHANDLER pCallbackHandler )
257     HRESULT ResetTime ( )
258     double GetTime ( )
259     HRESULT SetTrackAnimationSet ( UINT Track, LPD3DXANIMATIONSET pAnimSet )
260     HRESULT GetTrackAnimationSet ( UINT Track, LPD3DXANIMATIONSET* ppAnimSet )
261     HRESULT SetTrackPriority ( UINT Track, D3DXPRIORITY_TYPE Priority )
262     HRESULT SetTrackSpeed ( UINT Track, FLOAT Speed )
263     HRESULT SetTrackWeight ( UINT Track, FLOAT Weight )
264     HRESULT SetTrackPosition ( UINT Track, double Position )
265     HRESULT SetTrackEnable ( UINT Track, BOOL Enable )
266     HRESULT SetTrackDesc ( UINT Track, LPD3DXTRACK_DESC pDesc )
267     HRESULT GetTrackDesc ( UINT Track, LPD3DXTRACK_DESC pDesc )
268     HRESULT SetPriorityBlend ( FLOAT BlendWeight )
269     FLOAT GetPriorityBlend ( )
270     D3DXEVENTHANDLE KeyTrackSpeed ( UINT Track, FLOAT NewSpeed, double StartTime, double Duration, D3DXTRANSITION_TYPE Transition )
271     D3DXEVENTHANDLE KeyTrackWeight ( UINT Track, FLOAT NewWeight, double StartTime, double Duration, D3DXTRANSITION_TYPE Transition )
272     D3DXEVENTHANDLE KeyTrackPosition ( UINT Track, double NewPosition, double StartTime )
273     D3DXEVENTHANDLE KeyTrackEnable ( UINT Track, BOOL NewEnable, double StartTime )
274     D3DXEVENTHANDLE KeyPriorityBlend ( FLOAT NewBlendWeight, double StartTime, double Duration, D3DXTRANSITION_TYPE Transition )
275     HRESULT UnkeyEvent ( D3DXEVENTHANDLE hEvent )
276     HRESULT UnkeyAllTrackEvents ( UINT Track )
277     HRESULT UnkeyAllPriorityBlends ( )
278     D3DXEVENTHANDLE GetCurrentTrackEvent ( UINT Track, D3DXEVENT_TYPE EventType )
279     D3DXEVENTHANDLE GetCurrentPriorityBlend ( )
280     D3DXEVENTHANDLE GetUpcomingTrackEvent ( UINT Track, D3DXEVENTHANDLE hEvent )
281     D3DXEVENTHANDLE GetUpcomingPriorityBlend ( D3DXEVENTHANDLE hEvent )
282     HRESULT ValidateEvent ( D3DXEVENTHANDLE hEvent )
283     HRESULT GetEventDesc ( D3DXEVENTHANDLE hEvent, LPD3DXEVENT_DESC pDesc )
284     HRESULT CloneAnimationController (
285         UINT                       MaxNumAnimationOutputs,
286         UINT                       MaxNumAnimationSets,
287         UINT                       MaxNumTracks,
288         UINT                       MaxNumEvents,
289         LPD3DXANIMATIONCONTROLLER* ppAnimController ) ;
290
291 FUNCTION: HRESULT
292 D3DXLoadMeshHierarchyFromXA
293     (
294     LPCSTR                     Filename,
295     DWORD                      MeshOptions,
296     LPDIRECT3DDEVICE9          pD3DDevice,
297     LPD3DXALLOCATEHIERARCHY    pAlloc,
298     LPD3DXLOADUSERDATA         pUserDataLoader,
299     LPD3DXFRAME*               ppFrameHierarchy,
300     LPD3DXANIMATIONCONTROLLER* ppAnimController
301     )
302
303 FUNCTION: HRESULT
304 D3DXLoadMeshHierarchyFromXW
305     (
306     LPCWSTR                    Filename,
307     DWORD                      MeshOptions,
308     LPDIRECT3DDEVICE9          pD3DDevice,
309     LPD3DXALLOCATEHIERARCHY    pAlloc,
310     LPD3DXLOADUSERDATA         pUserDataLoader,
311     LPD3DXFRAME*               ppFrameHierarchy,
312     LPD3DXANIMATIONCONTROLLER* ppAnimController
313     )
314
315 ALIAS: D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXW
316
317 FUNCTION: HRESULT
318 D3DXLoadMeshHierarchyFromXInMemory
319     (
320     LPCVOID                    Memory,
321     DWORD                      SizeOfMemory,
322     DWORD                      MeshOptions,
323     LPDIRECT3DDEVICE9          pD3DDevice,
324     LPD3DXALLOCATEHIERARCHY    pAlloc,
325     LPD3DXLOADUSERDATA         pUserDataLoader,
326     LPD3DXFRAME*               ppFrameHierarchy,
327     LPD3DXANIMATIONCONTROLLER* ppAnimController
328     )
329
330 FUNCTION: HRESULT
331 D3DXSaveMeshHierarchyToFileA
332     (
333     LPCSTR                    Filename,
334     DWORD                     XFormat,
335     D3DXFRAME*                pFrameRoot,
336     LPD3DXANIMATIONCONTROLLER pAnimcontroller,
337     LPD3DXSAVEUSERDATA        pUserDataSaver
338     )
339
340 FUNCTION: HRESULT
341 D3DXSaveMeshHierarchyToFileW
342     (
343     LPCWSTR                   Filename,
344     DWORD                     XFormat,
345     D3DXFRAME*                pFrameRoot,
346     LPD3DXANIMATIONCONTROLLER pAnimController,
347     LPD3DXSAVEUSERDATA        pUserDataSaver
348     )
349
350 ALIAS: D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileW
351
352 FUNCTION: HRESULT
353 D3DXFrameDestroy
354     (
355     LPD3DXFRAME             pFrameRoot,
356     LPD3DXALLOCATEHIERARCHY pAlloc
357     )
358
359 FUNCTION: HRESULT
360 D3DXFrameAppendChild
361     (
362     LPD3DXFRAME pFrameParent,
363     D3DXFRAME*  pFrameChild
364     )
365
366 FUNCTION: LPD3DXFRAME
367 D3DXFrameFind
368     (
369     D3DXFRAME* pFrameRoot,
370     LPCSTR     Name
371     )
372
373 FUNCTION: HRESULT
374 D3DXFrameRegisterNamedMatrices
375     (
376     LPD3DXFRAME               pFrameRoot,
377     LPD3DXANIMATIONCONTROLLER pAnimController
378     )
379
380 FUNCTION: UINT
381 D3DXFrameNumNamedMatrices
382     (
383     D3DXFRAME* pFrameRoot
384     )
385
386 FUNCTION: HRESULT
387 D3DXFrameCalculateBoundingSphere
388     (
389     D3DXFRAME*    pFrameRoot,
390     LPD3DXVECTOR3 pObjectCenter,
391     FLOAT*        pObjectRadius
392     )
393
394 FUNCTION: HRESULT
395 D3DXCreateKeyframedAnimationSet
396     (
397     LPCSTR                       pName,
398     double                       TicksPerSecond,
399     D3DXPLAYBACK_TYPE            Playback,
400     UINT                         NumAnimations,
401     UINT                         NumCallbackKeys,
402     D3DXKEY_CALLBACK*            pCallbackKeys,
403     LPD3DXKEYFRAMEDANIMATIONSET* ppAnimationSet
404     )
405
406 FUNCTION: HRESULT
407 D3DXCreateCompressedAnimationSet
408     (
409     LPCSTR                        pName,
410     double                        TicksPerSecond,
411     D3DXPLAYBACK_TYPE             Playback,
412     LPD3DXBUFFER                  pCompressedData,
413     UINT                          NumCallbackKeys,
414     D3DXKEY_CALLBACK*             pCallbackKeys,
415     LPD3DXCOMPRESSEDANIMATIONSET* ppAnimationSet
416     )
417
418 FUNCTION: HRESULT
419 D3DXCreateAnimationController
420     (
421     UINT                       MaxNumMatrices,
422     UINT                       MaxNumAnimationSets,
423     UINT                       MaxNumTracks,
424     UINT                       MaxNumEvents,
425     LPD3DXANIMATIONCONTROLLER* ppAnimController
426     )