ID3DXMesh::OptimizeInplace-Methode

Generiert ein Gitternetz mit neu angeordneten Gesichtern und Scheitelpunkten, um die Zeichnungsleistung zu optimieren. Diese Methode ordnet das vorhandene Gitternetz neu an.

Syntax

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

Parameter

Flags [ In]

Typ: DWORD

Kombination aus einem oder mehreren D3DXMESHOPT-Flags, die den Typ der auszuführenden Optimierung angeben.

pAdencyencyIn [ In]

Typ: const DWORD *

Zeiger auf ein Array von drei DWORDs pro Gesicht, das die drei Nachbarn für jedes Gesicht im Quellgitternetz angibt. Wenn der Rand keine angrenzenden Gesichter hat, wird der Wert 0xffffffff.

pAdjaencyOut [ out]

Typ: DWORD*

Zeiger auf ein Array von drei DWORDs pro Gesicht, das die drei Nachbarn für jedes Gesicht im optimierten Netz angibt. Wenn der Rand keine angrenzenden Gesichter hat, wird der Wert 0xffffffff. Wenn der für dieses Argument angegebene Wert NULL ist, werden keine Adjazenzdaten zurückgegeben.

pFaceRemap [ out]

Typ: DWORD*

Ein Array von DWORDs (eins pro Gesicht), das das ursprüngliche Gitternetz identifiziert, das den einzelnen Gesichtern im optimierten Gitternetz entspricht. Wenn der für dieses Argument angegebene Wert NULL ist, werden keine Gesichtszuordnungsdaten zurückgegeben.

ppVertexRemap [ out]

Typ: LPD3DXBUFFER*

Adresse eines Zeigers auf eine ID3DXBuffer-Schnittstelle, die ein DWORD für jeden Scheitelpunkt enthält, der angibt, wie die neuen Scheitelpunkte den alten Scheitelpunkten zugeordnet werden. Diese Neuzuordnung ist nützlich, wenn Sie externe Daten basierend auf der neuen Scheitelpunktzuordnung ändern müssen. Wenn der für dieses Argument angegebene Wert NULL ist, werden keine Vertex-Neuzuordnungsdaten zurückgegeben.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, lautet der Rückgabewert D3D _ OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden Sein: D3DERR _ INVALIDCALL, D3DXERR _ CANNOTATTRSORT, E _ OUTOFMEMORY.

Hinweise

Vor dem Ausführen von ID3DXMesh::OptimizeInplace muss eine Anwendung einen Adjazenzpuffer generieren, indem sie ID3DXBaseMesh::GenerateAdjaency aufruft. Der Adjazenzpuffer enthält Adjazenzdaten, z. B. eine Liste von Kanten und den nebeneinander liegenden Gesichtern.

Hinweis

Diese Methode schlägt fehl, wenn das Gitternetz seinen Scheitelpunktpuffer mit einem anderen Gitternetz teilt, es sei denn, D3DXMESHOPT _ IGNOREVERTS ist in Flags festgelegt.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

ID3DXMesh

ID3DXMesh::Optimize