ID3DXFile::RegisterTemplates 方法
注册自定义模板。
语法
HRESULT RegisterTemplates(
[in] LPCVOID pvData,
[in] SIZE_T cbSize
);
parameters
-
pvData [in]
-
类型: LPCVOID
指向由包含模板的文本或二进制格式的 .x 文件组成的缓冲区的指针。
-
cbSize [in]
-
类型: SIZE_T
pvData 指向的缓冲区的大小(以字节为单位)。
返回值
类型: HRESULT
如果方法成功,则返回值S_OK。 如果方法失败,则返回值可以是以下值之一:D3DXFERR_BADVALUE、D3DXFERR_PARSEERROR。
备注
以下代码片段为 pvData 指向的缓冲区提供了对 RegisterTemplates 的示例调用和示例内容。
#define XSKINEXP_TEMPLATES \
"xof 0303txt 0032\
template XSkinMeshHeader \
{ \
<3CF169CE-FF7C-44ab-93C0-F78F62D172E2> \
WORD nMaxSkinWeightsPerVertex; \
WORD nMaxSkinWeightsPerFace; \
WORD nBones; \
} \
template VertexDuplicationIndices \
{ \
<B8D65549-D7C9-4995-89CF-53A9A8B031E3> \
DWORD nIndices; \
DWORD nOriginalVertices; \
array DWORD indices[nIndices]; \
} \
template SkinWeights \
{ \
<6F0D123B-BAD2-4167-A0D0-80224F25FABB> \
STRING transformNodeName;\
DWORD nWeights; \
array DWORD vertexIndices[nWeights]; \
array float weights[nWeights]; \
Matrix4x4 matrixOffset; \
}"
.
.
.
LPD3DXFILE pD3DXFile = NULL;
if ( FAILED
(hr = pD3DXFile->RegisterTemplates(
(LPVOID)XSKINEXP_TEMPLATES,
sizeof( XSKINEXP_TEMPLATES ) - 1 ) ) )
goto End;
所有模板都必须指定名称和 UUID。
此方法调用 RegisterEnumTemplates 方法,通过调用将 pvData 用作第一个参数的 CreateEnumObject 来获取 ID3DXFileEnumObject 接口指针。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅