ReactOS 0.4.15-dev-7788-g1ad9096
d3dx9mesh.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2009 David Adam
3 * Copyright (C) 2010 Tony Wasserka
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#include <d3dx9.h>
21
22#ifndef __WINE_D3DX9MESH_H
23#define __WINE_D3DX9MESH_H
24
25DEFINE_GUID(IID_ID3DXBaseMesh, 0x7ed943dd, 0x52e8, 0x40b5, 0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30);
26DEFINE_GUID(IID_ID3DXMesh, 0x4020e5c2, 0x1403, 0x4929, 0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95);
27DEFINE_GUID(IID_ID3DXPMesh, 0x8875769a, 0xd579, 0x4088, 0xaa, 0xeb, 0x53, 0x4d, 0x1a, 0xd8, 0x4e, 0x96);
28DEFINE_GUID(IID_ID3DXSPMesh, 0x667ea4c7, 0xf1cd, 0x4386, 0xb5, 0x23, 0x7c, 0x02, 0x90, 0xb8, 0x3c, 0xc5);
29DEFINE_GUID(IID_ID3DXSkinInfo, 0x11eaa540, 0xf9a6, 0x4d49, 0xae, 0x6a, 0xe1, 0x92, 0x21, 0xf7, 0x0c, 0xc4);
30DEFINE_GUID(IID_ID3DXPatchMesh,0x3ce6cc22, 0xdbf2, 0x44f4, 0x89, 0x4d, 0xf9, 0xc3, 0x4a, 0x33, 0x71, 0x39);
31DEFINE_GUID(IID_ID3DXPRTBuffer, 0xf1827e47, 0x00a8, 0x49cd, 0x90, 0x8c, 0x9d, 0x11, 0x95, 0x5f, 0x87, 0x28);
32DEFINE_GUID(IID_ID3DXPRTCompBuffer, 0xa758d465, 0xfe8d, 0x45ad, 0x9c, 0xf0, 0xd0, 0x1e, 0x56, 0x26, 0x6a, 0x07);
33DEFINE_GUID(IID_ID3DXTextureGutterHelper, 0x838f01ec, 0x9729, 0x4527, 0xaa, 0xdb, 0xdf, 0x70, 0xad, 0xe7, 0xfe, 0xa9);
34DEFINE_GUID(IID_ID3DXPRTEngine, 0x683a4278, 0xcd5f, 0x4d24, 0x90, 0xad, 0xc4, 0xe1, 0xb6, 0x85, 0x5d, 0x53);
35
36#define UNUSED16 (0xffff)
37#define UNUSED32 (0xffffffff)
38
40{
42};
43
45{
68};
69
71{
73 D3DXMESHOPT_COMPACT = 0x01000000,
79};
80
82{
88
90{
92};
93
95{
98};
99
100typedef enum D3DXCLEANTYPE {
102 D3DXCLEAN_BOWTIES = 0x00000002,
103
108
109typedef enum _D3DXTANGENT
110{
124
125typedef enum _D3DXIMT
126{
131
132typedef enum _D3DXUVATLAS
133{
138
140{
144 D3DXEDT_FORCEDWORD = 0x7fffffff,
146
148{
153};
154
156{
161
163{
171
172typedef struct ID3DXBaseMesh* LPD3DXBASEMESH;
173typedef struct ID3DXMesh* LPD3DXMESH;
174typedef struct ID3DXPMesh *LPD3DXPMESH;
175typedef struct ID3DXSPMesh *LPD3DXSPMESH;
176typedef struct ID3DXSkinInfo *LPD3DXSKININFO;
177typedef struct ID3DXPatchMesh *LPD3DXPATCHMESH;
178typedef struct ID3DXPRTBuffer *LPD3DXPRTBUFFER;
179typedef struct ID3DXPRTCompBuffer *LPD3DXPRTCOMPBUFFER;
180typedef struct ID3DXPRTEngine *LPD3DXPRTENGINE;
181typedef struct ID3DXTextureGutterHelper *LPD3DXTEXTUREGUTTERHELPER;
182
183typedef struct _D3DXATTRIBUTERANGE {
190
192
193typedef struct _D3DXMATERIAL
194{
198
199typedef struct _D3DXEFFECTDEFAULT
200{
204 void *pValue;
206
208{
213
215{
225
226typedef struct _D3DXWELDEPSILONS
227{
239
241{
249
250typedef struct _D3DXPATCHINFO
251{
256
257typedef struct _D3DXINTERSECTINFO
258{
264
265typedef struct _D3DXSHMATERIAL
266{
274
276{
281
283{
291
293{
299
300typedef HRESULT (WINAPI *LPD3DXUVATLASCB)(float complete, void *ctx);
302typedef HRESULT (WINAPI *LPD3DXSHPRTSIMCB)(float complete, void *ctx);
303
304#undef INTERFACE
305#define INTERFACE ID3DXBaseMesh
306
308{
309 /*** IUnknown methods ***/
313 /*** ID3DXBaseMesh ***/
314 STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
315 STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
316 STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
317 STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
319 STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
320 STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
321 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
322 STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
323 struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
325 struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
326 STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
327 STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
328 STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
329 STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
330 STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
331 STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
332 STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
333 STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
334 STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
335 STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
337};
338#undef INTERFACE
339
340#define INTERFACE ID3DXMesh
341DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
342{
343 /*** IUnknown methods ***/
347 /*** ID3DXBaseMesh ***/
348 STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
349 STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
350 STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
351 STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
353 STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
354 STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
355 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
356 STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
357 struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
359 struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
360 STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
361 STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
362 STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
363 STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
364 STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
365 STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
366 STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
367 STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
368 STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
369 STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
371 /*** ID3DXMesh ***/
372 STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** data) PURE;
373 STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
374 STDMETHOD(Optimize)(THIS_ DWORD flags, const DWORD *adjacency_in, DWORD *adjacency_out,
375 DWORD *face_remap, ID3DXBuffer **vertex_remap, ID3DXMesh **opt_mesh) PURE;
376 STDMETHOD(OptimizeInplace)(THIS_ DWORD flags, const DWORD *adjacency_in, DWORD *adjacency_out,
377 DWORD *face_remap, ID3DXBuffer **vertex_remap) PURE;
378 STDMETHOD(SetAttributeTable)(THIS_ const D3DXATTRIBUTERANGE *attrib_table,
379 DWORD attrib_table_size) PURE;
380};
381#undef INTERFACE
382
383#define INTERFACE ID3DXPMesh
384DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
385{
386 /*** IUnknown methods ***/
390 /*** ID3DXBaseMesh ***/
391 STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
392 STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
393 STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
394 STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
396 STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
397 STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
398 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
399 STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
400 struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
402 struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
403 STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
404 STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
405 STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
406 STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
407 STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
408 STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
409 STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
410 STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
411 STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
412 STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
414 /*** ID3DXPMesh ***/
415 STDMETHOD(ClonePMeshFVF)(THIS_ DWORD options, DWORD fvf,
416 struct IDirect3DDevice9 *device, struct ID3DXPMesh **clone_mesh) PURE;
418 struct IDirect3DDevice9 *device, struct ID3DXPMesh **clone_mesh) PURE;
419 STDMETHOD(SetNumFaces)(THIS_ DWORD faces) PURE;
420 STDMETHOD(SetNumVertices)(THIS_ DWORD vertices) PURE;
421 STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
422 STDMETHOD_(DWORD, GetMinFaces)(THIS) PURE;
423 STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
424 STDMETHOD_(DWORD, GetMinVertices)(THIS) PURE;
425 STDMETHOD(Save)(THIS_ IStream *stream, const D3DXMATERIAL *material,
426 const D3DXEFFECTINSTANCE *effect_instance, DWORD num_materials) PURE;
427 STDMETHOD(Optimize)(THIS_ DWORD flags, DWORD *adjacency_out, DWORD *face_remap,
428 ID3DXBuffer **vertex_remap, ID3DXMesh **opt_mesh) PURE;
429 STDMETHOD(OptimizeBaseLOD)(THIS_ DWORD flags, DWORD* face_remap) PURE;
430 STDMETHOD(TrimByFaces)(THIS_ DWORD new_faces_min, DWORD new_faces_max, DWORD* face_remap, DWORD* vertex_remap) PURE;
431 STDMETHOD(TrimByVertices)(THIS_ DWORD new_vertices_min, DWORD new_vertices_max, DWORD* face_remap, DWORD* vertex_remap) PURE;
432 STDMETHOD(GetAdjacency)(THIS_ DWORD* adjacency) PURE;
433 STDMETHOD(GenerateVertexHistory)(THIS_ DWORD* vertex_history) PURE;
434};
435#undef INTERFACE
436
437#define INTERFACE ID3DXSPMesh
439{
440 /*** IUnknown methods ***/
444 /*** ID3DXSPMesh ***/
445 STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
446 STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
447 STDMETHOD_(DWORD, GetNumFVF)(THIS) PURE;
449 STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
450 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
451 STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
452 struct IDirect3DDevice9 *device, DWORD *adjacency_out,
453 DWORD *vertex_remap_out, struct ID3DXMesh **clone_mesh) PURE;
455 struct IDirect3DDevice9 *device, DWORD *adjacency_out,
456 DWORD *vertex_remap_out, struct ID3DXMesh **clone_mesh) PURE;
457 STDMETHOD(ClonePMeshFVF)(THIS_ DWORD options, DWORD fvf,
458 struct IDirect3DDevice9 *device, DWORD *vertex_remap_out,
459 float *errors_by_face, struct ID3DXPMesh **clone_mesh) PURE;
461 struct IDirect3DDevice9 *device, DWORD *vertex_remap_out,
462 float *errors_by_face, struct ID3DXPMesh **clone_mesh) PURE;
463 STDMETHOD(ReduceFaces)(THIS_ DWORD faces) PURE;
464 STDMETHOD(ReduceVertices)(THIS_ DWORD vertices) PURE;
465 STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
466 STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
467 STDMETHOD(GetVertexAttributeWeights)(THIS_ LPD3DXATTRIBUTEWEIGHTS vertex_attribute_weights) PURE;
468 STDMETHOD(GetVertexWeights)(THIS_ FLOAT* vertex_weights) PURE;
469};
470#undef INTERFACE
471
472#define INTERFACE ID3DXPatchMesh
474{
475 /*** IUnknown methods ***/
479 /*** ID3DXPatchMesh ***/
480 STDMETHOD_(DWORD, GetNumPatches)(THIS) PURE;
481 STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
483 STDMETHOD_(DWORD, GetControlVerticesPerPatch)(THIS) PURE;
484 STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
485 STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
486 STDMETHOD(GetPatchInfo)(THIS_ LPD3DXPATCHINFO patch_info) PURE;
487 STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
488 STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
489 STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
490 STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
491 STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
492 STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
493 STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** data) PURE;
494 STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
495 STDMETHOD(GetTessSize)(THIS_ FLOAT tess_level, DWORD adaptive, DWORD* num_triangles, DWORD* num_vertices) PURE;
496 STDMETHOD(GenerateAdjacency)(THIS_ FLOAT tolerance) PURE;
497 STDMETHOD(CloneMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration, ID3DXPatchMesh **clone_mesh) PURE;
498 STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
499 STDMETHOD(SetDisplaceParam)(THIS_ struct IDirect3DBaseTexture9 *texture, D3DTEXTUREFILTERTYPE min_filter,
501 DWORD lod_bias) PURE;
502 STDMETHOD(GetDisplaceParam)(THIS_ struct IDirect3DBaseTexture9 **texture, D3DTEXTUREFILTERTYPE *min_filter,
504 DWORD *lod_bias) PURE;
505 STDMETHOD(Tessellate)(THIS_ float tess_level, ID3DXMesh *mesh) PURE;
506 STDMETHOD(TessellateAdaptive)(THIS_ const D3DXVECTOR4 *trans, DWORD max_tess_level,
507 DWORD min_tess_level, ID3DXMesh *mesh) PURE;
508};
509#undef INTERFACE
510
511#define INTERFACE ID3DXSkinInfo
513{
514 /*** IUnknown methods ***/
518 /*** ID3DXSkinInfo ***/
519 STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD num_influences, const DWORD *vertices,
520 const FLOAT *weights) PURE;
521 STDMETHOD(SetBoneVertexInfluence)(THIS_ DWORD bone_num, DWORD influence_num, float weight) PURE;
522 STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
523 STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
524 STDMETHOD(GetBoneVertexInfluence)(THIS_ DWORD bone_num, DWORD influence_num, float *weight, DWORD* vertex_num) PURE;
525 STDMETHOD(GetMaxVertexInfluences)(THIS_ DWORD* max_vertex_influences) PURE;
526 STDMETHOD_(DWORD, GetNumBones)(THIS) PURE;
527 STDMETHOD(FindBoneVertexInfluenceIndex)(THIS_ DWORD bone_num, DWORD vertex_num, DWORD* influence_index) PURE;
528 STDMETHOD(GetMaxFaceInfluences)(THIS_ struct IDirect3DIndexBuffer9 *index_buffer,
529 DWORD num_faces, DWORD *max_face_influences) PURE;
530 STDMETHOD(SetMinBoneInfluence)(THIS_ FLOAT min_influence) PURE;
531 STDMETHOD_(FLOAT, GetMinBoneInfluence)(THIS) PURE;
532 STDMETHOD(SetBoneName)(THIS_ DWORD bone_idx, const char *name) PURE;
533 STDMETHOD_(const char *, GetBoneName)(THIS_ DWORD bone_idx) PURE;
534 STDMETHOD(SetBoneOffsetMatrix)(THIS_ DWORD bone, const D3DXMATRIX *bone_transform) PURE;
535 STDMETHOD_(D3DXMATRIX *, GetBoneOffsetMatrix)(THIS_ DWORD bone) PURE;
536 STDMETHOD(Clone)(THIS_ ID3DXSkinInfo **skin_info) PURE;
537 STDMETHOD(Remap)(THIS_ DWORD num_vertices, DWORD* vertex_remap) PURE;
538 STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
539 STDMETHOD(SetDeclaration)(THIS_ const D3DVERTEXELEMENT9 *declaration) PURE;
540 STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
542 STDMETHOD(UpdateSkinnedMesh)(THIS_ const D3DXMATRIX *bone_transforms,
543 const D3DXMATRIX *bone_inv_transpose_transforms, const void *src_vertices, void *dst_vertices) PURE;
544 STDMETHOD(ConvertToBlendedMesh)(THIS_ ID3DXMesh *mesh_in, DWORD options, const DWORD *adjacency_in,
545 DWORD *adjacency_out, DWORD *face_remap, ID3DXBuffer **vertex_remap, DWORD *max_face_infl,
546 DWORD *num_bone_combinations, ID3DXBuffer **bone_combination_table, ID3DXMesh **mesh_out) PURE;
547 STDMETHOD(ConvertToIndexedBlendedMesh)(THIS_ ID3DXMesh *mesh_in, DWORD options, DWORD palette_size,
548 const DWORD *adjacency_in, DWORD *adjacency_out, DWORD *face_remap, ID3DXBuffer **vertex_remap,
549 DWORD *max_face_infl, DWORD *num_bone_combinations, ID3DXBuffer **bone_combination_table,
550 ID3DXMesh **mesh_out) PURE;
551};
552#undef INTERFACE
553
554#define INTERFACE ID3DXPRTBuffer
556{
557 /*** IUnknown methods ***/
561 /*** ID3DXPRTBuffer methods ***/
562 STDMETHOD_(UINT, GetNumSamples)(THIS) PURE;
563 STDMETHOD_(UINT, GetNumCoeffs)(THIS) PURE;
564 STDMETHOD_(UINT, GetNumChannels)(THIS) PURE;
565 STDMETHOD_(BOOL, IsTexture)(THIS) PURE;
566 STDMETHOD_(BOOL, GetWidth)(THIS) PURE;
567 STDMETHOD_(BOOL, GetHeight)(THIS) PURE;
568 STDMETHOD(Resize)(THIS_ UINT new_size) PURE;
569 STDMETHOD(LockBuffer)(THIS_ UINT start, UINT num_samples, FLOAT **data) PURE;
570 STDMETHOD(UnlockBuffer)(THIS) PURE;
571 STDMETHOD(ScaleBuffer)(THIS_ FLOAT scale) PURE;
572 STDMETHOD(AddBuffer)(THIS_ ID3DXPRTBuffer *buffer) PURE;
573 STDMETHOD(AttachGH)(THIS_ struct ID3DXTextureGutterHelper *gh) PURE;
574 STDMETHOD(ReleaseGH)(THIS) PURE;
575 STDMETHOD(EvalGH)(THIS) PURE;
576 STDMETHOD(ExtractTexture)(THIS_ UINT channel, UINT start_coefficient,
577 UINT num_coefficients, struct IDirect3DTexture9 *texture) PURE;
578 STDMETHOD(ExtractToMesh)(THIS_ UINT num_coefficients, D3DDECLUSAGE usage,
579 UINT usage_index_start, ID3DXMesh *scene) PURE;
580};
581#undef INTERFACE
582
583#define INTERFACE ID3DXPRTCompBuffer
584DECLARE_INTERFACE_(ID3DXPRTCompBuffer, IUnknown)
585{
586 /*** IUnknown methods ***/
590 /*** ID3DXPRTCompBuffer methods ***/
591 STDMETHOD_(UINT, GetNumSamples)(THIS) PURE;
592 STDMETHOD_(UINT, GetNumCoeffs)(THIS) PURE;
593 STDMETHOD_(UINT, GetNumChannels)(THIS) PURE;
594 STDMETHOD_(BOOL, IsTexture)(THIS) PURE;
595 STDMETHOD_(UINT, GetWidth)(THIS) PURE;
596 STDMETHOD_(UINT, GetHeight)(THIS) PURE;
597 STDMETHOD_(UINT, GetNumClusters)(THIS) PURE;
598 STDMETHOD_(UINT, GetNumPCA)(THIS) PURE;
599 STDMETHOD(NormalizeData)(THIS) PURE;
600 STDMETHOD(ExtractBasis)(THIS_ UINT cluster, FLOAT *cluster_basis) PURE;
601 STDMETHOD(ExtractClusterIDs)(THIS_ UINT *cluster_ids) PURE;
602 STDMETHOD(ExtractPCA)(THIS_ UINT start_pca, UINT num_extract, FLOAT *pca_coefficients) PURE;
603 STDMETHOD(ExtractTexture)(THIS_ UINT start_pca, UINT num_pca, struct IDirect3DTexture9 *texture) PURE;
604 STDMETHOD(ExtractToMesh)(THIS_ UINT num_pca, D3DDECLUSAGE usage, UINT usage_index_start, ID3DXMesh *scene) PURE;
605};
606#undef INTERFACE
607
608#define INTERFACE ID3DXTextureGutterHelper
609DECLARE_INTERFACE_(ID3DXTextureGutterHelper, IUnknown)
610{
611 /*** IUnknown methods ***/
615 /*** ID3DXTextureGutterHelper methods ***/
616 STDMETHOD_(UINT, GetWidth)(THIS) PURE;
617 STDMETHOD_(UINT, GetHeight)(THIS) PURE;
618
619 STDMETHOD(ApplyGuttersFloat)(THIS_ FLOAT *data_in, UINT num_coeffs, UINT width, UINT height) PURE;
620 STDMETHOD(ApplyGuttersTex)(THIS_ struct IDirect3DTexture9 *texture) PURE;
621 STDMETHOD(ApplyGuttersPRT)(THIS_ ID3DXPRTBuffer *buffer) PURE;
622 STDMETHOD(ResampleTex)(THIS_ struct IDirect3DTexture9 *texture_in, struct ID3DXMesh *mesh_in,
623 D3DDECLUSAGE usage, UINT usage_index, struct IDirect3DTexture9 *texture_out) PURE;
624 STDMETHOD(GetFaceMap)(THIS_ UINT *face_data) PURE;
625 STDMETHOD(GetBaryMap)(THIS_ D3DXVECTOR2 *bary_data) PURE;
626 STDMETHOD(GetTexelMap)(THIS_ D3DXVECTOR2 *texel_data) PURE;
627 STDMETHOD(GetGutterMap)(THIS_ BYTE *gutter_data) PURE;
628 STDMETHOD(SetFaceMap)(THIS_ UINT *face_data) PURE;
629 STDMETHOD(SetBaryMap)(THIS_ D3DXVECTOR2 *bary_data) PURE;
630 STDMETHOD(SetTexelMap)(THIS_ D3DXVECTOR2 *texel_data) PURE;
631 STDMETHOD(SetGutterMap)(THIS_ BYTE *gutter_data) PURE;
632};
633#undef INTERFACE
634
635#define INTERFACE ID3DXPRTEngine
637{
638 /*** IUnknown methods ***/
642 /*** ID3DXPRTEngine methods ***/
643 STDMETHOD(SetMeshMaterials)(THIS_ const D3DXSHMATERIAL **materials, UINT num_meshes,
644 UINT num_channels, BOOL set_albedo, FLOAT length_scale) PURE;
645 STDMETHOD(SetPerVertexAlbedo)(THIS_ const void *data_in, UINT num_channels, UINT stride) PURE;
646 STDMETHOD(SetPerTexelAlbedo)(THIS_ struct IDirect3DTexture9 *albedo_texture,
647 UINT num_channels, struct ID3DXTextureGutterHelper *gh) PURE;
648 STDMETHOD(GetVertexAlbedo)(THIS_ D3DXCOLOR *vert_colors, UINT num_verts) PURE;
649 STDMETHOD(SetPerTexelNormals)(THIS_ struct IDirect3DTexture9 *normal_texture) PURE;
650 STDMETHOD(ExtractPerVertexAlbedo)(THIS_ ID3DXMesh *mesh, D3DDECLUSAGE usage, UINT num_channels) PURE;
651 STDMETHOD(ResampleBuffer)(THIS_ ID3DXPRTBuffer *buffer_in, ID3DXPRTBuffer *buffer_out) PURE;
652 STDMETHOD(GetAdaptedMesh)(THIS_ struct IDirect3DDevice9 *device, UINT *face_remap,
653 UINT *vert_remap, float *vert_weights, struct ID3DXMesh **mesh) PURE;
654 STDMETHOD_(UINT, GetNumVerts)(THIS) PURE;
655 STDMETHOD_(UINT, GetNumFaces)(THIS) PURE;
656 STDMETHOD(SetMinMaxIntersection)(THIS_ FLOAT min, FLOAT max) PURE;
657 STDMETHOD(RobustMeshRefine)(THIS_ FLOAT min_edge_length, UINT max_subdiv) PURE;
658 STDMETHOD(SetSamplingInfo)(THIS_ UINT num_rays, BOOL use_sphere,
659 BOOL use_cosine, BOOL adaptive, FLOAT adpative_thresh) PURE;
660 STDMETHOD(ComputeDirectLightingSH)(THIS_ UINT sh_order, ID3DXPRTBuffer *data_out) PURE;
661 STDMETHOD(ComputeDirectLightingSHAdaptive)(THIS_ UINT sh_order, float adaptive_thresh,
662 float min_edge_length, UINT max_subdiv, ID3DXPRTBuffer *data_out) PURE;
663 STDMETHOD(ComputeDirectLightingSHGPU)(THIS_ struct IDirect3DDevice9 *device, UINT flags,
664 UINT sh_order, float zbias, float zangle_bias, struct ID3DXPRTBuffer *data_out) PURE;
665 STDMETHOD(ComputeSS)(THIS_ ID3DXPRTBuffer *data_in, ID3DXPRTBuffer *data_out,
666 ID3DXPRTBuffer *data_total) PURE;
667 STDMETHOD(ComputeSSAdaptive)(THIS_ ID3DXPRTBuffer *data_in, float adaptive_thres,
668 float min_edge_length, UINT max_subdiv, ID3DXPRTBuffer *data_out, ID3DXPRTBuffer *data_total) PURE;
669 STDMETHOD(ComputeBounce)(THIS_ ID3DXPRTBuffer *data_in, ID3DXPRTBuffer *data_out,
670 ID3DXPRTBuffer *data_total) PURE;
671 STDMETHOD(ComputeBounceAdaptive)(THIS_ ID3DXPRTBuffer *data_in, float adaptive_thres,
672 float min_edge_length, UINT max_subdiv, ID3DXPRTBuffer *data_out, ID3DXPRTBuffer *data_total) PURE;
673 STDMETHOD(ComputeVolumeSamplesDirectSH)(THIS_ UINT sh_order_in, UINT sh_order_out,
674 UINT num_vol_samples, const D3DXVECTOR3 *sample_locs, ID3DXPRTBuffer *data_out) PURE;
675 STDMETHOD(ComputeVolumeSamples)(THIS_ ID3DXPRTBuffer *surf_data_in, UINT sh_order,
676 UINT num_vol_samples, const D3DXVECTOR3 *sample_locs, ID3DXPRTBuffer *data_out) PURE;
677 STDMETHOD(ComputeSurfSamplesDirectSH)(THIS_ UINT sh_order, UINT num_samples,
678 const D3DXVECTOR3 *sample_locs, const D3DXVECTOR3 *sample_norms, ID3DXPRTBuffer *data_out) PURE;
679 STDMETHOD(ComputeSurfSamplesBounce)(THIS_ ID3DXPRTBuffer *surf_data_in, UINT num_samples,
680 const D3DXVECTOR3 *sample_locs, const D3DXVECTOR3 *sample_norms, ID3DXPRTBuffer *data_out,
681 ID3DXPRTBuffer *data_total) PURE;
682 STDMETHOD(FreeSSData)(THIS) PURE;
683 STDMETHOD(FreeBounceData)(THIS) PURE;
684 STDMETHOD(ComputeLDPRTCoeffs)(THIS_ ID3DXPRTBuffer *data_in, UINT sh_order, D3DXVECTOR3 *norm_out,
685 ID3DXPRTBuffer *data_out) PURE;
686 STDMETHOD(ScaleMeshChunk)(THIS_ UINT mesh_chunk, float scale, ID3DXPRTBuffer *data_out) PURE;
687 STDMETHOD(MultiplyAlbedo)(THIS_ ID3DXPRTBuffer *data_out) PURE;
688 STDMETHOD(SetCallback)(THIS_ LPD3DXSHPRTSIMCB cb, float frequency, void *user_context) PURE;
689 STDMETHOD_(BOOL, ShadowRayIntersects)(THIS_ const D3DXVECTOR3 *ray_pos,
690 const D3DXVECTOR3 *ray_dir) PURE;
691 STDMETHOD_(BOOL, ClosestRayIntersects)(THIS_ const D3DXVECTOR3 *ray_pos,
692 const D3DXVECTOR3 *ray_dir, DWORD *face_index, FLOAT *u, FLOAT *v, FLOAT *dist) PURE;
693};
694#undef INTERFACE
695
696#ifdef __cplusplus
697extern "C" {
698#endif
699
701 const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
703 DWORD fvf, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
705HRESULT WINAPI D3DXCreateSPMesh(ID3DXMesh *mesh, const DWORD *adjacency,
706 const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, ID3DXSPMesh **spmesh);
708 struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
709 DWORD *material_count, struct ID3DXPMesh **mesh);
711 DWORD bone_count, ID3DXSkinInfo **skin_info);
712HRESULT WINAPI D3DXCreateSkinInfoFVF(DWORD vertex_count, DWORD fvf, DWORD bone_count, ID3DXSkinInfo **skin_info);
714 const D3DXBONECOMBINATION *bone_combination_table, ID3DXSkinInfo **skin_info);
715HRESULT WINAPI D3DXCreatePatchMesh(const D3DXPATCHINFO *patch_info, DWORD patch_count,
717 struct IDirect3DDevice9 *device, struct ID3DXPatchMesh **mesh);
718HRESULT WINAPI D3DXCreatePRTBuffer(UINT sample_count, UINT coeff_count, UINT channel_count, ID3DXPRTBuffer **buffer);
720 UINT channel_count, ID3DXPRTBuffer **buffer);
722 LPD3DXSHPRTSIMCB cb, void *ctx, ID3DXPRTBuffer *input, ID3DXPRTCompBuffer **buffer);
724 float gutter_size, ID3DXTextureGutterHelper **gh);
725HRESULT WINAPI D3DXCreatePRTEngine(ID3DXMesh *mesh, DWORD *adjacency, BOOL extract_uv,
726 ID3DXMesh *blocker_mesh, ID3DXPRTEngine **engine);
727HRESULT WINAPI D3DXLoadMeshFromXA(const char *filename, DWORD flags, struct IDirect3DDevice9 *device,
728 struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
729 DWORD *material_count, struct ID3DXMesh **mesh);
730HRESULT WINAPI D3DXLoadMeshFromXW(const WCHAR *filename, DWORD flags, struct IDirect3DDevice9 *device,
731 struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
732 DWORD *material_count, struct ID3DXMesh **mesh);
733#define D3DXLoadMeshFromX WINELIB_NAME_AW(D3DXLoadMeshFromX)
735 struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials,
736 struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh);
737HRESULT WINAPI D3DXLoadMeshFromXResource(HMODULE module, const char *resource, const char *resource_type,
738 DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency,
739 struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
740 DWORD *material_count, struct ID3DXMesh **mesh);
741HRESULT WINAPI D3DXLoadMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device,
742 struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
743 DWORD *material_count, struct ID3DXMesh **mesh);
744HRESULT WINAPI D3DXLoadPatchMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device,
745 struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
746 DWORD *material_count, struct ID3DXPatchMesh **mesh);
747HRESULT WINAPI D3DXLoadSkinMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device,
748 struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
749 DWORD *material_count, struct ID3DXSkinInfo **skin_info, struct ID3DXMesh **mesh);
752#define D3DXLoadPRTBufferFromFile WINELIB_NAME_AW(D3DXLoadPRTBufferFromFile)
755#define D3DXLoadPRTCompBufferFromFile WINELIB_NAME_AW(D3DXLoadPRTCompBufferFromFile)
756HRESULT WINAPI D3DXSaveMeshToXA(const char *filename, ID3DXMesh *mesh, const DWORD *adjacency,
757 const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, DWORD material_count, DWORD format);
758HRESULT WINAPI D3DXSaveMeshToXW(const WCHAR *filename, ID3DXMesh *mesh, const DWORD *adjacency,
759 const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, DWORD material_count, DWORD format);
760#define D3DXSaveMeshToX WINELIB_NAME_AW(D3DXSaveMeshToX)
763#define D3DXSavePRTBufferToFile WINELIB_NAME_AW(D3DXSavePRTBufferToFile)
766#define D3DXSavePRTCompBufferToFile WINELIB_NAME_AW(D3DXSavePRTCompBufferToFile)
770BOOL WINAPI D3DXBoxBoundProbe(const D3DXVECTOR3 *vmin, const D3DXVECTOR3 *vmax,
771 const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir);
772BOOL WINAPI D3DXSphereBoundProbe(const D3DXVECTOR3 *center, FLOAT radius,
773 const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir);
774HRESULT WINAPI D3DXCleanMesh(D3DXCLEANTYPE clean_type, ID3DXMesh *mesh_in, const DWORD *adjacency_in,
775 ID3DXMesh **mesh_out, DWORD *adjacency_out, ID3DXBuffer **errors);
776HRESULT WINAPI D3DXConcatenateMeshes(struct ID3DXMesh **meshes, UINT mesh_count, DWORD flags,
777 const D3DXMATRIX *geometry_matrices, const D3DXMATRIX *texture_matrices,
778 const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
779HRESULT WINAPI D3DXComputeBoundingBox(const D3DXVECTOR3 *first_pos, DWORD num_vertices,
780 DWORD stride, D3DXVECTOR3 *vmin, D3DXVECTOR3 *vmax);
781HRESULT WINAPI D3DXComputeBoundingSphere(const D3DXVECTOR3 *first_pos, DWORD num_vertices,
782 DWORD stride, D3DXVECTOR3 *center, FLOAT *radius);
783HRESULT WINAPI D3DXComputeIMTFromPerTexelSignal(ID3DXMesh *mesh, DWORD texture_idx, float *texel_signal,
784 UINT width, UINT height, UINT signal_dimension, UINT component_count, DWORD flags,
786HRESULT WINAPI D3DXComputeIMTFromPerVertexSignal(ID3DXMesh *mesh, const float *vertex_signal,
787 UINT signal_dimension, UINT signal_stride, DWORD flags,
789HRESULT WINAPI D3DXComputeIMTFromSignal(ID3DXMesh *mesh, DWORD texture_idx, UINT signal_dimension,
790 float max_uv_distance, DWORD flags, LPD3DXIMTSIGNALCALLBACK signal_cb, void *signal_ctx,
791 LPD3DXUVATLASCB status_cb, void *status_ctx, ID3DXBuffer **buffer);
792HRESULT WINAPI D3DXComputeIMTFromTexture(struct ID3DXMesh *mesh, struct IDirect3DTexture9 *texture,
793 DWORD texture_idx, DWORD options, LPD3DXUVATLASCB cb, void *ctx, struct ID3DXBuffer **out);
794HRESULT WINAPI D3DXComputeNormals(ID3DXBaseMesh *mesh, const DWORD *adjacency);
795HRESULT WINAPI D3DXComputeTangentFrameEx(ID3DXMesh *mesh_in, DWORD texture_in_semantic, DWORD texture_in_idx,
796 DWORD u_partial_out_semantic, DWORD u_partial_out_idx, DWORD v_partial_out_semantic,
797 DWORD v_partial_out_idx, DWORD normal_out_semantic, DWORD normal_out_idx, DWORD flags,
798 const DWORD *adjacency, float partial_edge_threshold, float singular_point_threshold,
799 float normal_edge_threshold, ID3DXMesh **mesh_out, ID3DXBuffer **buffer);
800HRESULT WINAPI D3DXComputeTangent(ID3DXMesh *mesh, DWORD stage, DWORD tangent_idx,
801 DWORD binorm_idx, DWORD wrap, const DWORD *adjacency);
802HRESULT WINAPI D3DXConvertMeshSubsetToSingleStrip(struct ID3DXBaseMesh *mesh_in, DWORD attribute_id,
803 DWORD ib_flags, struct IDirect3DIndexBuffer9 **index_buffer, DWORD *index_count);
804HRESULT WINAPI D3DXConvertMeshSubsetToStrips(struct ID3DXBaseMesh *mesh_in, DWORD attribute_id,
805 DWORD ib_flags, struct IDirect3DIndexBuffer9 **index_buffer, DWORD *index_count,
806 struct ID3DXBuffer **strip_lengths, DWORD *strip_count);
810HRESULT WINAPI D3DXGeneratePMesh(ID3DXMesh *mesh, const DWORD *adjacency,
811 const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights,
812 DWORD min_value, DWORD flags, ID3DXPMesh **pmesh);
813HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_position, const D3DXVECTOR3 *ray_direction,
814 BOOL *hit, DWORD *face_idx, float *u, float *v, float *distance, ID3DXBuffer **hits, DWORD *hit_count);
815HRESULT WINAPI D3DXIntersectSubset(ID3DXBaseMesh *mesh, DWORD attribute_id, const D3DXVECTOR3 *ray_position,
816 const D3DXVECTOR3 *ray_direction, BOOL *hit, DWORD *face_idx, float *u, float *v, float *distance,
817 ID3DXBuffer **hits, DWORD *hit_count);
818BOOL WINAPI D3DXIntersectTri(const D3DXVECTOR3 *vtx0, const D3DXVECTOR3 *vtx1,
819 const D3DXVECTOR3 *vtx2, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir, FLOAT *u,
820 FLOAT *v, FLOAT *dist);
822 UINT vertex_count, BOOL idx_32bit, DWORD *face_remap);
824 UINT vertex_count, BOOL idx_32bit, DWORD *vertex_remap);
825HRESULT WINAPI D3DXRectPatchSize(const FLOAT *segment_count, DWORD *num_triangles,
826 DWORD *num_vertices);
827HRESULT WINAPI D3DXSHPRTCompSuperCluster(UINT *cluster_ids, ID3DXMesh *scene, UINT max_cluster_count,
828 UINT cluster_count, UINT *scluster_ids, UINT *scluster_count);
829HRESULT WINAPI D3DXSHPRTCompSplitMeshSC(UINT *cluster_idx, UINT vertex_count, UINT cluster_count, UINT *scluster_ids,
830 UINT scluster_count, void *index_buffer_in, BOOL ib_in_32bit, UINT face_count, ID3DXBuffer **index_buffer_out,
831 UINT *index_buffer_size, BOOL ib_out_32bit, ID3DXBuffer **face_remap, ID3DXBuffer **vertex_data,
832 UINT *vertex_data_length, UINT *sc_cluster_list, D3DXSHPRTSPLITMESHCLUSTERDATA *sc_data);
833HRESULT WINAPI D3DXSimplifyMesh(ID3DXMesh *mesh_in, const DWORD *adjacency,
834 const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, DWORD min_value,
835 DWORD flags, ID3DXMesh **mesh_out);
836HRESULT WINAPI D3DXSplitMesh(ID3DXMesh *mesh_in, const DWORD *adjacency_in, const DWORD max_size,
837 const DWORD flags, DWORD *mesh_out_count, ID3DXBuffer **mesh_out, ID3DXBuffer **adjacency_out,
838 ID3DXBuffer **face_remap_out, ID3DXBuffer **vertex_remap_out);
839HRESULT WINAPI D3DXTessellateNPatches(ID3DXMesh *mesh_in, const DWORD *adjacency_in, float segment_count,
840 BOOL quad_interp, ID3DXMesh **mesh_out, ID3DXBuffer **adjacency_out);
841HRESULT WINAPI D3DXTessellateRectPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count,
842 const D3DVERTEXELEMENT9 *declaration, const D3DRECTPATCH_INFO *patch_info, struct ID3DXMesh *mesh);
843HRESULT WINAPI D3DXTessellateTriPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count,
844 const D3DVERTEXELEMENT9 *declaration, const D3DTRIPATCH_INFO *patch_info, struct ID3DXMesh *mesh);
845HRESULT WINAPI D3DXTriPatchSize(const FLOAT *segment_count, DWORD *num_triangles,
846 DWORD *num_vertices);
847HRESULT WINAPI D3DXUVAtlasCreate(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in,
848 UINT width, UINT height, float gutter, DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges,
849 const float *imt_array, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out,
850 ID3DXBuffer **face_partitioning_out, ID3DXBuffer **vertex_remap_out, float *max_stretch_out, UINT *chart_count);
851HRESULT WINAPI D3DXUVAtlasPack(ID3DXMesh *mesh, UINT width, UINT height, float gutter, DWORD texture_idx,
852 const DWORD *partition_result_adjacency, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags,
853 ID3DXBuffer *face_partitioning);
854HRESULT WINAPI D3DXUVAtlasPartition(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in,
855 DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges, const float *imt_array,
856 LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out,
857 ID3DXBuffer **face_partitioning_out, ID3DXBuffer **vertex_remap_out, ID3DXBuffer **adjacency_out,
858 float *max_stretch_out, UINT *chart_count);
859HRESULT WINAPI D3DXValidMesh(ID3DXMesh *mesh, const DWORD *adjacency, ID3DXBuffer **errors);
860HRESULT WINAPI D3DXValidPatchMesh(ID3DXPatchMesh *mesh, DWORD *degenerate_vertex_count,
861 DWORD *degenerate_patch_count, ID3DXBuffer **errors);
862HRESULT WINAPI D3DXWeldVertices(ID3DXMesh *mesh, DWORD flags, const D3DXWELDEPSILONS *epsilons,
863 const DWORD *adjacency_in, DWORD *adjacency_out, DWORD *face_remap_out, ID3DXBuffer **vertex_remap_out);
864
865#ifdef __cplusplus
866}
867#endif
868
869DEFINE_GUID(DXFILEOBJ_XSkinMeshHeader, 0x3cf169ce, 0xff7c, 0x44ab, 0x93, 0xc0, 0xf7, 0x8f, 0x62, 0xd1, 0x72, 0xe2);
870DEFINE_GUID(DXFILEOBJ_VertexDuplicationIndices, 0xb8d65549, 0xd7c9, 0x4995, 0x89, 0xcf, 0x53, 0xa9, 0xa8, 0xb0, 0x31, 0xe3);
871DEFINE_GUID(DXFILEOBJ_FaceAdjacency, 0xa64c844a, 0xe282, 0x4756, 0x8b, 0x80, 0x25, 0x0c, 0xde, 0x04, 0x39, 0x8c);
872DEFINE_GUID(DXFILEOBJ_SkinWeights, 0x6f0d123b, 0xbad2, 0x4167, 0xa0, 0xd0, 0x80, 0x22, 0x4f, 0x25, 0xfa, 0xbb);
873DEFINE_GUID(DXFILEOBJ_Patch, 0xa3eb5d44, 0xfc22, 0x429d, 0x9a, 0xfb, 0x32, 0x21, 0xcb, 0x97, 0x19, 0xa6);
874DEFINE_GUID(DXFILEOBJ_PatchMesh, 0xd02c95cc, 0xedba, 0x4305, 0x9b, 0x5d, 0x18, 0x20, 0xd7, 0x70, 0x4d, 0xbf);
875DEFINE_GUID(DXFILEOBJ_PatchMesh9, 0xb9ec94e1, 0xb9a6, 0x4251, 0xba, 0x18, 0x94, 0x89, 0x3f, 0x02, 0xc0, 0xea);
876DEFINE_GUID(DXFILEOBJ_PMInfo, 0xb6c3e656, 0xec8b, 0x4b92, 0x9b, 0x62, 0x68, 0x16, 0x59, 0x52, 0x29, 0x47);
877DEFINE_GUID(DXFILEOBJ_PMAttributeRange, 0x917e0427, 0xc61e, 0x4a14, 0x9c, 0x64, 0xaf, 0xe6, 0x5f, 0x9e, 0x98, 0x44);
878DEFINE_GUID(DXFILEOBJ_PMVSplitRecord, 0x574ccc14, 0xf0b3, 0x4333, 0x82, 0x2d, 0x93, 0xe8, 0xa8, 0xa0, 0x8e, 0x4c);
879DEFINE_GUID(DXFILEOBJ_FVFData, 0xb6e70a0e, 0x8ef9, 0x4e83, 0x94, 0xad, 0xec, 0xc8, 0xb0, 0xc0, 0x48, 0x97);
880DEFINE_GUID(DXFILEOBJ_VertexElement, 0xf752461c, 0x1e23, 0x48f6, 0xb9, 0xf8, 0x83, 0x50, 0x85, 0x0f, 0x33, 0x6f);
881DEFINE_GUID(DXFILEOBJ_DeclData, 0xbf22e553, 0x292c, 0x4781, 0x9f, 0xea, 0x62, 0xbd, 0x55, 0x4b, 0xdd, 0x93);
882DEFINE_GUID(DXFILEOBJ_EffectFloats, 0xf1cfe2b3, 0x0de3, 0x4e28, 0xaf, 0xa1, 0x15, 0x5a, 0x75, 0x0a, 0x28, 0x2d);
883DEFINE_GUID(DXFILEOBJ_EffectString, 0xd55b097e, 0xbdb6, 0x4c52, 0xb0, 0x3d, 0x60, 0x51, 0xc8, 0x9d, 0x0e, 0x42);
884DEFINE_GUID(DXFILEOBJ_EffectDWord, 0x622c0ed0, 0x956e, 0x4da9, 0x90, 0x8a, 0x2a, 0xf9, 0x4f, 0x3c, 0xe7, 0x16);
885DEFINE_GUID(DXFILEOBJ_EffectParamFloats, 0x3014b9a0, 0x62f5, 0x478c, 0x9b, 0x86, 0xe4, 0xac, 0x9f, 0x4e, 0x41, 0x8b);
886DEFINE_GUID(DXFILEOBJ_EffectParamString, 0x1dbc4c88, 0x94c1, 0x46ee, 0x90, 0x76, 0x2c, 0x28, 0x81, 0x8c, 0x94, 0x81);
887DEFINE_GUID(DXFILEOBJ_EffectParamDWord, 0xe13963bc, 0xae51, 0x4c5d, 0xb0, 0x0f, 0xcf, 0xa3, 0xa9, 0xd9, 0x7c, 0xe5);
888DEFINE_GUID(DXFILEOBJ_EffectInstance, 0xe331f7e4, 0x0559, 0x4cc2, 0x8e, 0x99, 0x1c, 0xec, 0x16, 0x57, 0x92, 0x8f);
889DEFINE_GUID(DXFILEOBJ_AnimTicksPerSecond, 0x9e415a43, 0x7ba6, 0x4a73, 0x87, 0x43, 0xb7, 0x3d, 0x47, 0xe8, 0x84, 0x76);
890DEFINE_GUID(DXFILEOBJ_CompressedAnimationSet, 0x7f9b00b3, 0xf125, 0x4890, 0x87, 0x6e, 0x1c, 0x42, 0xbf, 0x69, 0x7c, 0x4d);
891
892#define XSKINEXP_TEMPLATES \
893 "xof 0303txt 0032\
894 template XSkinMeshHeader \
895 { \
896 <3CF169CE-FF7C-44ab-93C0-F78F62D172E2> \
897 WORD nMaxSkinWeightsPerVertex; \
898 WORD nMaxSkinWeightsPerFace; \
899 WORD nBones; \
900 } \
901 template VertexDuplicationIndices \
902 { \
903 <B8D65549-D7C9-4995-89CF-53A9A8B031E3> \
904 DWORD nIndices; \
905 DWORD nOriginalVertices; \
906 array DWORD indices[nIndices]; \
907 } \
908 template FaceAdjacency \
909 { \
910 <A64C844A-E282-4756-8B80-250CDE04398C> \
911 DWORD nIndices; \
912 array DWORD indices[nIndices]; \
913 } \
914 template SkinWeights \
915 { \
916 <6F0D123B-BAD2-4167-A0D0-80224F25FABB> \
917 STRING transformNodeName; \
918 DWORD nWeights; \
919 array DWORD vertexIndices[nWeights]; \
920 array float weights[nWeights]; \
921 Matrix4x4 matrixOffset; \
922 } \
923 template Patch \
924 { \
925 <A3EB5D44-FC22-429D-9AFB-3221CB9719A6> \
926 DWORD nControlIndices; \
927 array DWORD controlIndices[nControlIndices]; \
928 } \
929 template PatchMesh \
930 { \
931 <D02C95CC-EDBA-4305-9B5D-1820D7704BBF> \
932 DWORD nVertices; \
933 array Vector vertices[nVertices]; \
934 DWORD nPatches; \
935 array Patch patches[nPatches]; \
936 [ ... ] \
937 } \
938 template PatchMesh9 \
939 { \
940 <B9EC94E1-B9A6-4251-BA18-94893F02C0EA> \
941 DWORD Type; \
942 DWORD Degree; \
943 DWORD Basis; \
944 DWORD nVertices; \
945 array Vector vertices[nVertices]; \
946 DWORD nPatches; \
947 array Patch patches[nPatches]; \
948 [ ... ] \
949 } template EffectFloats \
950 { \
951 <F1CFE2B3-0DE3-4e28-AFA1-155A750A282D> \
952 DWORD nFloats; \
953 array float Floats[nFloats]; \
954 } \
955 template EffectString \
956 { \
957 <D55B097E-BDB6-4c52-B03D-6051C89D0E42> \
958 STRING Value; \
959 } \
960 template EffectDWord \
961 { \
962 <622C0ED0-956E-4da9-908A-2AF94F3CE716> \
963 DWORD Value; \
964 } template EffectParamFloats \
965 { \
966 <3014B9A0-62F5-478c-9B86-E4AC9F4E418B> \
967 STRING ParamName; \
968 DWORD nFloats; \
969 array float Floats[nFloats]; \
970 } template EffectParamString \
971 { \
972 <1DBC4C88-94C1-46ee-9076-2C28818C9481> \
973 STRING ParamName; \
974 STRING Value; \
975 } \
976 template EffectParamDWord \
977 { \
978 <E13963BC-AE51-4c5d-B00F-CFA3A9D97CE5> \
979 STRING ParamName; \
980 DWORD Value; \
981 } \
982 template EffectInstance \
983 { \
984 <E331F7E4-0559-4cc2-8E99-1CEC1657928F> \
985 STRING EffectFilename; \
986 [ ... ] \
987 } template AnimTicksPerSecond \
988 { \
989 <9E415A43-7BA6-4a73-8743-B73D47E88476> \
990 DWORD AnimTicksPerSecond; \
991 } \
992 template CompressedAnimationSet \
993 { \
994 <7F9B00B3-F125-4890-876E-1C42BF697C4D> \
995 DWORD CompressedBlockSize; \
996 FLOAT TicksPerSec; \
997 DWORD PlaybackType; \
998 DWORD BufferLength; \
999 array DWORD CompressedData[BufferLength]; \
1000 } "
1001
1002#define XEXTENSIONS_TEMPLATES \
1003 "xof 0303txt 0032\
1004 template FVFData \
1005 { \
1006 <B6E70A0E-8EF9-4e83-94AD-ECC8B0C04897> \
1007 DWORD dwFVF; \
1008 DWORD nDWords; \
1009 array DWORD data[nDWords]; \
1010 } \
1011 template VertexElement \
1012 { \
1013 <F752461C-1E23-48f6-B9F8-8350850F336F> \
1014 DWORD Type; \
1015 DWORD Method; \
1016 DWORD Usage; \
1017 DWORD UsageIndex; \
1018 } \
1019 template DeclData \
1020 { \
1021 <BF22E553-292C-4781-9FEA-62BD554BDD93> \
1022 DWORD nElements; \
1023 array VertexElement Elements[nElements]; \
1024 DWORD nDWords; \
1025 array DWORD data[nDWords]; \
1026 } \
1027 template PMAttributeRange \
1028 { \
1029 <917E0427-C61E-4a14-9C64-AFE65F9E9844> \
1030 DWORD iFaceOffset; \
1031 DWORD nFacesMin; \
1032 DWORD nFacesMax; \
1033 DWORD iVertexOffset; \
1034 DWORD nVerticesMin; \
1035 DWORD nVerticesMax; \
1036 } \
1037 template PMVSplitRecord \
1038 { \
1039 <574CCC14-F0B3-4333-822D-93E8A8A08E4C> \
1040 DWORD iFaceCLW; \
1041 DWORD iVlrOffset; \
1042 DWORD iCode; \
1043 } \
1044 template PMInfo \
1045 { \
1046 <B6C3E656-EC8B-4b92-9B62-681659522947> \
1047 DWORD nAttributes; \
1048 array PMAttributeRange attributeRanges[nAttributes]; \
1049 DWORD nMaxValence; \
1050 DWORD nMinLogicalVertices; \
1051 DWORD nMaxLogicalVertices; \
1052 DWORD nVSplits; \
1053 array PMVSplitRecord splitRecords[nVSplits]; \
1054 DWORD nAttributeMispredicts; \
1055 array DWORD attributeMispredicts[nAttributeMispredicts]; \
1056 } "
1057
1058#endif /* __WINE_D3DX9MESH_H */
static INT max_size
Definition: history.c:51
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
enum _D3DTEXTUREADDRESS D3DTEXTUREADDRESS
enum _D3DBASISTYPE D3DBASISTYPE
enum _D3DTEXTUREFILTERTYPE D3DTEXTUREFILTERTYPE
unsigned int component_count
enum _D3DDECLUSAGE D3DDECLUSAGE
#define MAXD3DDECLLENGTH
Definition: d3d9types.h:186
enum _D3DDEGREETYPE D3DDEGREETYPE
struct ID3DXBuffer ID3DXBuffer
Definition: d3dx8core.h:51
HRESULT WINAPI D3DXOptimizeFaces(const void *indices, UINT face_count, UINT vertex_count, BOOL idx_32bit, DWORD *face_remap)
Definition: mesh.c:7239
_D3DXUVATLAS
Definition: d3dx9mesh.h:133
@ D3DXUVATLAS_GEODESIC_FAST
Definition: d3dx9mesh.h:135
@ D3DXUVATLAS_GEODESIC_QUALITY
Definition: d3dx9mesh.h:136
@ D3DXUVATLAS_DEFAULT
Definition: d3dx9mesh.h:134
struct _D3DXSHPRTSPLITMESHCLUSTERDATA D3DXSHPRTSPLITMESHCLUSTERDATA
HRESULT WINAPI D3DXSaveMeshToXW(const WCHAR *filename, ID3DXMesh *mesh, const DWORD *adjacency, const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, DWORD material_count, DWORD format)
HRESULT WINAPI D3DXLoadPRTCompBufferFromFileA(const char *filename, ID3DXPRTCompBuffer **buffer)
HRESULT WINAPI D3DXLoadMeshFromXA(const char *filename, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh)
Definition: mesh.c:4052
HRESULT WINAPI D3DXUVAtlasCreate(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in, UINT width, UINT height, float gutter, DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges, const float *imt_array, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out, ID3DXBuffer **face_partitioning_out, ID3DXBuffer **vertex_remap_out, float *max_stretch_out, UINT *chart_count)
HRESULT WINAPI D3DXComputeBoundingBox(const D3DXVECTOR3 *first_pos, DWORD num_vertices, DWORD stride, D3DXVECTOR3 *vmin, D3DXVECTOR3 *vmax)
Definition: mesh.c:1964
struct _D3DXATTRIBUTEWEIGHTS D3DXATTRIBUTEWEIGHTS
HRESULT WINAPI D3DXCreatePMeshFromStream(struct IStream *stream, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXPMesh **mesh)
struct ID3DXPRTCompBuffer * LPD3DXPRTCOMPBUFFER
Definition: d3dx9mesh.h:179
HRESULT WINAPI D3DXCreateSkinInfo(DWORD vertex_count, const D3DVERTEXELEMENT9 *declaration, DWORD bone_count, ID3DXSkinInfo **skin_info)
Definition: skin.c:549
_D3DXTANGENT
Definition: d3dx9mesh.h:110
@ D3DXTANGENT_WEIGHT_BY_AREA
Definition: d3dx9mesh.h:118
@ D3DXTANGENT_CALCULATE_NORMALS
Definition: d3dx9mesh.h:121
@ D3DXTANGENT_WRAP_V
Definition: d3dx9mesh.h:112
@ D3DXTANGENT_WEIGHT_EQUAL
Definition: d3dx9mesh.h:119
@ D3DXTANGENT_GENERATE_IN_PLACE
Definition: d3dx9mesh.h:122
@ D3DXTANGENT_ORTHOGONALIZE_FROM_V
Definition: d3dx9mesh.h:116
@ D3DXTANGENT_WIND_CW
Definition: d3dx9mesh.h:120
@ D3DXTANGENT_ORTHOGONALIZE_FROM_U
Definition: d3dx9mesh.h:117
@ D3DXTANGENT_DONT_ORTHOGONALIZE
Definition: d3dx9mesh.h:115
@ D3DXTANGENT_WRAP_U
Definition: d3dx9mesh.h:111
@ D3DXTANGENT_DONT_NORMALIZE_PARTIALS
Definition: d3dx9mesh.h:114
@ D3DXTANGENT_WRAP_UV
Definition: d3dx9mesh.h:113
enum _D3DXPATCHMESHTYPE D3DXPATCHMESHTYPE
enum _D3DXUVATLAS D3DXUVATLAS
HRESULT WINAPI D3DXCreateSkinInfoFVF(DWORD vertex_count, DWORD fvf, DWORD bone_count, ID3DXSkinInfo **skin_info)
Definition: skin.c:591
HRESULT WINAPI D3DXComputeIMTFromPerVertexSignal(ID3DXMesh *mesh, const float *vertex_signal, UINT signal_dimension, UINT signal_stride, DWORD flags, LPD3DXUVATLASCB cb, void *ctx, ID3DXBuffer **buffer)
D3DXATTRIBUTERANGE * LPD3DXATTRIBUTERANGE
Definition: d3dx9mesh.h:191
HRESULT WINAPI D3DXComputeIMTFromSignal(ID3DXMesh *mesh, DWORD texture_idx, UINT signal_dimension, float max_uv_distance, DWORD flags, LPD3DXIMTSIGNALCALLBACK signal_cb, void *signal_ctx, LPD3DXUVATLASCB status_cb, void *status_ctx, ID3DXBuffer **buffer)
HRESULT WINAPI D3DXCreateMeshFVF(DWORD face_count, DWORD vertex_count, DWORD flags, DWORD fvf, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh)
Definition: mesh.c:2596
HRESULT WINAPI D3DXComputeIMTFromTexture(struct ID3DXMesh *mesh, struct IDirect3DTexture9 *texture, DWORD texture_idx, DWORD options, LPD3DXUVATLASCB cb, void *ctx, struct ID3DXBuffer **out)
HRESULT WINAPI D3DXSimplifyMesh(ID3DXMesh *mesh_in, const DWORD *adjacency, const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, DWORD min_value, DWORD flags, ID3DXMesh **mesh_out)
HRESULT WINAPI D3DXLoadMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh)
HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_position, const D3DXVECTOR3 *ray_direction, BOOL *hit, DWORD *face_idx, float *u, float *v, float *distance, ID3DXBuffer **hits, DWORD *hit_count)
Definition: mesh.c:7582
_D3DXIMT
Definition: d3dx9mesh.h:126
@ D3DXIMT_WRAP_U
Definition: d3dx9mesh.h:127
@ D3DXIMT_WRAP_V
Definition: d3dx9mesh.h:128
@ D3DXIMT_WRAP_UV
Definition: d3dx9mesh.h:129
UINT WINAPI D3DXGetDeclLength(const D3DVERTEXELEMENT9 *decl)
Definition: mesh.c:2354
HRESULT(WINAPI * LPD3DXSHPRTSIMCB)(float complete, void *ctx)
Definition: d3dx9mesh.h:302
_D3DXMESHSIMP
Definition: d3dx9mesh.h:95
@ D3DXMESHSIMP_FACE
Definition: d3dx9mesh.h:97
@ D3DXMESHSIMP_VERTEX
Definition: d3dx9mesh.h:96
_MAX_FVF_DECL_SIZE
Definition: d3dx9mesh.h:40
@ MAX_FVF_DECL_SIZE
Definition: d3dx9mesh.h:41
_D3DXEFFECTDEFAULTTYPE
Definition: d3dx9mesh.h:140
@ D3DXEDT_FORCEDWORD
Definition: d3dx9mesh.h:144
@ D3DXEDT_FLOATS
Definition: d3dx9mesh.h:142
@ D3DXEDT_STRING
Definition: d3dx9mesh.h:141
@ D3DXEDT_DWORD
Definition: d3dx9mesh.h:143
HRESULT WINAPI D3DXSplitMesh(ID3DXMesh *mesh_in, const DWORD *adjacency_in, const DWORD max_size, const DWORD flags, DWORD *mesh_out_count, ID3DXBuffer **mesh_out, ID3DXBuffer **adjacency_out, ID3DXBuffer **face_remap_out, ID3DXBuffer **vertex_remap_out)
struct ID3DXPRTEngine * LPD3DXPRTENGINE
Definition: d3dx9mesh.h:180
HRESULT WINAPI D3DXValidMesh(ID3DXMesh *mesh, const DWORD *adjacency, ID3DXBuffer **errors)
Definition: mesh.c:6433
HRESULT WINAPI D3DXIntersectSubset(ID3DXBaseMesh *mesh, DWORD attribute_id, const D3DXVECTOR3 *ray_position, const D3DXVECTOR3 *ray_direction, BOOL *hit, DWORD *face_idx, float *u, float *v, float *distance, ID3DXBuffer **hits, DWORD *hit_count)
struct _D3DXEFFECTDEFAULT * LPD3DXEFFECTDEFAULT
HRESULT WINAPI D3DXConcatenateMeshes(struct ID3DXMesh **meshes, UINT mesh_count, DWORD flags, const D3DXMATRIX *geometry_matrices, const D3DXMATRIX *texture_matrices, const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh)
HRESULT WINAPI D3DXWeldVertices(ID3DXMesh *mesh, DWORD flags, const D3DXWELDEPSILONS *epsilons, const DWORD *adjacency_in, DWORD *adjacency_out, DWORD *face_remap_out, ID3DXBuffer **vertex_remap_out)
Definition: mesh.c:7006
HRESULT WINAPI D3DXFVFFromDeclarator(const D3DVERTEXELEMENT9 *decl, DWORD *fvf)
Definition: mesh.c:2134
HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD, D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE])
Definition: mesh.c:2036
struct ID3DXSkinInfo * LPD3DXSKININFO
Definition: d3dx9mesh.h:176
HRESULT(WINAPI * LPD3DXUVATLASCB)(float complete, void *ctx)
Definition: d3dx9mesh.h:300
HRESULT WINAPI D3DXUVAtlasPartition(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in, DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges, const float *imt_array, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out, ID3DXBuffer **face_partitioning_out, ID3DXBuffer **vertex_remap_out, ID3DXBuffer **adjacency_out, float *max_stretch_out, UINT *chart_count)
HRESULT WINAPI D3DXComputeNormals(ID3DXBaseMesh *mesh, const DWORD *adjacency)
Definition: mesh.c:7563
HRESULT WINAPI D3DXCreatePRTBufferTex(UINT width, UINT height, UINT coeff_count, UINT channel_count, ID3DXPRTBuffer **buffer)
HRESULT WINAPI D3DXLoadMeshFromXW(const WCHAR *filename, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh)
Definition: mesh.c:4080
HRESULT WINAPI D3DXLoadPatchMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXPatchMesh **mesh)
struct _D3DXATTRIBUTEWEIGHTS * LPD3DXATTRIBUTEWEIGHTS
struct _D3DXWELDEPSILONS D3DXWELDEPSILONS
BOOL WINAPI D3DXBoxBoundProbe(const D3DXVECTOR3 *vmin, const D3DXVECTOR3 *vmax, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir)
Definition: mesh.c:1911
struct _D3DXMATERIAL * LPD3DXMATERIAL
struct _D3DXEFFECTINSTANCE * LPD3DXEFFECTINSTANCE
HRESULT WINAPI D3DXComputeIMTFromPerTexelSignal(ID3DXMesh *mesh, DWORD texture_idx, float *texel_signal, UINT width, UINT height, UINT signal_dimension, UINT component_count, DWORD flags, LPD3DXUVATLASCB cb, void *ctx, ID3DXBuffer **buffer)
HRESULT WINAPI D3DXOptimizeVertices(const void *indices, UINT face_count, UINT vertex_count, BOOL idx_32bit, DWORD *vertex_remap)
Definition: mesh.c:7196
HRESULT WINAPI D3DXConvertMeshSubsetToStrips(struct ID3DXBaseMesh *mesh_in, DWORD attribute_id, DWORD ib_flags, struct IDirect3DIndexBuffer9 **index_buffer, DWORD *index_count, struct ID3DXBuffer **strip_lengths, DWORD *strip_count)
struct _D3DXEFFECTDEFAULT D3DXEFFECTDEFAULT
_D3DXPATCHMESH
Definition: d3dx9mesh.h:90
@ D3DXPATCHMESH_DEFAULT
Definition: d3dx9mesh.h:91
HRESULT WINAPI D3DXRectPatchSize(const FLOAT *segment_count, DWORD *num_triangles, DWORD *num_vertices)
HRESULT(WINAPI * LPD3DXIMTSIGNALCALLBACK)(const D3DXVECTOR2 *, UINT, UINT, void *, FLOAT *)
Definition: d3dx9mesh.h:301
_D3DXMESHOPT
Definition: d3dx9mesh.h:71
@ D3DXMESHOPT_DONOTSPLIT
Definition: d3dx9mesh.h:78
@ D3DXMESHOPT_STRIPREORDER
Definition: d3dx9mesh.h:76
@ D3DXMESHOPT_IGNOREVERTS
Definition: d3dx9mesh.h:77
@ D3DXMESHOPT_ATTRSORT
Definition: d3dx9mesh.h:74
@ D3DXMESHOPT_VERTEXCACHE
Definition: d3dx9mesh.h:75
@ D3DXMESHOPT_DEVICEINDEPENDENT
Definition: d3dx9mesh.h:72
@ D3DXMESHOPT_COMPACT
Definition: d3dx9mesh.h:73
HRESULT WINAPI D3DXSavePRTBufferToFileW(const WCHAR *filename, ID3DXPRTBuffer *buffer)
enum _D3DXEFFECTDEFAULTTYPE D3DXEFFECTDEFAULTTYPE
D3DXCLEANTYPE
Definition: d3dx9mesh.h:100
@ D3DXCLEAN_BOWTIES
Definition: d3dx9mesh.h:102
@ D3DXCLEAN_SIMPLIFICATION
Definition: d3dx9mesh.h:106
@ D3DXCLEAN_BACKFACING
Definition: d3dx9mesh.h:101
@ D3DXCLEAN_SKINNING
Definition: d3dx9mesh.h:104
@ D3DXCLEAN_OPTIMIZATION
Definition: d3dx9mesh.h:105
struct _D3DXINTERSECTINFO D3DXINTERSECTINFO
enum _D3DXSHCOMPRESSQUALITYTYPE D3DXSHCOMPRESSQUALITYTYPE
HRESULT WINAPI D3DXLoadPRTCompBufferFromFileW(const WCHAR *filename, ID3DXPRTCompBuffer **buffer)
struct _D3DXATTRIBUTERANGE D3DXATTRIBUTERANGE
struct _D3DXSHPRTSPLITMESHVERTDATA D3DXSHPRTSPLITMESHVERTDATA
struct _XFILECOMPRESSEDANIMATIONSET XFILECOMPRESSEDANIMATIONSET
HRESULT WINAPI D3DXCreatePatchMesh(const D3DXPATCHINFO *patch_info, DWORD patch_count, DWORD vertex_count, DWORD flags, const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXPatchMesh **mesh)
struct _D3DXBONECOMBINATION D3DXBONECOMBINATION
HRESULT WINAPI D3DXTessellateNPatches(ID3DXMesh *mesh_in, const DWORD *adjacency_in, float segment_count, BOOL quad_interp, ID3DXMesh **mesh_out, ID3DXBuffer **adjacency_out)
Definition: mesh.c:7591
struct ID3DXPMesh * LPD3DXPMESH
Definition: d3dx9mesh.h:174
_D3DXSHCOMPRESSQUALITYTYPE
Definition: d3dx9mesh.h:156
@ D3DXSHCQUAL_FASTLOWQUALITY
Definition: d3dx9mesh.h:157
@ D3DXSHCQUAL_FORCE_DWORD
Definition: d3dx9mesh.h:159
@ D3DXSHCQUAL_SLOWHIGHQUALITY
Definition: d3dx9mesh.h:158
HRESULT WINAPI D3DXCreateMesh(DWORD face_count, DWORD vertex_count, DWORD flags, const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh)
Definition: mesh.c:2433
HRESULT WINAPI D3DXCreateTextureGutterHelper(UINT width, UINT height, ID3DXMesh *mesh, float gutter_size, ID3DXTextureGutterHelper **gh)
_D3DXWELDEPSILONSFLAGS
Definition: d3dx9mesh.h:148
@ D3DXWELDEPSILONS_DONOTREMOVEVERTICES
Definition: d3dx9mesh.h:151
@ D3DXWELDEPSILONS_DONOTSPLIT
Definition: d3dx9mesh.h:152
@ D3DXWELDEPSILONS_WELDALL
Definition: d3dx9mesh.h:149
@ D3DXWELDEPSILONS_WELDPARTIALMATCHES
Definition: d3dx9mesh.h:150
struct _D3DXMATERIAL D3DXMATERIAL
HRESULT WINAPI D3DXLoadMeshFromXResource(HMODULE module, const char *resource, const char *resource_type, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh)
Definition: mesh.c:4108
HRESULT WINAPI D3DXLoadMeshFromXInMemory(const void *data, DWORD data_size, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh)
Definition: mesh.c:4198
HRESULT WINAPI D3DXSHPRTCompSplitMeshSC(UINT *cluster_idx, UINT vertex_count, UINT cluster_count, UINT *scluster_ids, UINT scluster_count, void *index_buffer_in, BOOL ib_in_32bit, UINT face_count, ID3DXBuffer **index_buffer_out, UINT *index_buffer_size, BOOL ib_out_32bit, ID3DXBuffer **face_remap, ID3DXBuffer **vertex_data, UINT *vertex_data_length, UINT *sc_cluster_list, D3DXSHPRTSPLITMESHCLUSTERDATA *sc_data)
HRESULT WINAPI D3DXLoadPRTBufferFromFileW(const WCHAR *filename, ID3DXPRTBuffer **buffer)
struct ID3DXTextureGutterHelper * LPD3DXTEXTUREGUTTERHELPER
Definition: d3dx9mesh.h:181
HRESULT WINAPI D3DXGenerateOutputDecl(D3DVERTEXELEMENT9 *decl_out, const D3DVERTEXELEMENT9 *decl_in)
HRESULT WINAPI D3DXGeneratePMesh(ID3DXMesh *mesh, const DWORD *adjacency, const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, DWORD min_value, DWORD flags, ID3DXPMesh **pmesh)
HRESULT WINAPI D3DXUVAtlasPack(ID3DXMesh *mesh, UINT width, UINT height, float gutter, DWORD texture_idx, const DWORD *partition_result_adjacency, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXBuffer *face_partitioning)
struct ID3DXMesh * LPD3DXMESH
Definition: d3dx9mesh.h:173
HRESULT WINAPI D3DXSavePRTCompBufferToFileA(const char *filename, ID3DXPRTCompBuffer *buffer)
_D3DXMESH
Definition: d3dx9mesh.h:45
@ D3DXMESH_NPATCHES
Definition: d3dx9mesh.h:50
@ D3DXMESH_VB_MANAGED
Definition: d3dx9mesh.h:52
@ D3DXMESH_USEHWONLY
Definition: d3dx9mesh.h:62
@ D3DXMESH_32BIT
Definition: d3dx9mesh.h:46
@ D3DXMESH_DONOTCLIP
Definition: d3dx9mesh.h:47
@ D3DXMESH_DYNAMIC
Definition: d3dx9mesh.h:66
@ D3DXMESH_VB_SOFTWAREPROCESSING
Definition: d3dx9mesh.h:55
@ D3DXMESH_VB_WRITEONLY
Definition: d3dx9mesh.h:53
@ D3DXMESH_POINTS
Definition: d3dx9mesh.h:48
@ D3DXMESH_SYSTEMMEM
Definition: d3dx9mesh.h:63
@ D3DXMESH_WRITEONLY
Definition: d3dx9mesh.h:65
@ D3DXMESH_IB_MANAGED
Definition: d3dx9mesh.h:57
@ D3DXMESH_IB_WRITEONLY
Definition: d3dx9mesh.h:58
@ D3DXMESH_VB_SYSTEMMEM
Definition: d3dx9mesh.h:51
@ D3DXMESH_RTPATCHES
Definition: d3dx9mesh.h:49
@ D3DXMESH_IB_SYSTEMMEM
Definition: d3dx9mesh.h:56
@ D3DXMESH_SOFTWAREPROCESSING
Definition: d3dx9mesh.h:67
@ D3DXMESH_IB_SOFTWAREPROCESSING
Definition: d3dx9mesh.h:60
@ D3DXMESH_MANAGED
Definition: d3dx9mesh.h:64
@ D3DXMESH_VB_SHARE
Definition: d3dx9mesh.h:61
@ D3DXMESH_IB_DYNAMIC
Definition: d3dx9mesh.h:59
@ D3DXMESH_VB_DYNAMIC
Definition: d3dx9mesh.h:54
HRESULT WINAPI D3DXComputeTangentFrameEx(ID3DXMesh *mesh_in, DWORD texture_in_semantic, DWORD texture_in_idx, DWORD u_partial_out_semantic, DWORD u_partial_out_idx, DWORD v_partial_out_semantic, DWORD v_partial_out_idx, DWORD normal_out_semantic, DWORD normal_out_idx, DWORD flags, const DWORD *adjacency, float partial_edge_threshold, float singular_point_threshold, float normal_edge_threshold, ID3DXMesh **mesh_out, ID3DXBuffer **buffer)
Definition: mesh.c:7320
BOOL WINAPI D3DXSphereBoundProbe(const D3DXVECTOR3 *center, FLOAT radius, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir)
Definition: mesh.c:2413
struct _D3DXINTERSECTINFO * LPD3DXINTERSECTINFO
enum _D3DXTANGENT D3DXTANGENT
UINT WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx)
Definition: mesh.c:2323
_D3DXSHGPUSIMOPT
Definition: d3dx9mesh.h:163
@ D3DXSHGPUSIMOPT_SHADOWRES2048
Definition: d3dx9mesh.h:167
@ D3DXSHGPUSIMOPT_SHADOWRES512
Definition: d3dx9mesh.h:165
@ D3DXSHGPUSIMOPT_HIGHQUALITY
Definition: d3dx9mesh.h:168
@ D3DXSHGPUSIMOPT_SHADOWRES256
Definition: d3dx9mesh.h:164
@ D3DXSHGPUSIMOPT_FORCE_DWORD
Definition: d3dx9mesh.h:169
@ D3DXSHGPUSIMOPT_SHADOWRES1024
Definition: d3dx9mesh.h:166
HRESULT WINAPI D3DXCreateBuffer(DWORD size, ID3DXBuffer **buffer)
Definition: core.c:131
struct _D3DXBONECOMBINATION * LPD3DXBONECOMBINATION
HRESULT WINAPI D3DXSHPRTCompSuperCluster(UINT *cluster_ids, ID3DXMesh *scene, UINT max_cluster_count, UINT cluster_count, UINT *scluster_ids, UINT *scluster_count)
HRESULT WINAPI D3DXCreatePRTBuffer(UINT sample_count, UINT coeff_count, UINT channel_count, ID3DXPRTBuffer **buffer)
struct ID3DXBaseMesh * LPD3DXBASEMESH
Definition: d3dx9mesh.h:172
HRESULT WINAPI D3DXCreateSkinInfoFromBlendedMesh(ID3DXBaseMesh *mesh, DWORD bone_count, const D3DXBONECOMBINATION *bone_combination_table, ID3DXSkinInfo **skin_info)
HRESULT WINAPI D3DXComputeBoundingSphere(const D3DXVECTOR3 *first_pos, DWORD num_vertices, DWORD stride, D3DXVECTOR3 *center, FLOAT *radius)
Definition: mesh.c:1992
struct _D3DXPATCHINFO D3DXPATCHINFO
HRESULT WINAPI D3DXComputeTangent(ID3DXMesh *mesh, DWORD stage, DWORD tangent_idx, DWORD binorm_idx, DWORD wrap, const DWORD *adjacency)
Definition: mesh.c:7545
HRESULT WINAPI D3DXLoadSkinMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXSkinInfo **skin_info, struct ID3DXMesh **mesh)
Definition: mesh.c:3445
HRESULT WINAPI D3DXTessellateTriPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count, const D3DVERTEXELEMENT9 *declaration, const D3DTRIPATCH_INFO *patch_info, struct ID3DXMesh *mesh)
HRESULT WINAPI D3DXConvertMeshSubsetToSingleStrip(struct ID3DXBaseMesh *mesh_in, DWORD attribute_id, DWORD ib_flags, struct IDirect3DIndexBuffer9 **index_buffer, DWORD *index_count)
Definition: mesh.c:7600
HRESULT WINAPI D3DXCreateSPMesh(ID3DXMesh *mesh, const DWORD *adjacency, const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, ID3DXSPMesh **spmesh)
struct _D3DXEFFECTINSTANCE D3DXEFFECTINSTANCE
HRESULT WINAPI D3DXSaveMeshToXA(const char *filename, ID3DXMesh *mesh, const DWORD *adjacency, const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, DWORD material_count, DWORD format)
HRESULT WINAPI D3DXValidPatchMesh(ID3DXPatchMesh *mesh, DWORD *degenerate_vertex_count, DWORD *degenerate_patch_count, ID3DXBuffer **errors)
struct _D3DXSHMATERIAL D3DXSHMATERIAL
HRESULT WINAPI D3DXCleanMesh(D3DXCLEANTYPE clean_type, ID3DXMesh *mesh_in, const DWORD *adjacency_in, ID3DXMesh **mesh_out, DWORD *adjacency_out, ID3DXBuffer **errors)
Definition: mesh.c:4002
HRESULT WINAPI D3DXLoadPRTBufferFromFileA(const char *filename, ID3DXPRTBuffer **buffer)
HRESULT WINAPI D3DXCreatePRTCompBuffer(D3DXSHCOMPRESSQUALITYTYPE quality, UINT cluster_count, UINT pca_count, LPD3DXSHPRTSIMCB cb, void *ctx, ID3DXPRTBuffer *input, ID3DXPRTCompBuffer **buffer)
HRESULT WINAPI D3DXSavePRTCompBufferToFileW(const WCHAR *filename, ID3DXPRTCompBuffer *buffer)
_D3DXPATCHMESHTYPE
Definition: d3dx9mesh.h:82
@ D3DXPATCHMESH_RECT
Definition: d3dx9mesh.h:83
@ D3DXPATCHMESH_TRI
Definition: d3dx9mesh.h:84
@ D3DXPATCHMESH_FORCE_DWORD
Definition: d3dx9mesh.h:86
@ D3DXPATCHMESH_NPATCH
Definition: d3dx9mesh.h:85
HRESULT WINAPI D3DXTriPatchSize(const FLOAT *segment_count, DWORD *num_triangles, DWORD *num_vertices)
struct _D3DXWELDEPSILONS * LPD3DXWELDEPSILONS
HRESULT WINAPI D3DXCreatePRTEngine(ID3DXMesh *mesh, DWORD *adjacency, BOOL extract_uv, ID3DXMesh *blocker_mesh, ID3DXPRTEngine **engine)
struct ID3DXSPMesh * LPD3DXSPMESH
Definition: d3dx9mesh.h:175
struct ID3DXPRTBuffer * LPD3DXPRTBUFFER
Definition: d3dx9mesh.h:178
enum _D3DXIMT D3DXIMT
struct ID3DXPatchMesh * LPD3DXPATCHMESH
Definition: d3dx9mesh.h:177
enum _D3DXSHGPUSIMOPT D3DXSHGPUSIMOPT
HRESULT WINAPI D3DXTessellateRectPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count, const D3DVERTEXELEMENT9 *declaration, const D3DRECTPATCH_INFO *patch_info, struct ID3DXMesh *mesh)
BOOL WINAPI D3DXIntersectTri(const D3DXVECTOR3 *vtx0, const D3DXVECTOR3 *vtx1, const D3DXVECTOR3 *vtx2, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir, FLOAT *u, FLOAT *v, FLOAT *dist)
Definition: mesh.c:2367
struct _D3DXPATCHINFO * LPD3DXPATCHINFO
HRESULT WINAPI D3DXSavePRTBufferToFileA(const char *filename, ID3DXPRTBuffer *buffer)
UINT WINAPI D3DXGetFVFVertexSize(DWORD)
Definition: mesh.c:2289
static unsigned int palette_size(DWORD flags)
Definition: palette.c:241
#define wrap(journal, var)
Definition: recovery.c:207
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
return pList GetDevice()
GLuint start
Definition: gl.h:1545
const GLdouble * v
Definition: gl.h:2040
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLuint GLuint GLsizei GLenum const GLvoid * indices
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
GLenum GLuint texture
Definition: glext.h:6295
GLsizei stride
Definition: glext.h:5848
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
GLuint buffer
Definition: glext.h:5915
GLsizei GLsizei GLfloat distance
Definition: glext.h:11755
GLbitfield flags
Definition: glext.h:7161
const GLbyte * weights
Definition: glext.h:6523
GLenum GLenum GLenum input
Definition: glext.h:9031
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
REFIID riid
Definition: atlbase.h:39
const char * filename
Definition: ioapi.h:137
int quality
Definition: jpeglib.h:992
int face_count
Definition: d3drm.c:3368
int vertex_count
Definition: d3drm.c:3367
static HMODULE MODULEINFO DWORD cb
Definition: module.c:33
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static BOOL complete
Definition: htmldoc.c:198
static LARGE_INTEGER * frequency
Definition: time.c:106
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
#define min(a, b)
Definition: monoChain.cc:55
unsigned int UINT
Definition: ndis.h:50
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define REFIID
Definition: guiddef.h:118
static FILE * out
Definition: regtests2xml.c:44
weight
Definition: sortkey.c:157
D3DXEFFECTDEFAULTTYPE Type
Definition: d3dx9mesh.h:202
LPD3DXEFFECTDEFAULT pDefaults
Definition: d3dx9mesh.h:211
char * pEffectFilename
Definition: d3dx9mesh.h:209
D3DMATERIAL9 MatD3D
Definition: d3dx9mesh.h:195
char * pTextureFilename
Definition: d3dx9mesh.h:196
D3DDEGREETYPE Degree
Definition: d3dx9mesh.h:253
D3DXPATCHMESHTYPE PatchType
Definition: d3dx9mesh.h:252
D3DBASISTYPE Basis
Definition: d3dx9mesh.h:254
D3DCOLORVALUE ReducedScattering
Definition: d3dx9mesh.h:272
D3DCOLORVALUE Absorption
Definition: d3dx9mesh.h:271
FLOAT RelativeIndexOfRefraction
Definition: d3dx9mesh.h:270
D3DCOLORVALUE Diffuse
Definition: d3dx9mesh.h:267
FLOAT Texcoords[8]
Definition: d3dx9mesh.h:234
Definition: skin.c:32
Definition: devices.h:37
Definition: mesh.c:198
Definition: name.c:39
Definition: parse.h:23
#define max(a, b)
Definition: svc.c:63
float FLOAT
Definition: typedefs.h:69
uint32_t ULONG
Definition: typedefs.h:59
static int Save(const char **args)
Definition: vfdcmd.c:1851
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193