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
指向指定文件名的字符串的指针。 如果编译器设置需要 Unicode,则数据类型 LPCTSTR 解析为 LPCWSTR。 否则,字符串数据类型解析为 LPCSTR。 请参阅“备注”。
-
MeshOptions [in]
-
类型: DWORD
指定网格创建选项的 D3DXMESH 枚举中的一个或多个标志的组合。
-
pDevice [in]
-
指向 IDirect3DDevice9 接口(与网格关联的设备对象)的指针。
-
pAlloc [in]
-
指向 ID3DXAllocateHierarchy 接口的 指针。
-
pUserDataLoader [in]
-
应用程序提供的接口允许加载用户数据。 请参阅 ID3DXLoadUserData。
-
ppFrameHierarchy [out]
-
类型: LPD3DXFRAME*
返回指向加载的帧层次结构的指针。 请参阅 D3DXFRAME。
-
ppAnimController [out]
-
类型: LPD3DXANIMATIONCONTROLLER*
返回指向与 .x 文件中动画对应的动画控制器的指针。 这是使用默认曲目和事件创建的。 请参阅 ID3DXAnimationController。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、E_OUTOFMEMORY。
备注
编译器设置还确定函数版本。 如果定义了 Unicode,则函数调用将解析为 D3DXLoadMeshHierarchyFromXW。 否则,函数调用将解析为 D3DXLoadMeshHierarchyFromXA。
文件中的所有网格将折叠为一个输出网格。 如果文件包含帧层次结构,则所有转换都将应用于网格。
D3DXLoadMeshHierarchyFromX 从 .x 文件加载动画数据和帧层次结构。 它扫描 .x 文件,并根据通过 pAlloc 传递给它的 ID3DXAllocateHierarchy 派生对象生成帧层次结构和动画控制器。 加载数据需要几个步骤,如下所示:
- 派生 ID3DXAllocateHierarchy,实现每个方法。 这会控制帧和网格的分配和释放方式。
- 派生 ID3DXLoadUserData,实现每个方法。 如果 .x 文件没有嵌入的用户定义数据,或者不需要它,则可以跳过此部分。
- 创建 ID3DXAllocateHierarchy 类的对象,并根据需要创建 LoadUserData 类的对象。 无需自行调用这些对象的任何方法。
- 调用 D3DXLoadMeshHierarchyFromX,传入 ID3DXAllocateHierarchy 对象和 ID3DXLoadUserData 对象 (或 NULL) 以创建帧层次结构和动画控制器。 所有动画集和帧都将自动注册到动画控制器。
在加载期间, 在每个帧 上调用 CreateFrame 和 LoadFrameChildData ,以控制帧的加载和分配。 应用程序定义这些方法来控制帧的存储方式。 在每个网格对象上调用 CreateMeshContainer 和 LoadMeshChildData,以控制网格对象的加载和分配。 对于其他方法未加载的每个顶级对象,都会调用 LoadTopLevelData。
若要释放此数据,请调用 ID3DXAnimationController::Release 以释放动画集,并调用 D3DXFRAMEDestroy,传入帧层次结构的根节点和派生 的 ID3DXAllocateHierarchy 类的对象。 将为每个帧 层次结构中的每个帧和网格对象调用 DestroyFrame 和 DestroyMeshContainer 。 DestroyFrame 的实现应释放 CreateFrame 分配的所有内容,同样应释放网格容器方法。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅