]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/d3dx10mesh/d3dx10mesh.factor
use radix literals
[factor.git] / basis / windows / directx / d3dx10mesh / d3dx10mesh.factor
1 USING: alien.c-types alien.syntax classes.struct windows.com
2 windows.com.syntax windows.directx windows.directx.d3d10
3 windows.directx.d3d10misc windows.types windows.directx.d3dx10math ;
4 IN: windows.directx.d3dx10mesh
5
6 LIBRARY: d3dx10
7
8 CONSTANT: D3DX10_MESH_32_BIT       1
9 CONSTANT: D3DX10_MESH_GS_ADJACENCY 4
10
11 TYPEDEF: int D3DX10_MESH
12
13 STRUCT: D3DX10_ATTRIBUTE_RANGE
14     { AttribId     UINT }
15     { FaceStart    UINT }
16     { FaceCount    UINT }
17     { VertexStart  UINT }
18     { VertexCount  UINT } ;
19
20 TYPEDEF: D3DX10_ATTRIBUTE_RANGE* LPD3DX10_ATTRIBUTE_RANGE
21
22 CONSTANT: D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER 0x01
23 CONSTANT: D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE  0x02
24 CONSTANT: D3DX10_MESH_DISCARD_POINTREPS        0x04
25 CONSTANT: D3DX10_MESH_DISCARD_ADJACENCY        0x08
26 CONSTANT: D3DX10_MESH_DISCARD_DEVICE_BUFFERS   0x10
27 TYPEDEF: int D3DX10_MESH_DISCARD_FLAGS
28
29 STRUCT: D3DX10_WELD_EPSILONS
30     { Position     FLOAT    }
31     { BlendWeights FLOAT    }
32     { Normal       FLOAT    }
33     { PSize        FLOAT    }
34     { Specular     FLOAT    }
35     { Diffuse      FLOAT    }
36     { Texcoord     FLOAT[8] }
37     { Tangent      FLOAT    }
38     { Binormal     FLOAT    }
39     { TessFactor   FLOAT    } ;
40
41 TYPEDEF: D3DX10_WELD_EPSILONS* LPD3DX10_WELD_EPSILONS
42
43 STRUCT: D3DX10_INTERSECT_INFO
44     { FaceIndex  UINT  }
45     { U          FLOAT }
46     { V          FLOAT }
47     { Dist       FLOAT } ;
48 TYPEDEF: D3DX10_INTERSECT_INFO* LPD3DX10_INTERSECT_INFO
49
50 COM-INTERFACE: ID3DX10MeshBuffer IUnknown {04B0D117-1041-46b1-AA8A-3952848BA22E}
51     HRESULT Map ( void** ppData, SIZE_T* pSize )
52     HRESULT Unmap ( )
53     SIZE_T GetSize ( ) ;
54
55 COM-INTERFACE: ID3DX10Mesh IUnknown {4020E5C2-1403-4929-883F-E2E849FAC195}
56     UINT GetFaceCount ( )
57     UINT GetVertexCount ( )
58     UINT GetVertexBufferCount ( )
59     UINT GetFlags ( )
60     HRESULT GetVertexDescription ( D3D10_INPUT_ELEMENT_DESC** ppDesc, UINT* pDeclCount )
61     HRESULT SetVertexData ( UINT iBuffer, void* pData )
62     HRESULT GetVertexBuffer ( UINT iBuffer, ID3DX10MeshBuffer** ppVertexBuffer )
63     HRESULT SetIndexData ( void* pData, UINT cIndices )
64     HRESULT GetIndexBuffer ( ID3DX10MeshBuffer** ppIndexBuffer )
65     HRESULT SetAttributeData ( UINT* pData )
66     HRESULT GetAttributeBuffer ( ID3DX10MeshBuffer** ppAttributeBuffer )
67     HRESULT SetAttributeTable ( D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT cAttribTableSize )
68     HRESULT GetAttributeTable ( D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT* pAttribTableSize )
69     HRESULT GenerateAdjacencyAndPointReps ( FLOAT Epsilon )
70     HRESULT GenerateGSAdjacency ( )
71     HRESULT SetAdjacencyData ( UINT* pAdjacency )
72     HRESULT GetAdjacencyBuffer ( ID3DX10MeshBuffer** ppAdjacency )
73     HRESULT SetPointRepData ( UINT* pPointReps )
74     HRESULT GetPointRepBuffer ( ID3DX10MeshBuffer** ppPointReps )
75     HRESULT Discard ( D3DX10_MESH_DISCARD_FLAGS dwDiscard )
76     HRESULT CloneMesh ( UINT Flags, LPCSTR pPosSemantic, D3D10_INPUT_ELEMENT_DESC* pDesc, UINT DeclCount, ID3DX10Mesh** ppCloneMesh )
77     HRESULT Optimize ( UINT Flags, UINT* pFaceRemap, LPD3D10BLOB* ppVertexRemap )
78     HRESULT GenerateAttributeBufferFromTable ( )
79     HRESULT Intersect ( D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
80                                         UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob** ppAllHits )
81     HRESULT IntersectSubset ( UINT AttribId, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
82                                         UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob** ppAllHits )
83     HRESULT CommitToDevice ( )
84     HRESULT DrawSubset ( UINT AttribId )
85     HRESULT DrawSubsetInstanced ( UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation )
86     HRESULT GetDeviceVertexBuffer ( UINT iBuffer, ID3D10Buffer** ppVertexBuffer )
87     HRESULT GetDeviceIndexBuffer ( ID3D10Buffer** ppIndexBuffer ) ;
88
89 FUNCTION: HRESULT
90     D3DX10CreateMesh (
91         ID3D10Device*             pDevice,
92         D3D10_INPUT_ELEMENT_DESC* pDeclaration,
93         UINT                      DeclCount,
94         LPCSTR                    pPositionSemantic,
95         UINT                      VertexCount,
96         UINT                      FaceCount,
97         UINT                      Options,
98         ID3DX10Mesh**             ppMesh        ) ;
99
100 CONSTANT: D3DX10_MESHOPT_COMPACT            0x01000000
101 CONSTANT: D3DX10_MESHOPT_ATTR_SORT          0x02000000
102 CONSTANT: D3DX10_MESHOPT_VERTEX_CACHE       0x04000000
103 CONSTANT: D3DX10_MESHOPT_STRIP_REORDER      0x08000000
104 CONSTANT: D3DX10_MESHOPT_IGNORE_VERTS       0x10000000
105 CONSTANT: D3DX10_MESHOPT_DO_NOT_SPLIT       0x20000000
106 CONSTANT: D3DX10_MESHOPT_DEVICE_INDEPENDENT 0x00400000
107
108 CONSTANT: D3DX10_SKININFO_NO_SCALING     0
109 CONSTANT: D3DX10_SKININFO_SCALE_TO_1     1
110 CONSTANT: D3DX10_SKININFO_SCALE_TO_TOTAL 2
111
112 STRUCT: D3DX10_SKINNING_CHANNEL
113     { SrcOffset             UINT }
114     { DestOffset            UINT }
115     { IsNormal              BOOL } ;
116
117 COM-INTERFACE: ID3DX10SkinInfo IUnknown {420BD604-1C76-4a34-A466-E45D0658A32C}
118     UINT GetNumVertices ( )
119     UINT GetNumBones ( )
120     UINT GetMaxBoneInfluences ( )
121     HRESULT AddVertices ( UINT  Count )
122     HRESULT RemapVertices ( UINT NewVertexCount, UINT* pVertexRemap )
123     HRESULT AddBones ( UINT Count )
124     HRESULT RemoveBone ( UINT Index )
125     HRESULT RemapBones ( UINT NewBoneCount, UINT* pBoneRemap )
126     HRESULT AddBoneInfluences ( UINT BoneIndex, UINT InfluenceCount, UINT* pIndices, float* pWeights )
127     HRESULT ClearBoneInfluences ( UINT BoneIndex )
128     UINT GetBoneInfluenceCount ( UINT BoneIndex )
129     HRESULT GetBoneInfluences ( UINT BoneIndex, UINT Offset, UINT Count, UINT* pDestIndices, float* pDestWeights )
130     HRESULT FindBoneInfluenceIndex ( UINT BoneIndex, UINT VertexIndex, UINT* pInfluenceIndex )
131     HRESULT SetBoneInfluence ( UINT BoneIndex, UINT InfluenceIndex, float Weight )
132     HRESULT GetBoneInfluence ( UINT BoneIndex, UINT InfluenceIndex, float* pWeight )
133     HRESULT Compact ( UINT MaxPerVertexInfluences, UINT ScaleMode, float MinWeight )
134     HRESULT DoSoftwareSkinning ( UINT StartVertex, UINT VertexCount, void* pSrcVertices, UINT SrcStride, void* pDestVertices, UINT DestStride, D3DXMATRIX* pBoneMatrices, D3DXMATRIX* pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL* pChannelDescs, UINT NumChannels ) ;
135
136 TYPEDEF: ID3DX10SkinInfo* LPD3DX10SKININFO
137
138 FUNCTION: HRESULT
139     D3DX10CreateSkinInfo ( LPD3DX10SKININFO* ppSkinInfo ) ;
140
141 STRUCT: D3DX10_ATTRIBUTE_WEIGHTS
142     { Position FLOAT    }
143     { Boundary FLOAT    }
144     { Normal   FLOAT    }
145     { Diffuse  FLOAT    }
146     { Specular FLOAT    }
147     { Texcoord FLOAT[8] }
148     { Tangent  FLOAT    }
149     { Binormal FLOAT    } ;