ReactOS 0.4.17-dev-934-g091855f
d3dx9anim.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _D3DXMESHDATA
 
struct  _D3DXMESHCONTAINER
 
struct  _D3DXFRAME
 
struct  _D3DXKEY_VECTOR3
 
struct  _D3DXKEY_QUATERNION
 
struct  _D3DXKEY_CALLBACK
 
struct  _D3DXTRACK_DESC
 
struct  _D3DXEVENT_DESC
 

Macros

#define INTERFACE   ID3DXAllocateHierarchy
 
#define INTERFACE   ID3DXLoadUserData
 
#define INTERFACE   ID3DXSaveUserData
 
#define INTERFACE   ID3DXAnimationSet
 
#define INTERFACE   ID3DXKeyframedAnimationSet
 
#define INTERFACE   ID3DXCompressedAnimationSet
 
#define INTERFACE   ID3DXAnimationCallbackHandler
 
#define INTERFACE   ID3DXAnimationController
 
#define D3DXLoadMeshHierarchyFromX   WINELIB_NAME_AW(D3DXLoadMeshHierarchyFromX)
 
#define D3DXSaveMeshHierarchyToFile   WINELIB_NAME_AW(D3DXSaveMeshHierarchyToFile)
 

Typedefs

typedef enum _D3DXMESHDATATYPE D3DXMESHDATATYPE
 
typedef enum _D3DXCALLBACK_SEARCH_FLAGS D3DXCALLBACK_SEARCH_FLAGS
 
typedef enum _D3DXPLAYBACK_TYPE D3DXPLAYBACK_TYPE
 
typedef enum _D3DXCOMPRESSION_FLAGS D3DXCOMPRESSION_FLAGS
 
typedef enum _D3DXPRIORITY_TYPE D3DXPRIORITY_TYPE
 
typedef enum _D3DXEVENT_TYPE D3DXEVENT_TYPE
 
typedef enum _D3DXTRANSITION_TYPE D3DXTRANSITION_TYPE
 
typedef struct _D3DXMESHDATA D3DXMESHDATA
 
typedef struct _D3DXMESHDATA * LPD3DXMESHDATA
 
typedef struct _D3DXMESHCONTAINER D3DXMESHCONTAINER
 
typedef struct _D3DXMESHCONTAINER * LPD3DXMESHCONTAINER
 
typedef struct _D3DXFRAME D3DXFRAME
 
typedef struct _D3DXFRAME * LPD3DXFRAME
 
typedef struct _D3DXKEY_VECTOR3 D3DXKEY_VECTOR3
 
typedef struct _D3DXKEY_VECTOR3 * LPD3DXKEY_VECTOR3
 
typedef struct _D3DXKEY_QUATERNION D3DXKEY_QUATERNION
 
typedef struct _D3DXKEY_QUATERNION * LPD3DXKEY_QUATERNION
 
typedef struct _D3DXKEY_CALLBACK D3DXKEY_CALLBACK
 
typedef struct _D3DXKEY_CALLBACK * LPD3DXKEY_CALLBACK
 
typedef struct _D3DXTRACK_DESC D3DXTRACK_DESC
 
typedef struct _D3DXTRACK_DESC * LPD3DXTRACK_DESC
 
typedef struct _D3DXEVENT_DESC D3DXEVENT_DESC
 
typedef struct _D3DXEVENT_DESC * LPD3DXEVENT_DESC
 
typedef DWORD D3DXEVENTHANDLE
 
typedef DWORD * LPD3DXEVENTHANDLE
 
typedef interface ID3DXAllocateHierarchy * LPD3DXALLOCATEHIERARCHY
 
typedef interface ID3DXLoadUserData * LPD3DXLOADUSERDATA
 
typedef interface ID3DXSaveUserData * LPD3DXSAVEUSERDATA
 
typedef interface ID3DXAnimationSet * LPD3DXANIMATIONSET
 
typedef interface ID3DXKeyframedAnimationSet * LPD3DXKEYFRAMEDANIMATIONSET
 
typedef interface ID3DXCompressedAnimationSet * LPD3DXCOMPRESSEDANIMATIONSET
 
typedef interface ID3DXAnimationCallbackHandler * LPD3DXANIMATIONCALLBACKHANDLER
 
typedef interface ID3DXAnimationController * LPD3DXANIMATIONCONTROLLER
 

Enumerations

enum  _D3DXMESHDATATYPE {
  D3DXMESHTYPE_MESH = 1 , D3DXMESHTYPE_PMESH = 2 , D3DXMESHTYPE_PATCHMESH = 3 , D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff ,
  D3DXMESHTYPE_MESH = 1 , D3DXMESHTYPE_PMESH = 2 , D3DXMESHTYPE_PATCHMESH = 3 , D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff
}
 
enum  _D3DXCALLBACK_SEARCH_FLAGS {
  D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = 0x00000001 , D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = 0x00000002 , D3DXCALLBACK_SEARCH_FORCE_DWORD = 0x7fffffff , D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = 0x00000001 ,
  D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = 0x00000002 , D3DXCALLBACK_SEARCH_FORCE_DWORD = 0x7fffffff
}
 
enum  _D3DXPLAYBACK_TYPE {
  D3DXPLAY_LOOP = 0 , D3DXPLAY_ONCE = 1 , D3DXPLAY_PINGPONG = 2 , D3DXPLAY_FORCE_DWORD = 0x7fffffff ,
  D3DXPLAY_LOOP = 0 , D3DXPLAY_ONCE = 1 , D3DXPLAY_PINGPONG = 2 , D3DXPLAY_FORCE_DWORD = 0x7fffffff
}
 
enum  _D3DXCOMPRESSION_FLAGS { D3DXCOMPRESSION_DEFAULT = 0x00000000 , D3DXCOMPRESSION_FORCE_DWORD = 0x7fffffff , D3DXCOMPRESSION_DEFAULT = 0x00000000 , D3DXCOMPRESSION_FORCE_DWORD = 0x7fffffff }
 
enum  _D3DXPRIORITY_TYPE {
  D3DXPRIORITY_LOW = 0 , D3DXPRIORITY_HIGH = 1 , D3DXPRIORITY_FORCE_DWORD = 0x7fffffff , D3DXPRIORITY_LOW = 0 ,
  D3DXPRIORITY_HIGH = 1 , D3DXPRIORITY_FORCE_DWORD = 0x7fffffff
}
 
enum  _D3DXEVENT_TYPE {
  D3DXEVENT_TRACKSPEED = 0 , D3DXEVENT_TRACKWEIGHT = 1 , D3DXEVENT_TRACKPOSITION = 2 , D3DXEVENT_TRACKENABLE = 3 ,
  D3DXEVENT_PRIORITYBLEND = 4 , D3DXEVENT_FORCE_DWORD = 0x7fffffff , D3DXEVENT_TRACKSPEED = 0 , D3DXEVENT_TRACKWEIGHT = 1 ,
  D3DXEVENT_TRACKPOSITION = 2 , D3DXEVENT_TRACKENABLE = 3 , D3DXEVENT_PRIORITYBLEND = 4 , D3DXEVENT_FORCE_DWORD = 0x7fffffff
}
 
enum  _D3DXTRANSITION_TYPE {
  D3DXTRANSITION_LINEAR = 0 , D3DXTRANSITION_EASEINEASEOUT = 1 , D3DXTRANSITION_FORCE_DWORD = 0x7fffffff , D3DXTRANSITION_LINEAR = 0 ,
  D3DXTRANSITION_EASEINEASEOUT = 1 , D3DXTRANSITION_FORCE_DWORD = 0x7fffffff
}
 

Functions

 DEFINE_GUID (IID_ID3DXAnimationSet, 0x698cfb3f, 0x9289, 0x4d95, 0x9a, 0x57, 0x33, 0xa9, 0x4b, 0x5a, 0x65, 0xf9)
 
 DEFINE_GUID (IID_ID3DXKeyframedAnimationSet, 0xfa4e8e3a, 0x9786, 0x407d, 0x8b, 0x4c, 0x59, 0x95, 0x89, 0x37, 0x64, 0xaf)
 
 DEFINE_GUID (IID_ID3DXCompressedAnimationSet, 0x6cc2480d, 0x3808, 0x4739, 0x9f, 0x88, 0xde, 0x49, 0xfa, 0xcd, 0x8d, 0x4c)
 
 DEFINE_GUID (IID_ID3DXAnimationController, 0xac8948ec, 0xf86d, 0x43e2, 0x96, 0xde, 0x31, 0xfc, 0x35, 0xf9, 0x6d, 0x9e)
 
 DECLARE_INTERFACE (ID3DXAllocateHierarchy)
 
 DECLARE_INTERFACE (ID3DXLoadUserData)
 
 DECLARE_INTERFACE (ID3DXSaveUserData)
 
 DECLARE_INTERFACE_ (ID3DXAnimationSet, IUnknown)
 
 DECLARE_INTERFACE_ (ID3DXKeyframedAnimationSet, ID3DXAnimationSet)
 
 DECLARE_INTERFACE_ (ID3DXCompressedAnimationSet, ID3DXAnimationSet)
 
 DECLARE_INTERFACE (ID3DXAnimationCallbackHandler)
 
 DECLARE_INTERFACE_ (ID3DXAnimationController, IUnknown)
 
HRESULT WINAPI D3DXLoadMeshHierarchyFromXA (const char *filename, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader, D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller)
 
HRESULT WINAPI D3DXLoadMeshHierarchyFromXW (const WCHAR *filename, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader, D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller)
 
HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory (const void *data, DWORD data_size, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader, D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller)
 
HRESULT WINAPI D3DXSaveMeshHierarchyToFileA (const char *filename, DWORD format, const D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller, ID3DXSaveUserData *user_data_saver)
 
HRESULT WINAPI D3DXSaveMeshHierarchyToFileW (const WCHAR *filename, DWORD format, const D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller, ID3DXSaveUserData *user_data_saver)
 
HRESULT WINAPI D3DXFrameDestroy (D3DXFRAME *frame_root, ID3DXAllocateHierarchy *alloc)
 
HRESULT WINAPI D3DXFrameAppendChild (D3DXFRAME *parent, const D3DXFRAME *child)
 
D3DXFRAME *WINAPI D3DXFrameFind (const D3DXFRAME *root, const char *name)
 
HRESULT WINAPI D3DXFrameRegisterNamedMatrices (D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller)
 
UINT WINAPI D3DXFrameNumNamedMatrices (const D3DXFRAME *frame_root)
 
HRESULT WINAPI D3DXFrameCalculateBoundingSphere (const D3DXFRAME *frame_root, D3DXVECTOR3 *center, FLOAT *radius)
 
HRESULT WINAPI D3DXCreateKeyframedAnimationSet (const char *name, double ticks_per_second, D3DXPLAYBACK_TYPE playback_type, UINT animation_count, UINT callback_key_count, const D3DXKEY_CALLBACK *callback_keys, ID3DXKeyframedAnimationSet **animation_set)
 
HRESULT WINAPI D3DXCreateCompressedAnimationSet (const char *name, double ticks_per_second, D3DXPLAYBACK_TYPE playback_type, ID3DXBuffer *compressed_data, UINT callback_key_count, const D3DXKEY_CALLBACK *callback_keys, ID3DXCompressedAnimationSet **animation_set)
 
HRESULT WINAPI D3DXCreateAnimationController (UINT max_animation_output_count, UINT max_animation_set_count, UINT max_track_count, UINT max_event_count, ID3DXAnimationController **animation_controller)
 

Macro Definition Documentation

◆ D3DXLoadMeshHierarchyFromX

#define D3DXLoadMeshHierarchyFromX   WINELIB_NAME_AW(D3DXLoadMeshHierarchyFromX)

Definition at line 376 of file d3dx9anim.h.

◆ D3DXSaveMeshHierarchyToFile

#define D3DXSaveMeshHierarchyToFile   WINELIB_NAME_AW(D3DXSaveMeshHierarchyToFile)

Definition at line 387 of file d3dx9anim.h.

◆ INTERFACE [1/8]

#define INTERFACE   ID3DXAllocateHierarchy

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [2/8]

#define INTERFACE   ID3DXLoadUserData

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [3/8]

#define INTERFACE   ID3DXSaveUserData

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [4/8]

#define INTERFACE   ID3DXAnimationSet

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [5/8]

#define INTERFACE   ID3DXKeyframedAnimationSet

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [6/8]

#define INTERFACE   ID3DXCompressedAnimationSet

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [7/8]

#define INTERFACE   ID3DXAnimationCallbackHandler

Definition at line 311 of file d3dx9anim.h.

◆ INTERFACE [8/8]

#define INTERFACE   ID3DXAnimationController

Definition at line 311 of file d3dx9anim.h.

Typedef Documentation

◆ D3DXCALLBACK_SEARCH_FLAGS

◆ D3DXCOMPRESSION_FLAGS

◆ D3DXEVENT_DESC

◆ D3DXEVENT_TYPE

◆ D3DXEVENTHANDLE

Definition at line 157 of file d3dx9anim.h.

◆ D3DXFRAME

◆ D3DXKEY_CALLBACK

◆ D3DXKEY_QUATERNION

◆ D3DXKEY_VECTOR3

◆ D3DXMESHCONTAINER

◆ D3DXMESHDATA

◆ D3DXMESHDATATYPE

◆ D3DXPLAYBACK_TYPE

◆ D3DXPRIORITY_TYPE

◆ D3DXTRACK_DESC

◆ D3DXTRANSITION_TYPE

◆ LPD3DXALLOCATEHIERARCHY

typedef interface ID3DXAllocateHierarchy* LPD3DXALLOCATEHIERARCHY

Definition at line 159 of file d3dx9anim.h.

◆ LPD3DXANIMATIONCALLBACKHANDLER

typedef interface ID3DXAnimationCallbackHandler* LPD3DXANIMATIONCALLBACKHANDLER

Definition at line 165 of file d3dx9anim.h.

◆ LPD3DXANIMATIONCONTROLLER

typedef interface ID3DXAnimationController* LPD3DXANIMATIONCONTROLLER

Definition at line 166 of file d3dx9anim.h.

◆ LPD3DXANIMATIONSET

typedef interface ID3DXAnimationSet* LPD3DXANIMATIONSET

Definition at line 162 of file d3dx9anim.h.

◆ LPD3DXCOMPRESSEDANIMATIONSET

typedef interface ID3DXCompressedAnimationSet* LPD3DXCOMPRESSEDANIMATIONSET

Definition at line 164 of file d3dx9anim.h.

◆ LPD3DXEVENT_DESC

◆ LPD3DXEVENTHANDLE

Definition at line 157 of file d3dx9anim.h.

◆ LPD3DXFRAME

◆ LPD3DXKEY_CALLBACK

◆ LPD3DXKEY_QUATERNION

◆ LPD3DXKEY_VECTOR3

◆ LPD3DXKEYFRAMEDANIMATIONSET

typedef interface ID3DXKeyframedAnimationSet* LPD3DXKEYFRAMEDANIMATIONSET

Definition at line 163 of file d3dx9anim.h.

◆ LPD3DXLOADUSERDATA

typedef interface ID3DXLoadUserData* LPD3DXLOADUSERDATA

Definition at line 160 of file d3dx9anim.h.

◆ LPD3DXMESHCONTAINER

◆ LPD3DXMESHDATA

◆ LPD3DXSAVEUSERDATA

typedef interface ID3DXSaveUserData* LPD3DXSAVEUSERDATA

Definition at line 161 of file d3dx9anim.h.

◆ LPD3DXTRACK_DESC

Enumeration Type Documentation

◆ _D3DXCALLBACK_SEARCH_FLAGS

Enumerator
D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION 
D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION 
D3DXCALLBACK_SEARCH_FORCE_DWORD 
D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION 
D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION 
D3DXCALLBACK_SEARCH_FORCE_DWORD 

Definition at line 35 of file d3dx9anim.h.

36{
@ D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION
Definition: d3dx9anim.h:37
@ D3DXCALLBACK_SEARCH_FORCE_DWORD
Definition: d3dx9anim.h:39
@ D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION
Definition: d3dx9anim.h:38
enum _D3DXCALLBACK_SEARCH_FLAGS D3DXCALLBACK_SEARCH_FLAGS

◆ _D3DXCOMPRESSION_FLAGS

Enumerator
D3DXCOMPRESSION_DEFAULT 
D3DXCOMPRESSION_FORCE_DWORD 
D3DXCOMPRESSION_DEFAULT 
D3DXCOMPRESSION_FORCE_DWORD 

Definition at line 50 of file d3dx9anim.h.

51{
52 D3DXCOMPRESSION_DEFAULT = 0x00000000,
53 D3DXCOMPRESSION_FORCE_DWORD = 0x7fffffff,
@ D3DXCOMPRESSION_FORCE_DWORD
Definition: d3dx9anim.h:53
@ D3DXCOMPRESSION_DEFAULT
Definition: d3dx9anim.h:52
enum _D3DXCOMPRESSION_FLAGS D3DXCOMPRESSION_FLAGS

◆ _D3DXEVENT_TYPE

Enumerator
D3DXEVENT_TRACKSPEED 
D3DXEVENT_TRACKWEIGHT 
D3DXEVENT_TRACKPOSITION 
D3DXEVENT_TRACKENABLE 
D3DXEVENT_PRIORITYBLEND 
D3DXEVENT_FORCE_DWORD 
D3DXEVENT_TRACKSPEED 
D3DXEVENT_TRACKWEIGHT 
D3DXEVENT_TRACKPOSITION 
D3DXEVENT_TRACKENABLE 
D3DXEVENT_PRIORITYBLEND 
D3DXEVENT_FORCE_DWORD 

Definition at line 63 of file d3dx9anim.h.

64{
70 D3DXEVENT_FORCE_DWORD = 0x7fffffff,
@ D3DXEVENT_TRACKPOSITION
Definition: d3dx9anim.h:67
@ D3DXEVENT_TRACKENABLE
Definition: d3dx9anim.h:68
@ D3DXEVENT_PRIORITYBLEND
Definition: d3dx9anim.h:69
@ D3DXEVENT_TRACKSPEED
Definition: d3dx9anim.h:65
@ D3DXEVENT_FORCE_DWORD
Definition: d3dx9anim.h:70
@ D3DXEVENT_TRACKWEIGHT
Definition: d3dx9anim.h:66
enum _D3DXEVENT_TYPE D3DXEVENT_TYPE

◆ _D3DXMESHDATATYPE

Enumerator
D3DXMESHTYPE_MESH 
D3DXMESHTYPE_PMESH 
D3DXMESHTYPE_PATCHMESH 
D3DXMESHTYPE_FORCE_DWORD 
D3DXMESHTYPE_MESH 
D3DXMESHTYPE_PMESH 
D3DXMESHTYPE_PATCHMESH 
D3DXMESHTYPE_FORCE_DWORD 

Definition at line 27 of file d3dx9anim.h.

28{
32 D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff,
enum _D3DXMESHDATATYPE D3DXMESHDATATYPE
@ D3DXMESHTYPE_FORCE_DWORD
Definition: d3dx9anim.h:32
@ D3DXMESHTYPE_PATCHMESH
Definition: d3dx9anim.h:31
@ D3DXMESHTYPE_PMESH
Definition: d3dx9anim.h:30
@ D3DXMESHTYPE_MESH
Definition: d3dx9anim.h:29

◆ _D3DXPLAYBACK_TYPE

Enumerator
D3DXPLAY_LOOP 
D3DXPLAY_ONCE 
D3DXPLAY_PINGPONG 
D3DXPLAY_FORCE_DWORD 
D3DXPLAY_LOOP 
D3DXPLAY_ONCE 
D3DXPLAY_PINGPONG 
D3DXPLAY_FORCE_DWORD 

Definition at line 42 of file d3dx9anim.h.

43{
44 D3DXPLAY_LOOP = 0,
45 D3DXPLAY_ONCE = 1,
47 D3DXPLAY_FORCE_DWORD = 0x7fffffff,
enum _D3DXPLAYBACK_TYPE D3DXPLAYBACK_TYPE
@ D3DXPLAY_ONCE
Definition: d3dx9anim.h:45
@ D3DXPLAY_LOOP
Definition: d3dx9anim.h:44
@ D3DXPLAY_FORCE_DWORD
Definition: d3dx9anim.h:47
@ D3DXPLAY_PINGPONG
Definition: d3dx9anim.h:46

◆ _D3DXPRIORITY_TYPE

Enumerator
D3DXPRIORITY_LOW 
D3DXPRIORITY_HIGH 
D3DXPRIORITY_FORCE_DWORD 
D3DXPRIORITY_LOW 
D3DXPRIORITY_HIGH 
D3DXPRIORITY_FORCE_DWORD 

Definition at line 56 of file d3dx9anim.h.

57{
60 D3DXPRIORITY_FORCE_DWORD = 0x7fffffff,
enum _D3DXPRIORITY_TYPE D3DXPRIORITY_TYPE
@ D3DXPRIORITY_FORCE_DWORD
Definition: d3dx9anim.h:60
@ D3DXPRIORITY_HIGH
Definition: d3dx9anim.h:59
@ D3DXPRIORITY_LOW
Definition: d3dx9anim.h:58

◆ _D3DXTRANSITION_TYPE

Enumerator
D3DXTRANSITION_LINEAR 
D3DXTRANSITION_EASEINEASEOUT 
D3DXTRANSITION_FORCE_DWORD 
D3DXTRANSITION_LINEAR 
D3DXTRANSITION_EASEINEASEOUT 
D3DXTRANSITION_FORCE_DWORD 

Definition at line 73 of file d3dx9anim.h.

74{
77 D3DXTRANSITION_FORCE_DWORD = 0x7fffffff,
enum _D3DXTRANSITION_TYPE D3DXTRANSITION_TYPE
@ D3DXTRANSITION_LINEAR
Definition: d3dx9anim.h:75
@ D3DXTRANSITION_FORCE_DWORD
Definition: d3dx9anim.h:77
@ D3DXTRANSITION_EASEINEASEOUT
Definition: d3dx9anim.h:76

Function Documentation

◆ D3DXCreateAnimationController()

HRESULT WINAPI D3DXCreateAnimationController ( UINT  max_animation_output_count,
UINT  max_animation_set_count,
UINT  max_track_count,
UINT  max_event_count,
ID3DXAnimationController **  animation_controller 
)

Definition at line 444 of file animation.c.

446{
448
449 TRACE("max_outputs %u, max_sets %u, max_tracks %u, max_events %u, controller %p.\n",
451
452 if (!max_outputs || !max_sets || !max_tracks || !max_events || !controller)
453 return D3D_OK;
454
455 object = calloc(1, sizeof(*object));
456 if (!object)
457 return E_OUTOFMEMORY;
458
459 object->ID3DXAnimationController_iface.lpVtbl = &d3dx9_animation_controller_vtbl;
460 object->ref = 1;
461 object->max_outputs = max_outputs;
462 object->max_sets = max_sets;
463 object->max_tracks = max_tracks;
464 object->max_events = max_events;
465
466 *controller = &object->ID3DXAnimationController_iface;
467
468 return D3D_OK;
469}
static const struct ID3DXAnimationControllerVtbl d3dx9_animation_controller_vtbl
Definition: animation.c:398
#define D3D_OK
Definition: d3d.h:106
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define calloc
Definition: rosglue.h:14
#define TRACE(s)
Definition: solgame.cpp:4

◆ D3DXCreateCompressedAnimationSet()

HRESULT WINAPI D3DXCreateCompressedAnimationSet ( const char *  name,
double  ticks_per_second,
D3DXPLAYBACK_TYPE  playback_type,
ID3DXBuffer *  compressed_data,
UINT  callback_key_count,
const D3DXKEY_CALLBACK *  callback_keys,
ID3DXCompressedAnimationSet **  animation_set 
)

◆ D3DXCreateKeyframedAnimationSet()

HRESULT WINAPI D3DXCreateKeyframedAnimationSet ( const char *  name,
double  ticks_per_second,
D3DXPLAYBACK_TYPE  playback_type,
UINT  animation_count,
UINT  callback_key_count,
const D3DXKEY_CALLBACK *  callback_keys,
ID3DXKeyframedAnimationSet **  animation_set 
)

Definition at line 858 of file animation.c.

861{
863
864 TRACE("name %s, ticks_per_second %.16e, playback_type %u, animation_count %u, "
865 "callback_key_count %u, callback_keys %p, animation_set %p.\n",
867 callback_key_count, callback_keys, animation_set);
868
869 if (!animation_count)
870 return D3DERR_INVALIDCALL;
871
872 if (!(object = calloc(1, sizeof(*object))))
873 return E_OUTOFMEMORY;
874
875 object->ID3DXKeyframedAnimationSet_iface.lpVtbl = &d3dx9_keyframed_animation_vtbl;
876 object->ref = 1;
877 if (!(object->name = strdup(name)))
878 {
879 free(object);
880 return E_OUTOFMEMORY;
881 }
882 object->ticks_per_second = ticks_per_second;
883 object->playback_type = playback_type;
884 object->animation_count = animation_count;
885 object->callback_key_count = callback_key_count;
886 object->callback_keys = callback_keys;
887
888 *animation_set = &object->ID3DXKeyframedAnimationSet_iface;
889
890 return D3D_OK;
891}
static const struct ID3DXKeyframedAnimationSetVtbl d3dx9_keyframed_animation_vtbl
Definition: animation.c:819
#define D3DERR_INVALIDCALL
Definition: d3d10_private.h:42
#define free
Definition: debug_ros.c:5
static char * strdup(const char *buf)
Definition: string.h:83
#define debugstr_a
Definition: kernel32.h:31
const D3DXKEY_CALLBACK * callback_keys
Definition: animation.c:481
D3DXPLAYBACK_TYPE playback_type
Definition: animation.c:478
unsigned int callback_key_count
Definition: animation.c:480
Definition: name.c:39

◆ D3DXFrameAppendChild()

HRESULT WINAPI D3DXFrameAppendChild ( D3DXFRAME *  parent,
const D3DXFRAME *  child 
)

◆ D3DXFrameCalculateBoundingSphere()

HRESULT WINAPI D3DXFrameCalculateBoundingSphere ( const D3DXFRAME *  frame_root,
D3DXVECTOR3 *  center,
FLOAT *  radius 
)

◆ D3DXFrameDestroy()

HRESULT WINAPI D3DXFrameDestroy ( D3DXFRAME *  frame_root,
ID3DXAllocateHierarchy *  alloc 
)

Definition at line 4101 of file mesh.c.

4102{
4103 HRESULT hr;
4104 BOOL last = FALSE;
4105
4106 TRACE("(%p, %p)\n", frame, alloc_hier);
4107
4108 if (!frame || !alloc_hier)
4109 return D3DERR_INVALIDCALL;
4110
4111 while (!last) {
4113 D3DXFRAME *current_frame;
4114
4115 if (frame->pFrameSibling) {
4116 current_frame = frame->pFrameSibling;
4117 frame->pFrameSibling = current_frame->pFrameSibling;
4118 current_frame->pFrameSibling = NULL;
4119 } else {
4120 current_frame = frame;
4121 last = TRUE;
4122 }
4123
4124 if (current_frame->pFrameFirstChild) {
4126 if (FAILED(hr)) return hr;
4127 current_frame->pFrameFirstChild = NULL;
4128 }
4129
4130 container = current_frame->pMeshContainer;
4131 while (container) {
4132 D3DXMESHCONTAINER *next_container = container->pNextMeshContainer;
4133 hr = alloc_hier->lpVtbl->DestroyMeshContainer(alloc_hier, container);
4134 if (FAILED(hr)) return hr;
4135 container = next_container;
4136 }
4137 hr = alloc_hier->lpVtbl->DestroyFrame(alloc_hier, current_frame);
4138 if (FAILED(hr)) return hr;
4139 }
4140 return D3D_OK;
4141}
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame, ID3DXAllocateHierarchy *alloc_hier)
Definition: mesh.c:4101
unsigned int BOOL
Definition: ntddk_ex.h:94
#define FAILED(hr)
Definition: intsafe.h:51
static ID3DXAllocateHierarchy alloc_hier
Definition: mesh.c:1991
static const LARGE_INTEGER *static const HANDLE const LARGE_INTEGER *static PSLIST_ENTRY PSLIST_ENTRY last
Definition: sync.c:64
struct _D3DXFRAME * pFrameSibling
Definition: d3dx9anim.h:110
LPD3DXMESHCONTAINER pMeshContainer
Definition: d3dx9anim.h:109
struct _D3DXFRAME * pFrameFirstChild
Definition: d3dx9anim.h:111

◆ D3DXFrameFind()

D3DXFRAME *WINAPI D3DXFrameFind ( const D3DXFRAME *  root,
const char *  name 
)

Definition at line 7716 of file mesh.c.

7717{
7718 D3DXFRAME *found = NULL, *frame;
7719 struct list queue;
7720
7721 TRACE("root frame %p, name %s.\n", root, debugstr_a(name));
7722
7723 if (!root)
7724 return NULL;
7725
7726 list_init(&queue);
7727
7728 frame = (D3DXFRAME *)root;
7729
7730 for (;;)
7731 {
7732 struct frame_node *node;
7733
7734 while (frame)
7735 {
7736 if ((name && frame->Name && !strcmp(frame->Name, name)) || (!name && !frame->Name))
7737 {
7738 found = frame;
7739 goto cleanup;
7740 }
7741
7743 goto cleanup;
7744
7746 }
7747
7748 if (list_empty(&queue))
7749 break;
7750
7752 list_remove(&node->entry);
7753 frame = node->frame->pFrameFirstChild;
7754 free(node);
7755 }
7756
7757cleanup:
7759
7760 return found;
7761}
static void list_remove(struct list_entry *entry)
Definition: list.h:90
static int list_empty(struct list_entry *head)
Definition: list.h:58
static void list_init(struct list_entry *head)
Definition: list.h:51
Definition: list.h:39
static void empty_frame_queue(struct list *queue)
Definition: mesh.c:7706
static BOOL queue_frame_node(struct list *queue, D3DXFRAME *frame)
Definition: mesh.c:7689
static void cleanup(void)
Definition: main.c:1335
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
uint32_t entry
Definition: isohybrid.c:63
char * Name
Definition: d3dx9anim.h:107
D3DXFRAME * frame
Definition: mesh.c:7686
Definition: list.h:15
Definition: queue.c:179
#define LIST_ENTRY(type)
Definition: queue.h:175
Definition: dlist.c:348

◆ D3DXFrameNumNamedMatrices()

UINT WINAPI D3DXFrameNumNamedMatrices ( const D3DXFRAME *  frame_root)

◆ D3DXFrameRegisterNamedMatrices()

HRESULT WINAPI D3DXFrameRegisterNamedMatrices ( D3DXFRAME *  frame_root,
ID3DXAnimationController *  animation_controller 
)

◆ D3DXLoadMeshHierarchyFromXA()

HRESULT WINAPI D3DXLoadMeshHierarchyFromXA ( const char *  filename,
DWORD  flags,
struct IDirect3DDevice9 *  device,
struct ID3DXAllocateHierarchy *  alloc,
struct ID3DXLoadUserData *  user_data_loader,
D3DXFRAME **  frame_hierarchy,
struct ID3DXAnimationController **  animation_controller 
)

Definition at line 3746 of file mesh.c.

3749{
3751 HRESULT hr;
3752 int len;
3753
3754 TRACE("filename %s, options %#lx, device %p, alloc_hier %p, "
3755 "load_user_data %p, frame_hierarchy %p, anim_controller %p.\n",
3757 load_user_data, frame_hierarchy, anim_controller);
3758
3759 if (!filename)
3760 return D3DERR_INVALIDCALL;
3761
3763 filenameW = malloc(len * sizeof(WCHAR));
3764 if (!filenameW) return E_OUTOFMEMORY;
3766
3768 alloc_hier, load_user_data, frame_hierarchy, anim_controller);
3769 free(filenameW);
3770
3771 return hr;
3772}
#define malloc
Definition: debug_ros.c:4
HRESULT WINAPI D3DXLoadMeshHierarchyFromXW(const WCHAR *filename, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc_hier, struct ID3DXLoadUserData *load_user_data, D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **anim_controller)
Definition: mesh.c:3774
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
GLenum GLsizei len
Definition: glext.h:6722
const char * filename
Definition: ioapi.h:137
static const WCHAR filenameW[]
Definition: resource.c:27
short WCHAR
Definition: pedump.c:58
Definition: devices.h:37

◆ D3DXLoadMeshHierarchyFromXInMemory()

HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory ( const void *  data,
DWORD  data_size,
DWORD  flags,
struct IDirect3DDevice9 *  device,
struct ID3DXAllocateHierarchy *  alloc,
struct ID3DXLoadUserData *  user_data_loader,
D3DXFRAME **  frame_hierarchy,
struct ID3DXAnimationController **  animation_controller 
)

Definition at line 3987 of file mesh.c.

3991{
3992 HRESULT hr;
3993 ID3DXFile *d3dxfile = NULL;
3994 ID3DXFileEnumObject *enumobj = NULL;
3995 ID3DXFileData *filedata = NULL;
3997 D3DXFRAME *first_frame = NULL;
3998 D3DXFRAME **next_frame = &first_frame;
3999 SIZE_T i, nb_children;
4000 GUID guid;
4001
4002 TRACE("memory %p, memory_size %lu, options %#lx, device %p, alloc_hier %p, load_user_data %p, "
4003 "frame_hierarchy %p, anim_controller %p.\n", memory, memory_size, options,
4004 device, alloc_hier, load_user_data, frame_hierarchy, anim_controller);
4005
4006 if (!memory || !memory_size || !device || !frame_hierarchy || !alloc_hier)
4007 return D3DERR_INVALIDCALL;
4008
4009 hr = D3DXFileCreate(&d3dxfile);
4010 if (FAILED(hr)) goto cleanup;
4011
4012 hr = d3dxfile->lpVtbl->RegisterTemplates(d3dxfile, D3DRM_XTEMPLATES, D3DRM_XTEMPLATE_BYTES);
4013 if (FAILED(hr)) goto cleanup;
4014
4015 source.lpMemory = (void*)memory;
4016 source.dSize = memory_size;
4017 hr = d3dxfile->lpVtbl->CreateEnumObject(d3dxfile, &source, D3DXF_FILELOAD_FROMMEMORY, &enumobj);
4018 if (FAILED(hr)) goto cleanup;
4019
4020 hr = enumobj->lpVtbl->GetChildren(enumobj, &nb_children);
4021 if (FAILED(hr))
4022 goto cleanup;
4023
4024 for (i = 0; i < nb_children; i++)
4025 {
4026 hr = enumobj->lpVtbl->GetChild(enumobj, i, &filedata);
4027 if (FAILED(hr))
4028 goto cleanup;
4029
4030 hr = filedata->lpVtbl->GetType(filedata, &guid);
4031 if (SUCCEEDED(hr)) {
4032 if (IsEqualGUID(&guid, &TID_D3DRMMesh)) {
4033 hr = alloc_hier->lpVtbl->CreateFrame(alloc_hier, NULL, next_frame);
4034 if (FAILED(hr)) {
4035 hr = E_FAIL;
4036 goto cleanup;
4037 }
4038
4039 D3DXMatrixIdentity(&(*next_frame)->TransformationMatrix);
4040
4041 hr = load_mesh_container(filedata, options, device, alloc_hier, &(*next_frame)->pMeshContainer,
4042 load_user_data);
4043 if (FAILED(hr)) goto cleanup;
4044 } else if (IsEqualGUID(&guid, &TID_D3DRMFrame)) {
4045 hr = load_frame(filedata, options, device, alloc_hier, next_frame, load_user_data);
4046 if (FAILED(hr)) goto cleanup;
4047 } else if (load_user_data) {
4048 TRACE("Loading %s as user data.\n", debugstr_guid(&guid));
4049 hr = load_user_data->lpVtbl->LoadTopLevelData(load_user_data, filedata);
4050 }
4051 while (*next_frame)
4052 next_frame = &(*next_frame)->pFrameSibling;
4053 }
4054
4055 filedata->lpVtbl->Release(filedata);
4056 filedata = NULL;
4057 if (FAILED(hr))
4058 goto cleanup;
4059 }
4060
4061 if (!first_frame) {
4062 hr = E_FAIL;
4063 } else if (first_frame->pFrameSibling) {
4064 D3DXFRAME *root_frame = NULL;
4065 hr = alloc_hier->lpVtbl->CreateFrame(alloc_hier, NULL, &root_frame);
4066 if (FAILED(hr)) {
4067 hr = E_FAIL;
4068 goto cleanup;
4069 }
4070 D3DXMatrixIdentity(&root_frame->TransformationMatrix);
4071 root_frame->pFrameFirstChild = first_frame;
4072 *frame_hierarchy = root_frame;
4073 hr = D3D_OK;
4074 } else {
4075 *frame_hierarchy = first_frame;
4076 hr = D3D_OK;
4077 }
4078
4079 if (anim_controller)
4080 {
4081 *anim_controller = NULL;
4082 FIXME("Animation controller creation not implemented.\n");
4083 }
4084
4085cleanup:
4086 if (FAILED(hr) && first_frame) D3DXFrameDestroy(first_frame, alloc_hier);
4087 if (filedata) filedata->lpVtbl->Release(filedata);
4088 if (enumobj) enumobj->lpVtbl->Release(enumobj);
4089 if (d3dxfile) d3dxfile->lpVtbl->Release(d3dxfile);
4090 return hr;
4091}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_FAIL
Definition: ddrawi.h:102
static HRESULT load_frame(struct ID3DXFileData *filedata, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc_hier, D3DXFRAME **frame_out, struct ID3DXLoadUserData *load_user_data)
Definition: mesh.c:3924
static HRESULT load_mesh_container(struct ID3DXFileData *filedata, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc_hier, D3DXMESHCONTAINER **mesh_container, struct ID3DXLoadUserData *load_user_data)
Definition: mesh.c:3824
HRESULT WINAPI D3DXFileCreate(ID3DXFile **d3dxfile)
Definition: xfile.c:693
GUID guid
Definition: version.c:147
#define D3DXF_FILELOAD_FROMMEMORY
Definition: d3dx9xof.h:41
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define debugstr_guid
Definition: kernel32.h:35
static char memory[1024 *256]
Definition: process.c:122
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define next_frame(vp)
Definition: raisecond.c:84
#define D3DRM_XTEMPLATE_BYTES
Definition: rmxftmpl.h:283
unsigned char D3DRM_XTEMPLATES[]
Definition: rmxftmpl.h:6
D3DXMATRIX TransformationMatrix
Definition: d3dx9anim.h:108
ULONG_PTR SIZE_T
Definition: typedefs.h:80

◆ D3DXLoadMeshHierarchyFromXW()

HRESULT WINAPI D3DXLoadMeshHierarchyFromXW ( const WCHAR *  filename,
DWORD  flags,
struct IDirect3DDevice9 *  device,
struct ID3DXAllocateHierarchy *  alloc,
struct ID3DXLoadUserData *  user_data_loader,
D3DXFRAME **  frame_hierarchy,
struct ID3DXAnimationController **  animation_controller 
)

Definition at line 3774 of file mesh.c.

3777{
3778 void *buffer;
3779 HRESULT hr;
3780 DWORD size;
3781
3782 TRACE("filename %s, options %#lx, device %p, alloc_hier %p, "
3783 "load_user_data %p, frame_hierarchy %p, anim_controller %p.\n",
3785 load_user_data, frame_hierarchy, anim_controller);
3786
3787 if (!filename)
3788 return D3DERR_INVALIDCALL;
3789
3791 if (FAILED(hr))
3792 return D3DXERR_INVALIDDATA;
3793
3795 alloc_hier, load_user_data, frame_hierarchy, anim_controller);
3796
3798
3799 return hr;
3800}
#define D3DXERR_INVALIDDATA
Definition: compiler.c:53
HRESULT map_view_of_file(const WCHAR *filename, void **buffer, DWORD *length)
Definition: util.c:211
HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory(const void *memory, DWORD memory_size, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc_hier, struct ID3DXLoadUserData *load_user_data, D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **anim_controller)
Definition: mesh.c:3987
#define UnmapViewOfFile
Definition: compat.h:746
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
#define debugstr_w
Definition: kernel32.h:32

◆ D3DXSaveMeshHierarchyToFileA()

HRESULT WINAPI D3DXSaveMeshHierarchyToFileA ( const char *  filename,
DWORD  format,
const D3DXFRAME *  frame_root,
ID3DXAnimationController *  animation_controller,
ID3DXSaveUserData *  user_data_saver 
)

◆ D3DXSaveMeshHierarchyToFileW()

HRESULT WINAPI D3DXSaveMeshHierarchyToFileW ( const WCHAR *  filename,
DWORD  format,
const D3DXFRAME *  frame_root,
ID3DXAnimationController *  animation_controller,
ID3DXSaveUserData *  user_data_saver 
)

◆ DECLARE_INTERFACE() [1/4]

DECLARE_INTERFACE ( ID3DXAllocateHierarchy  )

Definition at line 171 of file d3dx9anim.h.

172{
173 STDMETHOD(CreateFrame)(THIS_ const char *name, D3DXFRAME **new_frame) PURE;
174 STDMETHOD(CreateMeshContainer)(THIS_ const char *name, const D3DXMESHDATA *mesh_data,
175 const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances,
176 DWORD num_materials, const DWORD *adjacency, ID3DXSkinInfo *skin_info,
177 D3DXMESHCONTAINER **new_mesh_container) PURE;
178 STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME frame) PURE;
180};
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define STDMETHOD(m)
Definition: basetyps.h:62

◆ DECLARE_INTERFACE() [2/4]

DECLARE_INTERFACE ( ID3DXAnimationCallbackHandler  )

Definition at line 305 of file d3dx9anim.h.

306{
307 STDMETHOD(HandleCallback)(THIS_ UINT track, void *callback_data) PURE;
308};
unsigned int UINT
Definition: sysinfo.c:13

◆ DECLARE_INTERFACE() [3/4]

DECLARE_INTERFACE ( ID3DXLoadUserData  )

Definition at line 184 of file d3dx9anim.h.

185{
186 STDMETHOD(LoadTopLevelData)(ID3DXFileData *child_data) PURE;
187 STDMETHOD(LoadFrameChildData)(D3DXFRAME *frame, ID3DXFileData *child_data) PURE;
188 STDMETHOD(LoadMeshChildData)(D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE;
189};

◆ DECLARE_INTERFACE() [4/4]

DECLARE_INTERFACE ( ID3DXSaveUserData  )

Definition at line 193 of file d3dx9anim.h.

194{
195 STDMETHOD(AddFrameChildData)(const D3DXFRAME *frame,
196 ID3DXFileSaveObject *save_obj, ID3DXFileSaveData *frame_data) PURE;
197 STDMETHOD(AddMeshChildData)(const D3DXMESHCONTAINER *mesh_container,
198 ID3DXFileSaveObject *save_obj, ID3DXFileSaveData *mesh_data) PURE;
199 STDMETHOD(AddTopLevelDataObjectsPre)(ID3DXFileSaveObject *save_obj) PURE;
200 STDMETHOD(AddTopLevelDataObjectsPost)(ID3DXFileSaveObject *save_obj) PURE;
201 STDMETHOD(RegisterTemplates)(ID3DXFile *file) PURE;
202 STDMETHOD(SaveTemplates)(ID3DXFileSaveObject *save_obj) PURE;
203};
Definition: fci.c:123

◆ DECLARE_INTERFACE_() [1/4]

DECLARE_INTERFACE_ ( ID3DXAnimationController  ,
IUnknown   
)

Definition at line 312 of file d3dx9anim.h.

313{
314 /*** IUnknown methods ***/
318 /*** ID3DXAnimationController methods ***/
319 STDMETHOD_(UINT, GetMaxNumAnimationOutputs)(THIS) PURE;
320 STDMETHOD_(UINT, GetMaxNumAnimationSets)(THIS) PURE;
321 STDMETHOD_(UINT, GetMaxNumTracks)(THIS) PURE;
322 STDMETHOD_(UINT, GetMaxNumEvents)(THIS) PURE;
323 STDMETHOD(RegisterAnimationOutput)(THIS_ const char *name, D3DXMATRIX *matrix,
324 D3DXVECTOR3 *scale, D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
325 STDMETHOD(RegisterAnimationSet)(THIS_ ID3DXAnimationSet *anim_set) PURE;
326 STDMETHOD(UnregisterAnimationSet)(THIS_ ID3DXAnimationSet *anim_set) PURE;
327 STDMETHOD_(UINT, GetNumAnimationSets)(THIS) PURE;
328 STDMETHOD(GetAnimationSet)(THIS_ UINT index, ID3DXAnimationSet **anim_set) PURE;
329 STDMETHOD(GetAnimationSetByName)(THIS_ const char *name, ID3DXAnimationSet **anim_set) PURE;
330 STDMETHOD(AdvanceTime)(THIS_ double time_delta, ID3DXAnimationCallbackHandler *callback_handler) PURE;
331 STDMETHOD(ResetTime)(THIS) PURE;
332 STDMETHOD_(double, GetTime)(THIS) PURE;
333 STDMETHOD(SetTrackAnimationSet)(THIS_ UINT track, ID3DXAnimationSet *anim_set) PURE;
334 STDMETHOD(GetTrackAnimationSet)(THIS_ UINT track, ID3DXAnimationSet **anim_set) PURE;
335 STDMETHOD(SetTrackPriority)(THIS_ UINT track, D3DXPRIORITY_TYPE priority) PURE;
336 STDMETHOD(SetTrackSpeed)(THIS_ UINT track, float speed) PURE;
337 STDMETHOD(SetTrackWeight)(THIS_ UINT track, float weight) PURE;
338 STDMETHOD(SetTrackPosition)(THIS_ UINT track, double position) PURE;
339 STDMETHOD(SetTrackEnable)(THIS_ UINT track, BOOL enable) PURE;
340 STDMETHOD(SetTrackDesc)(THIS_ UINT track, D3DXTRACK_DESC *desc) PURE;
341 STDMETHOD(GetTrackDesc)(THIS_ UINT track, D3DXTRACK_DESC *desc) PURE;
342 STDMETHOD(SetPriorityBlend)(THIS_ float blend_weight) PURE;
343 STDMETHOD_(float, GetPriorityBlend)(THIS) PURE;
344 STDMETHOD_(D3DXEVENTHANDLE, KeyTrackSpeed)(THIS_ UINT track, float new_speed,
345 double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE;
346 STDMETHOD_(D3DXEVENTHANDLE, KeyTrackWeight)(THIS_ UINT track, float new_weight,
347 double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE;
348 STDMETHOD_(D3DXEVENTHANDLE, KeyTrackPosition)(THIS_ UINT track, double new_position, double start_time) PURE;
349 STDMETHOD_(D3DXEVENTHANDLE, KeyTrackEnable)(THIS_ UINT track, BOOL new_enable, double start_time) PURE;
350 STDMETHOD_(D3DXEVENTHANDLE, KeyPriorityBlend)(THIS_ float new_blend_weight,
351 double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE;
353 STDMETHOD(UnkeyAllTrackEvents)(THIS_ UINT track) PURE;
354 STDMETHOD(UnkeyAllPriorityBlends)(THIS) PURE;
355 STDMETHOD_(D3DXEVENTHANDLE, GetCurrentTrackEvent)(THIS_ UINT track, D3DXEVENT_TYPE event_type) PURE;
356 STDMETHOD_(D3DXEVENTHANDLE, GetCurrentPriorityBlend)(THIS) PURE;
357 STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingTrackEvent)(THIS_ UINT track, D3DXEVENTHANDLE event) PURE;
358 STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingPriorityBlend)(THIS_ D3DXEVENTHANDLE event) PURE;
359 STDMETHOD(ValidateEvent)(THIS_ D3DXEVENTHANDLE event) PURE;
361 STDMETHOD(CloneAnimationController)(THIS_ UINT max_num_anim_outputs, UINT max_num_anim_sets,
362 UINT max_num_tracks, UINT max_num_events, ID3DXAnimationController **anim_controller) PURE;
363};
#define index(s, c)
Definition: various.h:29
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
_In_ BOOLEAN Release
Definition: cdrom.h:920
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
DWORD D3DXEVENTHANDLE
Definition: d3dx9anim.h:157
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
GLuint GLenum matrix
Definition: glext.h:9407
GLboolean enable
Definition: glext.h:11120
REFIID riid
Definition: atlbase.h:39
#define GetTime(fmt)
Definition: lcformat.c:113
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:83
static int priority
Definition: timer.c:163
#define REFIID
Definition: guiddef.h:118
weight
Definition: sortkey.c:157
Definition: filter.c:185
uint32_t ULONG
Definition: typedefs.h:59
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

◆ DECLARE_INTERFACE_() [2/4]

DECLARE_INTERFACE_ ( ID3DXAnimationSet  ,
IUnknown   
)

Definition at line 207 of file d3dx9anim.h.

208{
209 /*** IUnknown methods ***/
213 /*** ID3DXAnimationSet methods ***/
214 STDMETHOD_(const char *, GetName)(THIS) PURE;
215 STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
216 STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE;
217 STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
218 STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE;
219 STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE;
220 STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale,
221 D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
222 STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position,
223 void **callback_data) PURE;
224};
static HRESULT GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST pidl, DWORD dwFlags, LPWSTR lpstrFileName)
Definition: filedlg.c:4543
GLbitfield flags
Definition: glext.h:7161
double DOUBLE
Definition: typedefs.h:70

◆ DECLARE_INTERFACE_() [3/4]

DECLARE_INTERFACE_ ( ID3DXCompressedAnimationSet  ,
ID3DXAnimationSet   
)

Definition at line 278 of file d3dx9anim.h.

279{
280 /*** IUnknown methods ***/
284 /*** ID3DXAnimationSet methods ***/
285 STDMETHOD_(const char *, GetName)(THIS) PURE;
286 STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
287 STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE;
288 STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
289 STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE;
290 STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE;
291 STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale,
292 D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
293 STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position,
294 void **callback_data) PURE;
295 /*** ID3DXCompressedAnimationSet methods ***/
296 STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE;
297 STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
298 STDMETHOD(GetCompressedData)(THIS_ ID3DXBuffer **compressed_data) PURE;
299 STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE;
300 STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK callback_keys) PURE;
301};
struct ID3DXBuffer ID3DXBuffer
Definition: d3dx8core.h:51

◆ DECLARE_INTERFACE_() [4/4]

DECLARE_INTERFACE_ ( ID3DXKeyframedAnimationSet  ,
ID3DXAnimationSet   
)

Definition at line 228 of file d3dx9anim.h.

229{
230 /*** IUnknown methods ***/
234 /*** ID3DXAnimationSet methods ***/
235 STDMETHOD_(const char *, GetName)(THIS) PURE;
236 STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
237 STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE;
238 STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
239 STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE;
240 STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE;
241 STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale,
242 D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
243 STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position,
244 void **callback_data) PURE;
245 /*** ID3DXKeyframedAnimationSet methods ***/
246 STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE;
247 STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
248 STDMETHOD_(UINT, GetNumScaleKeys)(THIS_ UINT animation) PURE;
249 STDMETHOD(GetScaleKeys)(THIS_ UINT animation, LPD3DXKEY_VECTOR3 scale_keys) PURE;
250 STDMETHOD(GetScaleKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 scale_key) PURE;
251 STDMETHOD(SetScaleKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 scale_key) PURE;
252 STDMETHOD_(UINT, GetNumRotationKeys)(THIS_ UINT animation) PURE;
253 STDMETHOD(GetRotationKeys)(THIS_ UINT animation, LPD3DXKEY_QUATERNION rotation_keys) PURE;
254 STDMETHOD(GetRotationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_QUATERNION rotation_key) PURE;
255 STDMETHOD(SetRotationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_QUATERNION rotation_key) PURE;
256 STDMETHOD_(UINT, GetNumTranslationKeys)(THIS_ UINT animation) PURE;
257 STDMETHOD(GetTranslationKeys)(THIS_ UINT animation, LPD3DXKEY_VECTOR3 translation_keys) PURE;
258 STDMETHOD(GetTranslationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 translation_key) PURE;
259 STDMETHOD(SetTranslationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 translation_key) PURE;
260 STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE;
261 STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK callback_keys) PURE;
262 STDMETHOD(GetCallbackKey)(THIS_ UINT key, LPD3DXKEY_CALLBACK callback_key) PURE;
263 STDMETHOD(SetCallbackKey)(THIS_ UINT key, LPD3DXKEY_CALLBACK callback_key) PURE;
264 STDMETHOD(UnregisterScaleKey)(THIS_ UINT animation, UINT key) PURE;
265 STDMETHOD(UnregisterRotationKey)(THIS_ UINT animation, UINT key) PURE;
266 STDMETHOD(UnregisterTranslationKey)(THIS_ UINT animation, UINT key) PURE;
267 STDMETHOD(RegisterAnimationSRTKeys)(THIS_ const char *name, UINT num_scale_keys,
268 UINT num_rotation_keys, UINT num_translation_keys, const D3DXKEY_VECTOR3 *scale_keys,
269 const D3DXKEY_QUATERNION *rotation_keys, const D3DXKEY_VECTOR3 *translation_keys,
270 DWORD *animation_index) PURE;
272 ID3DXBuffer **compressed_data) PURE;
273 STDMETHOD(UnregisterAnimation)(THIS_ UINT index) PURE;
274};
static const h_entry hierarchy[]
Definition: dialog.c:66
static LRESULT Compress(CodecInfo *pi, ICCOMPRESS *lpic, DWORD dwSize)
Definition: msrle32.c:1418
Definition: copy.c:22

◆ DEFINE_GUID() [1/4]

DEFINE_GUID ( IID_ID3DXAnimationController  ,
0xac8948ec  ,
0xf86d  ,
0x43e2  ,
0x96  ,
0xde  ,
0x31  ,
0xfc  ,
0x35  ,
0xf9  ,
0x6d  ,
0x9e   
)

◆ DEFINE_GUID() [2/4]

DEFINE_GUID ( IID_ID3DXAnimationSet  ,
0x698cfb3f  ,
0x9289  ,
0x4d95  ,
0x9a  ,
0x57  ,
0x33  ,
0xa9  ,
0x4b  ,
0x5a  ,
0x65  ,
0xf9   
)

◆ DEFINE_GUID() [3/4]

DEFINE_GUID ( IID_ID3DXCompressedAnimationSet  ,
0x6cc2480d  ,
0x3808  ,
0x4739  ,
0x9f  ,
0x88  ,
0xde  ,
0x49  ,
0xfa  ,
0xcd  ,
0x8d  ,
0x4c   
)

◆ DEFINE_GUID() [4/4]

DEFINE_GUID ( IID_ID3DXKeyframedAnimationSet  ,
0xfa4e8e3a  ,
0x9786  ,
0x407d  ,
0x8b  ,
0x4c  ,
0x59  ,
0x95  ,
0x89  ,
0x37  ,
0x64  ,
0xaf   
)