RetroArch
d3dx9anim.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (C) Microsoft Corporation. All Rights Reserved.
4  *
5  * File: d3dx9anim.h
6  * Content: D3DX mesh types and functions
7  */
8 
9 #ifndef __D3DX9ANIM_H__
10 #define __D3DX9ANIM_H__
11 
12 /* {698CFB3F-9289-4d95-9A57-33A94B5A65F9} */
13 DEFINE_GUID(IID_ID3DXAnimationSet,
14 0x698cfb3f, 0x9289, 0x4d95, 0x9a, 0x57, 0x33, 0xa9, 0x4b, 0x5a, 0x65, 0xf9);
15 
16 /* {FA4E8E3A-9786-407d-8B4C-5995893764AF} */
17 DEFINE_GUID(IID_ID3DXKeyframedAnimationSet,
18 0xfa4e8e3a, 0x9786, 0x407d, 0x8b, 0x4c, 0x59, 0x95, 0x89, 0x37, 0x64, 0xaf);
19 
20 /* {6CC2480D-3808-4739-9F88-DE49FACD8D4C} */
21 DEFINE_GUID(IID_ID3DXCompressedAnimationSet,
22 0x6cc2480d, 0x3808, 0x4739, 0x9f, 0x88, 0xde, 0x49, 0xfa, 0xcd, 0x8d, 0x4c);
23 
24 /* {AC8948EC-F86D-43e2-96DE-31FC35F96D9E} */
25 DEFINE_GUID(IID_ID3DXAnimationController,
26 0xac8948ec, 0xf86d, 0x43e2, 0x96, 0xde, 0x31, 0xfc, 0x35, 0xf9, 0x6d, 0x9e);
27 
28 typedef enum _D3DXMESHDATATYPE
29 {
30  D3DXMESHTYPE_MESH = 0x001, /* Normal ID3DXMesh data */
31  D3DXMESHTYPE_PMESH = 0x002, /* Progressive Mesh - ID3DXPMesh */
32  D3DXMESHTYPE_PATCHMESH = 0x003, /* Patch Mesh - ID3DXPatchMesh */
33 
34  D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
36 
37 typedef struct _D3DXMESHDATA
38 {
40 
41  /* current mesh data interface */
42  union
43  {
47  };
49 
50 typedef struct _D3DXMESHCONTAINER
51 {
52  LPSTR Name;
53 
55 
58  DWORD NumMaterials;
59  DWORD *pAdjacency;
60 
62 
65 
66 typedef struct _D3DXFRAME
67 {
68  LPSTR Name;
70 
72 
76 
79 
80 #undef INTERFACE
81 #define INTERFACE ID3DXAllocateHierarchy
82 
84 {
85  STDMETHOD(CreateFrame)(THIS_ LPCSTR Name,
86  LPD3DXFRAME *ppNewFrame) PURE;
87 
88  STDMETHOD(CreateMeshContainer)(THIS_
89  LPCSTR Name,
90  CONST D3DXMESHDATA *pMeshData,
91  CONST D3DXMATERIAL *pMaterials,
92  CONST D3DXEFFECTINSTANCE *pEffectInstances,
93  DWORD NumMaterials,
94  CONST DWORD *pAdjacency,
95  LPD3DXSKININFO pSkinInfo,
96  LPD3DXMESHCONTAINER *ppNewMeshContainer) PURE;
97 
98  STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME pFrameToFree) PURE;
99 
100  STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER pMeshContainerToFree) PURE;
101 };
102 
103 typedef interface ID3DXLoadUserData ID3DXLoadUserData;
105 
106 #undef INTERFACE
107 #define INTERFACE ID3DXLoadUserData
108 
110 {
111  STDMETHOD(LoadTopLevelData)(LPD3DXFILEDATA pXofChildData) PURE;
112 
113  STDMETHOD(LoadFrameChildData)(LPD3DXFRAME pFrame,
114  LPD3DXFILEDATA pXofChildData) PURE;
115 
116  STDMETHOD(LoadMeshChildData)(LPD3DXMESHCONTAINER pMeshContainer,
117  LPD3DXFILEDATA pXofChildData) PURE;
118 };
119 
120 typedef interface ID3DXSaveUserData ID3DXSaveUserData;
122 
123 #undef INTERFACE
124 #define INTERFACE ID3DXSaveUserData
125 
127 {
128  STDMETHOD(AddFrameChildData)(CONST D3DXFRAME *pFrame,
129  LPD3DXFILESAVEOBJECT pXofSave,
130  LPD3DXFILESAVEDATA pXofFrameData) PURE;
131 
132  STDMETHOD(AddMeshChildData)(CONST D3DXMESHCONTAINER *pMeshContainer,
133  LPD3DXFILESAVEOBJECT pXofSave,
134  LPD3DXFILESAVEDATA pXofMeshData) PURE;
135 
136  /* NOTE: this is called once per Save. All top level objects should be added using the
137  * provided interface. One call adds objects before the frame hierarchy, the other after */
138  STDMETHOD(AddTopLevelDataObjectsPre)(LPD3DXFILESAVEOBJECT pXofSave) PURE;
139  STDMETHOD(AddTopLevelDataObjectsPost)(LPD3DXFILESAVEOBJECT pXofSave) PURE;
140 
141  /* callbacks for the user to register and then save templates to the XFile */
142  STDMETHOD(RegisterTemplates)(LPD3DXFILE pXFileApi) PURE;
143  STDMETHOD(SaveTemplates)(LPD3DXFILESAVEOBJECT pXofSave) PURE;
144 };
145 
147 {
148  D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = 0x01, /* exclude callbacks at the initial position from the search */
149  D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = 0x02, /* reverse the callback search direction */
150 
153 
156 
157 #undef INTERFACE
158 #define INTERFACE ID3DXAnimationSet
159 
161 {
162  /* IUnknown */
163  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
164  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
165  STDMETHOD_(ULONG, Release)(THIS) PURE;
166 
167  /* Name */
168  STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
169 
170  /* Period */
171  STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
172  STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE Position) PURE; /* Maps position into animation period */
173 
174  /* Animation names */
175  STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
176  STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT Index, LPCSTR *ppName) PURE;
177  STDMETHOD(GetAnimationIndexByName)(THIS_ LPCSTR pName, UINT *pIndex) PURE;
178 
179  /* SRT */
180  STDMETHOD(GetSRT)(THIS_
181  DOUBLE PeriodicPosition, /* Position mapped to period (use GetPeriodicPosition) */
182  UINT Animation, /* Animation index */
183  D3DXVECTOR3 *pScale, /* Returns the scale */
184  D3DXQUATERNION *pRotation, /* Returns the rotation as a quaternion */
185  D3DXVECTOR3 *pTranslation) PURE; /* Returns the translation */
186 
187  /* Callbacks */
188  STDMETHOD(GetCallback)(THIS_
189  DOUBLE Position, /* Position from which to find callbacks */
190  DWORD Flags, /* Callback search flags */
191  DOUBLE *pCallbackPosition, /* Returns the position of the callback */
192  LPVOID *ppCallbackData) PURE; /* Returns the callback data pointer */
193 };
194 
195 typedef enum _D3DXPLAYBACK_TYPE
196 {
200 
201  D3DXPLAY_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
203 
204 typedef struct _D3DXKEY_VECTOR3
205 {
209 
210 typedef struct _D3DXKEY_QUATERNION
211 {
215 
216 typedef struct _D3DXKEY_CALLBACK
217 {
221 
223 {
225 
228 
231 
232 #undef INTERFACE
233 #define INTERFACE ID3DXKeyframedAnimationSet
234 
236 {
237  /* ID3DXAnimationSet */
238  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
239  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
240  STDMETHOD_(ULONG, Release)(THIS) PURE;
241 
242  /* Name */
243  STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
244 
245  /* Period */
246  STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
247  STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE Position) PURE; /* Maps position into animation period */
248 
249  /* Animation names */
250  STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
251  STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT Index, LPCSTR *ppName) PURE;
252  STDMETHOD(GetAnimationIndexByName)(THIS_ LPCSTR pName, UINT *pIndex) PURE;
253 
254  /* SRT */
255  STDMETHOD(GetSRT)(THIS_
256  DOUBLE PeriodicPosition, /* Position mapped to period (use GetPeriodicPosition) */
257  UINT Animation, /* Animation index */
258  D3DXVECTOR3 *pScale, /* Returns the scale */
259  D3DXQUATERNION *pRotation, /* Returns the rotation as a quaternion */
260  D3DXVECTOR3 *pTranslation) PURE; /* Returns the translation */
261 
262  /* Callbacks */
263  STDMETHOD(GetCallback)(THIS_
264  DOUBLE Position, /* Position from which to find callbacks */
265  DWORD Flags, /* Callback search flags */
266  DOUBLE *pCallbackPosition, /* Returns the position of the callback */
267  LPVOID *ppCallbackData) PURE; /* Returns the callback data pointer */
268 
269  /* Playback */
270  STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE;
271  STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
272 
273  /* Scale keys */
274  STDMETHOD_(UINT, GetNumScaleKeys)(THIS_ UINT Animation) PURE;
275  STDMETHOD(GetScaleKeys)(THIS_ UINT Animation, LPD3DXKEY_VECTOR3 pScaleKeys) PURE;
276  STDMETHOD(GetScaleKey)(THIS_ UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pScaleKey) PURE;
277  STDMETHOD(SetScaleKey)(THIS_ UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pScaleKey) PURE;
278 
279  /* Rotation keys */
280  STDMETHOD_(UINT, GetNumRotationKeys)(THIS_ UINT Animation) PURE;
281  STDMETHOD(GetRotationKeys)(THIS_ UINT Animation, LPD3DXKEY_QUATERNION pRotationKeys) PURE;
282  STDMETHOD(GetRotationKey)(THIS_ UINT Animation, UINT Key, LPD3DXKEY_QUATERNION pRotationKey) PURE;
283  STDMETHOD(SetRotationKey)(THIS_ UINT Animation, UINT Key, LPD3DXKEY_QUATERNION pRotationKey) PURE;
284 
285  /* Translation keys */
286  STDMETHOD_(UINT, GetNumTranslationKeys)(THIS_ UINT Animation) PURE;
287  STDMETHOD(GetTranslationKeys)(THIS_ UINT Animation, LPD3DXKEY_VECTOR3 pTranslationKeys) PURE;
288  STDMETHOD(GetTranslationKey)(THIS_ UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey) PURE;
289  STDMETHOD(SetTranslationKey)(THIS_ UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey) PURE;
290 
291  /* Callback keys */
292  STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE;
293  STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK pCallbackKeys) PURE;
294  STDMETHOD(GetCallbackKey)(THIS_ UINT Key, LPD3DXKEY_CALLBACK pCallbackKey) PURE;
295  STDMETHOD(SetCallbackKey)(THIS_ UINT Key, LPD3DXKEY_CALLBACK pCallbackKey) PURE;
296 
297  /* Key removal methods. These are slow, and should not be used once the animation starts playing */
298  STDMETHOD(UnregisterScaleKey)(THIS_ UINT Animation, UINT Key) PURE;
299  STDMETHOD(UnregisterRotationKey)(THIS_ UINT Animation, UINT Key) PURE;
300  STDMETHOD(UnregisterTranslationKey)(THIS_ UINT Animation, UINT Key) PURE;
301 
302  /* One-time animaton SRT keyframe registration */
303  STDMETHOD(RegisterAnimationSRTKeys)(THIS_
304  LPCSTR pName, /* Animation name */
305  UINT NumScaleKeys, /* Number of scale keys */
306  UINT NumRotationKeys, /* Number of rotation keys */
307  UINT NumTranslationKeys, /* Number of translation keys */
308  CONST D3DXKEY_VECTOR3 *pScaleKeys, /* Array of scale keys */
309  CONST D3DXKEY_QUATERNION *pRotationKeys, /* Array of rotation keys */
310  CONST D3DXKEY_VECTOR3 *pTranslationKeys, /* Array of translation keys */
311  DWORD *pAnimationIndex) PURE; /* Returns the animation index */
312 
313  /* Compression */
314  STDMETHOD(Compress)(THIS_
315  DWORD Flags, /* Compression flags (use D3DXCOMPRESS_STRONG for better results) */
316  FLOAT Lossiness, /* Compression loss ratio in the [0, 1] range */
317  LPD3DXFRAME pHierarchy, /* Frame hierarchy (optional) */
318  LPD3DXBUFFER *ppCompressedData) PURE; /* Returns the compressed animation set */
319 
320  STDMETHOD(UnregisterAnimation)(THIS_ UINT Index) PURE;
321 };
322 
323 
324 /*
325  * ID3DXCompressedAnimationSet:
326  * ----------------------------
327  * This interface implements a compressed keyframed animation set.
328  */
331 
332 #undef INTERFACE
333 #define INTERFACE ID3DXCompressedAnimationSet
334 
336 {
337  /* ID3DXAnimationSet */
338  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
339  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
340  STDMETHOD_(ULONG, Release)(THIS) PURE;
341 
342  /* Name */
343  STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
344 
345  /* Period */
346  STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
347  STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE Position) PURE; /* Maps position into animation period */
348 
349  /* Animation names */
350  STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
351  STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT Index, LPCSTR *ppName) PURE;
352  STDMETHOD(GetAnimationIndexByName)(THIS_ LPCSTR pName, UINT *pIndex) PURE;
353 
354  /* SRT */
355  STDMETHOD(GetSRT)(THIS_
356  DOUBLE PeriodicPosition, /* Position mapped to period (use GetPeriodicPosition) */
357  UINT Animation, /* Animation index */
358  D3DXVECTOR3 *pScale, /* Returns the scale */
359  D3DXQUATERNION *pRotation, /* Returns the rotation as a quaternion */
360  D3DXVECTOR3 *pTranslation) PURE; /* Returns the translation */
361 
362  /* Callbacks */
363  STDMETHOD(GetCallback)(THIS_
364  DOUBLE Position, /* Position from which to find callbacks */
365  DWORD Flags, /* Callback search flags */
366  DOUBLE *pCallbackPosition, /* Returns the position of the callback */
367  LPVOID *ppCallbackData) PURE; /* Returns the callback data pointer */
368 
369  /* Playback */
370  STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE;
371  STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
372 
373  /* Scale keys */
374  STDMETHOD(GetCompressedData)(THIS_ LPD3DXBUFFER *ppCompressedData) PURE;
375 
376  /* Callback keys */
377  STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE;
378  STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK pCallbackKeys) PURE;
379 };
380 
381 typedef enum _D3DXPRIORITY_TYPE
382 {
383  D3DXPRIORITY_LOW = 0, /* This track should be blended with all low priority tracks before mixed with the high priority result */
384  D3DXPRIORITY_HIGH = 1, /* This track should be blended with all high priority tracks before mixed with the low priority result */
385 
386  D3DXPRIORITY_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
388 
389 typedef struct _D3DXTRACK_DESC
390 {
397 
398 typedef enum _D3DXEVENT_TYPE
399 {
405 
406  D3DXEVENT_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
408 
410 {
411  D3DXTRANSITION_LINEAR = 0x000, /* Linear transition from one value to the next */
412  D3DXTRANSITION_EASEINEASEOUT = 0x001, /* Ease-In Ease-Out spline transition from one value to the next */
413 
414  D3DXTRANSITION_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
416 
417 typedef struct _D3DXEVENT_DESC
418 {
424  union
425  {
430  };
432 
433 typedef DWORD D3DXEVENTHANDLE;
435 
438 
439 #undef INTERFACE
440 #define INTERFACE ID3DXAnimationCallbackHandler
441 
443 {
444  STDMETHOD(HandleCallback)(THIS_ UINT Track, LPVOID pCallbackData) PURE;
445 };
446 
449 
450 #undef INTERFACE
451 #define INTERFACE ID3DXAnimationController
452 
454 {
455  /* IUnknown */
456  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
457  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
458  STDMETHOD_(ULONG, Release)(THIS) PURE;
459 
460  /* Max sizes */
461  STDMETHOD_(UINT, GetMaxNumAnimationOutputs)(THIS) PURE;
462  STDMETHOD_(UINT, GetMaxNumAnimationSets)(THIS) PURE;
463  STDMETHOD_(UINT, GetMaxNumTracks)(THIS) PURE;
464  STDMETHOD_(UINT, GetMaxNumEvents)(THIS) PURE;
465 
466  /* Animation output registration */
467  STDMETHOD(RegisterAnimationOutput)(THIS_
468  LPCSTR pName,
469  D3DXMATRIX *pMatrix,
470  D3DXVECTOR3 *pScale,
471  D3DXQUATERNION *pRotation,
472  D3DXVECTOR3 *pTranslation) PURE;
473 
474  /* Animation set registration */
475  STDMETHOD(RegisterAnimationSet)(THIS_ LPD3DXANIMATIONSET pAnimSet) PURE;
476  STDMETHOD(UnregisterAnimationSet)(THIS_ LPD3DXANIMATIONSET pAnimSet) PURE;
477 
478  STDMETHOD_(UINT, GetNumAnimationSets)(THIS) PURE;
479  STDMETHOD(GetAnimationSet)(THIS_ UINT Index, LPD3DXANIMATIONSET *ppAnimationSet) PURE;
480  STDMETHOD(GetAnimationSetByName)(THIS_ LPCSTR szName, LPD3DXANIMATIONSET *ppAnimationSet) PURE;
481 
482  /* Global time */
483  STDMETHOD(AdvanceTime)(THIS_ DOUBLE TimeDelta, LPD3DXANIMATIONCALLBACKHANDLER pCallbackHandler) PURE;
484  STDMETHOD(ResetTime)(THIS) PURE;
485  STDMETHOD_(DOUBLE, GetTime)(THIS) PURE;
486 
487  /* Tracks */
488  STDMETHOD(SetTrackAnimationSet)(THIS_ UINT Track, LPD3DXANIMATIONSET pAnimSet) PURE;
489  STDMETHOD(GetTrackAnimationSet)(THIS_ UINT Track, LPD3DXANIMATIONSET *ppAnimSet) PURE;
490 
491  STDMETHOD(SetTrackPriority)(THIS_ UINT Track, D3DXPRIORITY_TYPE Priority) PURE;
492 
493  STDMETHOD(SetTrackSpeed)(THIS_ UINT Track, FLOAT Speed) PURE;
494  STDMETHOD(SetTrackWeight)(THIS_ UINT Track, FLOAT Weight) PURE;
495  STDMETHOD(SetTrackPosition)(THIS_ UINT Track, DOUBLE Position) PURE;
496  STDMETHOD(SetTrackEnable)(THIS_ UINT Track, BOOL Enable) PURE;
497 
498  STDMETHOD(SetTrackDesc)(THIS_ UINT Track, LPD3DXTRACK_DESC pDesc) PURE;
499  STDMETHOD(GetTrackDesc)(THIS_ UINT Track, LPD3DXTRACK_DESC pDesc) PURE;
500 
501  /* Priority blending */
502  STDMETHOD(SetPriorityBlend)(THIS_ FLOAT BlendWeight) PURE;
503  STDMETHOD_(FLOAT, GetPriorityBlend)(THIS) PURE;
504 
505  /* Event keying */
506  STDMETHOD_(D3DXEVENTHANDLE, KeyTrackSpeed)(THIS_ UINT Track, FLOAT NewSpeed, DOUBLE StartTime, DOUBLE Duration, D3DXTRANSITION_TYPE Transition) PURE;
507  STDMETHOD_(D3DXEVENTHANDLE, KeyTrackWeight)(THIS_ UINT Track, FLOAT NewWeight, DOUBLE StartTime, DOUBLE Duration, D3DXTRANSITION_TYPE Transition) PURE;
508  STDMETHOD_(D3DXEVENTHANDLE, KeyTrackPosition)(THIS_ UINT Track, DOUBLE NewPosition, DOUBLE StartTime) PURE;
509  STDMETHOD_(D3DXEVENTHANDLE, KeyTrackEnable)(THIS_ UINT Track, BOOL NewEnable, DOUBLE StartTime) PURE;
510 
511  STDMETHOD_(D3DXEVENTHANDLE, KeyPriorityBlend)(THIS_ FLOAT NewBlendWeight, DOUBLE StartTime, DOUBLE Duration, D3DXTRANSITION_TYPE Transition) PURE;
512 
513  /* Event unkeying */
514  STDMETHOD(UnkeyEvent)(THIS_ D3DXEVENTHANDLE hEvent) PURE;
515 
516  STDMETHOD(UnkeyAllTrackEvents)(THIS_ UINT Track) PURE;
517  STDMETHOD(UnkeyAllPriorityBlends)(THIS) PURE;
518 
519  /* Event enumeration */
520  STDMETHOD_(D3DXEVENTHANDLE, GetCurrentTrackEvent)(THIS_ UINT Track, D3DXEVENT_TYPE EventType) PURE;
521  STDMETHOD_(D3DXEVENTHANDLE, GetCurrentPriorityBlend)(THIS) PURE;
522 
523  STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingTrackEvent)(THIS_ UINT Track, D3DXEVENTHANDLE hEvent) PURE;
524  STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingPriorityBlend)(THIS_ D3DXEVENTHANDLE hEvent) PURE;
525 
526  STDMETHOD(ValidateEvent)(THIS_ D3DXEVENTHANDLE hEvent) PURE;
527 
528  STDMETHOD(GetEventDesc)(THIS_ D3DXEVENTHANDLE hEvent, LPD3DXEVENT_DESC pDesc) PURE;
529 
530  /* Cloning */
531  STDMETHOD(CloneAnimationController)(THIS_
532  UINT MaxNumAnimationOutputs,
533  UINT MaxNumAnimationSets,
534  UINT MaxNumTracks,
535  UINT MaxNumEvents,
536  LPD3DXANIMATIONCONTROLLER *ppAnimController) PURE;
537 };
538 
539 #ifdef __cplusplus
540 extern "C" {
541 #endif /* __cplusplus */
542 
543 HRESULT WINAPI
545  (
546  LPCSTR Filename,
547  DWORD MeshOptions,
548  LPDIRECT3DDEVICE9 pD3DDevice,
550  LPD3DXLOADUSERDATA pUserDataLoader,
551  LPD3DXFRAME *ppFrameHierarchy,
552  LPD3DXANIMATIONCONTROLLER *ppAnimController
553  );
554 
555 HRESULT WINAPI
557  (
558  LPCWSTR Filename,
559  DWORD MeshOptions,
560  LPDIRECT3DDEVICE9 pD3DDevice,
562  LPD3DXLOADUSERDATA pUserDataLoader,
563  LPD3DXFRAME *ppFrameHierarchy,
564  LPD3DXANIMATIONCONTROLLER *ppAnimController
565  );
566 
567 #ifdef UNICODE
568 #define D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXW
569 #else
570 #define D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXA
571 #endif
572 
573 HRESULT WINAPI
575  (
576  LPCVOID Memory,
577  DWORD SizeOfMemory,
578  DWORD MeshOptions,
579  LPDIRECT3DDEVICE9 pD3DDevice,
581  LPD3DXLOADUSERDATA pUserDataLoader,
582  LPD3DXFRAME *ppFrameHierarchy,
583  LPD3DXANIMATIONCONTROLLER *ppAnimController
584  );
585 
586 HRESULT WINAPI
588  (
589  LPCSTR Filename,
590  DWORD XFormat,
591  CONST D3DXFRAME *pFrameRoot,
592  LPD3DXANIMATIONCONTROLLER pAnimcontroller,
593  LPD3DXSAVEUSERDATA pUserDataSaver
594  );
595 
596 HRESULT WINAPI
598  (
599  LPCWSTR Filename,
600  DWORD XFormat,
601  CONST D3DXFRAME *pFrameRoot,
602  LPD3DXANIMATIONCONTROLLER pAnimController,
603  LPD3DXSAVEUSERDATA pUserDataSaver
604  );
605 
606 #ifdef UNICODE
607 #define D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileW
608 #else
609 #define D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileA
610 #endif
611 
612 HRESULT WINAPI
614  (
615  LPD3DXFRAME pFrameRoot,
617  );
618 
619 HRESULT WINAPI
621  (
622  LPD3DXFRAME pFrameParent,
623  CONST D3DXFRAME *pFrameChild
624  );
625 
626 LPD3DXFRAME WINAPI
628  (
629  CONST D3DXFRAME *pFrameRoot,
630  LPCSTR Name
631  );
632 
633 HRESULT WINAPI
635  (
636  LPD3DXFRAME pFrameRoot,
637  LPD3DXANIMATIONCONTROLLER pAnimController
638  );
639 
640 /*
641  * D3DXFrameNumNamedMatrices:
642  * --------------------------
643  * Counts number of frames in a subtree that have non-null names
644  *
645  * Parameters:
646  * pFrameRoot
647  * Pointer to the root node of the subtree
648  * Return Value:
649  * Count of frames
650  *
651  */
652 UINT WINAPI
654  (
655  CONST D3DXFRAME *pFrameRoot
656  );
657 
658 /*
659  * D3DXFrameCalculateBoundingSphere:
660  * ---------------------------------
661  * Computes the bounding sphere of all the meshes in the frame hierarchy.
662  *
663  * Parameters:
664  * pFrameRoot
665  * Pointer to the root node
666  * pObjectCenter
667  * Returns the center of the bounding sphere
668  * pObjectRadius
669  * Returns the radius of the bounding sphere
670  *
671  */
672 HRESULT WINAPI
674  (
675  CONST D3DXFRAME *pFrameRoot,
676  LPD3DXVECTOR3 pObjectCenter,
677  FLOAT *pObjectRadius
678  );
679 
680 
681 /*
682  * D3DXCreateKeyframedAnimationSet:
683  * --------------------------------
684  * This function creates a compressable keyframed animations set interface.
685  *
686  * Parameters:
687  * pName
688  * Name of the animation set
689  * TicksPerSecond
690  * Number of keyframe ticks that elapse per second
691  * Playback
692  * Playback mode of keyframe looping
693  * NumAnimations
694  * Number of SRT animations
695  * NumCallbackKeys
696  * Number of callback keys
697  * pCallbackKeys
698  * Array of callback keys
699  * ppAnimationSet
700  * Returns the animation set interface
701  *
702  */
703 
704 HRESULT WINAPI
706  (
707  LPCSTR pName,
708  DOUBLE TicksPerSecond,
709  D3DXPLAYBACK_TYPE Playback,
710  UINT NumAnimations,
711  UINT NumCallbackKeys,
712  CONST D3DXKEY_CALLBACK *pCallbackKeys,
713  LPD3DXKEYFRAMEDANIMATIONSET *ppAnimationSet
714  );
715 
716 
717 /*
718  * D3DXCreateCompressedAnimationSet:
719  * --------------------------------
720  * This function creates a compressed animations set interface from
721  * compressed data.
722  *
723  * Parameters:
724  * pName
725  * Name of the animation set
726  * TicksPerSecond
727  * Number of keyframe ticks that elapse per second
728  * Playback
729  * Playback mode of keyframe looping
730  * pCompressedData
731  * Compressed animation SRT data
732  * NumCallbackKeys
733  * Number of callback keys
734  * pCallbackKeys
735  * Array of callback keys
736  * ppAnimationSet
737  * Returns the animation set interface
738  *
739  */
740 
741 HRESULT WINAPI
743  (
744  LPCSTR pName,
745  DOUBLE TicksPerSecond,
746  D3DXPLAYBACK_TYPE Playback,
747  LPD3DXBUFFER pCompressedData,
748  UINT NumCallbackKeys,
749  CONST D3DXKEY_CALLBACK *pCallbackKeys,
750  LPD3DXCOMPRESSEDANIMATIONSET *ppAnimationSet
751  );
752 
753 HRESULT WINAPI
755  (
756  UINT MaxNumMatrices,
757  UINT MaxNumAnimationSets,
758  UINT MaxNumTracks,
759  UINT MaxNumEvents,
760  LPD3DXANIMATIONCONTROLLER *ppAnimController
761  );
762 
763 
764 #ifdef __cplusplus
765 }
766 #endif /*__cplusplus */
767 
768 #endif /*__D3DX9ANIM_H__ */
Definition: d3dx9anim.h:386
LPSTR Name
Definition: d3dx9anim.h:52
Definition: d3dx9anim.h:32
D3DXPRIORITY_TYPE Priority
Definition: d3dx9anim.h:391
Definition: d3dx9anim.h:417
enum _D3DXEVENT_TYPE D3DXEVENT_TYPE
interface ID3DXSaveUserData * LPD3DXSAVEUSERDATA
Definition: d3dx9anim.h:121
Definition: d3d8types.h:77
Definition: d3dx9anim.h:210
_D3DXPLAYBACK_TYPE
Definition: d3dx9anim.h:195
Definition: d3d8types.h:48
Definition: d3dx9anim.h:406
interface ID3DXCompressedAnimationSet * LPD3DXCOMPRESSEDANIMATIONSET
Definition: d3dx9anim.h:330
Definition: d3dx9anim.h:50
Definition: d3dx9anim.h:197
Definition: glslang_tab.cpp:129
interface ID3DXAllocateHierarchy * LPD3DXALLOCATEHIERARCHY
Definition: d3dx9anim.h:78
enum _D3DXCOMPRESSION_FLAGS D3DXCOMPRESSION_FLAGS
DWORD NumMaterials
Definition: d3dx9anim.h:58
D3DXMATRIX TransformationMatrix
Definition: d3dx9anim.h:69
LPD3DXSKININFO pSkinInfo
Definition: d3dx9anim.h:61
interface ID3DXAnimationController * LPD3DXANIMATIONCONTROLLER
Definition: d3dx9anim.h:448
BOOL Enable
Definition: d3dx9anim.h:429
UINT WINAPI D3DXFrameNumNamedMatrices(CONST D3DXFRAME *pFrameRoot)
Definition: d3dx9anim.h:414
_D3DXCALLBACK_SEARCH_FLAGS
Definition: d3dx9anim.h:146
LPVOID pCallbackData
Definition: d3dx9anim.h:219
DWORD * pAdjacency
Definition: d3dx9anim.h:59
LPD3DXMATERIAL pMaterials
Definition: d3dx9anim.h:56
enum _D3DXPLAYBACK_TYPE D3DXPLAYBACK_TYPE
static int64_t StartTime
Definition: send-presence.c:16
struct _D3DXKEY_QUATERNION * LPD3DXKEY_QUATERNION
FLOAT Time
Definition: d3dx9anim.h:212
FLOAT Time
Definition: d3dx9anim.h:218
BOOL Enable
Definition: d3dx9anim.h:395
Definition: d3dx9anim.h:389
interface ID3DXAnimationCallbackHandler ID3DXAnimationCallbackHandler
Definition: d3dx9anim.h:436
struct ID3DXPMesh * LPD3DXPMESH
Definition: d3dx8mesh.h:81
Definition: d3dx9anim.h:31
enum _D3DXTRANSITION_TYPE D3DXTRANSITION_TYPE
typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
struct _D3DXKEY_CALLBACK * LPD3DXKEY_CALLBACK
HRESULT WINAPI D3DXFrameRegisterNamedMatrices(LPD3DXFRAME pFrameRoot, LPD3DXANIMATIONCONTROLLER pAnimController)
Definition: d3dx9anim.h:151
D3DXQUATERNION Value
Definition: d3dx9anim.h:213
struct _D3DXMESHCONTAINER * pNextMeshContainer
Definition: d3dx9anim.h:63
interface ID3DXAnimationController ID3DXAnimationController
Definition: d3dx9anim.h:445
struct ID3DXSkinInfo * LPD3DXSKININFO
Definition: d3dx9mesh.h:149
struct _D3DXMESHCONTAINER * LPD3DXMESHCONTAINER
struct _D3DXEVENT_DESC D3DXEVENT_DESC
D3DXTRANSITION_TYPE Transition
Definition: d3dx9anim.h:423
FLOAT Weight
Definition: d3dx9anim.h:426
LPD3DXMESHCONTAINER pMeshContainer
Definition: d3dx9anim.h:71
Definition: d3dx9anim.h:411
interface ID3DXCompressedAnimationSet ID3DXCompressedAnimationSet
Definition: d3dx9anim.h:321
interface ID3DXLoadUserData * LPD3DXLOADUSERDATA
Definition: d3dx9anim.h:104
struct _D3DXTRACK_DESC D3DXTRACK_DESC
D3DXMESHDATATYPE Type
Definition: d3dx9anim.h:39
interface ID3DXAnimationCallbackHandler * LPD3DXANIMATIONCALLBACKHANDLER
Definition: d3dx9anim.h:437
HRESULT WINAPI D3DXCreateCompressedAnimationSet(LPCSTR pName, DOUBLE TicksPerSecond, D3DXPLAYBACK_TYPE Playback, LPD3DXBUFFER pCompressedData, UINT NumCallbackKeys, CONST D3DXKEY_CALLBACK *pCallbackKeys, LPD3DXCOMPRESSEDANIMATIONSET *ppAnimationSet)
UINT Track
Definition: d3dx9anim.h:420
DECLARE_INTERFACE(ID3DXAllocateHierarchy)
Definition: d3dx9anim.h:83
Definition: d3dx9anim.h:224
struct _D3DXMESHCONTAINER D3DXMESHCONTAINER
Definition: d3dx9anim.h:226
HRESULT WINAPI D3DXLoadMeshHierarchyFromXA(LPCSTR Filename, DWORD MeshOptions, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXALLOCATEHIERARCHY pAlloc, LPD3DXLOADUSERDATA pUserDataLoader, LPD3DXFRAME *ppFrameHierarchy, LPD3DXANIMATIONCONTROLLER *ppAnimController)
HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory(LPCVOID Memory, DWORD SizeOfMemory, DWORD MeshOptions, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXALLOCATEHIERARCHY pAlloc, LPD3DXLOADUSERDATA pUserDataLoader, LPD3DXFRAME *ppFrameHierarchy, LPD3DXANIMATIONCONTROLLER *ppAnimController)
Definition: d3dx8mesh.h:99
Definition: d3dx9mesh.h:190
_D3DXPRIORITY_TYPE
Definition: d3dx9anim.h:381
FLOAT Speed
Definition: d3dx9anim.h:427
interface ID3DXSaveUserData ID3DXSaveUserData
Definition: d3dx9anim.h:118
Definition: d3dx9anim.h:412
LPD3DXEFFECTINSTANCE pEffects
Definition: d3dx9anim.h:57
FLOAT Weight
Definition: d3dx9anim.h:392
LPD3DXPATCHMESH pPatchMesh
Definition: d3dx9anim.h:46
HRESULT WINAPI D3DXLoadMeshHierarchyFromXW(LPCWSTR Filename, DWORD MeshOptions, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXALLOCATEHIERARCHY pAlloc, LPD3DXLOADUSERDATA pUserDataLoader, LPD3DXFRAME *ppFrameHierarchy, LPD3DXANIMATIONCONTROLLER *ppAnimController)
D3DXMESHDATA MeshData
Definition: d3dx9anim.h:54
LPD3DXFRAME WINAPI D3DXFrameFind(CONST D3DXFRAME *pFrameRoot, LPCSTR Name)
enum _D3DXPRIORITY_TYPE D3DXPRIORITY_TYPE
HRESULT WINAPI D3DXCreateAnimationController(UINT MaxNumMatrices, UINT MaxNumAnimationSets, UINT MaxNumTracks, UINT MaxNumEvents, LPD3DXANIMATIONCONTROLLER *ppAnimController)
struct _D3DXKEY_QUATERNION D3DXKEY_QUATERNION
FLOAT Time
Definition: d3dx9anim.h:206
Definition: d3dx9anim.h:383
Definition: d3dx9anim.h:384
struct _D3DXMESHDATA D3DXMESHDATA
DOUBLE StartTime
Definition: d3dx9anim.h:421
DWORD D3DXEVENTHANDLE
Definition: d3dx9anim.h:433
_D3DXTRANSITION_TYPE
Definition: d3dx9anim.h:409
Definition: d3dx9anim.h:400
DOUBLE Position
Definition: d3dx9anim.h:428
HRESULT WINAPI D3DXCreateKeyframedAnimationSet(LPCSTR pName, DOUBLE TicksPerSecond, D3DXPLAYBACK_TYPE Playback, UINT NumAnimations, UINT NumCallbackKeys, CONST D3DXKEY_CALLBACK *pCallbackKeys, LPD3DXKEYFRAMEDANIMATIONSET *ppAnimationSet)
_D3DXCOMPRESSION_FLAGS
Definition: d3dx9anim.h:222
interface ID3DXAnimationSet * LPD3DXANIMATIONSET
Definition: d3dx9anim.h:155
interface ID3DXAllocateHierarchy ID3DXAllocateHierarchy
Definition: d3dx9anim.h:77
Definition: d3dx9anim.h:204
static INLINE ULONG Release(void *object)
Definition: dxgi_common.h:253
struct _D3DXKEY_VECTOR3 * LPD3DXKEY_VECTOR3
Definition: d3dx9anim.h:34
DEFINE_GUID(IID_ID3DXAnimationSet, 0x698cfb3f, 0x9289, 0x4d95, 0x9a, 0x57, 0x33, 0xa9, 0x4b, 0x5a, 0x65, 0xf9)
unsigned int BOOL
Definition: gctypes.h:51
struct _D3DXEVENT_DESC * LPD3DXEVENT_DESC
struct IDirect3DDevice9 * LPDIRECT3DDEVICE9
Definition: d3d9.h:442
Definition: d3dx9anim.h:199
D3DXVECTOR3 Value
Definition: d3dx9anim.h:207
LPD3DXPMESH pPMesh
Definition: d3dx9anim.h:45
LPSTR Name
Definition: d3dx9anim.h:68
interface ID3DXBuffer * LPD3DXBUFFER
Definition: d3dx8core.h:29
struct _D3DXTRACK_DESC * LPD3DXTRACK_DESC
DOUBLE Duration
Definition: d3dx9anim.h:422
Definition: d3dx9anim.h:30
D3DXEVENT_TYPE Type
Definition: d3dx9anim.h:419
enum _D3DXCALLBACK_SEARCH_FLAGS D3DXCALLBACK_SEARCH_FLAGS
struct _D3DXKEY_CALLBACK D3DXKEY_CALLBACK
interface ID3DXAnimationSet ID3DXAnimationSet
Definition: d3dx9anim.h:154
_D3DXMESHDATATYPE
Definition: d3dx9anim.h:28
Definition: d3dx9anim.h:404
Definition: d3dx9anim.h:401
HRESULT WINAPI D3DXFrameAppendChild(LPD3DXFRAME pFrameParent, CONST D3DXFRAME *pFrameChild)
interface ID3DXKeyframedAnimationSet ID3DXKeyframedAnimationSet
Definition: d3dx9anim.h:229
Definition: glslang_tab.cpp:136
Definition: d3dx9anim.h:198
HRESULT WINAPI D3DXFrameDestroy(LPD3DXFRAME pFrameRoot, LPD3DXALLOCATEHIERARCHY pAlloc)
Definition: d3dx8math.h:326
_D3DXEVENT_TYPE
Definition: d3dx9anim.h:398
HRESULT WINAPI D3DXSaveMeshHierarchyToFileW(LPCWSTR Filename, DWORD XFormat, CONST D3DXFRAME *pFrameRoot, LPD3DXANIMATIONCONTROLLER pAnimController, LPD3DXSAVEUSERDATA pUserDataSaver)
HRESULT WINAPI D3DXFrameCalculateBoundingSphere(CONST D3DXFRAME *pFrameRoot, LPD3DXVECTOR3 pObjectCenter, FLOAT *pObjectRadius)
DECLARE_INTERFACE_(ID3DXAnimationSet, IUnknown)
Definition: d3dx9anim.h:160
HRESULT WINAPI D3DXSaveMeshHierarchyToFileA(LPCSTR Filename, DWORD XFormat, CONST D3DXFRAME *pFrameRoot, LPD3DXANIMATIONCONTROLLER pAnimcontroller, LPD3DXSAVEUSERDATA pUserDataSaver)
Definition: glslang_tab.cpp:133
enum _D3DXMESHDATATYPE D3DXMESHDATATYPE
Definition: d3dx9anim.h:402
struct _D3DXFRAME * pFrameSibling
Definition: d3dx9anim.h:73
interface ID3DXLoadUserData ID3DXLoadUserData
Definition: d3dx9anim.h:101
Definition: glslang_tab.cpp:131
struct _D3DXFRAME D3DXFRAME
struct _D3DXMESHDATA * LPD3DXMESHDATA
struct _D3DXKEY_VECTOR3 D3DXKEY_VECTOR3
struct _D3DXFRAME * LPD3DXFRAME
DOUBLE Position
Definition: d3dx9anim.h:394
Unknown compiler Device disconnected from port File already exists Saving to backup buffer Got connection Public address Setting disk in tray You have left the game You have joined with input devices *s *s has joined as player u A netplay connection attempt failed because the peer is not running or is running an old version of RetroArch use the same version use the same version This core does not support inter architecture netplay Incorrect password A netplay client has disconnected You do not have permission to play The input devices requested are not available Netplay peer s paused Give hardware rendered cores their own private context Avoids having to assume hardware state changes inbetween frames Adjusts menu screen appearance settings Improves performance at the cost of latency and more video stuttering Use only if you cannot obtain full speed otherwise Autodetect Capabilities Connecting to port Password Username Accounts List Endpoint Achievements Scan Content Import content Ask Block Frames نظام تشغيل الصوت Audio Enable Turbo Deadzone Audio Maximum Timing Skew Audio Output Dynamic Audio Rate Control الصوت Audio Volume WASAPI Exclusive Mode WASAPI Shared Buffer Length Load Override Files Automatically Load Shader Presets Automatically Confirm Quit Scroll Up Toggle Keyboard Basic menu controls Info Scroll Up Toggle Keyboard Don t overwrite SaveRAM on loading savestate Buildbot Assets URL Allow Camera Cheat Cheat File Load Cheat File Cheat Passes Hardcore Mode Achievement Badges Locked Test Unofficial Achievements Unlocked Verbose Mode Config ملفات التكوين Collections Content Allow to remove entries Downloads Cheats Show core name Authors Core label Permissions System manufacturer Controls Options Start a Core Automatically Buildbot Cores URL Updater CPU Cursor Custom Ratio Database Selection Start directory< Default > Directory not found Disk Cycle Tray Status Disk Index Don t care Download Core DPI Override Enable أنظمة التشغيل Check for Missing Firmware Before Loading Dynamic Backgrounds Menu entry hover color False Favorites Limit Maximum Run Speed Frontend Counters Create game options file مساعدة Changing Virtual Gamepad Overlay مساعدة Scanning For Content History List Enable Horizontal Menu معلومات Analog To Digital Type Left Analog X Left analog Left Analog Y Left analog Right Analog X Right analog Right Analog Y Right analog Gun Trigger Gun Aux A Gun Aux C Gun Select Gun D pad Down Gun D pad Right Analog Stick Deadzone Bind All Bind Timeout Hide Unbound Core Input Descriptors Device Index Mouse Index Duty Cycle Keyboard Gamepad Mapping Enable B Down D pad L3 L Left D pad R3 R Right D pad Start button X Y Key
Definition: msg_hash_ar.h:830
D3DXEVENTHANDLE * LPD3DXEVENTHANDLE
Definition: d3dx9anim.h:434
struct _D3DXFRAME * pFrameFirstChild
Definition: d3dx9anim.h:74
LPD3DXMESH pMesh
Definition: d3dx9anim.h:44
Definition: d3dx9anim.h:403
struct ID3DXMesh * LPD3DXMESH
Definition: d3dx8mesh.h:80
interface ID3DXKeyframedAnimationSet * LPD3DXKEYFRAMEDANIMATIONSET
Definition: d3dx9anim.h:230
Definition: d3dx9anim.h:216
struct ID3DXPatchMesh * LPD3DXPATCHMESH
Definition: d3dx9mesh.h:150
Definition: d3dx9anim.h:66
Definition: d3dx9anim.h:37
FLOAT Speed
Definition: d3dx9anim.h:393
Definition: d3dx9anim.h:201