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 메서드를 호출하여 pvData를 사용하여 CreateEnumObject를 첫 번째 매개 변수로 호출하여 ID3DXFileEnumObject 인터페이스 포인터를 가져옵니다.

요구 사항

요구 사항
헤더
D3DX9Xof.h
라이브러리
D3dx9.lib

추가 정보

ID3DXFile

RegisterEnumTemplates