ReactOS  0.4.14-dev-49-gfb4591c
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.

◆ _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,
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.

◆ _D3DXMESHDATATYPE

Enumerator
D3DXMESHTYPE_MESH 
D3DXMESHTYPE_PMESH 
D3DXMESHTYPE_PATCHMESH 
D3DXMESHTYPE_FORCE_DWORD 

Definition at line 27 of file d3dx9anim.h.

◆ _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

◆ _D3DXPRIORITY_TYPE

Enumerator
D3DXPRIORITY_LOW 
D3DXPRIORITY_HIGH 
D3DXPRIORITY_FORCE_DWORD 

Definition at line 56 of file d3dx9anim.h.

57 {
58  D3DXPRIORITY_LOW = 0,
60  D3DXPRIORITY_FORCE_DWORD = 0x7fffffff,
enum _D3DXPRIORITY_TYPE D3DXPRIORITY_TYPE

◆ _D3DXTRANSITION_TYPE

Enumerator
D3DXTRANSITION_LINEAR 
D3DXTRANSITION_EASEINEASEOUT 
D3DXTRANSITION_FORCE_DWORD 

Definition at line 73 of file d3dx9anim.h.

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

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

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

476 {
477  FIXME("name %s, ticks_per_second %.16e, playback_type %u, animation_count %u, "
478  "callback_key_count %u, callback_keys %p, animation_set %p stub.\n",
479  debugstr_a(name), ticks_per_second, playback_type, animation_count,
480  callback_key_count, callback_keys, animation_set);
481 
482  return E_NOTIMPL;
483 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define debugstr_a
Definition: kernel32.h:31
#define E_NOTIMPL
Definition: ddrawi.h:99
Definition: name.c:36

◆ 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) {
4034  hr = D3DXFrameDestroy(current_frame->pFrameFirstChild, alloc_hier);
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 }
struct _D3DXFRAME * pFrameFirstChild
Definition: d3dx9anim.h:111
HRESULT hr
Definition: shlfolder.c:183
struct _D3DXFRAME * pFrameSibling
Definition: d3dx9anim.h:110
POINT last
Definition: font.c:46
#define D3DERR_INVALIDCALL
struct container container
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
LPD3DXMESHCONTAINER pMeshContainer
Definition: d3dx9anim.h:109
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
#define D3D_OK
Definition: d3d.h:106
HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame, ID3DXAllocateHierarchy *alloc_hier)
Definition: mesh.c:4010
#define TRUE
Definition: mesh.c:42

Referenced by D3DXFrameDestroy(), and D3DXLoadMeshHierarchyFromXInMemory().

◆ 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 
7668  if (!queue_frame_node(&queue, frame))
7669  goto cleanup;
7670 
7672  }
7673 
7674  if (list_empty(&queue))
7675  break;
7676 
7678  list_remove(&node->entry);
7679  frame = node->frame->pFrameFirstChild;
7680  HeapFree(GetProcessHeap(), 0, node);
7681  }
7682 
7683 cleanup:
7685 
7686  return found;
7687 }
static BOOL queue_frame_node(struct list *queue, D3DXFRAME *frame)
Definition: mesh.c:7615
struct _D3DXFRAME * pFrameSibling
Definition: d3dx9anim.h:110
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
Definition: list.h:131
struct node node
Definition: _queue.h:59
smooth NULL
Definition: ftsmooth.c:416
char * Name
Definition: d3dx9anim.h:107
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
#define debugstr_a
Definition: kernel32.h:31
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
Definition: list.h:143
static void empty_frame_queue(struct list *queue)
Definition: mesh.c:7632
Definition: name.c:36
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
char * cleanup(char *str)
Definition: wpickclick.c:99
#define LIST_ENTRY(type)
Definition: queue.h:175
D3DXFRAME * frame
Definition: mesh.c:7612
#define HeapFree(x, y, z)
Definition: compat.h:394
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 3689 of file mesh.c.

3692 {
3693  WCHAR *filenameW;
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",
3699  debugstr_a(filename), options, device, alloc_hier,
3700  load_user_data, frame_hierarchy, anim_controller);
3701 
3702  if (!filename)
3703  return D3DERR_INVALIDCALL;
3704 
3705  len = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0);
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 hr
Definition: shlfolder.c:183
#define CP_ACP
Definition: compat.h:99
#define D3DERR_INVALIDCALL
const char * filename
Definition: ioapi.h:135
static const WCHAR filenameW[]
Definition: amstream.c:41
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
Definition: devices.h:37
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
LONG HRESULT
Definition: typedefs.h:77
GLenum GLsizei len
Definition: glext.h:6722
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 MultiByteToWideChar
Definition: compat.h:100
#define HeapFree(x, y, z)
Definition: compat.h:394

◆ 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)) {
3957  hr = load_frame(filedata, options, device, alloc_hier, next_frame);
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 
3994 cleanup:
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 }
struct _D3DXFRAME * pFrameFirstChild
Definition: d3dx9anim.h:111
D3DXMATRIX TransformationMatrix
Definition: d3dx9anim.h:108
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 hr
Definition: shlfolder.c:183
struct _D3DXFRAME * pFrameSibling
Definition: d3dx9anim.h:110
#define D3DERR_INVALIDCALL
static HRESULT load_frame(struct ID3DXFileData *filedata, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc_hier, D3DXFRAME **frame_out)
Definition: mesh.c:3836
#define E_FAIL
Definition: ddrawi.h:102
static char memory[1024 *256]
Definition: process.c:116
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
const GUID * guid
Definition: devices.h:37
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
#define next_frame(vp)
Definition: raisecond.c:84
ULONG_PTR SIZE_T
Definition: typedefs.h:78
HRESULT WINAPI D3DXFileCreate(ID3DXFile **d3dxfile)
Definition: xfile.c:715
#define D3D_OK
Definition: d3d.h:106
GLsizei GLsizei GLchar * source
Definition: glext.h:6048
#define E_NOTIMPL
Definition: ddrawi.h:99
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame, ID3DXAllocateHierarchy *alloc_hier)
Definition: mesh.c:4010
char * cleanup(char *str)
Definition: wpickclick.c:99
#define D3DXF_FILELOAD_FROMMEMORY
Definition: d3dx9xof.h:41
#define D3DRM_XTEMPLATE_BYTES
Definition: rmxftmpl.h:283
#define SUCCEEDED(hr)
Definition: intsafe.h:57
unsigned char D3DRM_XTEMPLATES[]
Definition: rmxftmpl.h:6

Referenced by D3DXLoadMeshHierarchyFromXW().

◆ 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",
3727  debugstr_w(filename), options, device, alloc_hier,
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 }
HRESULT hr
Definition: shlfolder.c:183
#define D3DERR_INVALIDCALL
GLuint buffer
Definition: glext.h:5915
const char * filename
Definition: ioapi.h:135
Definition: devices.h:37
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
LONG HRESULT
Definition: typedefs.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT map_view_of_file(const WCHAR *filename, void **buffer, DWORD *length) DECLSPEC_HIDDEN
Definition: util.c:118
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:403

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;
179  STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER mesh_container) PURE;
180 };
#define THIS_
Definition: basetyps.h:65
#define STDMETHOD(m)
Definition: basetyps.h:62
unsigned long DWORD
Definition: ntddk_ex.h:95
#define PURE
Definition: basetyps.h:64
D3DXFRAME * frame
Definition: mesh.c:7612
GLuint const GLchar * name
Definition: glext.h:6031

◆ DECLARE_INTERFACE() [2/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 };
#define STDMETHOD(m)
Definition: basetyps.h:62
#define PURE
Definition: basetyps.h:64
D3DXFRAME * frame
Definition: mesh.c:7612

◆ DECLARE_INTERFACE() [3/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 };
#define STDMETHOD(m)
Definition: basetyps.h:62
const char file[]
Definition: icontest.c:11
#define PURE
Definition: basetyps.h:64
D3DXFRAME * frame
Definition: mesh.c:7612

◆ DECLARE_INTERFACE() [4/4]

DECLARE_INTERFACE ( ID3DXAnimationCallbackHandler  )

Definition at line 305 of file d3dx9anim.h.

306 {
307  STDMETHOD(HandleCallback)(THIS_ UINT track, void *callback_data) PURE;
308 };
#define THIS_
Definition: basetyps.h:65
#define STDMETHOD(m)
Definition: basetyps.h:62
#define PURE
Definition: basetyps.h:64
unsigned int UINT
Definition: ndis.h:50

◆ DECLARE_INTERFACE_() [1/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 };
#define REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
_In_ BOOLEAN Release
Definition: classpnp.h:929
#define THIS
Definition: basetyps.h:66
REFIID riid
Definition: precomp.h:44
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
#define STDMETHOD(m)
Definition: basetyps.h:62
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
#define index(s, c)
Definition: various.h:29
#define PURE
Definition: basetyps.h:64
unsigned int UINT
Definition: ndis.h:50
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
unsigned int ULONG
Definition: retypes.h:1
double DOUBLE
Definition: typedefs.h:68
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
GLuint const GLchar * name
Definition: glext.h:6031

◆ DECLARE_INTERFACE_() [2/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;
271  STDMETHOD(Compress)(THIS_ DWORD flags, float lossiness, D3DXFRAME *hierarchy,
272  ID3DXBuffer **compressed_data) PURE;
273  STDMETHOD(UnregisterAnimation)(THIS_ UINT index) PURE;
274 };
#define REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
_In_ BOOLEAN Release
Definition: classpnp.h:929
#define THIS
Definition: basetyps.h:66
REFIID riid
Definition: precomp.h:44
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
static const h_entry hierarchy[]
Definition: dialog.c:68
#define STDMETHOD(m)
Definition: basetyps.h:62
enum _D3DXPLAYBACK_TYPE D3DXPLAYBACK_TYPE
static LRESULT Compress(CodecInfo *pi, ICCOMPRESS *lpic, DWORD dwSize)
Definition: msrle32.c:1418
struct ID3DXBuffer ID3DXBuffer
Definition: d3dx8core.h:51
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
#define index(s, c)
Definition: various.h:29
HKEY key
Definition: reg.c:42
#define PURE
Definition: basetyps.h:64
unsigned int UINT
Definition: ndis.h:50
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
unsigned int ULONG
Definition: retypes.h:1
double DOUBLE
Definition: typedefs.h:68
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
GLuint const GLchar * name
Definition: glext.h:6031

◆ 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 };
#define REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
_In_ BOOLEAN Release
Definition: classpnp.h:929
#define THIS
Definition: basetyps.h:66
REFIID riid
Definition: precomp.h:44
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
#define STDMETHOD(m)
Definition: basetyps.h:62
enum _D3DXPLAYBACK_TYPE D3DXPLAYBACK_TYPE
struct ID3DXBuffer ID3DXBuffer
Definition: d3dx8core.h:51
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
#define index(s, c)
Definition: various.h:29
#define PURE
Definition: basetyps.h:64
unsigned int UINT
Definition: ndis.h:50
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
unsigned int ULONG
Definition: retypes.h:1
double DOUBLE
Definition: typedefs.h:68
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
GLuint const GLchar * name
Definition: glext.h:6031

◆ DECLARE_INTERFACE_() [4/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 REFIID
Definition: guiddef.h:118
#define THIS_
Definition: basetyps.h:65
_In_ BOOLEAN Release
Definition: classpnp.h:929
#define THIS
Definition: basetyps.h:66
REFIID riid
Definition: precomp.h:44
GLuint GLenum matrix
Definition: glext.h:9407
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
enum _D3DXPRIORITY_TYPE D3DXPRIORITY_TYPE
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
enum _D3DXEVENT_TYPE D3DXEVENT_TYPE
#define STDMETHOD(m)
Definition: basetyps.h:62
GLuint GLuint GLfloat weight
Definition: glext.h:11719
enum _D3DXTRANSITION_TYPE D3DXTRANSITION_TYPE
unsigned int BOOL
Definition: ntddk_ex.h:94
const struct builtin_class_descr * desc
Definition: regcontrol.c:48
DWORD D3DXEVENTHANDLE
Definition: d3dx9anim.h:157
static FILE * out
Definition: regtests2xml.c:44
#define index(s, c)
Definition: various.h:29
struct _cl_event * event
Definition: glext.h:7739
GLboolean enable
Definition: glext.h:11120
#define PURE
Definition: basetyps.h:64
unsigned int UINT
Definition: ndis.h:50
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
#define GetTime(fmt)
Definition: lcformat.c:97
unsigned int ULONG
Definition: retypes.h:1
static int priority
Definition: timer.c:163
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
GLuint const GLchar * name
Definition: glext.h:6031

◆ DEFINE_GUID() [1/4]

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

◆ DEFINE_GUID() [2/4]

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

◆ 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_ID3DXAnimationController  ,
0xac8948ec  ,
0xf86d  ,
0x43e2  ,
0x96  ,
0xde  ,
0x31  ,
0xfc  ,
0x35  ,
0xf9  ,
0x6d  ,
0x9e   
)