RetroArch
d3dx8mesh.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (C) Microsoft Corporation. All Rights Reserved.
4  *
5  * File: d3dx8mesh.h
6  * Content: D3DX mesh types and functions
7  */
8 
9 #include "d3dx8.h"
10 
11 #ifndef __D3DX8MESH_H__
12 #define __D3DX8MESH_H__
13 
14 #include "dxfile.h" /* defines LPDIRECTXFILEDATA */
15 
16 /* {2A835771-BF4D-43f4-8E14-82A809F17D8A} */
17 DEFINE_GUID(IID_ID3DXBaseMesh,
18 0x2a835771, 0xbf4d, 0x43f4, 0x8e, 0x14, 0x82, 0xa8, 0x9, 0xf1, 0x7d, 0x8a);
19 
20 /* {CCAE5C3B-4DD1-4d0f-997E-4684CA64557F} */
21 DEFINE_GUID(IID_ID3DXMesh,
22 0xccae5c3b, 0x4dd1, 0x4d0f, 0x99, 0x7e, 0x46, 0x84, 0xca, 0x64, 0x55, 0x7f);
23 
24 /* {19FBE386-C282-4659-97BD-CB869B084A6C} */
25 DEFINE_GUID(IID_ID3DXPMesh,
26 0x19fbe386, 0xc282, 0x4659, 0x97, 0xbd, 0xcb, 0x86, 0x9b, 0x8, 0x4a, 0x6c);
27 
28 /* {4E3CA05C-D4FF-4d11-8A02-16459E08F6F4} */
29 DEFINE_GUID(IID_ID3DXSPMesh,
30 0x4e3ca05c, 0xd4ff, 0x4d11, 0x8a, 0x2, 0x16, 0x45, 0x9e, 0x8, 0xf6, 0xf4);
31 
32 /* {8DB06ECC-EBFC-408a-9404-3074B4773515} */
33 DEFINE_GUID(IID_ID3DXSkinMesh,
34 0x8db06ecc, 0xebfc, 0x408a, 0x94, 0x4, 0x30, 0x74, 0xb4, 0x77, 0x35, 0x15);
35 
36 /* Mesh options - lower 3 bytes only, upper byte used by _D3DXMESHOPT option flags */
37 enum _D3DXMESH {
38  D3DXMESH_32BIT = 0x001, /* If set, then use 32 bit indices, if not set use 16 bit indices. */
39  D3DXMESH_DONOTCLIP = 0x002, /* Use D3DUSAGE_DONOTCLIP for VB & IB. */
40  D3DXMESH_POINTS = 0x004, /* Use D3DUSAGE_POINTS for VB & IB. */
41  D3DXMESH_RTPATCHES = 0x008, /* Use D3DUSAGE_RTPATCHES for VB & IB. */
42  D3DXMESH_NPATCHES = 0x4000,/* Use D3DUSAGE_NPATCHES for VB & IB. */
43  D3DXMESH_VB_SYSTEMMEM = 0x010, /* Use D3DPOOL_SYSTEMMEM for VB. Overrides D3DXMESH_MANAGEDVERTEXBUFFER */
44  D3DXMESH_VB_MANAGED = 0x020, /* Use D3DPOOL_MANAGED for VB. */
45  D3DXMESH_VB_WRITEONLY = 0x040, /* Use D3DUSAGE_WRITEONLY for VB. */
46  D3DXMESH_VB_DYNAMIC = 0x080, /* Use D3DUSAGE_DYNAMIC for VB. */
47  D3DXMESH_VB_SOFTWAREPROCESSING = 0x8000, /* Use D3DUSAGE_SOFTWAREPROCESSING for VB. */
48  D3DXMESH_IB_SYSTEMMEM = 0x100, /* Use D3DPOOL_SYSTEMMEM for IB. Overrides D3DXMESH_MANAGEDINDEXBUFFER */
49  D3DXMESH_IB_MANAGED = 0x200, /* Use D3DPOOL_MANAGED for IB. */
50  D3DXMESH_IB_WRITEONLY = 0x400, /* Use D3DUSAGE_WRITEONLY for IB. */
51  D3DXMESH_IB_DYNAMIC = 0x800, /* Use D3DUSAGE_DYNAMIC for IB. */
52  D3DXMESH_IB_SOFTWAREPROCESSING= 0x10000, /* Use D3DUSAGE_SOFTWAREPROCESSING for IB. */
53 
54  D3DXMESH_VB_SHARE = 0x1000, /* Valid for Clone* calls only, forces cloned mesh/pmesh to share vertex buffer */
55 
56  D3DXMESH_USEHWONLY = 0x2000, /* Valid for ID3DXSkinMesh::ConvertToBlendedMesh */
57 
58  /* Helper options */
59  D3DXMESH_SYSTEMMEM = 0x110, /* D3DXMESH_VB_SYSTEMMEM | D3DXMESH_IB_SYSTEMMEM */
60  D3DXMESH_MANAGED = 0x220, /* D3DXMESH_VB_MANAGED | D3DXMESH_IB_MANAGED */
61  D3DXMESH_WRITEONLY = 0x440, /* D3DXMESH_VB_WRITEONLY | D3DXMESH_IB_WRITEONLY */
62  D3DXMESH_DYNAMIC = 0x880, /* D3DXMESH_VB_DYNAMIC | D3DXMESH_IB_DYNAMIC */
63  D3DXMESH_SOFTWAREPROCESSING = 0x18000 /* D3DXMESH_VB_SOFTWAREPROCESSING | D3DXMESH_IB_SOFTWAREPROCESSING */
64 
65 };
66 
67 /* option field values for specifying min value in D3DXGeneratePMesh and D3DXSimplifyMesh */
69 {
72 };
73 
75 {
77 };
78 
79 typedef struct ID3DXBaseMesh *LPD3DXBASEMESH;
80 typedef struct ID3DXMesh *LPD3DXMESH;
81 typedef struct ID3DXPMesh *LPD3DXPMESH;
82 typedef struct ID3DXSPMesh *LPD3DXSPMESH;
83 typedef struct ID3DXSkinMesh *LPD3DXSKINMESH;
84 
85 typedef struct _D3DXATTRIBUTERANGE
86 {
87  DWORD AttribId;
88  DWORD FaceStart;
89  DWORD FaceCount;
90  DWORD VertexStart;
91  DWORD VertexCount;
93 
95 
96 #ifdef __cplusplus
97 extern "C" {
98 #endif /* __cplusplus */
100 {
103 };
104 typedef struct D3DXMATERIAL *LPD3DXMATERIAL;
105 #ifdef __cplusplus
106 }
107 #endif /* __cplusplus */
108 
109 typedef struct _D3DXATTRIBUTEWEIGHTS
110 {
116  FLOAT Tex[8];
118 
120 
122 {
123  D3DXWELDEPSILONS_WELDALL = 0x1, /* weld all vertices marked by adjacency as being overlapping */
124 
125  D3DXWELDEPSILONS_WELDPARTIALMATCHES = 0x2, /* if a given vertex component is within epsilon, modify partial matched
126  * vertices so that both components identical AND if all components "equal"
127  * remove one of the vertices */
128  D3DXWELDEPSILONS_DONOTREMOVEVERTICES = 0x4 /* instructs weld to only allow modifications to vertices and not removal
129  * ONLY valid if D3DXWELDEPSILONS_WELDPARTIALMATCHES is set
130  * useful to modify vertices to be equal, but not allow vertices to be removed */
131 };
132 
133 typedef struct _D3DXWELDEPSILONS
134 {
137  FLOAT Tex[8];
138  DWORD Flags;
140 
142 
143 
144 #undef INTERFACE
145 #define INTERFACE ID3DXBaseMesh
146 
147 DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
148 {
149  /* IUnknown */
150  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
151  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
152  STDMETHOD_(ULONG, Release)(THIS) PURE;
153 
154  /* ID3DXBaseMesh */
155  STDMETHOD(DrawSubset)(THIS_ DWORD AttribId) PURE;
156  STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
157  STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
158  STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
159  STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
160  STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
161  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
162  STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
163  DWORD FVF, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
164  STDMETHOD(CloneMesh)(THIS_ DWORD Options,
165  CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
166  STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
167  STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
168  STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
169  STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
170  STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
171  STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
172  STDMETHOD(GetAttributeTable)(
173  THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
174 
175  STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
176  STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
177  STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
178 };
179 
180 
181 #undef INTERFACE
182 #define INTERFACE ID3DXMesh
183 
184 DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
185 {
186  /* IUnknown */
187  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
188  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
189  STDMETHOD_(ULONG, Release)(THIS) PURE;
190 
191  /* ID3DXBaseMesh */
192  STDMETHOD(DrawSubset)(THIS_ DWORD AttribId) PURE;
193  STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
194  STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
195  STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
196  STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
197  STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
198  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
199  STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
200  DWORD FVF, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
201  STDMETHOD(CloneMesh)(THIS_ DWORD Options,
202  CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
203  STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
204  STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
205  STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
206  STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
207  STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
208  STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
209  STDMETHOD(GetAttributeTable)(
210  THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
211 
212  STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
213  STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
214  STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
215 
216  /* ID3DXMesh */
217  STDMETHOD(LockAttributeBuffer)(THIS_ DWORD Flags, DWORD** ppData) PURE;
218  STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
219  STDMETHOD(Optimize)(THIS_ DWORD Flags, CONST DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
220  DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap,
221  LPD3DXMESH* ppOptMesh) PURE;
222  STDMETHOD(OptimizeInplace)(THIS_ DWORD Flags, CONST DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
223  DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap) PURE;
224 
225 };
226 
227 
228 #undef INTERFACE
229 #define INTERFACE ID3DXPMesh
230 
231 DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
232 {
233  /* IUnknown */
234  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
235  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
236  STDMETHOD_(ULONG, Release)(THIS) PURE;
237 
238  /* ID3DXBaseMesh */
239  STDMETHOD(DrawSubset)(THIS_ DWORD AttribId) PURE;
240  STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
241  STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
242  STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
243  STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
244  STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
245  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
246  STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
247  DWORD FVF, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
248  STDMETHOD(CloneMesh)(THIS_ DWORD Options,
249  CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
250  STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
251  STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
252  STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
253  STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
254  STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
255  STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
256  STDMETHOD(GetAttributeTable)(
257  THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
258 
259  STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
260  STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
261  STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
262 
263  /* ID3DXPMesh */
264  STDMETHOD(ClonePMeshFVF)(THIS_ DWORD Options,
265  DWORD FVF, LPDIRECT3DDEVICE8 pD3D, LPD3DXPMESH* ppCloneMesh) PURE;
266  STDMETHOD(ClonePMesh)(THIS_ DWORD Options,
267  CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3D, LPD3DXPMESH* ppCloneMesh) PURE;
268  STDMETHOD(SetNumFaces)(THIS_ DWORD Faces) PURE;
269  STDMETHOD(SetNumVertices)(THIS_ DWORD Vertices) PURE;
270  STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
271  STDMETHOD_(DWORD, GetMinFaces)(THIS) PURE;
272  STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
273  STDMETHOD_(DWORD, GetMinVertices)(THIS) PURE;
274  STDMETHOD(Save)(THIS_ IStream *pStream, LPD3DXMATERIAL pMaterials, DWORD NumMaterials) PURE;
275 
276  STDMETHOD(Optimize)(THIS_ DWORD Flags, DWORD* pAdjacencyOut,
277  DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap,
278  LPD3DXMESH* ppOptMesh) PURE;
279 
280  STDMETHOD(OptimizeBaseLOD)(THIS_ DWORD Flags, DWORD* pFaceRemap) PURE;
281  STDMETHOD(TrimByFaces)(THIS_ DWORD NewFacesMin, DWORD NewFacesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) PURE;
282  STDMETHOD(TrimByVertices)(THIS_ DWORD NewVerticesMin, DWORD NewVerticesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) PURE;
283 
284  STDMETHOD(GetAdjacency)(THIS_ DWORD* pAdjacency) PURE;
285 };
286 
287 
288 #undef INTERFACE
289 #define INTERFACE ID3DXSPMesh
290 
291 DECLARE_INTERFACE_(ID3DXSPMesh, IUnknown)
292 {
293  /* IUnknown */
294  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
295  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
296  STDMETHOD_(ULONG, Release)(THIS) PURE;
297 
298  /* ID3DXSPMesh */
299  STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
300  STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
301  STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
302  STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
303  STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
304  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
305  STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
306  DWORD FVF, LPDIRECT3DDEVICE8 pD3D, DWORD *pAdjacencyOut, DWORD *pVertexRemapOut, LPD3DXMESH* ppCloneMesh) PURE;
307  STDMETHOD(CloneMesh)(THIS_ DWORD Options,
308  CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, DWORD *pAdjacencyOut, DWORD *pVertexRemapOut, LPD3DXMESH* ppCloneMesh) PURE;
309  STDMETHOD(ClonePMeshFVF)(THIS_ DWORD Options,
310  DWORD FVF, LPDIRECT3DDEVICE8 pD3D, DWORD *pVertexRemapOut, LPD3DXPMESH* ppCloneMesh) PURE;
311  STDMETHOD(ClonePMesh)(THIS_ DWORD Options,
312  CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3D, DWORD *pVertexRemapOut, LPD3DXPMESH* ppCloneMesh) PURE;
313  STDMETHOD(ReduceFaces)(THIS_ DWORD Faces) PURE;
314  STDMETHOD(ReduceVertices)(THIS_ DWORD Vertices) PURE;
315  STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
316  STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
317  STDMETHOD(GetVertexAttributeWeights)(THIS_ LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights) PURE;
318  STDMETHOD(GetVertexWeights)(THIS_ FLOAT *pVertexWeights) PURE;
319 };
320 
321 #define UNUSED16 (0xffff)
322 #define UNUSED32 (0xffffffff)
323 
324 /* ID3DXMesh::Optimize options - upper byte only, lower 3 bytes used from _D3DXMESH option flags */
326  D3DXMESHOPT_COMPACT = 0x01000000,
327  D3DXMESHOPT_ATTRSORT = 0x02000000,
330  D3DXMESHOPT_IGNOREVERTS = 0x10000000, /* optimize faces only, don't touch vertices */
331  D3DXMESHOPT_SHAREVB = 0x1000 /* same as D3DXMESH_VB_SHARE */
332 };
333 
334 /* Subset of the mesh that has the same attribute and bone combination.
335  * This subset can be rendered in a single draw call */
336 typedef struct _D3DXBONECOMBINATION
337 {
338  DWORD AttribId;
339  DWORD FaceStart;
340  DWORD FaceCount;
341  DWORD VertexStart;
342  DWORD VertexCount;
343  DWORD* BoneId;
345 
346 
347 #undef INTERFACE
348 #define INTERFACE ID3DXSkinMesh
349 
350 DECLARE_INTERFACE_(ID3DXSkinMesh, IUnknown)
351 {
352  /* IUnknown */
353  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
354  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
355  STDMETHOD_(ULONG, Release)(THIS) PURE;
356 
357  /* ID3DXMesh */
358  STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
359  STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
360  STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
361  STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
362  STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
363  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
364  STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
365  STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
366  STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
367  STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
368  STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
369  STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
370  STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** ppData) PURE;
371  STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
372  /* ID3DXSkinMesh */
373  STDMETHOD_(DWORD, GetNumBones)(THIS) PURE;
374  STDMETHOD(GetOriginalMesh)(THIS_ LPD3DXMESH* ppMesh) PURE;
375  STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD numInfluences, CONST DWORD* vertices, CONST FLOAT* weights) PURE;
376  STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
377  STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
378  STDMETHOD(GetMaxVertexInfluences)(THIS_ DWORD* maxVertexInfluences) PURE;
379  STDMETHOD(GetMaxFaceInfluences)(THIS_ DWORD* maxFaceInfluences) PURE;
380 
381  STDMETHOD(ConvertToBlendedMesh)(THIS_ DWORD Options,
382  CONST LPDWORD pAdjacencyIn,
383  LPDWORD pAdjacencyOut,
384  DWORD* pNumBoneCombinations,
385  LPD3DXBUFFER* ppBoneCombinationTable,
386  DWORD* pFaceRemap,
387  LPD3DXBUFFER *ppVertexRemap,
388  LPD3DXMESH* ppMesh) PURE;
389 
390  STDMETHOD(ConvertToIndexedBlendedMesh)(THIS_ DWORD Options,
391  CONST LPDWORD pAdjacencyIn,
392  DWORD paletteSize,
393  LPDWORD pAdjacencyOut,
394  DWORD* pNumBoneCombinations,
395  LPD3DXBUFFER* ppBoneCombinationTable,
396  DWORD* pFaceRemap,
397  LPD3DXBUFFER *ppVertexRemap,
398  LPD3DXMESH* ppMesh) PURE;
399 
400  STDMETHOD(GenerateSkinnedMesh)(THIS_ DWORD Options,
401  FLOAT minWeight,
402  CONST LPDWORD pAdjacencyIn,
403  LPDWORD pAdjacencyOut,
404  DWORD* pFaceRemap,
405  LPD3DXBUFFER *ppVertexRemap,
406  LPD3DXMESH* ppMesh) PURE;
407  STDMETHOD(UpdateSkinnedMesh)(THIS_ CONST D3DXMATRIX* pBoneTransforms, CONST D3DXMATRIX* pBoneInvTransforms, LPD3DXMESH pMesh) PURE;
408 };
409 
410 #ifdef __cplusplus
411 extern "C" {
412 #endif /* __cplusplus */
413 
414 HRESULT WINAPI
416  DWORD NumFaces,
417  DWORD NumVertices,
418  DWORD Options,
419  CONST DWORD *pDeclaration,
420  LPDIRECT3DDEVICE8 pD3D,
421  LPD3DXMESH* ppMesh);
422 
423 HRESULT WINAPI
425  DWORD NumFaces,
426  DWORD NumVertices,
427  DWORD Options,
428  DWORD FVF,
429  LPDIRECT3DDEVICE8 pD3D,
430  LPD3DXMESH* ppMesh);
431 
432 HRESULT WINAPI
434  LPD3DXMESH pMesh,
435  CONST DWORD* pAdjacency,
436  CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights,
437  CONST FLOAT *pVertexWeights,
438  LPD3DXSPMESH* ppSMesh);
439 
440 /* clean a mesh up for simplification, try to make manifold */
441 HRESULT WINAPI
443  LPD3DXMESH pMeshIn,
444  CONST DWORD* pAdjacencyIn,
445  LPD3DXMESH* ppMeshOut,
446  DWORD* pAdjacencyOut,
447  LPD3DXBUFFER* ppErrorsAndWarnings);
448 
449 HRESULT WINAPI
451  LPD3DXMESH pMeshIn,
452  CONST DWORD* pAdjacency,
453  LPD3DXBUFFER* ppErrorsAndWarnings);
454 
455 HRESULT WINAPI
457  LPD3DXMESH pMesh,
458  CONST DWORD* pAdjacency,
459  CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights,
460  CONST FLOAT *pVertexWeights,
461  DWORD MinValue,
462  DWORD Options,
463  LPD3DXPMESH* ppPMesh);
464 
465 HRESULT WINAPI
467  LPD3DXMESH pMesh,
468  CONST DWORD* pAdjacency,
469  CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights,
470  CONST FLOAT *pVertexWeights,
471  DWORD MinValue,
472  DWORD Options,
473  LPD3DXMESH* ppMesh);
474 
475 HRESULT WINAPI
477  PVOID pPointsFVF,
478  DWORD NumVertices,
479  DWORD FVF,
480  D3DXVECTOR3 *pCenter,
481  FLOAT *pRadius);
482 
483 HRESULT WINAPI
485  PVOID pPointsFVF,
486  DWORD NumVertices,
487  DWORD FVF,
488  D3DXVECTOR3 *pMin,
489  D3DXVECTOR3 *pMax);
490 
491 HRESULT WINAPI
493  LPD3DXBASEMESH pMesh,
494  CONST DWORD *pAdjacency);
495 
496 HRESULT WINAPI
498  DWORD NumBytes,
499  LPD3DXBUFFER *ppBuffer);
500 
501 
502 HRESULT WINAPI
504  LPSTR pFilename,
505  DWORD Options,
506  LPDIRECT3DDEVICE8 pD3D,
507  LPD3DXBUFFER *ppAdjacency,
508  LPD3DXBUFFER *ppMaterials,
509  DWORD *pNumMaterials,
510  LPD3DXMESH *ppMesh);
511 
512 HRESULT WINAPI
514  PBYTE Memory,
515  DWORD SizeOfMemory,
516  DWORD Options,
517  LPDIRECT3DDEVICE8 pD3D,
518  LPD3DXBUFFER *ppAdjacency,
519  LPD3DXBUFFER *ppMaterials,
520  DWORD *pNumMaterials,
521  LPD3DXMESH *ppMesh);
522 
523 HRESULT WINAPI
525  HMODULE Module,
526  LPCTSTR Name,
527  LPCTSTR Type,
528  DWORD Options,
529  LPDIRECT3DDEVICE8 pD3D,
530  LPD3DXBUFFER *ppAdjacency,
531  LPD3DXBUFFER *ppMaterials,
532  DWORD *pNumMaterials,
533  LPD3DXMESH *ppMesh);
534 
535 HRESULT WINAPI
537  LPSTR pFilename,
538  LPD3DXMESH pMesh,
539  CONST DWORD* pAdjacency,
540  CONST LPD3DXMATERIAL pMaterials,
541  DWORD NumMaterials,
542  DWORD Format
543  );
544 
545 HRESULT WINAPI
547  IStream *pStream,
548  DWORD Options,
549  LPDIRECT3DDEVICE8 pD3DDevice,
550  LPD3DXBUFFER *ppMaterials,
551  DWORD* pNumMaterials,
552  LPD3DXPMESH *ppPMesh);
553 
554 HRESULT WINAPI
556  DWORD NumFaces,
557  DWORD NumVertices,
558  DWORD NumBones,
559  DWORD Options,
560  CONST DWORD *pDeclaration,
561  LPDIRECT3DDEVICE8 pD3D,
562  LPD3DXSKINMESH* ppSkinMesh);
563 
564 HRESULT WINAPI
566  DWORD NumFaces,
567  DWORD NumVertices,
568  DWORD NumBones,
569  DWORD Options,
570  DWORD FVF,
571  LPDIRECT3DDEVICE8 pD3D,
572  LPD3DXSKINMESH* ppSkinMesh);
573 
574 HRESULT WINAPI
576  LPD3DXMESH pMesh,
577  DWORD numBones,
578  LPD3DXSKINMESH* ppSkinMesh);
579 
580 HRESULT WINAPI
582  LPDIRECTXFILEDATA pXofObjMesh,
583  DWORD Options,
584  LPDIRECT3DDEVICE8 pD3DDevice,
585  LPD3DXBUFFER *ppAdjacency,
586  LPD3DXBUFFER *ppMaterials,
587  DWORD *pNumMaterials,
588  LPD3DXMESH *ppMesh);
589 
590 HRESULT WINAPI
592  LPDIRECTXFILEDATA pxofobjMesh,
593  DWORD Options,
594  LPDIRECT3DDEVICE8 pD3D,
595  LPD3DXBUFFER* ppAdjacency,
596  LPD3DXBUFFER* ppMaterials,
597  DWORD *pMatOut,
598  LPD3DXBUFFER* ppBoneNames,
599  LPD3DXBUFFER* ppBoneTransforms,
600  LPD3DXSKINMESH* ppMesh);
601 
602 HRESULT WINAPI
604  LPD3DXMESH pMeshIn,
605  CONST DWORD* pAdjacencyIn,
606  FLOAT NumSegs,
607  BOOL QuadraticInterpNormals, /* if false use linear intrep for normals, if true use quadratic */
608  LPD3DXMESH *ppMeshOut,
609  LPD3DXBUFFER *ppAdjacencyOut);
610 
611 UINT WINAPI
612  D3DXGetFVFVertexSize(DWORD FVF);
613 
614 HRESULT WINAPI
616  DWORD FVF,
617  DWORD Declaration[MAX_FVF_DECL_SIZE]);
618 
619 HRESULT WINAPI
621  CONST DWORD *pDeclarator,
622  DWORD *pFVF);
623 
624 HRESULT WINAPI
626  CONST LPD3DXMESH pMesh,
627  LPD3DXWELDEPSILONS pEpsilons,
628  CONST DWORD *pAdjacencyIn,
629  DWORD *pAdjacencyOut,
630  DWORD* pFaceRemap,
631  LPD3DXBUFFER *ppVertexRemap);
632 
633 typedef struct _D3DXINTERSECTINFO
634 {
635  DWORD FaceIndex; /* index of face intersected */
636  FLOAT U; /* Barycentric Hit Coordinates */
637  FLOAT V; /* Barycentric Hit Coordinates */
638  FLOAT Dist; /* Ray-Intersection Parameter Distance */
640 
641 
642 HRESULT WINAPI
644  LPD3DXBASEMESH pMesh,
645  CONST D3DXVECTOR3 *pRayPos,
646  CONST D3DXVECTOR3 *pRayDir,
647  BOOL *pHit, /* True if any faces were intersected */
648  DWORD *pFaceIndex, /* index of closest face intersected */
649  FLOAT *pU, /* Barycentric Hit Coordinates */
650  FLOAT *pV, /* Barycentric Hit Coordinates */
651  FLOAT *pDist, /* Ray-Intersection Parameter Distance */
652  LPD3DXBUFFER *ppAllHits, /* Array of D3DXINTERSECTINFOs for all hits (not just closest) */
653  DWORD *pCountOfHits); /* Number of entries in AllHits array */
654 
655 HRESULT WINAPI
657  LPD3DXBASEMESH pMesh,
658  DWORD AttribId,
659  CONST D3DXVECTOR3 *pRayPos,
660  CONST D3DXVECTOR3 *pRayDir,
661  BOOL *pHit, /* True if any faces were intersected */
662  DWORD *pFaceIndex, /* index of closest face intersected */
663  FLOAT *pU, /* Barycentric Hit Coordinates */
664  FLOAT *pV, /* Barycentric Hit Coordinates */
665  FLOAT *pDist, /* Ray-Intersection Parameter Distance */
666  LPD3DXBUFFER *ppAllHits, /* Array of D3DXINTERSECTINFOs for all hits (not just closest) */
667  DWORD *pCountOfHits); /* Number of entries in AllHits array */
668 
669 
670 HRESULT WINAPI D3DXSplitMesh
671  (
672  CONST LPD3DXMESH pMeshIn,
673  CONST DWORD *pAdjacencyIn,
674  CONST DWORD MaxSize,
675  CONST DWORD Options,
676  DWORD *pMeshesOut,
677  LPD3DXBUFFER *ppMeshArrayOut,
678  LPD3DXBUFFER *ppAdjacencyArrayOut,
679  LPD3DXBUFFER *ppFaceRemapArrayOut,
680  LPD3DXBUFFER *ppVertRemapArrayOut
681  );
682 
684 (
685  CONST D3DXVECTOR3 *p0, /* Triangle vertex 0 position */
686  CONST D3DXVECTOR3 *p1, /* Triangle vertex 1 position */
687  CONST D3DXVECTOR3 *p2, /* Triangle vertex 2 position */
688  CONST D3DXVECTOR3 *pRayPos, /* Ray origin */
689  CONST D3DXVECTOR3 *pRayDir, /* Ray direction */
690  FLOAT *pU, /* Barycentric Hit Coordinates */
691  FLOAT *pV, /* Barycentric Hit Coordinates */
692  FLOAT *pDist); /* Ray-Intersection Parameter Distance */
693 
694 BOOL WINAPI
696  CONST D3DXVECTOR3 *pCenter,
697  FLOAT Radius,
698  CONST D3DXVECTOR3 *pRayPosition,
699  CONST D3DXVECTOR3 *pRayDirection);
700 
701 BOOL WINAPI
703  CONST D3DXVECTOR3 *pMin,
704  CONST D3DXVECTOR3 *pMax,
705  CONST D3DXVECTOR3 *pRayPosition,
706  CONST D3DXVECTOR3 *pRayDirection);
707 
708 enum _D3DXERR {
716 };
717 
718 
719 #define D3DX_COMP_TANGENT_NONE 0xFFFFFFFF
720 
722  DWORD TexStage,
723  LPD3DXMESH OutMesh,
724  DWORD TexStageUVec,
725  DWORD TexStageVVec,
726  DWORD Wrap,
727  DWORD *Adjacency);
728 
729 HRESULT WINAPI
731 (
732  LPD3DXBASEMESH MeshIn,
733  DWORD AttribId,
734  DWORD IBOptions,
735  LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer,
736  DWORD *pNumIndices
737 );
738 
739 HRESULT WINAPI
741 (
742  LPD3DXBASEMESH MeshIn,
743  DWORD AttribId,
744  DWORD IBOptions,
745  LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer,
746  DWORD *pNumIndices,
747  LPD3DXBUFFER *ppStripLengths,
748  DWORD *pNumStrips
749 );
750 
751 
752 #ifdef __cplusplus
753 }
754 #endif /* __cplusplus */
755 
756 #endif /* __D3DX8MESH_H__ */
757 
758 
DWORD AttribId
Definition: d3dx8mesh.h:87
Definition: d3dx8mesh.h:336
Definition: d3dx8mesh.h:61
HRESULT WINAPI D3DXWeldVertices(CONST LPD3DXMESH pMesh, LPD3DXWELDEPSILONS pEpsilons, CONST DWORD *pAdjacencyIn, DWORD *pAdjacencyOut, DWORD *pFaceRemap, LPD3DXBUFFER *ppVertexRemap)
Definition: d3dx8mesh.h:50
struct IDirect3DDevice8 * LPDIRECT3DDEVICE8
Definition: d3d8.h:326
Definition: d3d8types.h:77
Definition: d3dx8mesh.h:76
HRESULT WINAPI D3DXIntersect(LPD3DXBASEMESH pMesh, CONST D3DXVECTOR3 *pRayPos, CONST D3DXVECTOR3 *pRayDir, BOOL *pHit, DWORD *pFaceIndex, FLOAT *pU, FLOAT *pV, FLOAT *pDist, LPD3DXBUFFER *ppAllHits, DWORD *pCountOfHits)
HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD FVF, DWORD Declaration[MAX_FVF_DECL_SIZE])
FLOAT Tex[8]
Definition: d3dx8mesh.h:116
Definition: d3d8types.h:48
HRESULT WINAPI D3DXConvertMeshSubsetToSingleStrip(LPD3DXBASEMESH MeshIn, DWORD AttribId, DWORD IBOptions, LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer, DWORD *pNumIndices)
DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
Definition: d3dx8mesh.h:147
DEFINE_GUID(IID_ID3DXBaseMesh, 0x2a835771, 0xbf4d, 0x43f4, 0x8e, 0x14, 0x82, 0xa8, 0x9, 0xf1, 0x7d, 0x8a)
Definition: glslang_tab.cpp:129
DWORD Flags
Definition: d3dx8mesh.h:138
Definition: d3dx8mesh.h:40
struct _D3DXATTRIBUTEWEIGHTS D3DXATTRIBUTEWEIGHTS
HRESULT WINAPI D3DXCreateSkinMeshFromMesh(LPD3DXMESH pMesh, DWORD numBones, LPD3DXSKINMESH *ppSkinMesh)
struct _D3DXWELDEPSILONS D3DXWELDEPSILONS
Definition: d3dx8mesh.h:48
HRESULT WINAPI D3DXCreateSkinMesh(DWORD NumFaces, DWORD NumVertices, DWORD NumBones, DWORD Options, CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3D, LPD3DXSKINMESH *ppSkinMesh)
Definition: d3dx8mesh.h:63
Definition: d3dx8mesh.h:714
struct IDirect3DVertexBuffer8 * LPDIRECT3DVERTEXBUFFER8
Definition: d3d8.h:907
GLfixed GLfixed x2
Definition: glsym_gl.h:1051
Definition: d3dx8mesh.h:715
Definition: d3d8types.h:151
const GLbyte * weights
Definition: glext.h:7190
Definition: d3dx8mesh.h:54
HRESULT WINAPI D3DXComputeNormals(LPD3DXBASEMESH pMesh, CONST DWORD *pAdjacency)
HRESULT WINAPI D3DXComputeTangent(LPD3DXMESH InMesh, DWORD TexStage, LPD3DXMESH OutMesh, DWORD TexStageUVec, DWORD TexStageVVec, DWORD Wrap, DWORD *Adjacency)
struct ID3DXPMesh * LPD3DXPMESH
Definition: d3dx8mesh.h:81
_D3DXMESH
Definition: d3dx8mesh.h:37
HRESULT WINAPI D3DXSimplifyMesh(LPD3DXMESH pMesh, CONST DWORD *pAdjacency, CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights, CONST FLOAT *pVertexWeights, DWORD MinValue, DWORD Options, LPD3DXMESH *ppMesh)
typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
Definition: d3dx8mesh.h:329
HRESULT WINAPI D3DXLoadSkinMeshFromXof(LPDIRECTXFILEDATA pxofobjMesh, DWORD Options, LPDIRECT3DDEVICE8 pD3D, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, DWORD *pMatOut, LPD3DXBUFFER *ppBoneNames, LPD3DXBUFFER *ppBoneTransforms, LPD3DXSKINMESH *ppMesh)
DWORD FaceStart
Definition: d3dx8mesh.h:88
Definition: d3dx8mesh.h:326
FLOAT Specular
Definition: d3dx8mesh.h:115
BOOL WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *pCenter, FLOAT Radius, CONST D3DXVECTOR3 *pRayPosition, CONST D3DXVECTOR3 *pRayDirection)
D3DXATTRIBUTERANGE * LPD3DXATTRIBUTERANGE
Definition: d3dx8mesh.h:94
_MAX_FVF_DECL_SIZE
Definition: d3dx8mesh.h:74
Definition: d3dx8mesh.h:47
struct _D3DXBONECOMBINATION D3DXBONECOMBINATION
#define MAKE_DDHRESULT(code)
Definition: d3dx9.h:57
Definition: d3dx8mesh.h:62
HRESULT WINAPI D3DXSplitMesh(CONST LPD3DXMESH pMeshIn, CONST DWORD *pAdjacencyIn, CONST DWORD MaxSize, CONST DWORD Options, DWORD *pMeshesOut, LPD3DXBUFFER *ppMeshArrayOut, LPD3DXBUFFER *ppAdjacencyArrayOut, LPD3DXBUFFER *ppFaceRemapArrayOut, LPD3DXBUFFER *ppVertRemapArrayOut)
HRESULT WINAPI D3DXConvertMeshSubsetToStrips(LPD3DXBASEMESH MeshIn, DWORD AttribId, DWORD IBOptions, LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer, DWORD *pNumIndices, LPD3DXBUFFER *ppStripLengths, DWORD *pNumStrips)
HRESULT WINAPI D3DXComputeBoundingBox(PVOID pPointsFVF, DWORD NumVertices, DWORD FVF, D3DXVECTOR3 *pMin, D3DXVECTOR3 *pMax)
HRESULT WINAPI D3DXFVFFromDeclarator(CONST DWORD *pDeclarator, DWORD *pFVF)
HRESULT WINAPI D3DXTessellateNPatches(LPD3DXMESH pMeshIn, CONST DWORD *pAdjacencyIn, FLOAT NumSegs, BOOL QuadraticInterpNormals, LPD3DXMESH *ppMeshOut, LPD3DXBUFFER *ppAdjacencyOut)
Definition: d3dx8mesh.h:710
struct _D3DXINTERSECTINFO D3DXINTERSECTINFO
HRESULT WINAPI D3DXIntersectSubset(LPD3DXBASEMESH pMesh, DWORD AttribId, CONST D3DXVECTOR3 *pRayPos, CONST D3DXVECTOR3 *pRayDir, BOOL *pHit, DWORD *pFaceIndex, FLOAT *pU, FLOAT *pV, FLOAT *pDist, LPD3DXBUFFER *ppAllHits, DWORD *pCountOfHits)
Definition: d3dx8mesh.h:52
Definition: d3dx8mesh.h:712
struct ID3DXSPMesh * LPD3DXSPMESH
Definition: d3dx8mesh.h:82
HRESULT WINAPI D3DXSaveMeshToX(LPSTR pFilename, LPD3DXMESH pMesh, CONST DWORD *pAdjacency, CONST LPD3DXMATERIAL pMaterials, DWORD NumMaterials, DWORD Format)
Definition: d3dx8mesh.h:330
DWORD FaceIndex
Definition: d3dx8mesh.h:635
HRESULT WINAPI D3DXCreateSPMesh(LPD3DXMESH pMesh, CONST DWORD *pAdjacency, CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights, CONST FLOAT *pVertexWeights, LPD3DXSPMESH *ppSMesh)
DWORD VertexStart
Definition: d3dx8mesh.h:341
struct _D3DXINTERSECTINFO * LPD3DXINTERSECTINFO
UINT WINAPI D3DXGetFVFVertexSize(DWORD FVF)
_D3DXWELDEPSILONSFLAGS
Definition: d3dx8mesh.h:121
D3DXWELDEPSILONS * LPD3DXWELDEPSILONS
Definition: d3dx8mesh.h:141
Definition: d3dx8mesh.h:331
Definition: d3dx8mesh.h:44
FLOAT Position
Definition: d3dx8mesh.h:111
HRESULT WINAPI D3DXLoadMeshFromXResource(HMODULE Module, LPCTSTR Name, LPCTSTR Type, DWORD Options, LPDIRECT3DDEVICE8 pD3D, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, DWORD *pNumMaterials, LPD3DXMESH *ppMesh)
DWORD FaceCount
Definition: d3dx8mesh.h:340
Definition: d3dx8mesh.h:709
Definition: d3dx8mesh.h:56
DWORD FaceStart
Definition: d3dx8mesh.h:339
FLOAT Diffuse
Definition: d3dx8mesh.h:114
HRESULT WINAPI D3DXCleanMesh(LPD3DXMESH pMeshIn, CONST DWORD *pAdjacencyIn, LPD3DXMESH *ppMeshOut, DWORD *pAdjacencyOut, LPD3DXBUFFER *ppErrorsAndWarnings)
Definition: d3dx8mesh.h:99
Definition: d3dx8mesh.h:41
DWORD FaceCount
Definition: d3dx8mesh.h:89
LPSTR pTextureFilename
Definition: d3dx8mesh.h:102
Definition: d3dx8mesh.h:123
DWORD VertexCount
Definition: d3dx8mesh.h:342
HRESULT WINAPI D3DXLoadMeshFromX(LPSTR pFilename, DWORD Options, LPDIRECT3DDEVICE8 pD3D, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, DWORD *pNumMaterials, LPD3DXMESH *ppMesh)
_D3DXMESHOPT
Definition: d3dx8mesh.h:325
float4 p1
Definition: notHere.h:1
struct D3DXMATERIAL * LPD3DXMATERIAL
Definition: d3dx8mesh.h:104
Definition: d3dx8mesh.h:327
DWORD * BoneId
Definition: d3dx8mesh.h:343
struct _D3DXATTRIBUTERANGE D3DXATTRIBUTERANGE
struct _D3DXBONECOMBINATION * LPD3DXBONECOMBINATION
Definition: d3dx8mesh.h:39
HRESULT WINAPI D3DXGeneratePMesh(LPD3DXMESH pMesh, CONST DWORD *pAdjacency, CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights, CONST FLOAT *pVertexWeights, DWORD MinValue, DWORD Options, LPD3DXPMESH *ppPMesh)
Definition: d3dx8mesh.h:43
DWORD VertexCount
Definition: d3dx8mesh.h:91
Definition: d3dx8mesh.h:59
FLOAT Boundary
Definition: d3dx8mesh.h:112
HRESULT WINAPI D3DXCreatePMeshFromStream(IStream *pStream, DWORD Options, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXBUFFER *ppMaterials, DWORD *pNumMaterials, LPD3DXPMESH *ppPMesh)
DWORD VertexStart
Definition: d3dx8mesh.h:90
BOOL D3DXIntersectTri(CONST D3DXVECTOR3 *p0, CONST D3DXVECTOR3 *p1, CONST D3DXVECTOR3 *p2, CONST D3DXVECTOR3 *pRayPos, CONST D3DXVECTOR3 *pRayDir, FLOAT *pU, FLOAT *pV, FLOAT *pDist)
static INLINE ULONG Release(void *object)
Definition: dxgi_common.h:253
unsigned int BOOL
Definition: gctypes.h:51
Definition: d3dx8mesh.h:711
Definition: d3dx8mesh.h:46
HRESULT WINAPI D3DXValidMesh(LPD3DXMESH pMeshIn, CONST DWORD *pAdjacency, LPD3DXBUFFER *ppErrorsAndWarnings)
HRESULT WINAPI D3DXComputeBoundingSphere(PVOID pPointsFVF, DWORD NumVertices, DWORD FVF, D3DXVECTOR3 *pCenter, FLOAT *pRadius)
HRESULT WINAPI D3DXCreateMesh(DWORD NumFaces, DWORD NumVertices, DWORD Options, CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3D, LPD3DXMESH *ppMesh)
interface ID3DXBuffer * LPD3DXBUFFER
Definition: d3dx8core.h:29
BOOL WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *pMin, CONST D3DXVECTOR3 *pMax, CONST D3DXVECTOR3 *pRayPosition, CONST D3DXVECTOR3 *pRayDirection)
float4 p2
Definition: local.h:1
FLOAT Dist
Definition: d3dx8mesh.h:638
Definition: d3dx8mesh.h:49
Definition: d3dx8mesh.h:133
HRESULT WINAPI D3DXCreateBuffer(DWORD NumBytes, LPD3DXBUFFER *ppBuffer)
FLOAT Normal
Definition: d3dx8mesh.h:113
Definition: d3dx8mesh.h:85
Format
Definition: vulkan.hpp:7957
HRESULT WINAPI D3DXCreateMeshFVF(DWORD NumFaces, DWORD NumVertices, DWORD Options, DWORD FVF, LPDIRECT3DDEVICE8 pD3D, LPD3DXMESH *ppMesh)
Definition: glslang_tab.cpp:136
struct ID3DXSkinMesh * LPD3DXSKINMESH
Definition: d3dx8mesh.h:83
HRESULT WINAPI D3DXLoadMeshFromXInMemory(PBYTE Memory, DWORD SizeOfMemory, DWORD Options, LPDIRECT3DDEVICE8 pD3D, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, DWORD *pNumMaterials, LPD3DXMESH *ppMesh)
Definition: d3dx8mesh.h:125
Definition: d3dx8mesh.h:70
FLOAT SkinWeights
Definition: d3dx8mesh.h:135
Definition: glslang_tab.cpp:133
Definition: d3dx8mesh.h:328
_D3DXERR
Definition: d3dx8mesh.h:708
Definition: d3dx8mesh.h:51
Type
Type of JSON value.
Definition: rapidjson.h:603
struct ID3DXBaseMesh * LPD3DXBASEMESH
Definition: d3dx8mesh.h:79
Definition: d3dx8mesh.h:713
Definition: d3dx8mesh.h:71
FLOAT Normal
Definition: d3dx8mesh.h:136
struct IDirect3DIndexBuffer8 * LPDIRECT3DINDEXBUFFER8
Definition: d3d8.h:965
Definition: d3dx8mesh.h:633
DWORD AttribId
Definition: d3dx8mesh.h:338
Definition: d3dx8mesh.h:60
HRESULT WINAPI D3DXCreateSkinMeshFVF(DWORD NumFaces, DWORD NumVertices, DWORD NumBones, DWORD Options, DWORD FVF, LPDIRECT3DDEVICE8 pD3D, LPD3DXSKINMESH *ppSkinMesh)
D3DMATERIAL8 MatD3D
Definition: d3dx8mesh.h:101
_D3DXMESHSIMP
Definition: d3dx8mesh.h:68
Definition: d3dx8mesh.h:109
GLbitfield flags
Definition: glext.h:7828
FLOAT V
Definition: d3dx8mesh.h:637
Definition: d3dx8mesh.h:128
int Options
Definition: StandAlone.cpp:153
HRESULT WINAPI D3DXLoadMeshFromXof(LPDIRECTXFILEDATA pXofObjMesh, DWORD Options, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, DWORD *pNumMaterials, LPD3DXMESH *ppMesh)
Definition: d3dx8mesh.h:45
D3DXATTRIBUTEWEIGHTS * LPD3DXATTRIBUTEWEIGHTS
Definition: d3dx8mesh.h:119
struct ID3DXMesh * LPD3DXMESH
Definition: d3dx8mesh.h:80
FLOAT Tex[8]
Definition: d3dx8mesh.h:137
Definition: d3dx8mesh.h:42
Definition: d3dx8mesh.h:38
FLOAT U
Definition: d3dx8mesh.h:636