Compartilhar via


Método ID3DXMesh::OptimizeInplace

Gera uma malha com rostos e vértices reordenados para otimizar o desempenho do desenho. Esse método reordena a malha existente.

Sintaxe

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

Parâmetros

Sinalizadores [in]

Tipo: DWORD

Combinação de um ou mais sinalizadores D3DXMESHOPT , especificando o tipo de otimização a ser executada.

pAdjacencyIn [in]

Tipo: const DWORD*

Ponteiro para uma matriz de três DWORDs por rosto que especifica os três vizinhos para cada rosto na malha de origem. Se a borda não tiver rostos adjacentes, o valor será 0xffffffff.

pAdjacencyOut [out]

Tipo: DWORD*

Ponteiro para uma matriz de três DWORDs por rosto que especifica os três vizinhos para cada rosto na malha otimizada. Se a borda não tiver rostos adjacentes, o valor será 0xffffffff. Se o valor fornecido para esse argumento for NULL, os dados de adjacência não serão retornados.

pFaceRemap [out]

Tipo: DWORD*

Uma matriz de DWORDs, uma por rosto, que identifica a face de malha original que corresponde a cada rosto na malha otimizada. Se o valor fornecido para esse argumento for NULL, os dados de remapeamento facial não serão retornados.

ppVertexRemap [out]

Tipo: LPD3DXBUFFER*

Endereço de um ponteiro para uma interface ID3DXBuffer , que contém um DWORD para cada vértice que especifica como os novos vértices são mapeados para os vértices antigos. Esse remapeamento será útil se você precisar alterar dados externos com base no novo mapeamento de vértice. Se o valor fornecido para esse argumento for NULL, os dados de remapeamento de vértice não serão retornados.

Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, D3DXERR_CANNOTATTRSORT E_OUTOFMEMORY.

Comentários

Antes de executar ID3DXMesh::OptimizeInplace, um aplicativo deve gerar um buffer de adjacência chamando ID3DXBaseMesh::GenerateAdjacency. O buffer de adjacência contém dados de adjacência, como uma lista de bordas e os rostos adjacentes uns aos outros.

Observação

Esse método falhará se a malha estiver compartilhando seu buffer de vértice com outra malha, a menos que o D3DXMESHOPT_IGNOREVERTS esteja definido em Sinalizadores.

 

Requisitos

Requisito Valor
parâmetro
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Confira também

ID3DXMesh

ID3DXMesh::Optimize