Microsoft DirectX 9.0

ID3DXPMesh::Optimize Method

Generates an output mesh with reordered faces and vertices to optimize performance.


HRESULT Optimize(      

    DWORD Flags,     DWORD *pAdjacencyOut,     DWORD *pFaceRemap,     LPD3DXBUFFER *ppVertexRemap,     LPD3DXMESH *ppOptMesh );


[in] Specifies the type of optimization to perform. This parameter can be set to a combination of one or more flags from D3DXMESHOPT and D3DXMESH (except D3DXMESH32_BIT, D3DXMESH_IB_WRITEONLY, and D3DXMESH_WRITEONLY).
[out] Pointer to a destination buffer for the face adjacency array of the optimized mesh. The face adjacency is stored as an array of arrays. The innermost array is three indices of adjacent triangles, and the outer array is one set of face adjacency per triangle in the mesh. The size of this array is the maximum number of faces multiplied by 3.
[out] Pointer to a destination buffer containing the new index for each face.
[out] Address of a pointer to an ID3DXBuffer interface; containing the new index for each vertex.
[out] Address of a pointer to an ID3DXMesh interface, representing the optimized mesh.

Return Value

If the method succeeds, the return value is D3D_OK.

If the method fails, the return value can be one of the following values.

D3DERR_INVALIDCALLThe method call is invalid. For example, a method's parameter may have an invalid value.
E_OUTOFMEMORYMicrosoft?Direct3D?could not allocate sufficient memory to complete the call.

© 2002 Microsoft Corporation. All rights reserved.