共用方式為


ID3DXFile::RegisterTemplates 方法

註冊自訂範本。

語法

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方法,藉由呼叫CreateEnumObject搭配pvData做為第一個參數,以取得ID3DXFileEnumObject介面指標。

規格需求

需求
標頭
D3DX9Xof.h
程式庫
D3dx9.lib

另請參閱

ID3DXFile

RegisterEnumTemplates