ID3DXMesh::OptimizeInplace, méthode

Génère un maillage avec des visages et des sommets réorganisés pour optimiser les performances de dessin. Cette méthode réorganise le maillage existant.

Syntaxe

HRESULT OptimizeInplace(
  [in]        DWORD        Flags,
  [in]  const DWORD        *pAdjacencyIn,
  [out]       DWORD        *pAdjacencyOut,
  [out]       DWORD        *pFaceRemap,
  [out]       LPD3DXBUFFER *ppVertexRemap
);

Paramètres

Indicateurs [in]

Type : DWORD

Combinaison d’un ou de plusieurs indicateurs D3DXMESHOPT , spécifiant le type d’optimisation à effectuer.

pAdjacencyIn [in]

Type : const DWORD*

Pointeur vers un tableau de trois DWORD par visage qui spécifie les trois voisins pour chaque visage dans le maillage source. Si le bord n’a pas de faces adjacentes, la valeur est 0xffffffff.

pAdjacencyOut [out]

Type : DWORD*

Pointeur vers un tableau de trois DWORD par visage qui spécifie les trois voisins pour chaque visage dans le maillage optimisé. Si le bord n’a pas de faces adjacentes, la valeur est 0xffffffff. Si la valeur fournie pour cet argument est NULL, les données d’adjacence ne sont pas retournées.

pFaceRemap [out]

Type : DWORD*

Tableau de DWORDs, un par face, qui identifie la face de maillage d’origine qui correspond à chaque visage dans le maillage optimisé. Si la valeur fournie pour cet argument est NULL, les données de remappage de visage ne sont pas retournées.

ppVertexRemap [out]

Type : LPD3DXBUFFER*

Adresse d’un pointeur vers une interface ID3DXBuffer , qui contient un DWORD pour chaque sommet qui spécifie la façon dont les nouveaux sommets sont mappés aux anciens sommets. Ce remappage est utile si vous devez modifier des données externes en fonction du nouveau mappage de vertex. Si la valeur fournie pour cet argument est NULL, les données de remappage de vertex ne sont pas retournées.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, D3DXERR_CANNOTATTRSORT, E_OUTOFMEMORY.

Notes

Avant d’exécuter ID3DXMesh::OptimizeInplace, une application doit générer une mémoire tampon d’adjacence en appelant ID3DXBaseMesh::GenerateAdjacency. La mémoire tampon d’adjacence contient des données d’adjacence, telles qu’une liste d’arêtes et des visages adjacents les uns aux autres.

Notes

Cette méthode échoue si le maillage partage sa mémoire tampon de vertex avec un autre maillage, sauf si la D3DXMESHOPT_IGNOREVERTS est définie dans Indicateurs.

 

Spécifications

Condition requise Valeur
En-tête
D3DX9Mesh.h
Bibliothèque
D3dx9.lib

Voir aussi

ID3DXMesh

ID3DXMesh::Optimize