Поделиться через


Функция D3DXLoadMeshHierarchyFromX

Загружает первую иерархию кадров из X-файла.

Синтаксис

HRESULT D3DXLoadMeshHierarchyFromX(
  _In_  LPCTSTR                   Filename,
  _In_  DWORD                     MeshOptions,
  _In_  LPDIRECT3DDEVICE9         pDevice,
  _In_  LPD3DXALLOCATEHIERARCHY   pAlloc,
  _In_  LPD3DXLOADUSERDATA        pUserDataLoader,
  _Out_ LPD3DXFRAME               *ppFrameHierarchy,
  _Out_ LPD3DXANIMATIONCONTROLLER *ppAnimController
);

Параметры

Имя файла [in]

Тип: LPCTSTR

Указатель на строку, указывающую имя файла. Если для параметров компилятора требуется Юникод, тип данных LPCTSTR разрешается в LPCWSTR. В противном случае строковый тип данных разрешается в LPCSTR. См. заметки.

MeshOptions [in]

Тип: DWORD

Сочетание одного или нескольких флагов перечисления D3DXMESH , определяющих параметры создания сетки.

pDevice [in]

Тип: LPDIRECT3DDEVICE9

Указатель на интерфейс IDirect3DDevice9 , объект устройства, связанный с сеткой.

pAlloc [in]

Тип: LPD3DXALLOCATEHIERARCHY

Указатель на интерфейс ID3DXAllocateHierarchy .

pUserDataLoader [in]

Тип: LPD3DXLOADUSERDATA

Предоставленный приложением интерфейс, позволяющий загружать пользовательские данные. См. раздел ID3DXLoadUserData.

ppFrameHierarchy [out]

Тип: LPD3DXFRAME*

Возвращает указатель на загруженную иерархию кадров. См . раздел D3DXFRAME.

ppAnimController [out]

Тип: LPD3DXANIMATIONCONTROLLER*

Возвращает указатель на контроллер анимации, соответствующий анимации в X-файле. Он создается с дорожками и событиями по умолчанию. См. раздел ID3DXAnimationController.

Возвращаемое значение

Тип: HRESULT

Если функция выполняется успешно, возвращаемое значение будет D3D_OK. Если функция завершается ошибкой, возвращаемое значение может быть одним из следующих значений: D3DERR_INVALIDCALL E_OUTOFMEMORY.

Комментарии

Параметр компилятора также определяет версию функции. Если определен Юникод, вызов функции разрешается в D3DXLoadMeshHierarchyFromXW. В противном случае вызов функции разрешается в D3DXLoadMeshHierarchyFromXA.

Все сетки в файле будут сворачиваться в одну выходную сетку. Если файл содержит иерархию кадров, все преобразования будут применены к сетке.

D3DXLoadMeshHierarchyFromX загружает данные анимации и иерархию кадров из X-файла. Он сканирует X-файл и создает иерархию кадров и контроллер анимации в соответствии с объектом, производным от ID3DXAllocateHierarchy, переданным ему через pAlloc. Для загрузки данных требуется выполнить несколько действий.

  1. Наследуйте ID3DXAllocateHierarchy, реализуя каждый метод. Это управляет выделением и освобождением кадров и сеток.
  2. Производный id3DXLoadUserData, реализуя каждый метод. Если x-файл не содержит внедренных пользовательских данных или если они не нужны, эту часть можно пропустить.
  3. Создайте объект класса ID3DXAllocateHierarchy и при необходимости класса LoadUserData. Вам не нужно самостоятельно вызывать какие-либо методы этих объектов.
  4. Вызовите D3DXLoadMeshHierarchyFromX, передав объект ID3DXAllocateHierarchy и объект ID3DXLoadUserData (или NULL), чтобы создать иерархию кадров и контроллер анимации. Все наборы анимации и кадры автоматически регистрируются в контроллере анимации.

Во время загрузки методы CreateFrame и LoadFrameChildData вызываются обратно для каждого кадра для управления загрузкой и выделением кадра. Приложение определяет эти методы для управления хранением кадров. CreateMeshContainer и LoadMeshChildData вызываются для каждого объекта сетки для управления загрузкой и выделением объектов сетки. LoadTopLevelData вызывается обратно для каждого объекта верхнего уровня, который не загружается другими методами.

Чтобы освободить эти данные, вызовите ID3DXAnimationController::Release, чтобы освободить наборы анимации, и D3DXFRAMEDeholder, передав корневой узел иерархии кадров и объект производного класса ID3DXAllocateHierarchy . DestroyFrame и DestroyMeshContainer будут вызываться для каждого объекта кадра и сетки в иерархии кадров. Реализация DestroyFrame должна освободить все, что выделено CreateFrame, а также для методов контейнера сетки.

Требования

Требование Значение
Заголовок
D3dx9anim.h
Библиотека
D3dx9.lib

См. также раздел

Функции анимации