source: trunk/ab5.0/ablib/src/directx9/d3dx9mesh.sbp@ 560

Last change on this file since 560 was 497, checked in by イグトランス (egtra), 16 years ago

インクルードガードとその他不要な前処理定義などの削除

File size: 29.9 KB
Line 
1'd3dx9mesh.sbp
2
3' patch mesh can be quads or tris
4Const Enum D3DXPATCHMESHTYPE
5 D3DXPATCHMESH_RECT = &H001
6 D3DXPATCHMESH_TRI = &H002
7 D3DXPATCHMESH_NPATCH = &H003
8
9 D3DXPATCHMESH_FORCE_DWORD = &H7FFFFFFF
10End Enum
11
12' Mesh options - lower 3 bytes only, upper byte used by _D3DXMESHOPT option flags
13Const Enum D3DXMESH
14 D3DXMESH_32BIT = &H001 'If set, then use 32 bit indices, if not set use 16 bit indices.
15 D3DXMESH_DONOTCLIP = &H002 'Use D3DUSAGE_DONOTCLIP for VB & IB.
16 D3DXMESH_POINTS = &H004 'Use D3DUSAGE_POINTS for VB & IB.
17 D3DXMESH_RTPATCHES = &H008 'Use D3DUSAGE_RTPATCHES for VB & IB.
18 D3DXMESH_NPATCHES = &H4000 'Use D3DUSAGE_NPATCHES for VB & IB.
19 D3DXMESH_VB_SYSTEMMEM = &H010 'Use D3DPOOL_SYSTEMMEM for VB. Overrides D3DXMESH_MANAGEDVERTEXBUFFER
20 D3DXMESH_VB_MANAGED = &H020 'Use D3DPOOL_MANAGED for VB.
21 D3DXMESH_VB_WRITEONLY = &H040 'Use D3DUSAGE_WRITEONLY for VB.
22 D3DXMESH_VB_DYNAMIC = &H080 'Use D3DUSAGE_DYNAMIC for VB.
23 D3DXMESH_VB_SOFTWAREPROCESSING = &H8000 'Use D3DUSAGE_SOFTWAREPROCESSING for VB.
24 D3DXMESH_IB_SYSTEMMEM = &H100 'Use D3DPOOL_SYSTEMMEM for IB. Overrides D3DXMESH_MANAGEDINDEXBUFFER
25 D3DXMESH_IB_MANAGED = &H200 'Use D3DPOOL_MANAGED for IB.
26 D3DXMESH_IB_WRITEONLY = &H400 'Use D3DUSAGE_WRITEONLY for IB.
27 D3DXMESH_IB_DYNAMIC = &H800 'Use D3DUSAGE_DYNAMIC for IB.
28 D3DXMESH_IB_SOFTWAREPROCESSING = &H10000 'Use D3DUSAGE_SOFTWAREPROCESSING for IB.
29
30 D3DXMESH_VB_SHARE = &H1000 'Valid for Clone* calls only, forces cloned mesh/pmesh to share vertex buffer
31
32 D3DXMESH_USEHWONLY = &H2000 'Valid for ID3DXSkinInfo::ConvertToBlendedMesh
33
34 'Helper options
35 D3DXMESH_SYSTEMMEM = &H110 'D3DXMESH_VB_SYSTEMMEM | D3DXMESH_IB_SYSTEMMEM
36 D3DXMESH_MANAGED = &H220 'D3DXMESH_VB_MANAGED | D3DXMESH_IB_MANAGED
37 D3DXMESH_WRITEONLY = &H440 'D3DXMESH_VB_WRITEONLY | D3DXMESH_IB_WRITEONLY
38 D3DXMESH_DYNAMIC = &H880 'D3DXMESH_VB_DYNAMIC | D3DXMESH_IB_DYNAMIC
39 D3DXMESH_SOFTWAREPROCESSING = &H18000 'D3DXMESH_VB_SOFTWAREPROCESSING | D3DXMESH_IB_SOFTWAREPROCESSING
40End Enum
41
42' patch mesh options
43Const Enum D3DXPATCHMESH
44 D3DXPATCHMESH_DEFAULT = 000
45End Enum
46
47Const Enum D3DXCLEANTYPE
48 D3DXCLEAN_BACKFACING = &H00000001
49 D3DXCLEAN_BOWTIES = &H00000002
50
51 ' Helper options
52 D3DXCLEAN_SKINNING = &H00000001 ' Bowtie cleaning modifies geometry and breaks skinning
53 D3DXCLEAN_OPTIMIZATION = &H00000001
54 D3DXCLEAN_SIMPLIFICATION= &H00000003
55End Enum
56
57Type D3DXATTRIBUTERANGE
58 AttribId As DWord
59 FaceStart As DWord
60 FaceCount As DWord
61 VertexStart As DWord
62 VertexCount As DWord
63End Type
64
65Type D3DXMATERIAL
66 MatD3D As D3DMATERIAL9
67 pTextureFilename As BytePtr
68End Type
69
70Const Enum D3DXEFFECTDEFAULTTYPE
71 D3DXEDT_STRING = &H1 ' pValue points to a null terminated ASCII string
72 D3DXEDT_FLOATS = &H2 ' pValue points to an array of floats - number of floats is NumBytes / sizeof(float)
73 D3DXEDT_DWORD = &H3 ' pValue points to a DWORD
74
75 D3DXEDT_FORCEDWORD = &H7FFFFFFF
76End Enum
77
78Type D3DXEFFECTDEFAULT
79 pParamName As BytePtr
80 _Type As D3DXEFFECTDEFAULTTYPE
81 NumBytes As DWord
82 pValue As VoidPtr
83End Type
84
85Type D3DXEFFECTINSTANCE
86 pEffectFilename As BytePtr
87 NumDefaults As DWord
88 pDefaults As *D3DXEFFECTDEFAULT
89End Type
90
91Type D3DXATTRIBUTEWEIGHTS
92 Position As Single
93 Boundary As Single
94 Normal As Single
95 Diffuse As Single
96 Specular As Single
97 Texcoord[7] As Single
98 Tangent As Single
99 Binormal As Single
100End Type
101
102Type D3DXWELDEPSILONS
103 Position As Single
104 BlendWeights As Single
105 Normal As Single
106 PSize As Single
107 Specular As Single
108 Diffuse As Single
109 Texcoord[7] As Single
110 Tangent As Single
111 Binormal As Single
112 TessFactor As Single
113End Type
114
115
116Class ID3DXBaseMesh
117 Inherits IUnknown
118Public
119 'ID3DXBaseMesh
120 Abstract Function DrawSubset(AttribId As DWord) As DWord
121 Abstract Function GetNumFaces() As DWord
122 Abstract Function GetNumVertices() As DWord
123 Abstract Function GetFVF() As DWord
124 Abstract Function GetDeclaration(Declaration As *D3DVERTEXELEMENT9) As DWord
125 Abstract Function GetNumBytesPerVertex() As DWord
126 Abstract Function GetOptions() As DWord
127 Abstract Function GetDevice(ppDevice As *LPDIRECT3DDEVICE9) As DWord
128 Abstract Function CloneMeshFVF(Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
129 Abstract Function CloneMesh(Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
130 Abstract Function GetVertexBuffer(ppVB As **IDirect3DVertexBuffer9) As DWord
131 Abstract Function GetIndexBuffer(ppIB As **IDirect3DIndexBuffer9) As DWord
132 Abstract Function LockVertexBuffer(Flags As DWord, ppData As VoidPtr) As DWord
133 Abstract Function UnlockVertexBuffer() As DWord
134 Abstract Function LockIndexBuffer(Flags As DWord, ppData As VoidPtr) As DWord
135 Abstract Function UnlockIndexBuffer() As DWord
136 Abstract Function GetAttributeTable(pAttribTable As *D3DXATTRIBUTERANGE, pAttribTableSize As DWordPtr) As DWord
137
138 Abstract Function ConvertPointRepsToAdjacency(pPRep As DWordPtr, pAdjacency As DWordPtr) As DWord
139 Abstract Function ConvertAdjacencyToPointReps(pAdjacency As DWordPtr, pPRep As DWordPtr) As DWord
140 Abstract Function GenerateAdjacency(Epsilon As Single, pAdjacency As DWordPtr) As DWord
141
142 Abstract Function UpdateSemantics(Declaration As *D3DVERTEXELEMENT9) As DWord
143End Class
144TypeDef LPD3DXBASEMESH = *ID3DXBaseMesh
145
146
147Class ID3DXMesh
148 Inherits IUnknown
149Public
150 'ID3DXBaseMesh
151 Abstract Function DrawSubset(AttribId As DWord) As DWord
152 Abstract Function GetNumFaces() As DWord
153 Abstract Function GetNumVertices() As DWord
154 Abstract Function GetFVF() As DWord
155 Abstract Function GetDeclaration(Declaration As *D3DVERTEXELEMENT9) As DWord
156 Abstract Function GetNumBytesPerVertex() As DWord
157 Abstract Function GetOptions() As DWord
158 Abstract Function GetDevice(ppDevice As *LPDIRECT3DDEVICE9) As DWord
159 Abstract Function CloneMeshFVF(Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
160 Abstract Function CloneMesh(Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
161 Abstract Function GetVertexBuffer(ppVB As **IDirect3DVertexBuffer9) As DWord
162 Abstract Function GetIndexBuffer(ppIB As **IDirect3DIndexBuffer9) As DWord
163 Abstract Function LockVertexBuffer(Flags As DWord, ppData As VoidPtr) As DWord
164 Abstract Function UnlockVertexBuffer() As DWord
165 Abstract Function LockIndexBuffer(Flags As DWord, ppData As VoidPtr) As DWord
166 Abstract Function UnlockIndexBuffer() As DWord
167 Abstract Function GetAttributeTable(pAttribTable As *D3DXATTRIBUTERANGE, pAttribTableSize As DWordPtr) As DWord
168
169 Abstract Function ConvertPointRepsToAdjacency(pPRep As DWordPtr, pAdjacency As DWordPtr) As DWord
170 Abstract Function ConvertAdjacencyToPointReps(pAdjacency As DWordPtr, pPRep As DWordPtr) As DWord
171 Abstract Function GenerateAdjacency(Epsilon As Single, pAdjacency As DWordPtr) As DWord
172
173 Abstract Function UpdateSemantics(Declaration As *D3DVERTEXELEMENT9) As DWord
174
175 'ID3DXMesh
176 Abstract Function LockAttributeBuffer(Flags As DWord, ppData As VoidPtr) As DWord
177 Abstract Function UnlockAttributeBuffer() As DWord
178 Abstract Function Optimize(Flags As DWord, pAdjacencyIn As DWordPtr, pAdjacencyOut As DWordPtr, pFaceRemap As DWordPtr, ppVertexRemap As **ID3DXBuffer, ppOptMesh As **ID3DXMesh) As DWord
179 Abstract Function OptimizeInplace(Flags As DWord, pAdjacencyIn As DWordPtr, pAdjacencyOut As DWordPtr, pFaceRemap As DWordPtr, ppVertexRemap As **ID3DXBuffer) As DWord
180 Abstract Function SetAttributeTable(pAttribTable As *D3DXATTRIBUTERANGE, cAttribTableSize As DWord) As DWord
181End Class
182TypeDef LPD3DXMESH = *ID3DXMesh
183
184
185Class ID3DXPMesh
186 Inherits IUnknown
187Public
188 'ID3DXBaseMesh
189 Abstract Function DrawSubset(AttribId As DWord) As DWord
190 Abstract Function GetNumFaces() As DWord
191 Abstract Function GetNumVertices() As DWord
192 Abstract Function GetFVF() As DWord
193 Abstract Function GetDeclaration(Declaration As *D3DVERTEXELEMENT9) As DWord
194 Abstract Function GetNumBytesPerVertex() As DWord
195 Abstract Function GetOptions() As DWord
196 Abstract Function GetDevice(ppDevice As *LPDIRECT3DDEVICE9) As DWord
197 Abstract Function CloneMeshFVF(Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
198 Abstract Function CloneMesh(Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
199 Abstract Function GetVertexBuffer(ppVB As **IDirect3DVertexBuffer9) As DWord
200 Abstract Function GetIndexBuffer(ppIB As **IDirect3DIndexBuffer9) As DWord
201 Abstract Function LockVertexBuffer(Flags As DWord, ppData As VoidPtr) As DWord
202 Abstract Function UnlockVertexBuffer() As DWord
203 Abstract Function LockIndexBuffer(Flags As DWord, ppData As VoidPtr) As DWord
204 Abstract Function UnlockIndexBuffer() As DWord
205 Abstract Function GetAttributeTable(pAttribTable As *D3DXATTRIBUTERANGE, pAttribTableSize As DWordPtr) As DWord
206
207 Abstract Function ConvertPointRepsToAdjacency(pPRep As DWordPtr, pAdjacency As DWordPtr) As DWord
208 Abstract Function ConvertAdjacencyToPointReps(pAdjacency As DWordPtr, pPRep As DWordPtr) As DWord
209 Abstract Function GenerateAdjacency(Epsilon As Single, pAdjacency As DWordPtr) As DWord
210
211 Abstract Function UpdateSemantics(Declaration As *D3DVERTEXELEMENT9) As DWord
212
213 'ID3DXPMesh
214 Abstract Function ClonePMeshFVF(Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
215 Abstract Function ClonePMesh(Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, ppCloneMesh As **ID3DXMesh) As DWord
216 Abstract Function SetNumFaces(Faces As DWord) As DWord
217 Abstract Function SetNumVertices(Vertices As DWord) As DWord
218 Abstract Function GetMaxFaces() As DWord
219 Abstract Function GetMinFaces() As DWord
220 Abstract Function GetMaxVertices() As DWord
221 Abstract Function GetMinVertices() As DWord
222 Abstract Function Save(pStream As *IStream, pMaterials As *D3DXMATERIAL, pEffectInstances As *D3DXEFFECTINSTANCE, NumMaterials As DWord) As DWord
223 Abstract Function Optimize(Flags As DWord, pAdjacencyOut As DWordPtr, pFaceRemap As DWordPtr, ppVertexRemap As **ID3DXBuffer, ppOptMesh As **ID3DXMesh) As DWord
224 Abstract Function OptimizeBaseLOD(Flags As DWord, pFaceRemap As DWordPtr) As DWord
225 Abstract Function TrimByFaces(NewFacesMin As DWord, NewFacesMax As DWord, rgiFaceRemap As DWordPtr, rgiVertRemap As DWordPtr) As DWord
226 Abstract Function TrimByVertices(NewVerticesMin As DWord, NewVerticesMax As DWord, rgiFaceRemap As DWordPtr, rgiVertRemap As DWord) As DWord
227 Abstract Function GetAdjacency(pAdjacency As DWordPtr) As DWord
228 Abstract Function GenerateVertexHistory(pVertexHistory As DWordPtr) As DWord
229End Class
230TypeDef LPD3DXPMESH = *ID3DXPMesh
231
232
233Class ID3DXSPMesh
234 Inherits IUnknown
235Public
236 'ID3DXSPMesh
237 Abstract Function GetNumFaces() As DWord
238 Abstract Function GetNumVertices() As DWord
239 Abstract Function GetFVF() As DWord
240 Abstract Function GetDeclaration(Declaration As *D3DVERTEXELEMENT9) As DWord
241 Abstract Function GetOptions() As DWord
242 Abstract Function GetDevice(ppDevice As *LPDIRECT3DDEVICE9) As DWord
243 Abstract Function CloneMeshFVF(Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, pAdjacencyOut As DWordPtr, pVertexRemapOut As DWordPtr, ppCloneMesh As **ID3DXMesh) As DWord
244 Abstract Function CloneMesh(Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, pAdjacencyOut As DWordPtr, pVertexRemapOut As DWordPtr, ppCloneMesh As **ID3DXMesh) As DWord
245 Abstract Function ClonePMeshFVF(Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, pVertexRemapOut As DWordPtr, pErrorsByFace As SinglePtr, ppCloneMesh As **ID3DXMesh) As DWord
246 Abstract Function ClonePMesh(Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, pVertexRemapOut As DWordPtr, pErrorsbyFace As SinglePtr, ppCloneMesh As **ID3DXMesh) As DWord
247 Abstract Function ReduceFaces(Faces As DWord) As DWord
248 Abstract Function ReduceVertices(Vertices As DWord) As DWord
249 Abstract Function GetMaxFaces() As DWord
250 Abstract Function GetMaxVertices() As DWord
251 Abstract Function GetVertexAttributeWeights(pVertexAttributeWeights As *D3DXATTRIBUTEWEIGHTS) As DWord
252 Abstract Function GetVertexWeights(pVertexWeights As SinglePtr) As DWord
253End Class
254TypeDef LPD3DXSPMESH = *ID3DXSPMesh
255
256
257' Subset of the mesh that has the same attribute and bone combination.
258' This subset can be rendered in a single draw call
259Type D3DXBONECOMBINATION
260 AttribId As DWord
261 FaceStart As DWord
262 FaceCount As DWord
263 VertexStart As DWord
264 VertexCount As DWord
265 BoneId As DWordPtr
266End Type
267
268Type D3DXPATCHINFO
269 PatchType As D3DXPATCHMESHTYPE
270 Degree As D3DDEGREETYPE
271 Basis As D3DBASISTYPE
272End Type
273
274
275Class ID3DXPatchMesh
276 Inherits IUnknown
277Public
278 'ID3DXPatchMesh
279
280 'Return creation parameters
281 Abstract Function GetNumPatches() As DWord
282 Abstract Function GetNumVertices() As DWord
283 Abstract Function GetDeclaration(Declaration As *D3DVERTEXELEMENT9) As DWord
284 Abstract Function GetControlVerticesPerPatch() As DWord
285 Abstract Function GetOptions() As DWord
286 Abstract Function GetDevice(ppDevice As *LPDIRECT3DDEVICE9) As DWord
287 Abstract Function GetPatchInfo(PatchInfo As *D3DXPATCHINFO) As DWord
288
289 'Control mesh access
290 Abstract Function GetVertexBuffer(ppVB As **IDirect3DVertexBuffer9) As DWord
291 Abstract Function GetIndexBuffer(ppIB As **IDirect3DIndexBuffer9) As DWord
292 Abstract Function LockVertexBuffer(flags As DWord, ppData As DWordPtr) As DWord
293 Abstract Function UnlockVertexBuffer() As DWord
294 Abstract Function LockIndexBuffer(flags As DWord, ppData As DWordPtr) As DWord
295 Abstract Function UnlockIndexBuffer() As DWord
296 Abstract Function LockAttributeBuffer(flags As DWord, ppData As DWordPtr) As DWord
297 Abstract Function UnlockAttributeBuffer() As DWord
298
299 Abstract Function GetTessSize(fTessLevel As Single, Adaptive As DWord, NumTriangles As DWordPtr, NumVertices As DWordPtr) As DWord
300 Abstract Function GenerateAdjacency(Tolerance As Single) As DWord
301 Abstract Function CloneMesh(Options As DWord, pDecl As *D3DVERTEXELEMENT9, pMesh As *ID3DXPatchMesh) As DWord
302 Abstract Function Optimize(flags As DWord) As DWord
303 Abstract Function SetDisplaceParam(pTexture As *IDirect3DBaseTexture9, MinFilter As D3DTEXTUREFILTERTYPE, MagFilter As D3DTEXTUREFILTERTYPE, MipFilter As D3DTEXTUREFILTERTYPE, Wrap As D3DTEXTUREADDRESS, dwLODBias As DWord) As DWord
304 Abstract Function GetDisplaceParam(ppTexture As **IDirect3DBaseTexture9, pMinFilter As *D3DTEXTUREFILTERTYPE, pMagFilter As *D3DTEXTUREFILTERTYPE, pMipFilter As *D3DTEXTUREFILTERTYPE, pWrap As *D3DTEXTUREADDRESS, lpdwLODBias As DWordPtr) As DWord
305 Abstract Function Tessellate(fTessLevel As Single, pMesh As *ID3DXMesh) As DWord
306 Abstract Function TessellateAdaptive(pTrans As *D3DXVECTOR4, dwMaxTessLevel As DWord, dwMinTessLevel As DWord, pMesh As *ID3DXMesh) As DWord
307End Class
308TypeDef LPD3DXPATCHMESH = *ID3DXPatchMesh
309
310
311'---------------
312' ID3DXSkinInfo
313'---------------
314
315Class ID3DXSkinInfo
316 Inherits IUnknown
317Public
318 'Specify the which vertices do each bones influence and by how much
319 Abstract Function SetBoneInfluence(bone As DWord, numInfluences As DWord, vertices As DWordPtr, weights As SinglePtr) As DWord
320 Abstract Function SetBoneVertexInfluence(boneNum As DWord, influenceNum As DWord, weight As Single) As DWord
321 Abstract Function GetNumBoneInfluences(bone As DWord) As DWord
322 Abstract Function GetBoneInfluence(bone As DWord, vertices As DWordPtr, weights As SinglePtr) As DWord
323 Abstract Function GetBoneVertexInfluence(boneNum As DWord, influenceNum As DWord, pWeight As SinglePtr, pVertexNum As DWordPtr) As DWord
324 Abstract Function GetMaxVertexInfluences(maxVertexInfluences As DWordPtr) As DWord
325 Abstract Function GetNumBones() As DWord
326 Abstract Function FindBoneVertexInfluenceIndex(boneNum As DWord, vertexNum As DWord, pInfluenceIndex As DWordPtr) As DWord
327
328 'This gets the max face influences based on a triangle mesh with the specified index buffer
329 Abstract Function GetMaxFaceInfluences(pIB As *IDirect3DIndexBuffer9, NumFaces As DWord, maxFaceInfluences As DWordPtr) As DWord
330
331 'Set min bone influence. Bone influences that are smaller than this are ignored
332 Abstract Function SetMinBoneInfluence(MinInfl As Single) As DWord
333 'Get min bone influence.
334 Abstract Function GetMinBoneInfluence() As Single
335
336 'Bone names are returned by D3DXLoadSkinMeshFromXof. They are not used by any other method of this object
337 Abstract Function SetBoneName(Bone As DWord, pName As BytePtr) As DWord
338 Abstract Function GetBoneName(Bone As DWord) As BytePtr
339
340 'Bone offset matrices are returned by D3DXLoadSkinMeshFromXof. They are not used by any other method of this object
341 Abstract Function SetBoneOffsetMatrix(Bone As DWord, pBoneTransform As *D3DXMATRIX) As DWord
342 Abstract Function GetBoneOffsetMatrix(Bone As DWord) As *D3DXMATRIX
343
344 'Clone a skin info object
345 Abstract Function Clone(ppSkinInfo As **ID3DXSkinInfo) As DWord
346
347 'Update bone influence information to match vertices after they are reordered. This should be called
348 'if the target vertex buffer has been reordered externally.
349 Abstract Function Remap(NumVertices As DWord, pVertexRemap As DWordPtr) As DWord
350
351 'These methods enable the modification of the vertex layout of the vertices that will be skinned
352 Abstract Function SetFVF(FVF As DWord) As DWord
353 Abstract Function SetDeclaration(pDeclaration As *D3DVERTEXELEMENT9) As DWord
354 Abstract Function GetFVF() As DWord
355 Abstract Function GetDeclaration(Declaration As *D3DVERTEXELEMENT9) As DWord
356
357 'Apply SW skinning based on current pose matrices to the target vertices.
358 Abstract Function UpdateSkinnedMesh(pBoneTransforms As *D3DXMATRIX, pBoneInvTransposeTransforms As *D3DXMATRIX, pVerticesSrc As VoidPtr, pVerticesDst As VoidPtr) As DWord
359
360 'Takes a mesh and returns a new mesh with per vertex blend weights and a bone combination
361 'table that describes which bones affect which subsets of the mesh
362 Abstract Function ConvertToBlendedMesh(pMesh As *ID3DXMesh, Options As DWord, pAdjacencyIn As DWordPtr, pAdjacencyOut As DWordPtr, pFaceRemap As DWordPtr, ppVertexRemap As **ID3DXBuffer, pMaxFaceInfl As DWordPtr, pNumBoneCombinations As DWordPtr, ppBoneCombinationTable As **ID3DXBuffer, ppMesh As **ID3DXMesh) As DWord
363
364 'Takes a mesh and returns a new mesh with per vertex blend weights and indices
365 'and a bone combination table that describes which bones palettes affect which subsets of the mesh
366 Abstract Function ConvertToIndexedBlendedMesh(pMesh As *ID3DXMesh, Options As DWord, paletteSize As DWord, pAdjacencyIn As DWordPtr, pAdjacencyOut As DWordPtr, pFaceRemap As DWordPtr, ppVertexRemap As **ID3DXBuffer, pMaxVertexInfl As DWordPtr, pNumBoneCombinations As DWordPtr, ppBoneCombinationTable As **ID3DXBuffer, ppMesh As **ID3DXMesh) As DWord
367End Class
368TypeDef LPD3DXSKININFO = *ID3DXSkinInfo
369
370Declare Function D3DXCreateMesh Lib "dx9abm" Alias "D3DXCreateMesh_abm" (NumFaces As DWord, NumVertices As DWord, Options As DWord, pDeclaration As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, ppMesh As **ID3DXMesh) As DWord
371Declare Function D3DXCreateMeshFVF Lib "dx9abm" Alias "D3DXCreateMeshFVF_abm" (NumFaces As DWord, NumVertices As DWord, Options As DWord, FVF As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppMesh As **ID3DXMesh) As DWord
372Declare Function D3DXCreateSPMesh Lib "dx9abm" Alias "D3DXCreateSPMesh_abm" (pMesh As *ID3DXMesh, pAdjacency As DWordPtr, pVertexAttributeWeights As *D3DXATTRIBUTEWEIGHTS, ppSMesh As **ID3DXSPMesh) As DWord
373Declare Function D3DXCleanMesh Lib "dx9abm" Alias "D3DXCleanMesh_abm" (CleanType As D3DXCLEANTYPE, pMeshIn As *ID3DXMesh, pAdjacencyIn As DWordPtr, ppMeshOut As **ID3DXMesh, pAdjacencyOut As DWordPtr, ppErrorsAndWarnings As **ID3DXBuffer) As DWord
374Declare Function D3DXValidMesh Lib "dx9abm" Alias "D3DXValidMesh_abm" (pMeshIn As *ID3DXMesh, pAdjacency As DWordPtr, ppErrorsAndWarnings As **ID3DXBuffer) As DWord
375Declare Function D3DXGeneratePMesh Lib "dx9abm" Alias "D3DXGeneratePMesh_abm" (pMesh As *ID3DXMesh, pAdjacency As DWordPtr, pVertexAttributeWeights As *D3DXATTRIBUTEWEIGHTS, MinValue As DWord, Options As DWord, ppPMesh As **ID3DXPMesh) As DWord
376Declare Function D3DXSimplifyMesh Lib "dx9abm" Alias "D3DXSimplifyMesh_abm" (pMesh As *ID3DXMesh, pAdjacency As DWordPtr, pVertexAttributeWeights As *D3DXATTRIBUTEWEIGHTS, pVertexWeights As SinglePtr, MinValue As DWord, Options As DWord, ppMesh As **ID3DXMesh) As DWord
377Declare Function D3DXComputeBoundingSphere Lib "dx9abm" Alias "D3DXComputeBoundingSphere_abm" (pFirstPosition As *D3DXVECTOR3, NumVertices As DWord, dwStride As DWord, pCenter As *D3DXVECTOR3, pRadius As SinglePtr) As DWord
378Declare Function D3DXComputeBoundingBox Lib "dx9abm" Alias "D3DXComputeBoundingBox_abm" (pFirstPosition As *D3DXVECTOR3, NumVertices As DWord, dwStride As DWord, pMin As *D3DXVECTOR3, pMax As *D3DXVECTOR3) As DWord
379Declare Function D3DXComputeNormals Lib "dx9abm" Alias "D3DXComputeNormals_abm" (pMesh As *ID3DXBaseMesh, pAdjacency As DWordPtr) As DWord
380Declare Function D3DXCreateBuffer Lib "dx9abm" Alias "D3DXCreateBuffer_abm" (NumBytes As DWord, ppBuffer As **ID3DXBuffer) As DWord
381Declare Function D3DXLoadMeshFromX Lib "dx9abm" Alias "D3DXLoadMeshFromX_abm" (pFilename As BytePtr, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppAdjacency As VoidPtr, ppMaterials As VoidPtr, ppEffectInstances As VoidPtr, pNumMaterials As DWordPtr, ppMesh As VoidPtr) As DWord
382Declare Function D3DXLoadMeshFromXInMemory Lib "dx9abm" Alias "D3DXLoadMeshFromXInMemory_abm" (Memory As VoidPtr, SizeOfMemory As DWord, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppAdjacency As **ID3DXBuffer, ppMaterials As **ID3DXBuffer, ppEffectInstances As **ID3DXBuffer, pNumMaterials As DWordPtr, ppMesh As *ID3DXMesh) As DWord
383Declare Function D3DXLoadMeshFromXResource Lib "dx9abm" Alias "D3DXLoadMeshFromXResource_abm" (Module As DWord, Name As BytePtr, lpszType As BytePtr, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppAdjacency As **ID3DXBuffer, ppMaterials As **ID3DXBuffer, ppEffectInstances As **ID3DXBuffer, pNumMaterials As DWordPtr, ppMesh As **ID3DXMesh) As DWord
384Declare Function D3DXSaveMeshToX Lib "dx9abm" Alias "D3DXSaveMeshToX_abm" (pFilename As BytePtr, pMesh As *ID3DXMesh, pAdjacency As DWordPtr, pMaterials As *D3DXMATERIAL, pEffectInstances As *D3DXEFFECTINSTANCE, NumMaterials As DWord, Format As DWord) As DWord
385Declare Function D3DXCreatePMeshFromStream Lib "dx9abm" Alias "D3DXCreatePMeshFromStream_abm" (pStream As *IStream, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppMaterials As **ID3DXBuffer, ppEffectInstances As **ID3DXBuffer, pNumMaterials As DWordPtr, ppPMesh As **ID3DXPMesh) As DWord
386Declare Function D3DXCreateSkinInfo Lib "dx9abm" Alias "D3DXCreateSkinInfo_abm" (NumVertices As DWord, pDeclaration As *D3DVERTEXELEMENT9, NumBones As DWord, ppSkinInfo As **ID3DXSkinInfo) As DWord
387Declare Function D3DXCreateSkinInfoFVF Lib "dx9abm" Alias "D3DXCreateSkinInfoFVF_abm" (NumVertices As DWord, FVF As DWord, NumBones As DWord, ppSkinInfo As **ID3DXSkinInfo) As DWord
388
389Declare Function D3DXLoadMeshFromXof Lib "dx9abm" Alias "D3DXLoadMeshFromXof_abm" (pxofMesh As *ID3DXFileData, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppAdjacency As **ID3DXBuffer, ppMaterials As **ID3DXBuffer, ppEffectInstances As **ID3DXBuffer, pNumMaterials As DWordPtr, ppMesh As **ID3DXMesh) As DWord
390Declare Function D3DXLoadSkinMeshFromXof Lib "dx9abm" Alias "D3DXLoadSkinMeshFromXof_abm" (pxofMesh As *ID3DXFileData, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppAdjacency As **ID3DXBuffer, ppMaterials As **ID3DXBuffer, ppEffectInstances As **ID3DXBuffer, pMatOut As DWordPtr, ppSkinInfo As **ID3DXSkinInfo, ppMesh As **ID3DXMesh) As DWord
391Declare Function D3DXCreateSkinInfoFromBlendedMesh Lib "dx9abm" Alias "D3DXCreateSkinInfoFromBlendedMesh_abm" (pMesh As *ID3DXBaseMesh, NumBones As DWord, pBoneCombinationTable As *D3DXBONECOMBINATION, ppSkinInfo As **ID3DXSkinInfo) As DWord
392Declare Function D3DXTessellateNPatches Lib "dx9abm" Alias "D3DXTessellateNPatches_abm" (pMeshIn As *ID3DXMesh, pAdjacencyIn As DWordPtr, NumSegs As Single, QuadraticInterpNormals As Long, ppMeshOut As **ID3DXMesh, ppAdjacencyOut As **ID3DXBuffer) As DWord
393Declare Function D3DXGenerateOutputDecl Lib "dx9abm" Alias "D3DXGenerateOutputDecl_abm" (pOutput As *D3DVERTEXELEMENT9, pInput As *D3DVERTEXELEMENT9) As DWord
394Declare Function D3DXLoadPatchMeshFromXof Lib "dx9abm" Alias "D3DXLoadPatchMeshFromXof_abm" (pXofObjMesh As *ID3DXFileData, Options As DWord, pD3DDevice As LPDIRECT3DDEVICE9, ppMaterials As **ID3DXBuffer, ppEffectInstances As **ID3DXBuffer, pNumMaterials As DWordPtr, ppMesh As **ID3DXPatchMesh) As DWord
395Declare Function D3DXRectPatchSize Lib "dx9abm" Alias "D3DXRectPatchSize_abm" (pfNumSegs As SinglePtr, pdwTriangles As DWordPtr, pdwVertices As DWordPtr) As DWord
396Declare Function D3DXTriPatchSize Lib "dx9abm" Alias "D3DXTriPatchSize_abm" (pfNumSegs As SinglePtr, pdwTriangles As DWordPtr, pdwVertices As DWordPtr) As DWord
397Declare Function D3DXTessellateRectPatch Lib "dx9abm" Alias "D3DXTessellateRectPatch_abm" (pVB As *IDirect3DVertexBuffer9, pNumSegs As SinglePtr, pdwInDecl As *D3DVERTEXELEMENT9, pRectPatchInfo As *D3DRECTPATCH_INFO, pMesh As *ID3DXMesh) As DWord
398Declare Function D3DXTessellateTriPatch Lib "dx9abm" Alias "D3DXTessellateTriPatch_abm" (pVB As *IDirect3DVertexBuffer9, pNumSegs As SinglePtr, pInDecl As *D3DVERTEXELEMENT9, pTriPatchInfo As *D3DTRIPATCH_INFO, pMesh As *ID3DXMesh) As DWord
399Declare Function D3DXCreateNPatchMesh Lib "dx9abm" Alias "D3DXCreateNPatchMesh_abm" (pMeshSysMem As *ID3DXMesh, pPatchMesh As *ID3DXPatchMesh) As DWord
400Declare Function D3DXCreatePatchMesh Lib "dx9abm" Alias "D3DXCreatePatchMesh_abm" (pInfo As *D3DXPATCHINFO, dwNumPatches As DWord, dwNumVertices As DWord, dwOptions As DWord, pDecl As *D3DVERTEXELEMENT9, pD3DDevice As LPDIRECT3DDEVICE9, pPatchMesh As *ID3DXPatchMesh) As DWord
401Declare Function D3DXValidPatchMesh Lib "dx9abm" Alias "D3DXValidPatchMesh_abm" (pMesh As *ID3DXPatchMesh, dwcDegenerateVertices As DWord, dwcDegeneratePatches As DWord, ppErrorsAndWarnings As **ID3DXBuffer) As DWord
402Declare Function D3DXGetFVFVertexSize Lib "dx9abm" Alias "D3DXGetFVFVertexSize_abm" (FVF As DWord) As DWord
403Declare Function D3DXGetDeclVertexSize Lib "dx9abm" Alias "D3DXGetDeclVertexSize_abm" (pDecl As *D3DVERTEXELEMENT9, Stream As DWord) As DWord
404Declare Function D3DXGetDeclLength Lib "dx9abm" Alias "D3DXGetDeclLength_abm" (pDecl As *D3DVERTEXELEMENT9) As DWord
405Declare Function D3DXDeclaratorFromFVF Lib "dx9abm" Alias "D3DXDeclaratorFromFVF_abm" (FVF As DWord, pDeclarator As *D3DVERTEXELEMENT9) As DWord
406Declare Function D3DXFVFFromDeclarator Lib "dx9abm" Alias "D3DXFVFFromDeclarator_abm" (pDeclarator As *D3DVERTEXELEMENT9, pFVF As DWordPtr) As DWord
407Declare Function D3DXWeldVertices Lib "dx9abm" Alias "D3DXWeldVertices_abm" (pMesh As *ID3DXMesh, Flags As DWord, pEpsilons As *D3DXWELDEPSILONS, pAdjacencyOut As DWord, pFaceRemap As DWordPtr, ppVertexRemap As **ID3DXBuffer) As DWord
408
409Type D3DXINTERSECTINFO
410 FaceIndex As DWord
411 U As Single
412 V As Single
413 Dist As Single
414End Type
415
416Declare Function D3DXIntersect Lib "dx9abm" Alias "D3DXIntersect_abm" (pMesh As *ID3DXBaseMesh, pRayPos As *D3DXVECTOR3, pRayDir As *D3DXVECTOR3, pHit As DWordPtr, pFaceIndex As DWordPtr, pU As SinglePtr, pV As SinglePtr, pDist As SinglePtr, ppAllHits As **ID3DXBuffer, pCountOfHits As DWordPtr) As DWord
417Declare Function D3DXIntersectSubset Lib "dx9abm" Alias "D3DXIntersectSubset_abm" (pMesh As *ID3DXBaseMesh, AttribId As DWord, pRayPos As *D3DXVECTOR3, pRayDir As *D3DXVECTOR3, pHit As DWordPtr, pFaceIndex As DWordPtr, pU As SinglePtr, pV As SinglePtr, pDist As SinglePtr, ppAllHits As **ID3DXBuffer, pCountOfHits As DWordPtr) As DWord
418Declare Function D3DXSplitMesh Lib "dx9abm" Alias "D3DXSplitMesh_abm" (pMeshIn As *ID3DXMesh, pAdjacencyIn As DWord, MaxSize As DWord, Options As DWord, pMeshesOut As DWordPtr, ppMeshArrayOut As **ID3DXBuffer, ppAdjacencyArrayOut As **ID3DXBuffer, ppFaceRemapArrayOut As **ID3DXBuffer, ppVertRemapArrayOut As **ID3DXBuffer) As DWord
419Declare Function D3DXIntersectTri Lib "dx9abm" Alias "D3DXIntersectTri_abm" (p0 As *D3DXVECTOR3, p1 As *D3DXVECTOR3, p2 As *D3DXVECTOR3, pRayPos As *D3DXVECTOR3, pRayDir As *D3DXVECTOR3, pU As SinglePtr, pV As SinglePtr, pDist As SinglePtr) As Long
420Declare Function D3DXSphereBoundProbe Lib "dx9abm" Alias "D3DXSphereBoundProbe_abm" (pCenter As *D3DXVECTOR3, Radius As Single, pRayPos As *D3DXVECTOR3, pRayDir As *D3DXVECTOR3) As Long
421Declare Function D3DXBoxBoundProbe Lib "dx9abm" Alias "D3DXBoxBoundProbe_abm" (pMin As *D3DXVECTOR3, pMax As *D3DXVECTOR3, pRayPos As *D3DXVECTOR3, pRayDir As *D3DXVECTOR3) As Long
422Declare Function D3DXComputeTangent Lib "dx9abm" Alias "D3DXComputeTangent_abm" (pMesh As *ID3DXMesh, TexStage As DWord, TangentIndex As DWord, BinormIndex As DWord, Wrap As DWord, pAdjacency As DWordPtr) As DWord
423Declare Function D3DXConvertMeshSubsetToSingleStrip Lib "dx9abm" Alias "D3DXConvertMeshSubsetToSingleStrip_abm" (pMeshIn As *ID3DXBaseMesh, AttribId As DWord, IBOptions As DWord, ppIndexBuffer As **IDirect3DIndexBuffer9, pNumIndices As DWordPtr) As DWord
424Declare Function D3DXConvertMeshSubsetToStrips Lib "dx9abm" Alias "D3DXConvertMeshSubsetToStrips_abm" (pMeshIn As *ID3DXBaseMesh, AttribId As DWord, IBOptions As DWord, ppIndexBuffer As **IDirect3DIndexBuffer9, pNumIndices As DWordPtr, ppStripLengths As **ID3DXBuffer, pNumStrips As DWordPtr) As DWord
425Declare Function D3DXOptimizeFaces Lib "dx9abm" Alias "D3DXOptimizeFaces_abm" (pbIndices As VoidPtr, cFaces As DWord, cVertices As DWord, b32BitIndices As Long, pFaceRemap As DWordPtr) As DWord
426Declare Function D3DXOptimizeVertices Lib "dx9abm" Alias "D3DXOptimizeVertices_abm" (pbIndices As VoidPtr, cFaces As DWord, cVertices As DWord, b32BitIndices As Long, pFaceRemap As DWordPtr) As DWord
Note: See TracBrowser for help on using the repository browser.