150 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Factor
		
	
	
USING: alien.c-types alien.syntax classes.struct windows.com
 | 
						|
windows.com.syntax windows.directx windows.directx.d3d10
 | 
						|
windows.directx.d3d10misc windows.types windows.directx.d3dx10math ;
 | 
						|
IN: windows.directx.d3dx10mesh
 | 
						|
 | 
						|
LIBRARY: d3dx10
 | 
						|
 | 
						|
CONSTANT: D3DX10_MESH_32_BIT       1
 | 
						|
CONSTANT: D3DX10_MESH_GS_ADJACENCY 4
 | 
						|
 | 
						|
TYPEDEF: int D3DX10_MESH
 | 
						|
 | 
						|
STRUCT: D3DX10_ATTRIBUTE_RANGE
 | 
						|
    { AttribId     UINT }
 | 
						|
    { FaceStart    UINT }
 | 
						|
    { FaceCount    UINT }
 | 
						|
    { VertexStart  UINT }
 | 
						|
    { VertexCount  UINT } ;
 | 
						|
 | 
						|
TYPEDEF: D3DX10_ATTRIBUTE_RANGE* LPD3DX10_ATTRIBUTE_RANGE
 | 
						|
 | 
						|
CONSTANT: D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER 0x01
 | 
						|
CONSTANT: D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE  0x02
 | 
						|
CONSTANT: D3DX10_MESH_DISCARD_POINTREPS        0x04
 | 
						|
CONSTANT: D3DX10_MESH_DISCARD_ADJACENCY        0x08
 | 
						|
CONSTANT: D3DX10_MESH_DISCARD_DEVICE_BUFFERS   0x10
 | 
						|
TYPEDEF: int D3DX10_MESH_DISCARD_FLAGS
 | 
						|
 | 
						|
STRUCT: D3DX10_WELD_EPSILONS
 | 
						|
    { Position     FLOAT    }
 | 
						|
    { BlendWeights FLOAT    }
 | 
						|
    { Normal       FLOAT    }
 | 
						|
    { PSize        FLOAT    }
 | 
						|
    { Specular     FLOAT    }
 | 
						|
    { Diffuse      FLOAT    }
 | 
						|
    { Texcoord     FLOAT[8] }
 | 
						|
    { Tangent      FLOAT    }
 | 
						|
    { Binormal     FLOAT    }
 | 
						|
    { TessFactor   FLOAT    } ;
 | 
						|
 | 
						|
TYPEDEF: D3DX10_WELD_EPSILONS* LPD3DX10_WELD_EPSILONS
 | 
						|
 | 
						|
STRUCT: D3DX10_INTERSECT_INFO
 | 
						|
    { FaceIndex  UINT  }
 | 
						|
    { U          FLOAT }
 | 
						|
    { V          FLOAT }
 | 
						|
    { Dist       FLOAT } ;
 | 
						|
TYPEDEF: D3DX10_INTERSECT_INFO* LPD3DX10_INTERSECT_INFO
 | 
						|
 | 
						|
COM-INTERFACE: ID3DX10MeshBuffer IUnknown {04B0D117-1041-46b1-AA8A-3952848BA22E}
 | 
						|
    HRESULT Map ( void** ppData, SIZE_T* pSize )
 | 
						|
    HRESULT Unmap ( )
 | 
						|
    SIZE_T GetSize ( ) ;
 | 
						|
 | 
						|
COM-INTERFACE: ID3DX10Mesh IUnknown {4020E5C2-1403-4929-883F-E2E849FAC195}
 | 
						|
    UINT GetFaceCount ( )
 | 
						|
    UINT GetVertexCount ( )
 | 
						|
    UINT GetVertexBufferCount ( )
 | 
						|
    UINT GetFlags ( )
 | 
						|
    HRESULT GetVertexDescription ( D3D10_INPUT_ELEMENT_DESC** ppDesc, UINT* pDeclCount )
 | 
						|
    HRESULT SetVertexData ( UINT iBuffer, void* pData )
 | 
						|
    HRESULT GetVertexBuffer ( UINT iBuffer, ID3DX10MeshBuffer** ppVertexBuffer )
 | 
						|
    HRESULT SetIndexData ( void* pData, UINT cIndices )
 | 
						|
    HRESULT GetIndexBuffer ( ID3DX10MeshBuffer** ppIndexBuffer )
 | 
						|
    HRESULT SetAttributeData ( UINT* pData )
 | 
						|
    HRESULT GetAttributeBuffer ( ID3DX10MeshBuffer** ppAttributeBuffer )
 | 
						|
    HRESULT SetAttributeTable ( D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT cAttribTableSize )
 | 
						|
    HRESULT GetAttributeTable ( D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT* pAttribTableSize )
 | 
						|
    HRESULT GenerateAdjacencyAndPointReps ( FLOAT Epsilon )
 | 
						|
    HRESULT GenerateGSAdjacency ( )
 | 
						|
    HRESULT SetAdjacencyData ( UINT* pAdjacency )
 | 
						|
    HRESULT GetAdjacencyBuffer ( ID3DX10MeshBuffer** ppAdjacency )
 | 
						|
    HRESULT SetPointRepData ( UINT* pPointReps )
 | 
						|
    HRESULT GetPointRepBuffer ( ID3DX10MeshBuffer** ppPointReps )
 | 
						|
    HRESULT Discard ( D3DX10_MESH_DISCARD_FLAGS dwDiscard )
 | 
						|
    HRESULT CloneMesh ( UINT Flags, LPCSTR pPosSemantic, D3D10_INPUT_ELEMENT_DESC* pDesc, UINT DeclCount, ID3DX10Mesh** ppCloneMesh )
 | 
						|
    HRESULT Optimize ( UINT Flags, UINT* pFaceRemap, LPD3D10BLOB* ppVertexRemap )
 | 
						|
    HRESULT GenerateAttributeBufferFromTable ( )
 | 
						|
    HRESULT Intersect ( D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
 | 
						|
                                        UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob** ppAllHits )
 | 
						|
    HRESULT IntersectSubset ( UINT AttribId, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
 | 
						|
                                        UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob** ppAllHits )
 | 
						|
    HRESULT CommitToDevice ( )
 | 
						|
    HRESULT DrawSubset ( UINT AttribId )
 | 
						|
    HRESULT DrawSubsetInstanced ( UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation )
 | 
						|
    HRESULT GetDeviceVertexBuffer ( UINT iBuffer, ID3D10Buffer** ppVertexBuffer )
 | 
						|
    HRESULT GetDeviceIndexBuffer ( ID3D10Buffer** ppIndexBuffer ) ;
 | 
						|
 | 
						|
FUNCTION: HRESULT
 | 
						|
    D3DX10CreateMesh (
 | 
						|
        ID3D10Device*             pDevice,
 | 
						|
        D3D10_INPUT_ELEMENT_DESC* pDeclaration,
 | 
						|
        UINT                      DeclCount,
 | 
						|
        LPCSTR                    pPositionSemantic,
 | 
						|
        UINT                      VertexCount,
 | 
						|
        UINT                      FaceCount,
 | 
						|
        UINT                      Options,
 | 
						|
        ID3DX10Mesh**             ppMesh        ) ;
 | 
						|
 | 
						|
CONSTANT: D3DX10_MESHOPT_COMPACT            0x01000000
 | 
						|
CONSTANT: D3DX10_MESHOPT_ATTR_SORT          0x02000000
 | 
						|
CONSTANT: D3DX10_MESHOPT_VERTEX_CACHE       0x04000000
 | 
						|
CONSTANT: D3DX10_MESHOPT_STRIP_REORDER      0x08000000
 | 
						|
CONSTANT: D3DX10_MESHOPT_IGNORE_VERTS       0x10000000
 | 
						|
CONSTANT: D3DX10_MESHOPT_DO_NOT_SPLIT       0x20000000
 | 
						|
CONSTANT: D3DX10_MESHOPT_DEVICE_INDEPENDENT 0x00400000
 | 
						|
 | 
						|
CONSTANT: D3DX10_SKININFO_NO_SCALING     0
 | 
						|
CONSTANT: D3DX10_SKININFO_SCALE_TO_1     1
 | 
						|
CONSTANT: D3DX10_SKININFO_SCALE_TO_TOTAL 2
 | 
						|
 | 
						|
STRUCT: D3DX10_SKINNING_CHANNEL
 | 
						|
    { SrcOffset             UINT }
 | 
						|
    { DestOffset            UINT }
 | 
						|
    { IsNormal              BOOL } ;
 | 
						|
 | 
						|
COM-INTERFACE: ID3DX10SkinInfo IUnknown {420BD604-1C76-4a34-A466-E45D0658A32C}
 | 
						|
    UINT GetNumVertices ( )
 | 
						|
    UINT GetNumBones ( )
 | 
						|
    UINT GetMaxBoneInfluences ( )
 | 
						|
    HRESULT AddVertices ( UINT  Count )
 | 
						|
    HRESULT RemapVertices ( UINT NewVertexCount, UINT* pVertexRemap )
 | 
						|
    HRESULT AddBones ( UINT Count )
 | 
						|
    HRESULT RemoveBone ( UINT Index )
 | 
						|
    HRESULT RemapBones ( UINT NewBoneCount, UINT* pBoneRemap )
 | 
						|
    HRESULT AddBoneInfluences ( UINT BoneIndex, UINT InfluenceCount, UINT* pIndices, float* pWeights )
 | 
						|
    HRESULT ClearBoneInfluences ( UINT BoneIndex )
 | 
						|
    UINT GetBoneInfluenceCount ( UINT BoneIndex )
 | 
						|
    HRESULT GetBoneInfluences ( UINT BoneIndex, UINT Offset, UINT Count, UINT* pDestIndices, float* pDestWeights )
 | 
						|
    HRESULT FindBoneInfluenceIndex ( UINT BoneIndex, UINT VertexIndex, UINT* pInfluenceIndex )
 | 
						|
    HRESULT SetBoneInfluence ( UINT BoneIndex, UINT InfluenceIndex, float Weight )
 | 
						|
    HRESULT GetBoneInfluence ( UINT BoneIndex, UINT InfluenceIndex, float* pWeight )
 | 
						|
    HRESULT Compact ( UINT MaxPerVertexInfluences, UINT ScaleMode, float MinWeight )
 | 
						|
    HRESULT DoSoftwareSkinning ( UINT StartVertex, UINT VertexCount, void* pSrcVertices, UINT SrcStride, void* pDestVertices, UINT DestStride, D3DXMATRIX* pBoneMatrices, D3DXMATRIX* pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL* pChannelDescs, UINT NumChannels ) ;
 | 
						|
 | 
						|
TYPEDEF: ID3DX10SkinInfo* LPD3DX10SKININFO
 | 
						|
 | 
						|
FUNCTION: HRESULT
 | 
						|
    D3DX10CreateSkinInfo ( LPD3DX10SKININFO* ppSkinInfo ) ;
 | 
						|
 | 
						|
STRUCT: D3DX10_ATTRIBUTE_WEIGHTS
 | 
						|
    { Position FLOAT    }
 | 
						|
    { Boundary FLOAT    }
 | 
						|
    { Normal   FLOAT    }
 | 
						|
    { Diffuse  FLOAT    }
 | 
						|
    { Specular FLOAT    }
 | 
						|
    { Texcoord FLOAT[8] }
 | 
						|
    { Tangent  FLOAT    }
 | 
						|
    { Binormal FLOAT    } ;
 |