Функция 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]
-
Указатель на интерфейс 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. Для загрузки данных требуется выполнить несколько действий.
- Наследуйте ID3DXAllocateHierarchy, реализуя каждый метод. Это управляет выделением и освобождением кадров и сеток.
- Производный id3DXLoadUserData, реализуя каждый метод. Если x-файл не содержит внедренных пользовательских данных или если они не нужны, эту часть можно пропустить.
- Создайте объект класса ID3DXAllocateHierarchy и при необходимости класса LoadUserData. Вам не нужно самостоятельно вызывать какие-либо методы этих объектов.
- Вызовите D3DXLoadMeshHierarchyFromX, передав объект ID3DXAllocateHierarchy и объект ID3DXLoadUserData (или NULL), чтобы создать иерархию кадров и контроллер анимации. Все наборы анимации и кадры автоматически регистрируются в контроллере анимации.
Во время загрузки методы CreateFrame и LoadFrameChildData вызываются обратно для каждого кадра для управления загрузкой и выделением кадра. Приложение определяет эти методы для управления хранением кадров. CreateMeshContainer и LoadMeshChildData вызываются для каждого объекта сетки для управления загрузкой и выделением объектов сетки. LoadTopLevelData вызывается обратно для каждого объекта верхнего уровня, который не загружается другими методами.
Чтобы освободить эти данные, вызовите ID3DXAnimationController::Release, чтобы освободить наборы анимации, и D3DXFRAMEDeholder, передав корневой узел иерархии кадров и объект производного класса ID3DXAllocateHierarchy . DestroyFrame и DestroyMeshContainer будут вызываться для каждого объекта кадра и сетки в иерархии кадров. Реализация DestroyFrame должна освободить все, что выделено CreateFrame, а также для методов контейнера сетки.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел