カスタム テンプレートを登録します。
構文
HRESULT RegisterTemplates(
[in] LPCVOID pvData,
[in] SIZE_T cbSize
);
パラメーター
-
pvData [in]
-
種類: LPCVOID
テンプレートを含むテキスト形式またはバイナリ形式の .x ファイルで構成されるバッファーへのポインター。
-
cbSize [in]
-
種類: SIZE_T
pvData が指すバッファーのサイズ (バイト単位)。
戻り値
型: HRESULT
メソッドが成功した場合、戻り値はS_OK。 メソッドが失敗した場合、戻り値は次のいずれかになります:D3DXFERR_BADVALUE、D3DXFERR_PARSEERROR。
解説
次のコード フラグメントは、 RegisterTemplates の呼び出しの例と、 pvData が指すバッファーのコンテンツの例を示しています。
#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 インターフェイス ポインターを取得します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目