10 #ifndef __D3DX9ANIM_H__
11 #define __D3DX9ANIM_H__
15 0x698cfb3f, 0x9289, 0x4d95, 0x9a, 0x57, 0x33, 0xa9, 0x4b, 0x5a, 0x65, 0xf9);
19 0xfa4e8e3a, 0x9786, 0x407d, 0x8b, 0x4c, 0x59, 0x95, 0x89, 0x37, 0x64, 0xaf);
23 0x6cc2480d, 0x3808, 0x4739, 0x9f, 0x88, 0xde, 0x49, 0xfa, 0xcd, 0x8d, 0x4c);
27 0xac8948ec, 0xf86d, 0x43e2, 0x96, 0xde, 0x31, 0xfc, 0x35, 0xf9, 0x6d, 0x9e);
116 #define INTERFACE ID3DXAllocateHierarchy
134 STDMETHOD(CreateFrame)(THIS_ LPCSTR
Name,
135 LPD3DXFRAME *ppNewFrame) PURE;
168 STDMETHOD(CreateMeshContainer)(THIS_
174 CONST
DWORD *pAdjacency,
176 LPD3DXMESHCONTAINER *ppNewMeshContainer) PURE;
188 STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME pFrameToFree) PURE;
200 STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER pMeshContainerToFree) PURE;
214 #define INTERFACE ID3DXLoadUserData
218 STDMETHOD(LoadTopLevelData)(LPD3DXFILEDATA pXofChildData) PURE;
220 STDMETHOD(LoadFrameChildData)(LPD3DXFRAME pFrame,
221 LPD3DXFILEDATA pXofChildData) PURE;
223 STDMETHOD(LoadMeshChildData)(LPD3DXMESHCONTAINER pMeshContainer,
224 LPD3DXFILEDATA pXofChildData) PURE;
238 #define INTERFACE ID3DXSaveUserData
242 STDMETHOD(AddFrameChildData)(CONST
D3DXFRAME *pFrame,
243 LPD3DXFILESAVEOBJECT pXofSave,
244 LPD3DXFILESAVEDATA pXofFrameData) PURE;
247 LPD3DXFILESAVEOBJECT pXofSave,
248 LPD3DXFILESAVEDATA pXofMeshData) PURE;
252 STDMETHOD(AddTopLevelDataObjectsPre)(LPD3DXFILESAVEOBJECT pXofSave) PURE;
253 STDMETHOD(AddTopLevelDataObjectsPost)(LPD3DXFILESAVEOBJECT pXofSave) PURE;
256 STDMETHOD(RegisterTemplates)(LPD3DXFILE pXFileApi) PURE;
257 STDMETHOD(SaveTemplates)(LPD3DXFILESAVEOBJECT pXofSave) PURE;
283 #define INTERFACE ID3DXAnimationSet
288 STDMETHOD(QueryInterface)(THIS_ REFIID iid,
LPVOID *ppv) PURE;
289 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
290 STDMETHOD_(ULONG, Release)(THIS) PURE;
293 STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
296 STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
297 STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE Position) PURE;
300 STDMETHOD_(
UINT, GetNumAnimations)(THIS) PURE;
301 STDMETHOD(GetAnimationNameByIndex)(THIS_
UINT Index, LPCSTR *ppName) PURE;
302 STDMETHOD(GetAnimationIndexByName)(THIS_ LPCSTR pName,
UINT *pIndex) PURE;
305 STDMETHOD(GetSRT)(THIS_
306 DOUBLE PeriodicPosition,
313 STDMETHOD(GetCallback)(THIS_
316 DOUBLE *pCallbackPosition,
317 LPVOID *ppCallbackData) PURE;
399 #define INTERFACE ID3DXKeyframedAnimationSet
404 STDMETHOD(QueryInterface)(THIS_ REFIID iid,
LPVOID *ppv) PURE;
405 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
406 STDMETHOD_(ULONG, Release)(THIS) PURE;
409 STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
412 STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
413 STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE Position) PURE;
416 STDMETHOD_(
UINT, GetNumAnimations)(THIS) PURE;
417 STDMETHOD(GetAnimationNameByIndex)(THIS_
UINT Index, LPCSTR *ppName) PURE;
418 STDMETHOD(GetAnimationIndexByName)(THIS_ LPCSTR pName,
UINT *pIndex) PURE;
421 STDMETHOD(GetSRT)(THIS_
422 DOUBLE PeriodicPosition,
429 STDMETHOD(GetCallback)(THIS_
432 DOUBLE *pCallbackPosition,
433 LPVOID *ppCallbackData) PURE;
437 STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
440 STDMETHOD_(
UINT, GetNumScaleKeys)(THIS_
UINT Animation) PURE;
441 STDMETHOD(GetScaleKeys)(THIS_
UINT Animation, LPD3DXKEY_VECTOR3 pScaleKeys) PURE;
442 STDMETHOD(GetScaleKey)(THIS_
UINT Animation,
UINT Key, LPD3DXKEY_VECTOR3 pScaleKey) PURE;
443 STDMETHOD(SetScaleKey)(THIS_
UINT Animation,
UINT Key, LPD3DXKEY_VECTOR3 pScaleKey) PURE;
446 STDMETHOD_(
UINT, GetNumRotationKeys)(THIS_
UINT Animation) PURE;
447 STDMETHOD(GetRotationKeys)(THIS_
UINT Animation, LPD3DXKEY_QUATERNION pRotationKeys) PURE;
448 STDMETHOD(GetRotationKey)(THIS_
UINT Animation,
UINT Key, LPD3DXKEY_QUATERNION pRotationKey) PURE;
449 STDMETHOD(SetRotationKey)(THIS_
UINT Animation,
UINT Key, LPD3DXKEY_QUATERNION pRotationKey) PURE;
452 STDMETHOD_(
UINT, GetNumTranslationKeys)(THIS_
UINT Animation) PURE;
453 STDMETHOD(GetTranslationKeys)(THIS_
UINT Animation, LPD3DXKEY_VECTOR3 pTranslationKeys) PURE;
454 STDMETHOD(GetTranslationKey)(THIS_
UINT Animation,
UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey) PURE;
455 STDMETHOD(SetTranslationKey)(THIS_
UINT Animation,
UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey) PURE;
458 STDMETHOD_(
UINT, GetNumCallbackKeys)(THIS) PURE;
459 STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK pCallbackKeys) PURE;
460 STDMETHOD(GetCallbackKey)(THIS_
UINT Key, LPD3DXKEY_CALLBACK pCallbackKey) PURE;
461 STDMETHOD(SetCallbackKey)(THIS_
UINT Key, LPD3DXKEY_CALLBACK pCallbackKey) PURE;
464 STDMETHOD(UnregisterScaleKey)(THIS_
UINT Animation,
UINT Key) PURE;
465 STDMETHOD(UnregisterRotationKey)(THIS_
UINT Animation,
UINT Key) PURE;
466 STDMETHOD(UnregisterTranslationKey)(THIS_
UINT Animation,
UINT Key) PURE;
469 STDMETHOD(RegisterAnimationSRTKeys)(THIS_
472 UINT NumRotationKeys,
473 UINT NumTranslationKeys,
477 DWORD *pAnimationIndex) PURE;
480 STDMETHOD(Compress)(THIS_
483 LPD3DXFRAME pHierarchy,
486 STDMETHOD(UnregisterAnimation)(THIS_
UINT Index) PURE;
499 #define INTERFACE ID3DXCompressedAnimationSet
504 STDMETHOD(QueryInterface)(THIS_ REFIID iid,
LPVOID *ppv) PURE;
505 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
506 STDMETHOD_(ULONG, Release)(THIS) PURE;
509 STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
512 STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
513 STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE Position) PURE;
516 STDMETHOD_(
UINT, GetNumAnimations)(THIS) PURE;
517 STDMETHOD(GetAnimationNameByIndex)(THIS_
UINT Index, LPCSTR *ppName) PURE;
518 STDMETHOD(GetAnimationIndexByName)(THIS_ LPCSTR pName,
UINT *pIndex) PURE;
521 STDMETHOD(GetSRT)(THIS_
522 DOUBLE PeriodicPosition,
529 STDMETHOD(GetCallback)(THIS_
532 DOUBLE *pCallbackPosition,
533 LPVOID *ppCallbackData) PURE;
537 STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
540 STDMETHOD(GetCompressedData)(THIS_
LPD3DXBUFFER *ppCompressedData) PURE;
543 STDMETHOD_(
UINT, GetNumCallbackKeys)(THIS) PURE;
544 STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK pCallbackKeys) PURE;
651 #define INTERFACE ID3DXAnimationCallbackHandler
668 STDMETHOD(HandleCallback)(THIS_
UINT Track,
LPVOID pCallbackData) PURE;
685 #define INTERFACE ID3DXAnimationController
690 STDMETHOD(QueryInterface)(THIS_ REFIID iid,
LPVOID *ppv) PURE;
691 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
692 STDMETHOD_(ULONG, Release)(THIS) PURE;
695 STDMETHOD_(
UINT, GetMaxNumAnimationOutputs)(THIS) PURE;
696 STDMETHOD_(
UINT, GetMaxNumAnimationSets)(THIS) PURE;
697 STDMETHOD_(
UINT, GetMaxNumTracks)(THIS) PURE;
698 STDMETHOD_(
UINT, GetMaxNumEvents)(THIS) PURE;
701 STDMETHOD(RegisterAnimationOutput)(THIS_
712 STDMETHOD_(
UINT, GetNumAnimationSets)(THIS) PURE;
714 STDMETHOD(GetAnimationSetByName)(THIS_ LPCSTR szName,
LPD3DXANIMATIONSET *ppAnimationSet) PURE;
718 STDMETHOD(ResetTime)(THIS) PURE;
719 STDMETHOD_(DOUBLE, GetTime)(THIS) PURE;
727 STDMETHOD(SetTrackSpeed)(THIS_
UINT Track, FLOAT Speed) PURE;
728 STDMETHOD(SetTrackWeight)(THIS_
UINT Track, FLOAT Weight) PURE;
729 STDMETHOD(SetTrackPosition)(THIS_
UINT Track, DOUBLE Position) PURE;
730 STDMETHOD(SetTrackEnable)(THIS_
UINT Track,
BOOL Enable) PURE;
732 STDMETHOD(SetTrackDesc)(THIS_
UINT Track, LPD3DXTRACK_DESC pDesc) PURE;
733 STDMETHOD(GetTrackDesc)(THIS_
UINT Track, LPD3DXTRACK_DESC pDesc) PURE;
736 STDMETHOD(SetPriorityBlend)(THIS_ FLOAT BlendWeight) PURE;
737 STDMETHOD_(FLOAT, GetPriorityBlend)(THIS) PURE;
742 STDMETHOD_(
D3DXEVENTHANDLE, KeyTrackPosition)(THIS_
UINT Track, DOUBLE NewPosition, DOUBLE StartTime) PURE;
750 STDMETHOD(UnkeyAllTrackEvents)(THIS_
UINT Track) PURE;
751 STDMETHOD(UnkeyAllPriorityBlends)(THIS) PURE;
762 STDMETHOD(GetEventDesc)(THIS_
D3DXEVENTHANDLE hEvent, LPD3DXEVENT_DESC pDesc) PURE;
765 STDMETHOD(CloneAnimationController)(THIS_
766 UINT MaxNumAnimationOutputs,
767 UINT MaxNumAnimationSets,
809 LPD3DXFRAME *ppFrameHierarchy,
821 LPD3DXFRAME *ppFrameHierarchy,
826 #define D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXW
828 #define D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXA
840 LPD3DXFRAME *ppFrameHierarchy,
885 #define D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileW
887 #define D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileA
905 LPD3DXFRAME pFrameRoot,
924 LPD3DXFRAME pFrameParent,
963 LPD3DXFRAME pFrameRoot,
1004 FLOAT *pObjectRadius
1034 DOUBLE TicksPerSecond,
1037 UINT NumCallbackKeys,
1070 DOUBLE TicksPerSecond,
1073 UINT NumCallbackKeys,
1100 UINT MaxNumMatrices,
1101 UINT MaxNumAnimationSets,
1110 #endif //__cplusplus
1112 #endif //__D3DX9ANIM_H__
struct _D3DXFRAME * LPD3DXFRAME
struct _D3DXFRAME * pFrameSibling
struct _D3DXTRACK_DESC * LPD3DXTRACK_DESC
struct IDirect3DDevice9 * LPDIRECT3DDEVICE9
interface ID3DXSaveUserData ID3DXSaveUserData
HRESULT WINAPI D3DXCreateCompressedAnimationSet(LPCSTR pName, DOUBLE TicksPerSecond, D3DXPLAYBACK_TYPE Playback, LPD3DXBUFFER pCompressedData, UINT NumCallbackKeys, CONST D3DXKEY_CALLBACK *pCallbackKeys, LPD3DXCOMPRESSEDANIMATIONSET *ppAnimationSet)
D3DXEVENTHANDLE * LPD3DXEVENTHANDLE
HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory(LPCVOID Memory, DWORD SizeOfMemory, DWORD MeshOptions, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXALLOCATEHIERARCHY pAlloc, LPD3DXLOADUSERDATA pUserDataLoader, LPD3DXFRAME *ppFrameHierarchy, LPD3DXANIMATIONCONTROLLER *ppAnimController)
typedef HRESULT(WINAPI *LPD3DXIMTSIGNALCALLBACK)(CONST D3DXVECTOR2 *uv
enum _D3DXCOMPRESSION_FLAGS D3DXCOMPRESSION_FLAGS
LPD3DXFRAME WINAPI D3DXFrameFind(CONST D3DXFRAME *pFrameRoot, LPCSTR Name)
LPD3DXPATCHMESH pPatchMesh
struct _D3DXKEY_CALLBACK D3DXKEY_CALLBACK
HRESULT WINAPI D3DXFrameRegisterNamedMatrices(LPD3DXFRAME pFrameRoot, LPD3DXANIMATIONCONTROLLER pAnimController)
interface ID3DXAnimationController ID3DXAnimationController
enum _D3DXPRIORITY_TYPE D3DXPRIORITY_TYPE
struct ID3DXPatchMesh * LPD3DXPATCHMESH
struct _D3DXKEY_QUATERNION D3DXKEY_QUATERNION
interface ID3DXLoadUserData * LPD3DXLOADUSERDATA
D3DXTRANSITION_TYPE Transition
enum _D3DXEVENT_TYPE D3DXEVENT_TYPE
struct _D3DXKEY_VECTOR3 * LPD3DXKEY_VECTOR3
enum _D3DXPLAYBACK_TYPE D3DXPLAYBACK_TYPE
typedef UINT(WINAPI *PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc)
interface ID3DXSaveUserData * LPD3DXSAVEUSERDATA
enum _D3DXTRANSITION_TYPE D3DXTRANSITION_TYPE
enum _D3DXCALLBACK_SEARCH_FLAGS D3DXCALLBACK_SEARCH_FLAGS
DECLARE_INTERFACE_(IXAudio2, IUnknown)
struct _D3DXFRAME D3DXFRAME
struct _D3DXEVENT_DESC * LPD3DXEVENT_DESC
HRESULT WINAPI D3DXCreateKeyframedAnimationSet(LPCSTR pName, DOUBLE TicksPerSecond, D3DXPLAYBACK_TYPE Playback, UINT NumAnimations, UINT NumCallbackKeys, CONST D3DXKEY_CALLBACK *pCallbackKeys, LPD3DXKEYFRAMEDANIMATIONSET *ppAnimationSet)
struct _D3DXMESHCONTAINER * pNextMeshContainer
struct _D3DXEVENT_DESC D3DXEVENT_DESC
struct _D3DXMESHCONTAINER * LPD3DXMESHCONTAINER
struct _D3DXFRAME * pFrameFirstChild
interface ID3DXAnimationSet ID3DXAnimationSet
struct ID3DXSkinInfo * LPD3DXSKININFO
interface ID3DXAnimationCallbackHandler * LPD3DXANIMATIONCALLBACKHANDLER
interface ID3DXCompressedAnimationSet ID3DXCompressedAnimationSet
HRESULT WINAPI D3DXLoadMeshHierarchyFromXW(LPCWSTR Filename, DWORD MeshOptions, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXALLOCATEHIERARCHY pAlloc, LPD3DXLOADUSERDATA pUserDataLoader, LPD3DXFRAME *ppFrameHierarchy, LPD3DXANIMATIONCONTROLLER *ppAnimController)
interface ID3DXCompressedAnimationSet * LPD3DXCOMPRESSEDANIMATIONSET
DEFINE_GUID(KSDATAFORMAT_SUBTYPE_PCM, 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71)
UINT WINAPI D3DXFrameNumNamedMatrices(CONST D3DXFRAME *pFrameRoot)
D3DXPRIORITY_TYPE Priority
interface ID3DXAllocateHierarchy ID3DXAllocateHierarchy
DECLARE_INTERFACE(IXAudio2Voice)
HRESULT WINAPI D3DXSaveMeshHierarchyToFileA(LPCSTR Filename, DWORD XFormat, CONST D3DXFRAME *pFrameRoot, LPD3DXANIMATIONCONTROLLER pAnimcontroller, LPD3DXSAVEUSERDATA pUserDataSaver)
struct _D3DXMESHDATA * LPD3DXMESHDATA
LPD3DXEFFECTINSTANCE pEffects
typedef LPVOID(WINAPI *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC
HRESULT WINAPI D3DXCreateAnimationController(UINT MaxNumMatrices, UINT MaxNumAnimationSets, UINT MaxNumTracks, UINT MaxNumEvents, LPD3DXANIMATIONCONTROLLER *ppAnimController)
struct _D3DXTRACK_DESC D3DXTRACK_DESC
interface ID3DXAllocateHierarchy * LPD3DXALLOCATEHIERARCHY
enum _D3DXMESHDATATYPE D3DXMESHDATATYPE
HRESULT WINAPI D3DXFrameDestroy(LPD3DXFRAME pFrameRoot, LPD3DXALLOCATEHIERARCHY pAlloc)
struct _D3DXMESHDATA D3DXMESHDATA
interface ID3DXAnimationCallbackHandler ID3DXAnimationCallbackHandler
HRESULT WINAPI D3DXFrameAppendChild(LPD3DXFRAME pFrameParent, CONST D3DXFRAME *pFrameChild)
typedef DWORD(WINAPI *XInputGetState_t)(DWORD dwUserIndex
interface ID3DXBuffer * LPD3DXBUFFER
struct _D3DXMESHCONTAINER D3DXMESHCONTAINER
interface ID3DXAnimationController * LPD3DXANIMATIONCONTROLLER
struct _D3DXKEY_CALLBACK * LPD3DXKEY_CALLBACK
struct _D3DXKEY_QUATERNION * LPD3DXKEY_QUATERNION
_D3DXCALLBACK_SEARCH_FLAGS
struct _D3DXKEY_VECTOR3 D3DXKEY_VECTOR3
interface ID3DXLoadUserData ID3DXLoadUserData
struct ID3DXPMesh * LPD3DXPMESH
HRESULT WINAPI D3DXSaveMeshHierarchyToFileW(LPCWSTR Filename, DWORD XFormat, CONST D3DXFRAME *pFrameRoot, LPD3DXANIMATIONCONTROLLER pAnimController, LPD3DXSAVEUSERDATA pUserDataSaver)
interface ID3DXKeyframedAnimationSet * LPD3DXKEYFRAMEDANIMATIONSET
HRESULT WINAPI D3DXFrameCalculateBoundingSphere(CONST D3DXFRAME *pFrameRoot, LPD3DXVECTOR3 pObjectCenter, FLOAT *pObjectRadius)
LPD3DXMESHCONTAINER pMeshContainer
D3DXMATRIX TransformationMatrix
HRESULT WINAPI D3DXLoadMeshHierarchyFromXA(LPCSTR Filename, DWORD MeshOptions, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXALLOCATEHIERARCHY pAlloc, LPD3DXLOADUSERDATA pUserDataLoader, LPD3DXFRAME *ppFrameHierarchy, LPD3DXANIMATIONCONTROLLER *ppAnimController)
interface ID3DXKeyframedAnimationSet ID3DXKeyframedAnimationSet
LPD3DXMATERIAL pMaterials
struct ID3DXMesh * LPD3DXMESH
typedef BOOL(WINAPI *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC
interface ID3DXAnimationSet * LPD3DXANIMATIONSET