Metodo ID3DXFile::RegisterTemplates

Registra modelli personalizzati.

Sintassi

HRESULT RegisterTemplates(
  [in] LPCVOID pvData,
  [in] SIZE_T  cbSize
);

Parametri

pvData [in]

Tipo: LPCVOID

Puntatore a un buffer costituito da un file con estensione x in formato testo o binario che contiene modelli.

cbSize [in]

Tipo: SIZE_T

Dimensioni del buffer a cui punta pvData, in byte.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito viene S_OK. Se il metodo ha esito negativo, il valore restituito può essere uno dei seguenti: D3DXFERR_BADVALUE, D3DXFERR_PARSEERROR.

Commenti

Il frammento di codice seguente fornisce una chiamata di esempio a RegisterTemplates E il contenuto di esempio per il buffer a cui punta 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;

Tutti i modelli devono specificare un nome e un UUID.

Questo metodo chiama il metodo RegisterEnumTemplates , ottenendo un puntatore all'interfaccia ID3DXFileEnumObject chiamando CreateEnumObject con pvData come primo parametro.

Requisiti

Requisito Valore
Intestazione
D3DX9Xof.h
Libreria
D3dx9.lib

Vedi anche

ID3DXFile

RegisterEnumTemplates