ReactOS 0.4.15-dev-7906-g1b85a5f
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 _D3DXMESHDATALPD3DXMESHDATA
 
typedef struct _D3DXMESHCONTAINER D3DXMESHCONTAINER
 
typedef struct _D3DXMESHCONTAINERLPD3DXMESHCONTAINER
 
typedef struct _D3DXFRAME D3DXFRAME
 
typedef struct _D3DXFRAMELPD3DXFRAME
 
typedef struct _D3DXKEY_VECTOR3 D3DXKEY_VECTOR3
 
typedef struct _D3DXKEY_VECTOR3LPD3DXKEY_VECTOR3
 
typedef struct _D3DXKEY_QUATERNION D3DXKEY_QUATERNION
 
typedef struct _D3DXKEY_QUATERNIONLPD3DXKEY_QUATERNION
 
typedef struct _D3DXKEY_CALLBACK D3DXKEY_CALLBACK
 
typedef struct _D3DXKEY_CALLBACKLPD3DXKEY_CALLBACK
 
typedef struct _D3DXTRACK_DESC D3DXTRACK_DESC
 
typedef struct _D3DXTRACK_DESCLPD3DXTRACK_DESC
 
typedef struct _D3DXEVENT_DESC D3DXEVENT_DESC
 
typedef struct _D3DXEVENT_DESCLPD3DXEVENT_DESC
 
typedef DWORD D3DXEVENTHANDLE
 
typedef DWORDLPD3DXEVENTHANDLE
 
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 }
 
enum  _D3DXCALLBACK_SEARCH_FLAGS { 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 }
 
enum  _D3DXCOMPRESSION_FLAGS { D3DXCOMPRESSION_DEFAULT = 0x00000000 , D3DXCOMPRESSION_FORCE_DWORD = 0x7fffffff }
 
enum  _D3DXPRIORITY_TYPE { 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
}
 
enum  _D3DXTRANSITION_TYPE { 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 

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 

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 

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 

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 

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 

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 

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 448 of file animation.c.

450{
452
453 TRACE("max_outputs %u, max_sets %u, max_tracks %u, max_events %u, controller %p.\n",
455
456 if (!max_outputs || !max_sets || !max_tracks || !max_events || !controller)
457 return D3D_OK;
458
459 object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
460 if (!object)
461 return E_OUTOFMEMORY;
462
463 object->ID3DXAnimationController_iface.lpVtbl = &d3dx9_animation_controller_vtbl;
464 object->ref = 1;
465 object->max_outputs = max_outputs;
466 object->max_sets = max_sets;
467 object->max_tracks = max_tracks;
468 object->max_events = max_events;
469
470 *controller = &object->ID3DXAnimationController_iface;
471
472 return D3D_OK;
473}
static const struct ID3DXAnimationControllerVtbl d3dx9_animation_controller_vtbl
Definition: animation.c:402
#define D3D_OK
Definition: d3d.h:106
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by D3DXCreateAnimationControllerTest().

◆ 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 862 of file animation.c.

865{
867 char *string;
868
869 TRACE("name %s, ticks_per_second %.16e, playback_type %u, animation_count %u, "
870 "callback_key_count %u, callback_keys %p, animation_set %p.\n",
872 callback_key_count, callback_keys, animation_set);
873
874 if (!animation_count)
875 return D3DERR_INVALIDCALL;
876
877 if (!(object = heap_alloc(sizeof(*object))))
878 return E_OUTOFMEMORY;
879
880 object->ID3DXKeyframedAnimationSet_iface.lpVtbl = &d3dx9_keyframed_animation_vtbl;
881 object->ref = 1;
882 if (!(string = heap_alloc(strlen(name) + 1)))
883 {
884 heap_free(object);
885 return E_OUTOFMEMORY;
886 }
887 strcpy(string, name);
888 object->name = string;
889 object->ticks_per_second = ticks_per_second;
890 object->playback_type = playback_type;
891 object->animation_count = animation_count;
892 object->callback_key_count = callback_key_count;
893 object->callback_keys = callback_keys;
894
895 *animation_set = &object->ID3DXKeyframedAnimationSet_iface;
896
897 return D3D_OK;
898}
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
static const struct ID3DXKeyframedAnimationSetVtbl d3dx9_keyframed_animation_vtbl
Definition: animation.c:823
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define D3DERR_INVALIDCALL
#define debugstr_a
Definition: kernel32.h:31
char string[160]
Definition: util.h:11
const D3DXKEY_CALLBACK * callback_keys
Definition: animation.c:485
D3DXPLAYBACK_TYPE playback_type
Definition: animation.c:482
unsigned int callback_key_count
Definition: animation.c:484
Definition: name.c:39

Referenced by D3DXCreateKeyframedAnimationSetTest().

◆ 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 4010 of file mesh.c.

4011{
4012 HRESULT hr;
4013 BOOL last = FALSE;
4014
4015 TRACE("(%p, %p)\n", frame, alloc_hier);
4016
4017 if (!frame || !alloc_hier)
4018 return D3DERR_INVALIDCALL;
4019
4020 while (!last) {
4022 D3DXFRAME *current_frame;
4023
4024 if (frame->pFrameSibling) {
4025 current_frame = frame->pFrameSibling;
4026 frame->pFrameSibling = current_frame->pFrameSibling;
4027 current_frame->pFrameSibling = NULL;
4028 } else {
4029 current_frame = frame;
4030 last = TRUE;
4031 }
4032
4033 if (current_frame->pFrameFirstChild) {
4035 if (FAILED(hr)) return hr;
4036 current_frame->pFrameFirstChild = NULL;
4037 }
4038
4039 container = current_frame->pMeshContainer;
4040 while (container) {
4041 D3DXMESHCONTAINER *next_container = container->pNextMeshContainer;
4042 hr = alloc_hier->lpVtbl->DestroyMeshContainer(alloc_hier, container);
4043 if (FAILED(hr)) return hr;
4044 container = next_container;
4045 }
4046 hr = alloc_hier->lpVtbl->DestroyFrame(alloc_hier, current_frame);
4047 if (FAILED(hr)) return hr;
4048 }
4049 return D3D_OK;
4050}
#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:4010
unsigned int BOOL
Definition: ntddk_ex.h:94
#define FAILED(hr)
Definition: intsafe.h:51
static ID3DXAllocateHierarchy alloc_hier
Definition: mesh.c:2010
static UINT UINT last
Definition: font.c:45
HRESULT hr
Definition: shlfolder.c:183
struct _D3DXFRAME * pFrameFirstChild
Definition: d3dx9anim.h:111
LPD3DXMESHCONTAINER pMeshContainer
Definition: d3dx9anim.h:109
struct _D3DXFRAME * pFrameSibling
Definition: d3dx9anim.h:110

Referenced by D3DXFrameDestroy(), D3DXLoadMeshHierarchyFromXInMemory(), and D3DXLoadMeshTest().

◆ D3DXFrameFind()

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

Definition at line 7642 of file mesh.c.

7643{
7644 D3DXFRAME *found = NULL, *frame;
7645 struct list queue;
7646
7647 TRACE("root frame %p, name %s.\n", root, debugstr_a(name));
7648
7649 if (!root)
7650 return NULL;
7651
7652 list_init(&queue);
7653
7654 frame = (D3DXFRAME *)root;
7655
7656 for (;;)
7657 {
7658 struct frame_node *node;
7659
7660 while (frame)
7661 {
7662 if ((name && frame->Name && !strcmp(frame->Name, name)) || (!name && !frame->Name))
7663 {
7664 found = frame;
7665 goto cleanup;
7666 }
7667
7669 goto cleanup;
7670
7672 }
7673
7674 if (list_empty(&queue))
7675 break;
7676
7678 list_remove(&node->entry);
7679 frame = node->frame->pFrameFirstChild;
7681 }
7682
7683cleanup:
7685
7686 return found;
7687}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
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:37
Definition: _queue.h:67
static void empty_frame_queue(struct list *queue)
Definition: mesh.c:7632
static BOOL queue_frame_node(struct list *queue, D3DXFRAME *frame)
Definition: mesh.c:7615
#define HeapFree(x, y, z)
Definition: compat.h:735
static void cleanup(void)
Definition: main.c:1335
uint32_t entry
Definition: isohybrid.c:63
char * Name
Definition: d3dx9anim.h:107
D3DXFRAME * frame
Definition: mesh.c:7612
Definition: list.h:15
#define LIST_ENTRY(type)
Definition: queue.h:175
Definition: dlist.c:348

Referenced by test_D3DXFrameFind().

◆ 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 3689 of file mesh.c.

3692{
3694 HRESULT hr;
3695 int len;
3696
3697 TRACE("filename %s, options %#x, device %p, alloc_hier %p, "
3698 "load_user_data %p, frame_hierarchy %p, anim_controller %p.\n",
3700 load_user_data, frame_hierarchy, anim_controller);
3701
3702 if (!filename)
3703 return D3DERR_INVALIDCALL;
3704
3706 filenameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
3707 if (!filenameW) return E_OUTOFMEMORY;
3709
3711 alloc_hier, load_user_data, frame_hierarchy, anim_controller);
3713
3714 return hr;
3715}
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:3717
#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: amstream.c:41
Definition: devices.h:37
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ 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 3896 of file mesh.c.

3900{
3901 HRESULT hr;
3902 ID3DXFile *d3dxfile = NULL;
3903 ID3DXFileEnumObject *enumobj = NULL;
3904 ID3DXFileData *filedata = NULL;
3906 D3DXFRAME *first_frame = NULL;
3907 D3DXFRAME **next_frame = &first_frame;
3908 SIZE_T i, nb_children;
3909 GUID guid;
3910
3911 TRACE("(%p, %u, %x, %p, %p, %p, %p, %p)\n", memory, memory_size, options,
3912 device, alloc_hier, load_user_data, frame_hierarchy, anim_controller);
3913
3914 if (!memory || !memory_size || !device || !frame_hierarchy || !alloc_hier)
3915 return D3DERR_INVALIDCALL;
3916 if (load_user_data)
3917 {
3918 FIXME("Loading user data not implemented.\n");
3919 return E_NOTIMPL;
3920 }
3921
3922 hr = D3DXFileCreate(&d3dxfile);
3923 if (FAILED(hr)) goto cleanup;
3924
3925 hr = d3dxfile->lpVtbl->RegisterTemplates(d3dxfile, D3DRM_XTEMPLATES, D3DRM_XTEMPLATE_BYTES);
3926 if (FAILED(hr)) goto cleanup;
3927
3928 source.lpMemory = (void*)memory;
3929 source.dSize = memory_size;
3930 hr = d3dxfile->lpVtbl->CreateEnumObject(d3dxfile, &source, D3DXF_FILELOAD_FROMMEMORY, &enumobj);
3931 if (FAILED(hr)) goto cleanup;
3932
3933 hr = enumobj->lpVtbl->GetChildren(enumobj, &nb_children);
3934 if (FAILED(hr))
3935 goto cleanup;
3936
3937 for (i = 0; i < nb_children; i++)
3938 {
3939 hr = enumobj->lpVtbl->GetChild(enumobj, i, &filedata);
3940 if (FAILED(hr))
3941 goto cleanup;
3942
3943 hr = filedata->lpVtbl->GetType(filedata, &guid);
3944 if (SUCCEEDED(hr)) {
3945 if (IsEqualGUID(&guid, &TID_D3DRMMesh)) {
3946 hr = alloc_hier->lpVtbl->CreateFrame(alloc_hier, NULL, next_frame);
3947 if (FAILED(hr)) {
3948 hr = E_FAIL;
3949 goto cleanup;
3950 }
3951
3952 D3DXMatrixIdentity(&(*next_frame)->TransformationMatrix);
3953
3954 hr = load_mesh_container(filedata, options, device, alloc_hier, &(*next_frame)->pMeshContainer);
3955 if (FAILED(hr)) goto cleanup;
3956 } else if (IsEqualGUID(&guid, &TID_D3DRMFrame)) {
3958 if (FAILED(hr)) goto cleanup;
3959 }
3960 while (*next_frame)
3961 next_frame = &(*next_frame)->pFrameSibling;
3962 }
3963
3964 filedata->lpVtbl->Release(filedata);
3965 filedata = NULL;
3966 if (FAILED(hr))
3967 goto cleanup;
3968 }
3969
3970 if (!first_frame) {
3971 hr = E_FAIL;
3972 } else if (first_frame->pFrameSibling) {
3973 D3DXFRAME *root_frame = NULL;
3974 hr = alloc_hier->lpVtbl->CreateFrame(alloc_hier, NULL, &root_frame);
3975 if (FAILED(hr)) {
3976 hr = E_FAIL;
3977 goto cleanup;
3978 }
3979 D3DXMatrixIdentity(&root_frame->TransformationMatrix);
3980 root_frame->pFrameFirstChild = first_frame;
3981 *frame_hierarchy = root_frame;
3982 hr = D3D_OK;
3983 } else {
3984 *frame_hierarchy = first_frame;
3985 hr = D3D_OK;
3986 }
3987
3988 if (anim_controller)
3989 {
3990 *anim_controller = NULL;
3991 FIXME("Animation controller creation not implemented.\n");
3992 }
3993
3994cleanup:
3995 if (FAILED(hr) && first_frame) D3DXFrameDestroy(first_frame, alloc_hier);
3996 if (filedata) filedata->lpVtbl->Release(filedata);
3997 if (enumobj) enumobj->lpVtbl->Release(enumobj);
3998 if (d3dxfile) d3dxfile->lpVtbl->Release(d3dxfile);
3999 return hr;
4000}
#define FIXME(fmt,...)
Definition: debug.h:111
#define D3DXF_FILELOAD_FROMMEMORY
Definition: d3dx9xof.h:41
#define E_NOTIMPL
Definition: ddrawi.h:99
#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)
Definition: mesh.c:3836
static HRESULT load_mesh_container(struct ID3DXFileData *filedata, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc_hier, D3DXMESHCONTAINER **mesh_container)
Definition: mesh.c:3767
HRESULT WINAPI D3DXFileCreate(ID3DXFile **d3dxfile)
Definition: xfile.c:717
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
const GUID * guid
static char memory[1024 *256]
Definition: process.c:116
#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

Referenced by D3DXLoadMeshHierarchyFromXW(), and D3DXLoadMeshTest().

◆ 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 3717 of file mesh.c.

3720{
3721 void *buffer;
3722 HRESULT hr;
3723 DWORD size;
3724
3725 TRACE("filename %s, options %#x, device %p, alloc_hier %p, "
3726 "load_user_data %p, frame_hierarchy %p, anim_controller %p.\n",
3728 load_user_data, frame_hierarchy, anim_controller);
3729
3730 if (!filename)
3731 return D3DERR_INVALIDCALL;
3732
3734 if (FAILED(hr))
3735 return D3DXERR_INVALIDDATA;
3736
3738 alloc_hier, load_user_data, frame_hierarchy, anim_controller);
3739
3741
3742 return hr;
3743}
#define D3DXERR_INVALIDDATA
Definition: compiler.c:30
HRESULT map_view_of_file(const WCHAR *filename, void **buffer, DWORD *length) DECLSPEC_HIDDEN
Definition: util.c:120
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:3896
#define UnmapViewOfFile
Definition: compat.h:746
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
GLuint buffer
Definition: glext.h:5915
#define debugstr_w
Definition: kernel32.h:32

Referenced by D3DXLoadMeshHierarchyFromXA().

◆ 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: ndis.h:50

◆ 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:127

◆ 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
DWORD D3DXEVENTHANDLE
Definition: d3dx9anim.h:157
struct _cl_event * event
Definition: glext.h:7739
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:111
static const WCHAR desc[]
Definition: protectdata.c:36
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
static int priority
Definition: timer.c:163
#define REFIID
Definition: guiddef.h:118
static FILE * out
Definition: regtests2xml.c:44
weight
Definition: sortkey.c:157
uint32_t ULONG
Definition: typedefs.h:59

◆ 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:4527
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   
)