ID3DXSPMesh Interface

 

 

' ****************************************************************************************
' ID3DXSPMesh interface
' $IID_ID3DXSPMesh = GUID$("{667EA4C7-F1CD-4386-B523-7C0290B83CC5}")
' ****************************************************************************************

' ****************************************************************************************
' Applications use the methods of the ID3DXSPMesh interface to manipulate simplification mesh
' objects. A simplification mesh is used to simplify a given mesh to a lower number of faces.
' ****************************************************************************************

' ****************************************************************************************
'DECLARE_INTERFACE_(ID3DXSPMesh, IUnknown)
'{
'    // IUnknown
'  0.  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
'  1.  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
'  2.  STDMETHOD_(ULONG, Release)(THIS) PURE;

'    // ID3DXSPMesh
'  3.  STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
'  4.  STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
'  5.  STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
'  6.  STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 Declaration[MAX_FVF_DECL_SIZE]) PURE;
'  7.  STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
'  8.  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
'  9.  STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
'                DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, DWORD *pAdjacencyOut, DWORD *pVertexRemapOut, LPD3DXMESH* ppCloneMesh) PURE;
' 10.  STDMETHOD(CloneMesh)(THIS_ DWORD Options,
'                CONST D3DVERTEXELEMENT9 *pDeclaration, LPDIRECT3DDEVICE9 pD3DDevice, DWORD *pAdjacencyOut, DWORD *pVertexRemapOut, LPD3DXMESH* ppCloneMesh) PURE;
' 11.  STDMETHOD(ClonePMeshFVF)(THIS_ DWORD Options,
'                DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, DWORD *pVertexRemapOut, FLOAT *pErrorsByFace, LPD3DXPMESH* ppCloneMesh) PURE;
' 12.  STDMETHOD(ClonePMesh)(THIS_ DWORD Options,
'                CONST D3DVERTEXELEMENT9 *pDeclaration, LPDIRECT3DDEVICE9 pD3DDevice, DWORD *pVertexRemapOut, FLOAT *pErrorsbyFace, LPD3DXPMESH* ppCloneMesh) PURE;
' 13.  STDMETHOD(ReduceFaces)(THIS_ DWORD Faces) PURE;
' 14.  STDMETHOD(ReduceVertices)(THIS_ DWORD Vertices) PURE;
' 15.  STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
' 16.  STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
' 17.  STDMETHOD(GetVertexAttributeWeights)(THIS_ LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights) PURE;
' 18.  STDMETHOD(GetVertexWeights)(THIS_ FLOAT *pVertexWeights) PURE;
'};
' ****************************************************************************************

' ****************************************************************************************
' GetNumFaces method
' Retrieves the number of faces in the simplification mesh.
' DWORD GetNumFaces();
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetNumFaces ALIAS "ID3DXSPMesh_GetNumFaces" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[3] USING ID3DXSPMesh_GetNumFaces(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetNumVertices method
' Retrieves the number of vertices in the simplification mesh.
' DWORD GetNumVertices();
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetNumVertices ALIAS "ID3DXSPMesh_GetNumVertices" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[4] USING ID3DXSPMesh_GetNumVertices(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetFVF method
' Retrieves the flexible vertex format (FVF) of the vertices in the simplification mesh.
' DWORD GetFVF();
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetFVF ALIAS "ID3DXSPMesh_GetFVF" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[5] USING ID3DXSPMesh_GetFVF(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetDeclaration method
' Retrieves a declaration describing the vertices in the mesh.
' HRESULT GetDeclaration(
'   D3DVERTEXELEMENT9 Declaration[MAX_FVF_DECL_SIZE]
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetDeclaration ALIAS "ID3DXSPMesh_GetDeclaration" ( _
    BYVAL pthis AS DWORD PTR, BYREF Declaration AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[6] USING ID3DXSPMesh_GetDeclaration(pthis, Declaration) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetOptions method
' Retrieves the mesh options enabled for this simplification mesh at creation time.
' DWORD GetOptions();
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetOptions ALIAS "ID3DXSPMesh_GetOptions" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[7] USING ID3DXSPMesh_GetOptions(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetDevice method
' Retrieves the device associated with the mesh.
' Remarks
' Calling this method will increase the internal reference count on the IDirect3DDevice9
' interface. Be sure to call IUnknown::Release when you are done using this IDirect3DDevice9
' interface or you will have a memory leak.
' HRESULT GetDevice(
'   LPDIRECT3DDEVICE9 * ppDevice
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetDevice ALIAS "ID3DXSPMesh_GetDevice" ( _
    BYVAL pthis AS DWORD PTR, BYREF ppDevice AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[8] USING ID3DXSPMesh_GetDevice(pthis, ppDevice) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' CloneMeshFVF method
' Clones a mesh using a flexible vertex format (FVF) code.
' HRESULT CloneMeshFVF(
'   DWORD Options,
'   DWORD FVF,
'   LPDIRECT3DDEVICE9 pD3DDevice,
'   DWORD * pAdjacencyOut,
'   DWORD * pVertexRemapOut,
'   LPD3DXMESH * ppCloneMesh
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_CloneMeshFVF ALIAS "ID3DXSPMesh_CloneMeshFVF" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Options AS DWORD, BYVAL FVF AS DWORD, _
    BYVAL pD3DDevice AS DWORD, BYVAL pAdjacencyOut AS DWORD, BYVAL pVertexRemapOut AS DWORD, _
    BYREF ppCloneMesh AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[9] USING ID3DXSPMesh_CloneMeshFVF(pthis, Options, FVF, pD3DDevice, pAdjacencyOut, pVertexRemapOut, ppCloneMesh) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' CloneMesh method
' Clones a mesh using a declarator.
' HRESULT CloneMesh(
'   DWORD Options,
'   CONST D3DVERTEXELEMENT9 * pDeclaration,
'   LPDIRECT3DDEVICE9 pDevice,
'   DWORD * pAdjacencyOut,
'   DWORD * pVertexRemapOut,
'   LPD3DXMESH * ppCloneMesh
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_CloneMesh ALIAS "ID3DXSPMesh_CloneMesh" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Options AS DWORD, BYVAL pDeclaration AS DWORD, _
    BYVAL pDevice AS DWORD, BYVAL pAdjacencyOut AS DWORD, BYVAL pVertexRemapOut AS DWORD, _
    BYREF ppCloneMesh AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[10] USING ID3DXSPMesh_CloneMesh(pthis, Options, pDeclaration, pDevice, pAdjacencyOut, pVertexRemapOut, ppCloneMesh) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' ClonePMeshFVF method
' Clones a progressive mesh using a flexible vertex format (FVF) code.
' HRESULT ClonePMeshFVF(
'   DWORD Options,
'   DWORD FVF,
'   LPDIRECT3DDEVICE9 pD3DDevice,
'   DWORD * pVertexRemapOut,
'   FLOAT * pErrorsByFace,
'   LPD3DXPMESH * ppCloneMesh
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_ClonePMeshFVF ALIAS "ID3DXSPMesh_ClonePMeshFVF" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Options AS DWORD, BYVAL FVF AS DWORD, _
    BYVAL pD3DDevice AS DWORD, BYVAL pVertexRemapOut AS DWORD, BYVAL pErrorsByFace AS DWORD, _
    BYREF ppCloneMesh AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[11] USING ID3DXSPMesh_ClonePMeshFVF(pthis, Options, FVF, pD3DDevice, pVertexRemapOut, pErrorsByFace, ppCloneMesh) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' ClonePMesh method
' Clones a progressive mesh using a declarator.
' HRESULT ClonePMesh(
'   DWORD Options,
'   CONST D3DVERTEXELEMENT9 * pDeclaration,
'   LPDIRECT3DDEVICE9 pD3DDevice,
'   DWORD * pVertexRemapOut,
'   FLOAT * pErrorsByFace,
'   LPD3DXPMESH * ppCloneMesh
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_ClonePMesh ALIAS "ID3DXSPMesh_ClonePMesh" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Options AS DWORD, BYVAL pDeclaration AS DWORD, _
    BYVAL pD3DDevice AS DWORD, BYVAL pVertexRemapOut AS DWORD, BYVAL pErrorsByFace AS DWORD, _
    BYREF ppCloneMesh AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[12] USING ID3DXSPMesh_ClonePMesh(pthis, Options, pDeclaration, pD3DDevice, pVertexRemapOut, pErrorsByFace, ppCloneMesh) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' ReduceFaces method
' Reduces the number of faces in a simplification mesh.
' HRESULT ReduceFaces(
'   DWORD Faces
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_ReduceFaces ALIAS "ID3DXSPMesh_ReduceFaces" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Faces AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[13] USING ID3DXSPMesh_ReduceFaces(pthis, Faces) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' ReduceVertices method
' Reduces the number of vertices in a simplification mesh.
' HRESULT ReduceVertices(
'   DWORD Vertices
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_ReduceVertices ALIAS "ID3DXSPMesh_ReduceVertices" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Faces AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[14] USING ID3DXSPMesh_ReduceVertices(pthis, Faces) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetMaxFaces method
' Retrieves the maximum number of faces that the simplification mesh supports.
' DWORD GetMaxFaces();
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetMaxFaces ALIAS "ID3DXSPMesh_GetMaxFaces" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[15] USING ID3DXSPMesh_GetMaxFaces(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetMaxVertices method
' Retrieves the maximum number of vertices that the simplification mesh supports.
' DWORD GetMaxVertices();
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetMaxVertices ALIAS "ID3DXSPMesh_GetMaxVertices" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[16] USING ID3DXSPMesh_GetMaxVertices(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetVertexAttributeWeights method
' Retrieves the per-vertex attribute weights used to create the ID3DXSPMesh object.
' HRESULT GetVertexAttributeWeights(
'   LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetVertexAttributeWeights ALIAS "ID3DXSPMesh_GetVertexAttributeWeights" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pVertexAttributeWeights AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[17] USING ID3DXSPMesh_GetVertexAttributeWeights(pthis, pVertexAttributeWeights) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetVertexWeights method
' Retrieves the per-vertex weights used to create the ID3DXSPMesh object.
' HRESULT GetVertexWeights(
'   FLOAT * pVertexWeights
' );
' ****************************************************************************************
FUNCTION ID3DXSPMesh_GetVertexWeights ALIAS "ID3DXSPMesh_GetVertexWeights" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pVertexWeights AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[18] USING ID3DXSPMesh_GetVertexWeights(pthis, pVertexWeights) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************
 

 

Page last updated on Tuesday, 14 March 2006 23:13:24 +0100