22#ifndef __WINE_D3DX9MESH_H
23#define __WINE_D3DX9MESH_H
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);
36#define UNUSED16 (0xffff)
37#define UNUSED32 (0xffffffff)
305#define INTERFACE ID3DXBaseMesh
323 struct IDirect3DDevice9 *
device,
struct ID3DXMesh **clone_mesh)
PURE;
325 struct IDirect3DDevice9 *
device,
struct ID3DXMesh **clone_mesh)
PURE;
340#define INTERFACE ID3DXMesh
357 struct IDirect3DDevice9 *
device,
struct ID3DXMesh **clone_mesh)
PURE;
359 struct IDirect3DDevice9 *
device,
struct ID3DXMesh **clone_mesh)
PURE;
383#define INTERFACE ID3DXPMesh
400 struct IDirect3DDevice9 *
device,
struct ID3DXMesh **clone_mesh)
PURE;
402 struct IDirect3DDevice9 *
device,
struct ID3DXMesh **clone_mesh)
PURE;
416 struct IDirect3DDevice9 *
device,
struct ID3DXPMesh **clone_mesh)
PURE;
418 struct IDirect3DDevice9 *
device,
struct ID3DXPMesh **clone_mesh)
PURE;
437#define INTERFACE ID3DXSPMesh
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;
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;
472#define INTERFACE ID3DXPatchMesh
511#define INTERFACE ID3DXSkinInfo
528 STDMETHOD(GetMaxFaceInfluences)(
THIS_ struct IDirect3DIndexBuffer9 *index_buffer,
543 const D3DXMATRIX *bone_inv_transpose_transforms,
const void *src_vertices,
void *dst_vertices)
PURE;
550 ID3DXMesh **mesh_out)
PURE;
554#define INTERFACE ID3DXPRTBuffer
579 UINT usage_index_start, ID3DXMesh *scene)
PURE;
583#define INTERFACE ID3DXPRTCompBuffer
608#define INTERFACE ID3DXTextureGutterHelper
622 STDMETHOD(ResampleTex)(
THIS_ struct IDirect3DTexture9 *texture_in,
struct ID3DXMesh *mesh_in,
635#define INTERFACE ID3DXPRTEngine
646 STDMETHOD(SetPerTexelAlbedo)(
THIS_ struct IDirect3DTexture9 *albedo_texture,
647 UINT num_channels,
struct ID3DXTextureGutterHelper *gh)
PURE;
651 STDMETHOD(ResampleBuffer)(
THIS_ ID3DXPRTBuffer *buffer_in, ID3DXPRTBuffer *buffer_out)
PURE;
653 UINT *vert_remap,
float *vert_weights,
struct ID3DXMesh **
mesh)
PURE;
661 STDMETHOD(ComputeDirectLightingSHAdaptive)(
THIS_ UINT sh_order,
float adaptive_thresh,
662 float min_edge_length,
UINT max_subdiv, ID3DXPRTBuffer *data_out)
PURE;
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;
679 STDMETHOD(ComputeSurfSamplesBounce)(
THIS_ ID3DXPRTBuffer *surf_data_in,
UINT num_samples,
681 ID3DXPRTBuffer *data_total)
PURE;
685 ID3DXPRTBuffer *data_out)
PURE;
706 const D3DXATTRIBUTEWEIGHTS *attribute_weights,
const float *vertex_weights, ID3DXSPMesh **spmesh);
709 DWORD *material_count,
struct ID3DXPMesh **
mesh);
711 DWORD bone_count, ID3DXSkinInfo **skin_info);
717 struct IDirect3DDevice9 *
device,
struct ID3DXPatchMesh **
mesh);
724 float gutter_size, ID3DXTextureGutterHelper **gh);
726 ID3DXMesh *blocker_mesh, ID3DXPRTEngine **engine);
729 DWORD *material_count,
struct ID3DXMesh **
mesh);
732 DWORD *material_count,
struct ID3DXMesh **
mesh);
733#define D3DXLoadMeshFromX WINELIB_NAME_AW(D3DXLoadMeshFromX)
740 DWORD *material_count,
struct ID3DXMesh **
mesh);
743 DWORD *material_count,
struct ID3DXMesh **
mesh);
746 DWORD *material_count,
struct ID3DXPatchMesh **
mesh);
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)
760#define D3DXSaveMeshToX WINELIB_NAME_AW(D3DXSaveMeshToX)
763#define D3DXSavePRTBufferToFile WINELIB_NAME_AW(D3DXSavePRTBufferToFile)
766#define D3DXSavePRTCompBufferToFile WINELIB_NAME_AW(D3DXSavePRTCompBufferToFile)
796 DWORD u_partial_out_semantic,
DWORD u_partial_out_idx,
DWORD v_partial_out_semantic,
798 const DWORD *adjacency,
float partial_edge_threshold,
float singular_point_threshold,
803 DWORD ib_flags,
struct IDirect3DIndexBuffer9 **index_buffer,
DWORD *index_count);
805 DWORD ib_flags,
struct IDirect3DIndexBuffer9 **index_buffer,
DWORD *index_count,
826 DWORD *num_vertices);
828 UINT cluster_count,
UINT *scluster_ids,
UINT *scluster_count);
846 DWORD *num_vertices);
855 DWORD texture_idx,
const DWORD *adjacency,
const DWORD *false_edges,
const float *imt_array,
858 float *max_stretch_out,
UINT *chart_count);
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);
892#define XSKINEXP_TEMPLATES \
894 template XSkinMeshHeader \
896 <3CF169CE-FF7C-44ab-93C0-F78F62D172E2> \
897 WORD nMaxSkinWeightsPerVertex; \
898 WORD nMaxSkinWeightsPerFace; \
901 template VertexDuplicationIndices \
903 <B8D65549-D7C9-4995-89CF-53A9A8B031E3> \
905 DWORD nOriginalVertices; \
906 array DWORD indices[nIndices]; \
908 template FaceAdjacency \
910 <A64C844A-E282-4756-8B80-250CDE04398C> \
912 array DWORD indices[nIndices]; \
914 template SkinWeights \
916 <6F0D123B-BAD2-4167-A0D0-80224F25FABB> \
917 STRING transformNodeName; \
919 array DWORD vertexIndices[nWeights]; \
920 array float weights[nWeights]; \
921 Matrix4x4 matrixOffset; \
925 <A3EB5D44-FC22-429D-9AFB-3221CB9719A6> \
926 DWORD nControlIndices; \
927 array DWORD controlIndices[nControlIndices]; \
931 <D02C95CC-EDBA-4305-9B5D-1820D7704BBF> \
933 array Vector vertices[nVertices]; \
935 array Patch patches[nPatches]; \
938 template PatchMesh9 \
940 <B9EC94E1-B9A6-4251-BA18-94893F02C0EA> \
945 array Vector vertices[nVertices]; \
947 array Patch patches[nPatches]; \
949 } template EffectFloats \
951 <F1CFE2B3-0DE3-4e28-AFA1-155A750A282D> \
953 array float Floats[nFloats]; \
955 template EffectString \
957 <D55B097E-BDB6-4c52-B03D-6051C89D0E42> \
960 template EffectDWord \
962 <622C0ED0-956E-4da9-908A-2AF94F3CE716> \
964 } template EffectParamFloats \
966 <3014B9A0-62F5-478c-9B86-E4AC9F4E418B> \
969 array float Floats[nFloats]; \
970 } template EffectParamString \
972 <1DBC4C88-94C1-46ee-9076-2C28818C9481> \
976 template EffectParamDWord \
978 <E13963BC-AE51-4c5d-B00F-CFA3A9D97CE5> \
982 template EffectInstance \
984 <E331F7E4-0559-4cc2-8E99-1CEC1657928F> \
985 STRING EffectFilename; \
987 } template AnimTicksPerSecond \
989 <9E415A43-7BA6-4a73-8743-B73D47E88476> \
990 DWORD AnimTicksPerSecond; \
992 template CompressedAnimationSet \
994 <7F9B00B3-F125-4890-876E-1C42BF697C4D> \
995 DWORD CompressedBlockSize; \
997 DWORD PlaybackType; \
998 DWORD BufferLength; \
999 array DWORD CompressedData[BufferLength]; \
1002#define XEXTENSIONS_TEMPLATES \
1006 <B6E70A0E-8EF9-4e83-94AD-ECC8B0C04897> \
1009 array DWORD data[nDWords]; \
1011 template VertexElement \
1013 <F752461C-1E23-48f6-B9F8-8350850F336F> \
1021 <BF22E553-292C-4781-9FEA-62BD554BDD93> \
1023 array VertexElement Elements[nElements]; \
1025 array DWORD data[nDWords]; \
1027 template PMAttributeRange \
1029 <917E0427-C61E-4a14-9C64-AFE65F9E9844> \
1030 DWORD iFaceOffset; \
1033 DWORD iVertexOffset; \
1034 DWORD nVerticesMin; \
1035 DWORD nVerticesMax; \
1037 template PMVSplitRecord \
1039 <574CCC14-F0B3-4333-822D-93E8A8A08E4C> \
1046 <B6C3E656-EC8B-4b92-9B62-681659522947> \
1047 DWORD nAttributes; \
1048 array PMAttributeRange attributeRanges[nAttributes]; \
1049 DWORD nMaxValence; \
1050 DWORD nMinLogicalVertices; \
1051 DWORD nMaxLogicalVertices; \
1053 array PMVSplitRecord splitRecords[nVSplits]; \
1054 DWORD nAttributeMispredicts; \
1055 array DWORD attributeMispredicts[nAttributeMispredicts]; \
#define DECLARE_INTERFACE_(i, b)
enum _D3DTEXTUREADDRESS D3DTEXTUREADDRESS
enum _D3DBASISTYPE D3DBASISTYPE
enum _D3DTEXTUREFILTERTYPE D3DTEXTUREFILTERTYPE
unsigned int component_count
enum _D3DDECLUSAGE D3DDECLUSAGE
enum _D3DDEGREETYPE D3DDEGREETYPE
struct ID3DXBuffer ID3DXBuffer
HRESULT WINAPI D3DXOptimizeFaces(const void *indices, UINT face_count, UINT vertex_count, BOOL idx_32bit, DWORD *face_remap)
@ D3DXUVATLAS_GEODESIC_FAST
@ D3DXUVATLAS_GEODESIC_QUALITY
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)
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)
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
HRESULT WINAPI D3DXCreateSkinInfo(DWORD vertex_count, const D3DVERTEXELEMENT9 *declaration, DWORD bone_count, ID3DXSkinInfo **skin_info)
@ D3DXTANGENT_WEIGHT_BY_AREA
@ D3DXTANGENT_CALCULATE_NORMALS
@ D3DXTANGENT_WEIGHT_EQUAL
@ D3DXTANGENT_GENERATE_IN_PLACE
@ D3DXTANGENT_ORTHOGONALIZE_FROM_V
@ D3DXTANGENT_ORTHOGONALIZE_FROM_U
@ D3DXTANGENT_DONT_ORTHOGONALIZE
@ D3DXTANGENT_DONT_NORMALIZE_PARTIALS
enum _D3DXPATCHMESHTYPE D3DXPATCHMESHTYPE
enum _D3DXUVATLAS D3DXUVATLAS
HRESULT WINAPI D3DXCreateSkinInfoFVF(DWORD vertex_count, DWORD fvf, DWORD bone_count, ID3DXSkinInfo **skin_info)
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
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)
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)
UINT WINAPI D3DXGetDeclLength(const D3DVERTEXELEMENT9 *decl)
HRESULT(WINAPI * LPD3DXSHPRTSIMCB)(float complete, void *ctx)
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
HRESULT WINAPI D3DXValidMesh(ID3DXMesh *mesh, const DWORD *adjacency, ID3DXBuffer **errors)
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)
HRESULT WINAPI D3DXFVFFromDeclarator(const D3DVERTEXELEMENT9 *decl, DWORD *fvf)
HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD, D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE])
struct ID3DXSkinInfo * LPD3DXSKININFO
HRESULT(WINAPI * LPD3DXUVATLASCB)(float complete, void *ctx)
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)
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)
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)
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)
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
HRESULT WINAPI D3DXRectPatchSize(const FLOAT *segment_count, DWORD *num_triangles, DWORD *num_vertices)
HRESULT(WINAPI * LPD3DXIMTSIGNALCALLBACK)(const D3DXVECTOR2 *, UINT, UINT, void *, FLOAT *)
@ D3DXMESHOPT_STRIPREORDER
@ D3DXMESHOPT_IGNOREVERTS
@ D3DXMESHOPT_VERTEXCACHE
@ D3DXMESHOPT_DEVICEINDEPENDENT
HRESULT WINAPI D3DXSavePRTBufferToFileW(const WCHAR *filename, ID3DXPRTBuffer *buffer)
enum _D3DXEFFECTDEFAULTTYPE D3DXEFFECTDEFAULTTYPE
@ D3DXCLEAN_SIMPLIFICATION
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)
struct ID3DXPMesh * LPD3DXPMESH
_D3DXSHCOMPRESSQUALITYTYPE
@ D3DXSHCQUAL_FASTLOWQUALITY
@ D3DXSHCQUAL_FORCE_DWORD
@ D3DXSHCQUAL_SLOWHIGHQUALITY
HRESULT WINAPI D3DXCreateMesh(DWORD face_count, DWORD vertex_count, DWORD flags, const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh)
HRESULT WINAPI D3DXCreateTextureGutterHelper(UINT width, UINT height, ID3DXMesh *mesh, float gutter_size, ID3DXTextureGutterHelper **gh)
@ D3DXWELDEPSILONS_DONOTREMOVEVERTICES
@ D3DXWELDEPSILONS_DONOTSPLIT
@ D3DXWELDEPSILONS_WELDALL
@ D3DXWELDEPSILONS_WELDPARTIALMATCHES
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)
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)
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
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
HRESULT WINAPI D3DXSavePRTCompBufferToFileA(const char *filename, ID3DXPRTCompBuffer *buffer)
@ D3DXMESH_VB_SOFTWAREPROCESSING
@ D3DXMESH_SOFTWAREPROCESSING
@ D3DXMESH_IB_SOFTWAREPROCESSING
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)
BOOL WINAPI D3DXSphereBoundProbe(const D3DXVECTOR3 *center, FLOAT radius, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir)
struct _D3DXINTERSECTINFO * LPD3DXINTERSECTINFO
enum _D3DXTANGENT D3DXTANGENT
UINT WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx)
@ D3DXSHGPUSIMOPT_SHADOWRES2048
@ D3DXSHGPUSIMOPT_SHADOWRES512
@ D3DXSHGPUSIMOPT_HIGHQUALITY
@ D3DXSHGPUSIMOPT_SHADOWRES256
@ D3DXSHGPUSIMOPT_FORCE_DWORD
@ D3DXSHGPUSIMOPT_SHADOWRES1024
HRESULT WINAPI D3DXCreateBuffer(DWORD size, ID3DXBuffer **buffer)
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
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)
struct _D3DXPATCHINFO D3DXPATCHINFO
HRESULT WINAPI D3DXComputeTangent(ID3DXMesh *mesh, DWORD stage, DWORD tangent_idx, DWORD binorm_idx, DWORD wrap, const DWORD *adjacency)
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)
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)
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)
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)
@ D3DXPATCHMESH_FORCE_DWORD
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
struct ID3DXPRTBuffer * LPD3DXPRTBUFFER
struct ID3DXPatchMesh * LPD3DXPATCHMESH
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)
struct _D3DXPATCHINFO * LPD3DXPATCHINFO
HRESULT WINAPI D3DXSavePRTBufferToFileA(const char *filename, ID3DXPRTBuffer *buffer)
UINT WINAPI D3DXGetFVFVertexSize(DWORD)
static unsigned int palette_size(DWORD flags)
#define wrap(journal, var)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLuint GLuint GLsizei GLenum const GLvoid * indices
GLenum GLenum GLenum GLenum GLenum scale
GLsizei GLsizei GLfloat distance
GLenum GLenum GLenum input
GLsizeiptr const GLvoid GLenum usage
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
static HMODULE MODULEINFO DWORD cb
static HRESULT QueryInterface(REFIID, void **)
static LARGE_INTEGER * frequency
static ULONG WINAPI AddRef(IStream *iface)
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
D3DXEFFECTDEFAULTTYPE Type
LPD3DXEFFECTDEFAULT pDefaults
D3DXPATCHMESHTYPE PatchType
D3DCOLORVALUE ReducedScattering
FLOAT RelativeIndexOfRefraction
DWORD CompressedBlockSize
static int Save(const char **args)