Método ID3DXMesh::OptimizeInplace

Genera una malla con caras y vértices reordenados para optimizar el rendimiento del dibujo. Este método reordena la malla existente.

Sintaxis

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

Parámetros

Marcas [in]

Tipo: DWORD

Combinación de una o varias marcas D3DXMESHOPT , especificando el tipo de optimización que se va a realizar.

pAdjacencyIn [in]

Tipo: const DWORD*

Puntero a una matriz de tres DWORD por cara que especifica los tres vecinos para cada cara de la malla de origen. Si el borde no tiene caras adyacentes, el valor es 0xffffffff.

pAdjacencyOut [out]

Tipo: DWORD*

Puntero a una matriz de tres DWORD por cara que especifica los tres vecinos para cada cara de la malla optimizada. Si el borde no tiene caras adyacentes, el valor es 0xffffffff. Si el valor proporcionado para este argumento es NULL, no se devuelven datos de adyacencia.

pFaceRemap [out]

Tipo: DWORD*

Matriz de DWORDs, una por cara, que identifica la cara de malla original que corresponde a cada cara de la malla optimizada. Si el valor proporcionado para este argumento es NULL, no se devuelven los datos de mapa facial.

ppVertexRemap [out]

Tipo: LPD3DXBUFFER*

Dirección de un puntero a una interfaz ID3DXBuffer , que contiene un DWORD para cada vértice que especifica cómo se asignan los nuevos vértices a los vértices antiguos. Este mapa es útil si necesita modificar los datos externos en función de la nueva asignación de vértices. Si el valor proporcionado para este argumento es NULL, no se devuelven los datos de mapa de vértices.

Valor devuelto

Tipo: HRESULT

Si el método se realiza correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, D3DXERR_CANNOTATTRSORT, E_OUTOFMEMORY.

Comentarios

Antes de ejecutar ID3DXMesh::OptimizeInplace, una aplicación debe generar un búfer de adyacencia llamando a ID3DXBaseMesh::GenerateAdjacency. El búfer de adyacencia contiene datos de adyacencia, como una lista de bordes y las caras adyacentes entre sí.

Nota

Este método producirá un error si la malla comparte su búfer de vértices con otra malla, a menos que la D3DXMESHOPT_IGNOREVERTS esté establecida en Marcas.

 

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

ID3DXMesh

ID3DXMesh::Optimize