----------------------------------------
-- File : d3dx9mesh.ads --
-- Translator:Dongfeng.Gu,2018/10/20 --
-- Mail: 515639@qq.com --
-- Progress:100% --
----------------------------------------
with win32; use win32;
with win32.rpcdce; use win32.rpcdce;
with win32.objbase; use win32.objbase;
with win32.windef; use win32.windef;
with d3d9; use d3d9;
with d3d9types; use d3d9types;
with d3dx9xof; use d3dx9xof;
with d3dx9core; use d3dx9core;
package d3dx9mesh is
type float_Array is array(Natural range<>) of float;
--
-- Predefined IIDs
--
IID_ID3DXBaseMesh:constant win32.rpcdce.GUID:=(16#7ed943dd#,16#52e8#,16#40b5#,(16#a8#,16#d8#,16#76#,16#68#,16#5c#,16#40#,16#63#,16#30#));
IID_ID3DXMesh:constant win32.rpcdce.GUID:=(16#4020e5c2#,16#1403#,16#4929#,(16#88#,16#3f#,16#e2#,16#e8#,16#49#,16#fa#,16#c1#,16#95#));
IID_ID3DXPMesh:constant win32.rpcdce.GUID:=(16#8875769a#,16#d579#,16#4088#,(16#aa#,16#eb#,16#53#,16#4d#,16#1a#,16#d8#,16#4e#,16#96#));
IID_ID3DXSPMesh:constant win32.rpcdce.GUID:=(16#667ea4c7#,16#f1cd#,16#4386#,(16#b5#,16#23#,16#7c#,16#2#,16#90#,16#b8#,16#3c#,16#c5#));
IID_ID3DXSkinInfo:constant win32.rpcdce.GUID:=(16#11eaa540#,16#f9a6#,16#4d49#,(16#ae#,16#6a#,16#e1#,16#92#,16#21#,16#f7#,16#c#,16#c4#));
IID_ID3DXPatchMesh:constant win32.rpcdce.GUID:=(16#3ce6cc22#,16#dbf2#,16#44f4#,(16#89#,16#4d#,16#f9#,16#c3#,16#4a#,16#33#,16#71#,16#39#));
DXFILEOBJ_XSkinMeshHeader:constant win32.rpcdce.GUID:=(16#3cf169ce#,16#ff7c#,16#44ab#,(16#93#,16#c0#,16#f7#,16#8f#,16#62#,16#d1#,16#72#,16#e2#));
DXFILEOBJ_VertexDuplicationIndices:constant win32.rpcdce.GUID:=(16#b8d65549#,16#d7c9#,16#4995#,(16#89#,16#cf#,16#53#,16#a9#,16#a8#,16#b0#,16#31#,16#e3#));
DXFILEOBJ_FaceAdjacency:constant win32.rpcdce.GUID:=(16#a64c844a#,16#e282#,16#4756#,(16#8b#,16#80#,16#25#,16#c#,16#de#,16#4#,16#39#,16#8c#));
DXFILEOBJ_SkinWeights:constant win32.rpcdce.GUID:=(16#6f0d123b#,16#bad2#,16#4167#,(16#a0#,16#d0#,16#80#,16#22#,16#4f#,16#25#,16#fa#,16#bb#));
DXFILEOBJ_Patch:constant win32.rpcdce.GUID:=(16#a3eb5d44#,16#fc22#,16#429d#,(16#9a#,16#fb#,16#32#,16#21#,16#cb#,16#97#,16#19#,16#a6#));
DXFILEOBJ_PatchMesh:constant win32.rpcdce.GUID:=(16#d02c95cc#,16#edba#,16#4305#,(16#9b#,16#5d#,16#18#,16#20#,16#d7#,16#70#,16#4b#,16#bf#));
DXFILEOBJ_PatchMesh9:constant win32.rpcdce.GUID:=(16#b9ec94e1#,16#b9a6#,16#4251#,(16#ba#,16#18#,16#94#,16#89#,16#3f#,16#2#,16#c0#,16#ea#));
DXFILEOBJ_PMInfo:constant win32.rpcdce.GUID:=(16#b6c3e656#,16#ec8b#,16#4b92#,(16#9b#,16#62#,16#68#,16#16#,16#59#,16#52#,16#29#,16#47#));
DXFILEOBJ_PMAttributeRange:constant win32.rpcdce.GUID:=(16#917e0427#,16#c61e#,16#4a14#,(16#9c#,16#64#,16#af#,16#e6#,16#5f#,16#9e#,16#98#,16#44#));
DXFILEOBJ_PMVSplitRecord:constant win32.rpcdce.GUID:=(16#574ccc14#,16#f0b3#,16#4333#,(16#82#,16#2d#,16#93#,16#e8#,16#a8#,16#a0#,16#8e#,16#4c#));
DXFILEOBJ_FVFData:constant win32.rpcdce.GUID:=(16#b6e70a0e#,16#8ef9#,16#4e83#,(16#94#,16#ad#,16#ec#,16#c8#,16#b0#,16#c0#,16#48#,16#97#));
DXFILEOBJ_VertexElement:constant win32.rpcdce.GUID:=(16#f752461c#,16#1e23#,16#48f6#,(16#b9#,16#f8#,16#83#,16#50#,16#85#,16#f#,16#33#,16#6f#));
DXFILEOBJ_DeclData:constant win32.rpcdce.GUID:=(16#bf22e553#,16#292c#,16#4781#,(16#9f#,16#ea#,16#62#,16#bd#,16#55#,16#4b#,16#dd#,16#93#));
DXFILEOBJ_EffectFloats:constant win32.rpcdce.GUID:=(16#f1cfe2b3#,16#de3#,16#4e28#,(16#af#,16#a1#,16#15#,16#5a#,16#75#,16#a#,16#28#,16#2d#));
DXFILEOBJ_EffectString:constant win32.rpcdce.GUID:=(16#d55b097e#,16#bdb6#,16#4c52#,(16#b0#,16#3d#,16#60#,16#51#,16#c8#,16#9d#,16#e#,16#42#));
DXFILEOBJ_EffectDWord:constant win32.rpcdce.GUID:=(16#622c0ed0#,16#956e#,16#4da9#,(16#90#,16#8a#,16#2a#,16#f9#,16#4f#,16#3c#,16#e7#,16#16#));
DXFILEOBJ_EffectParamFloats:constant win32.rpcdce.GUID:=(16#3014b9a0#,16#62f5#,16#478c#,(16#9b#,16#86#,16#e4#,16#ac#,16#9f#,16#4e#,16#41#,16#8b#));
DXFILEOBJ_EffectParamString:constant win32.rpcdce.GUID:=(16#1dbc4c88#,16#94c1#,16#46ee#,(16#90#,16#76#,16#2c#,16#28#,16#81#,16#8c#,16#94#,16#81#));
DXFILEOBJ_EffectParamDWord:constant win32.rpcdce.GUID:=(16#e13963bc#,16#ae51#,16#4c5d#,(16#b0#,16#f#,16#cf#,16#a3#,16#a9#,16#d9#,16#7c#,16#e5#));
DXFILEOBJ_EffectInstance:constant win32.rpcdce.GUID:=(16#e331f7e4#,16#559#,16#4cc2#,(16#8e#,16#99#,16#1c#,16#ec#,16#16#,16#57#,16#92#,16#8f#));
DXFILEOBJ_AnimTicksPerSecond:constant win32.rpcdce.GUID:=(16#9e415a43#,16#7ba6#,16#4a73#,(16#87#,16#43#,16#b7#,16#3d#,16#47#,16#e8#,16#84#,16#76#));
DXFILEOBJ_CompressedAnimationSet:constant win32.rpcdce.GUID:=(16#7f9b00b3#,16#f125#,16#4890#,(16#87#,16#6e#,16#1c#,16#42#,16#bf#,16#69#,16#7c#,16#4d#));
type tagD3DXPATCHMESHTYPE is (D3DXPATCHMESH_RECT,
D3DXPATCHMESH_TRI,
D3DXPATCHMESH_NPATCH,
D3DXPATCHMESH_FORCE_DWORD);
for tagD3DXPATCHMESHTYPE use (D3DXPATCHMESH_RECT=>16#001#,
D3DXPATCHMESH_TRI=>16#002#,
D3DXPATCHMESH_NPATCH=>16#003#,
D3DXPATCHMESH_FORCE_DWORD=>16#7fffffff#);
subtype D3DXPATCHMESHTYPE is tagD3DXPATCHMESHTYPE;
type tagD3DXCLEANTYPE is (D3DXCLEAN_BACKFACING,
D3DXCLEAN_BOWTIES,
--D3DXCLEAN_SKINNING,
--D3DXCLEAN_OPTIMIZATION,
D3DXCLEAN_SIMPLIFICATION);
for tagD3DXCLEANTYPE use (D3DXCLEAN_BACKFACING=>16#00000001#,
D3DXCLEAN_BOWTIES=>16#00000002#,
--D3DXCLEAN_SKINNING=>D3DXCLEAN_BACKFACING,
--D3DXCLEAN_OPTIMIZATION=>D3DXCLEAN_BACKFACING,
D3DXCLEAN_SIMPLIFICATION=>3);
D3DXCLEAN_SKINNING:constant tagD3DXCLEANTYPE:=D3DXCLEAN_BACKFACING;
D3DXCLEAN_OPTIMIZATION:constant tagD3DXCLEANTYPE:=D3DXCLEAN_BACKFACING;
subtype D3DXCLEANTYPE is tagD3DXCLEANTYPE;
type tagD3DXTANGENT is (D3DXTANGENT_WRAP_U,
D3DXTANGENT_WRAP_V,
D3DXTANGENT_WRAP_UV,
D3DXTANGENT_DONT_NORMALIZE_PARTIALS,
D3DXTANGENT_DONT_ORTHOGONALIZE,
D3DXTANGENT_ORTHOGONALIZE_FROM_V,
D3DXTANGENT_ORTHOGONALIZE_FROM_U,
D3DXTANGENT_WEIGHT_BY_AREA,
D3DXTANGENT_WEIGHT_EQUAL,
D3DXTANGENT_WIND_CW,
D3DXTANGENT_CALCULATE_NORMALS,
D3DXTANGENT_GENERATE_IN_PLACE);
for tagD3DXTANGENT use (D3DXTANGENT_WRAP_U=>16#01#,
D3DXTANGENT_WRAP_V=>16#02#,
D3DXTANGENT_WRAP_UV=>16#03#,
D3DXTANGENT_DONT_NORMALIZE_PARTIALS=>16#04#,
D3DXTANGENT_DONT_ORTHOGONALIZE=>16#08#,
D3DXTANGENT_ORTHOGONALIZE_FROM_V=>16#010#,
D3DXTANGENT_ORTHOGONALIZE_FROM_U=>16#020#,
D3DXTANGENT_WEIGHT_BY_AREA=>16#040#,
D3DXTANGENT_WEIGHT_EQUAL=>16#080#,
D3DXTANGENT_WIND_CW=>16#0100#,
D3DXTANGENT_CALCULATE_NORMALS=>16#0200#,
D3DXTANGENT_GENERATE_IN_PLACE=>16#0400#);
subtype D3DXTANGENT is tagD3DXTANGENT;
type tagD3DXIMT is (D3DXIMT_WRAP_U,
D3DXIMT_WRAP_V,
D3DXIMT_WRAP_UV);
for tagD3DXIMT use (D3DXIMT_WRAP_U=>16#01#,
D3DXIMT_WRAP_V=>16#02#,
D3DXIMT_WRAP_UV=>16#03#);
subtype D3DXIMT is tagD3DXIMT;
type tagD3DXUVATLAS is (D3DXUVATLAS_DEFAULT,
D3DXUVATLAS_GEODESIC_FAST,
D3DXUVATLAS_GEODESIC_QUALITY);
for tagD3DXUVATLAS use (D3DXUVATLAS_DEFAULT=>16#00#,
D3DXUVATLAS_GEODESIC_FAST=>16#01#,
D3DXUVATLAS_GEODESIC_QUALITY=>16#02#);
subtype D3DXUVATLAS is tagD3DXUVATLAS;
--
-- Ô¤¶¨Òå½Ó¿Ú
--
type ID3DXBaseMesh;
type LPID3DXBaseMesh is access all ID3DXBaseMesh;
subtype LPD3DXBaseMesh is LPID3DXBaseMesh;
subtype PD3DXBaseMesh is LPID3DXBaseMesh;
type LPLPID3DXBaseMesh is access all LPID3DXBaseMesh;
subtype LPLPD3DXBaseMesh is LPLPID3DXBaseMesh;
subtype PPIDID3DXBaseMesh is LPLPID3DXBaseMesh;
subtype PPD3DXBaseMesh is LPLPID3DXBaseMesh;
type ID3DXMesh;
type LPID3DXMesh is access all ID3DXMesh;
subtype LPD3DXMesh is LPID3DXMesh;
type LPLPID3DXMesh is access all LPID3DXMesh;
subtype LPLPD3DXMesh is LPLPID3DXMesh;
type ID3DXPMesh;
TYPE LPID3DXPMesh is access all ID3DXPMesh;
subtype LPD3DXPMesh is LPID3DXPMesh;
type LPLPID3DXPMesh is access all LPID3DXPMesh;
subtype LPLPD3DXPMesh is LPLPID3DXPMesh;
type ID3DXSPMesh;
type LPID3DXSPMesh is access all ID3DXSPMesh;
subtype LPD3DXSPMesh is LPID3DXSPMesh;
type LPLPID3DXSPMesh is access all LPID3DXSPMesh;
subtype LPLPD3DXSPMesh is LPLPID3DXSPMesh;
type ID3DXSkinInfo;
type LPID3DXSkinInfo is access all ID3DXSkinInfo;
subtype LPD3DXSkinInfo is LPID3DXSkinInfo;
type LPLPID3DXSkinInfo is access all LPID3DXSkinInfo;
subtype LPLPD3DXSkinInfo is LPLPID3DXSkinInfo;
type ID3DXPatchMesh;
type LPID3DXPatchMesh is access all ID3DXPatchMesh;
subtype LPD3DXPatchMesh is LPID3DXPatchMesh;
type LPLPID3DXPatchMesh is access all LPID3DXPatchMesh;
subtype LPLPD3DXPatchMesh is LPLPID3DXPatchMesh;
type ID3DXTextureGutterHelper;
type LPID3DXTextureGutterHelper is access all ID3DXTextureGutterHelper;
subtype LPD3DXTextureGutterHelper is LPID3DXTextureGutterHelper;
type LPLPID3DXTextureGutterHelper is access all LPID3DXTextureGutterHelper;
subtype LPLPD3DXTextureGutterHelper is LPLPID3DXTextureGutterHelper;
type ID3DXPRTBuffer;
type LPID3DXPRTBuffer is access all ID3DXPRTBuffer;
subtype LPD3DXPRTBuffer is LPID3DXPRTBuffer;
type LPLPID3DXPRTBuffer is access all LPID3DXPRTBuffer;
subtype LPLPD3DXPRTBuffer is LPLPID3DXPRTBuffer;
type tagD3DXATTRIBUTERANGE is record
AttribId:DWORD;
FaceStart:DWORD;
FaceCount:DWORD;
VertexStart:DWORD;
VertexCount:DWORD;
end record;
subtype D3DXATTRIBUTERANGE is tagD3DXATTRIBUTERANGE;
type LPD3DXATTRIBUTERANGE is access all D3DXATTRIBUTERANGE;
type tagD3DXMATERIAL is record
MatD3D:D3DMATERIAL9;
pTextureFilename:LPSTR;
end record;
subtype D3DXMATERIAL is tagD3DXMATERIAL;
type LPD3DXMATERIAL is access all D3DXMATERIAL;
type LPLPD3DXMATERIAL is access all LPD3DXMATERIAL;
type LPCD3DXMATERIAL is access constant D3DXMATERIAL;
type tagD3DXEFFECTDEFAULTTYPE is (D3DXEDT_STRING,
D3DXEDT_FLOATS,
D3DXEDT_DWORD,
D3DXEDT_FORCEDWORD);
for tagD3DXEFFECTDEFAULTTYPE use (D3DXEDT_STRING=>16#1#,
D3DXEDT_FLOATS=>16#2#,
D3DXEDT_DWORD=>16#3#,
D3DXEDT_FORCEDWORD=>16#7fffffff#);
subtype D3DXEFFECTDEFAULTTYPE is tagD3DXEFFECTDEFAULTTYPE;
type tagD3DXEFFECTDEFAULT is record
pParamName:LPSTR;
Typ:D3DXEFFECTDEFAULTTYPE;
NumBytes:DWORD;
pValue:LPVOID;
end record;
subtype D3DXEFFECTDEFAULT is tagD3DXEFFECTDEFAULT;
type LPD3DXEFFECTDEFAULT is access all tagD3DXEFFECTDEFAULT;
type tagD3DXEFFECTINSTANCE is record
pEffectFilename:LPSTR;
NumDefaults:DWORD;
pDefaults:LPD3DXEFFECTDEFAULT;
end record;
subtype D3DXEFFECTINSTANCE is tagD3DXEFFECTINSTANCE;
type LPD3DXEFFECTINSTANCE is access all tagD3DXEFFECTINSTANCE;
type LPCD3DXEFFECTINSTANCE is access constant D3DXEFFECTINSTANCE;
type tagD3DXATTRIBUTEWEIGHTS is record
Position:FLOAT;
Boundary:FLOAT;
Normal:FLOAT;
Diffuse:FLOAT;
Specular:FLOAT;
Texcoord:FLOAT_Array(0..7);
Tangent:FLOAT;
Binormal:FLOAT;
end record;
subtype D3DXATTRIBUTEWEIGHTS is tagD3DXATTRIBUTEWEIGHTS;
type LPD3DXATTRIBUTEWEIGHTS is access all tagD3DXATTRIBUTEWEIGHTS;
type LPCD3DXATTRIBUTEWEIGHTS is access constant D3DXATTRIBUTEWEIGHTS;
type tagD3DXWELDEPSILONS is record
Position:FLOAT;
BlendWeights:FLOAT;
Normal:FLOAT;
PSize:FLOAT;
Specular:FLOAT;
Diffuse:FLOAT;
Texcoord:FLOAT_Array(0..7);
Tangent:FLOAT;
Binormal:FLOAT;
TessFactor:FLOAT;
end record;
subtype D3DXWELDEPSILONS is tagD3DXWELDEPSILONS;
type LPD3DXWELDEPSILONS is access all D3DXWELDEPSILONS;
type LPCD3DXWELDEPSILONS is access constant D3DXWELDEPSILONS;
subtype D3DVERTEXELEMENT9_Array_x is D3DVERTEXELEMENT9_Array(0..64);
type ID3DXBaseMesh is record
QueryInterface:access procedure(THIS:LPID3DXBaseMesh;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXBaseMesh) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXBaseMesh) return ULONG with Convention=>Stdcall;
DrawSubset:access procedure(THIS:LPID3DXBaseMesh;AttribId:DWORD) with Convention=>Stdcall;
GetNumFaces:access function(THIS:LPID3DXBaseMesh) return DWORD with Convention=>Stdcall;
GetNumVertices:access function(THIS:LPID3DXBaseMesh) return DWORD with Convention=>Stdcall;
GetFVF:access function(THIS:LPID3DXBaseMesh) return DWORD with Convention=>Stdcall;
GetDeclaration:access procedure(THIS:LPID3DXBaseMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
GetNumBytesPerVertex:access function(THIS:LPID3DXBaseMesh) return DWORD with Convention=>Stdcall;
GetOptions:access function(THIS:LPID3DXBaseMesh) return DWORD with Convention=>Stdcall;
GetDevice:access procedure(THIS:LPID3DXBaseMesh;ppDevice:LPLPDIRECT3DDEVICE9) with Convention=>Stdcall;
CloneMeshFVF:access procedure(THIS:LPID3DXBaseMesh;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
CloneMesh:access procedure(THIS:LPID3DXBaseMesh;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
GetVertexBuffer:access procedure(THIS:LPID3DXBaseMesh;ppVB:access LPDIRECT3DVERTEXBUFFER9) with Convention=>Stdcall;
GetIndexBuffer:access procedure(THIS:LPID3DXBaseMesh;ppIB:access LPDIRECT3DINDEXBUFFER9) with Convention=>Stdcall;
LockVertexBuffer:access procedure(THIS:LPID3DXBaseMesh;Flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockVertexBuffer:access procedure(THIS:LPID3DXBaseMesh) with Convention=>Stdcall;
LockIndexBuffer:access procedure(THIS:LPID3DXBaseMesh;Flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockIndexBuffer:access procedure(THIS:LPID3DXBaseMesh) with Convention=>Stdcall;
GetAttributeTable:access procedure(THIS:LPID3DXBaseMesh;pAttribTable:LPD3DXATTRIBUTERANGE;pAttribTableSize:LPDWORD) with Convention=>Stdcall;
ConvertPointRepsToAdjacency:access procedure(THIS:LPID3DXBaseMesh;pPRep:access constant DWORD;pAdjacency:LPDWORD) with Convention=>Stdcall;
ConvertAdjacencyToPointReps:access procedure(THIS:LPID3DXBaseMesh;pAdjacency:access constant DWORD;pPRep:LPDWORD) with Convention=>Stdcall;
GenerateAdjacency:access procedure(THIS:LPID3DXBaseMesh;Epsilon:FLOAT;pAdjacency:LPDWORD) with Convention=>Stdcall;
UpdateSemantics:access procedure(THIS:LPID3DXBaseMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
end record;
type ID3DXMesh is record
QueryInterface:access procedure(THIS:LPID3DXMesh;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXMesh) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXMesh) return ULONG with Convention=>Stdcall;
DrawSubset:access procedure(THIS:LPID3DXMesh;AttribId:DWORD) with Convention=>Stdcall;
GetNumFaces:access function(THIS:LPID3DXMesh) return DWORD with Convention=>Stdcall;
GetNumVertices:access function(THIS:LPID3DXMesh) return DWORD with Convention=>Stdcall;
GetFVF:access function(THIS:LPID3DXMesh) return DWORD with Convention=>Stdcall;
GetDeclaration:access procedure(THIS:LPID3DXMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
GetNumBytesPerVertex:access function(THIS:LPID3DXMesh) return DWORD with Convention=>Stdcall;
GetOptions:access function(THIS:LPID3DXMesh) return DWORD with Convention=>Stdcall;
GetDevice:access procedure(THIS:LPID3DXMesh;ppDevice:LPLPDIRECT3DDEVICE9) with Convention=>Stdcall;
CloneMeshFVF:access procedure(THIS:LPID3DXMesh;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
CloneMesh:access procedure(THIS:LPID3DXMesh;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
GetVertexBuffer:access procedure(THIS:LPID3DXMesh;ppVB:access LPDIRECT3DVERTEXBUFFER9) with Convention=>Stdcall;
GetIndexBuffer:access procedure(THIS:LPID3DXMesh;ppIB:access LPDIRECT3DINDEXBUFFER9) with Convention=>Stdcall;
LockVertexBuffer:access procedure(THIS:LPID3DXMesh;Flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockVertexBuffer:access procedure(THIS:LPID3DXMesh) with Convention=>Stdcall;
LockIndexBuffer:access procedure(THIS:LPID3DXMesh;Flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockIndexBuffer:access procedure(THIS:LPID3DXMesh) with Convention=>Stdcall;
GetAttributeTable:access procedure(THIS:LPID3DXMesh;pAttribTable:LPD3DXATTRIBUTERANGE;pAttribTableSize:LPDWORD) with Convention=>Stdcall;
ConvertPointRepsToAdjacency:access procedure(THIS:LPID3DXMesh;pPRep:access constant DWORD;pAdjacency:LPDWORD) with Convention=>Stdcall;
ConvertAdjacencyToPointReps:access procedure(THIS:LPID3DXMesh;pAdjacency:access constant DWORD;pPRep:LPDWORD) with Convention=>Stdcall;
GenerateAdjacency:access procedure(THIS:LPID3DXMesh;Epsilon:FLOAT;pAdjacency:LPDWORD) with Convention=>Stdcall;
UpdateSemantics:access procedure(THIS:LPID3DXMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
LockAttributeBuffer:access procedure(THIS:LPID3DXMesh;Flags:DWORD;ppData:access LPDWORD) with Convention=>Stdcall;
UnlockAttributeBuffer:access procedure(THIS:LPID3DXMesh) with Convention=>Stdcall;
Optimize:access procedure(THIS:LPID3DXMesh;Flags:DWORD;pAdjacencyIn:access constant DWORD;pAdjacencyOut:LPDWORD;pFaceRemap:LPDWORD;ppVertexRemap:access LPD3DXBUFFER;ppOptMesh:access LPD3DXMESH) with Convention=>Stdcall;
OptimizeInplace:access procedure(THIS:LPID3DXMesh;Flags:DWORD;pAdjacencyIn:access constant DWORD;pAdjacencyOut:LPDWORD;pFaceRemap:LPDWORD;ppVertexRemap:LPLPD3DXBUFFER) with Convention=>Stdcall;
SetAttributeTable:access procedure(THIS:LPID3DXMesh;pAttribTable:access constant D3DXATTRIBUTERANGE;cAttribTableSize:DWORD) with Convention=>Stdcall;
end record;
type ID3DXPMesh is record
QueryInterface:access procedure(THIS:LPID3DXPMesh;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXPMesh) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXPMesh) return ULONG with Convention=>Stdcall;
DrawSubset:access procedure(THIS:LPID3DXPMesh;AttribId:DWORD) with Convention=>Stdcall;
GetNumFaces:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetNumVertices:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetFVF:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetDeclaration:access procedure(THIS:LPID3DXPMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
GetNumBytesPerVertex:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetOptions:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetDevice:access procedure(THIS:LPID3DXPMesh;ppDevice:LPLPDIRECT3DDEVICE9) with Convention=>Stdcall;
CloneMeshFVF:access procedure(THIS:LPID3DXPMesh;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
CloneMesh:access procedure(THIS:LPID3DXPMesh;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
GetVertexBuffer:access procedure(THIS:LPID3DXPMesh;ppVB:access LPDIRECT3DVERTEXBUFFER9) with Convention=>Stdcall;
GetIndexBuffer:access procedure(THIS:LPID3DXPMesh;ppIB:access LPDIRECT3DINDEXBUFFER9) with Convention=>Stdcall;
LockVertexBuffer:access procedure(THIS:LPID3DXPMesh;Flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockVertexBuffer:access procedure(THIS:LPID3DXPMesh) with Convention=>Stdcall;
LockIndexBuffer:access procedure(THIS:LPID3DXPMesh;Flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockIndexBuffer:access procedure(THIS:LPID3DXPMesh) with Convention=>Stdcall;
GetAttributeTable:access procedure(THIS:LPID3DXPMesh;pAttribTable:LPD3DXATTRIBUTERANGE;pAttribTableSize:LPDWORD) with Convention=>Stdcall;
ConvertPointRepsToAdjacency:access procedure(THIS:LPID3DXPMesh;pPRep:access constant DWORD;pAdjacency:LPDWORD) with Convention=>Stdcall;
ConvertAdjacencyToPointReps:access procedure(THIS:LPID3DXPMesh;pAdjacency:access constant DWORD;pPRep:LPDWORD) with Convention=>Stdcall;
GenerateAdjacency:access procedure(THIS:LPID3DXPMesh;Epsilon:FLOAT;pAdjacency:LPDWORD) with Convention=>Stdcall;
UpdateSemantics:access procedure(THIS:LPID3DXPMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
ClonePMeshFVF:access procedure(THIS:LPID3DXPMesh;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:LPLPD3DXPMESH) with Convention=>Stdcall;
ClonePMesh:access procedure(THIS:LPID3DXPMesh;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;ppCloneMesh:LPLPD3DXPMESH) with Convention=>Stdcall;
SetNumFaces:access procedure(THIS:LPID3DXPMesh;Faces:DWORD) with Convention=>Stdcall;
SetNumVertices:access procedure(THIS:LPID3DXPMesh;Vertices:DWORD) with Convention=>Stdcall;
GetMaxFaces:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetMinFaces:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetMaxVertices:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
GetMinVertices:access function(THIS:LPID3DXPMesh) return DWORD with Convention=>Stdcall;
Save:access procedure(THIS:LPID3DXPMesh;pStream:access IStream;pMaterials:LPCD3DXMATERIAL;pEffectInstances:LPCD3DXEFFECTINSTANCE;NumMaterials:DWORD) with Convention=>Stdcall;
Optimize:access procedure(THIS:LPID3DXPMesh;Flags:DWORD;pAdjacencyOut:LPDWORD;pFaceRemap:LPDWORD;ppVertexRemap:LPLPD3DXBUFFER;ppOptMesh:access LPD3DXMESH) with Convention=>Stdcall;
OptimizeBaseLOD:access procedure(THIS:LPID3DXPMesh;Flags:DWORD;pFaceRemap:LPDWORD) with Convention=>Stdcall;
TrimByFaces:access procedure(THIS:LPID3DXPMesh;NewFacesMin:DWORD;NewFacesMax:DWORD;rgiFaceRemap:LPDWORD;rgiVertRemap:LPDWORD) with Convention=>Stdcall;
TrimByVertices:access procedure(THIS:LPID3DXPMesh;NewVerticesMin:DWORD;NewVerticesMax:DWORD;rgiFaceRemap:LPDWORD;rgiVertRemap:LPDWORD) with Convention=>Stdcall;
GetAdjacency:access procedure(THIS:LPID3DXPMesh;pAdjacency:LPDWORD) with Convention=>Stdcall;
GenerateVertexHistory:access procedure(THIS:LPID3DXPMesh;pVertexHistory:LPDWORD) with Convention=>Stdcall;
end record;
type ID3DXSPMesh is record
QueryInterface:access procedure(THIS:LPID3DXSPMesh;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXSPMesh) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXSPMesh) return ULONG with Convention=>Stdcall;
GetNumFaces:access function(THIS:LPID3DXSPMesh) return DWORD with Convention=>Stdcall;
GetNumVertices:access function(THIS:LPID3DXSPMesh) return DWORD with Convention=>Stdcall;
GetFVF:access function(THIS:LPID3DXSPMesh) return DWORD with Convention=>Stdcall;
GetDeclaration:access procedure(THIS:LPID3DXSPMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
GetOptions:access function(THIS:LPID3DXSPMesh) return DWORD with Convention=>Stdcall;
GetDevice:access procedure(THIS:LPID3DXSPMesh;ppDevice:LPLPDIRECT3DDEVICE9) with Convention=>Stdcall;
CloneMeshFVF:access procedure(THIS:LPID3DXSPMesh;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;pAdjacencyOut:LPDWORD;pVertexRemapOut:LPDWORD;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
CloneMesh:access procedure(THIS:LPID3DXSPMesh;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;pAdjacencyOut:LPDWORD;pVertexRemapOut:LPDWORD;ppCloneMesh:access LPD3DXMESH) with Convention=>Stdcall;
ClonePMeshFVF:access procedure(THIS:LPID3DXSPMesh;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;pVertexRemapOut:LPDWORD;pErrorsByFace:win32.LPFLOAT;ppCloneMesh:LPLPD3DXPMESH) with Convention=>Stdcall;
ClonePMesh:access procedure(THIS:LPID3DXSPMesh;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;pVertexRemapOut:LPDWORD;pErrorsbyFace:win32.LPFLOAT;ppCloneMesh:LPLPD3DXPMESH) with Convention=>Stdcall;
ReduceFaces:access procedure(THIS:LPID3DXSPMesh;Faces:DWORD) with Convention=>Stdcall;
ReduceVertices:access procedure(THIS:LPID3DXSPMesh;Vertices:DWORD) with Convention=>Stdcall;
GetMaxFaces:access function(THIS:LPID3DXSPMesh) return DWORD with Convention=>Stdcall;
GetMaxVertices:access function(THIS:LPID3DXSPMesh) return DWORD with Convention=>Stdcall;
GetVertexAttributeWeights:access procedure(THIS:LPID3DXSPMesh;pVertexAttributeWeights:LPD3DXATTRIBUTEWEIGHTS) with Convention=>Stdcall;
GetVertexWeights:access procedure(THIS:LPID3DXSPMesh;pVertexWeights:win32.LPFLOAT) with Convention=>Stdcall;
end record;
UNUSED16 : constant := (16#ffff#);
UNUSED32 : constant := (16#ffffffff#);
type tagD3DXBONECOMBINATION is record
AttribId:DWORD;
FaceStart:DWORD;
FaceCount:DWORD;
VertexStart:DWORD;
VertexCount:DWORD;
BoneId:LPDWORD;
end record;
subtype D3DXBONECOMBINATION is tagD3DXBONECOMBINATION;
type LPD3DXBONECOMBINATION is access all tagD3DXBONECOMBINATION;
type LPCD3DXBONECOMBINATION is access constant D3DXBONECOMBINATION;
type tagD3DXPATCHINFO is record
PatchType:D3DXPATCHMESHTYPE;
Degree:D3DDEGREETYPE;
Basis:D3DBASISTYPE;
end record;
subtype D3DXPATCHINFO is tagD3DXPATCHINFO;
type LPD3DXPATCHINFO is access all tagD3DXPATCHINFO;
type LPCD3DXPATCHINFO is access constant D3DXPATCHINFO;
type ID3DXPatchMesh is record
QueryInterface:access procedure(THIS:LPID3DXPatchMesh;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXPatchMesh) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXPatchMesh) return ULONG with Convention=>Stdcall;
GetNumPatches:access function(THIS:LPID3DXPatchMesh) return DWORD with Convention=>Stdcall;
GetNumVertices:access function(THIS:LPID3DXPatchMesh) return DWORD with Convention=>Stdcall;
GetDeclaration:access procedure(THIS:LPID3DXPatchMesh;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
GetControlVerticesPerPatch:access function(THIS:LPID3DXPatchMesh) return DWORD with Convention=>Stdcall;
GetOptions:access function(THIS:LPID3DXPatchMesh) return DWORD with Convention=>Stdcall;
GetDevice:access procedure(THIS:LPID3DXPatchMesh;ppDevice:LPLPDIRECT3DDEVICE9) with Convention=>Stdcall;
GetPatchInfo:access procedure(THIS:LPID3DXPatchMesh;PatchInfo:LPD3DXPATCHINFO) with Convention=>Stdcall;
GetVertexBuffer:access procedure(THIS:LPID3DXPatchMesh;ppVB:access LPDIRECT3DVERTEXBUFFER9) with Convention=>Stdcall;
GetIndexBuffer:access procedure(THIS:LPID3DXPatchMesh;ppIB:access LPDIRECT3DINDEXBUFFER9) with Convention=>Stdcall;
LockVertexBuffer:access procedure(THIS:LPID3DXPatchMesh;flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockVertexBuffer:access procedure(THIS:LPID3DXPatchMesh) with Convention=>Stdcall;
LockIndexBuffer:access procedure(THIS:LPID3DXPatchMesh;flags:DWORD;ppData:WIN32.LPLPVOID) with Convention=>Stdcall;
UnlockIndexBuffer:access procedure(THIS:LPID3DXPatchMesh) with Convention=>Stdcall;
LockAttributeBuffer:access procedure(THIS:LPID3DXPatchMesh;flags:DWORD;ppData:LPLPDWORD) with Convention=>Stdcall;
UnlockAttributeBuffer:access procedure(THIS:LPID3DXPatchMesh) with Convention=>Stdcall;
GetTessSize:access procedure(THIS:LPID3DXPatchMesh;fTessLevel:FLOAT;Adaptive:DWORD;NumTriangles:LPDWORD;NumVertices:LPDWORD) with Convention=>Stdcall;
GenerateAdjacency:access procedure(THIS:LPID3DXPatchMesh;Tolerance:FLOAT) with Convention=>Stdcall;
CloneMesh:access procedure(THIS:LPID3DXPatchMesh;Options:DWORD;pDecl:access constant D3DVERTEXELEMENT9;pMesh:LPLPD3DXPATCHMESH) with Convention=>Stdcall;
Optimize:access procedure(THIS:LPID3DXPatchMesh;flags:DWORD) with Convention=>Stdcall;
SetDisplaceParam:access procedure(THIS:LPID3DXPatchMesh;Texture:LPDIRECT3DBASETEXTURE9;MinFilter:D3DTEXTUREFILTERTYPE;MagFilter:D3DTEXTUREFILTERTYPE;MipFilter:D3DTEXTUREFILTERTYPE;Wrap:D3DTEXTUREADDRESS;dwLODBias:DWORD) with Convention=>Stdcall;
GetDisplaceParam:access procedure(THIS:LPID3DXPatchMesh;Texture:LPLPDIRECT3DBASETEXTURE9;MinFilter:LPD3DTEXTUREFILTERTYPE;MagFilter:LPD3DTEXTUREFILTERTYPE;MipFilter:LPD3DTEXTUREFILTERTYPE;Wrap:LPD3DTEXTUREADDRESS;dwLODBias:LPDWORD) with Convention=>Stdcall;
Tessellate:access procedure(THIS:LPID3DXPatchMesh;fTessLevel:FLOAT;pMesh:LPD3DXMESH) with Convention=>Stdcall;
TessellateAdaptive:access procedure(THIS:LPID3DXPatchMesh;pTrans:LPCD3DXVECTOR4;dwMaxTessLevel:DWORD;dwMinTessLevel:DWORD;pMesh:LPD3DXMESH) with Convention=>Stdcall;
end record;
--
-- Interface ID3DXSkinInfo
--
type ID3DXSkinInfo is record
QueryInterface:access procedure(THIS:LPID3DXSkinInfo;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXSkinInfo) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXSkinInfo) return ULONG with Convention=>Stdcall;
SetBoneInfluence:access procedure(THIS:LPID3DXSkinInfo;bone:DWORD;numInfluences:DWORD;vertices:access constant DWORD;weights:LPCFLOAT) with Convention=>Stdcall;
SetBoneVertexInfluence:access procedure(THIS:LPID3DXSkinInfo;boneNum:DWORD;influenceNum:DWORD;weight:float) with Convention=>Stdcall;
GetNumBoneInfluences:access function(THIS:LPID3DXSkinInfo;bone:DWORD) return DWORD with Convention=>Stdcall;
GetBoneInfluence:access procedure(THIS:LPID3DXSkinInfo;bone:DWORD;vertices:LPDWORD;weights:win32.LPFLOAT) with Convention=>Stdcall;
GetBoneVertexInfluence:access procedure(THIS:LPID3DXSkinInfo;boneNum:DWORD;influenceNum:DWORD;pWeight:win32.LPfloat;pVertexNum:LPDWORD) with Convention=>Stdcall;
GetMaxVertexInfluences:access procedure(THIS:LPID3DXSkinInfo;maxVertexInfluences:LPDWORD) with Convention=>Stdcall;
GetNumBones:access function(THIS:LPID3DXSkinInfo) return DWORD with Convention=>Stdcall;
FindBoneVertexInfluenceIndex:access procedure(THIS:LPID3DXSkinInfo;boneNum:DWORD;vertexNum:DWORD;pInfluenceIndex:LPDWORD) with Convention=>Stdcall;
GetMaxFaceInfluences:access procedure(THIS:LPID3DXSkinInfo;pIB:LPDIRECT3DINDEXBUFFER9;NumFaces:DWORD;maxFaceInfluences:LPDWORD) with Convention=>Stdcall;
SetMinBoneInfluence:access procedure(THIS:LPID3DXSkinInfo;MinInfl:FLOAT) with Convention=>Stdcall;
GetMinBoneInfluence:access function(THIS:LPID3DXSkinInfo) return FLOAT with Convention=>Stdcall;
SetBoneName:access procedure(THIS:LPID3DXSkinInfo;Bone:DWORD;pName:LPCSTR) with Convention=>Stdcall;
GetBoneName:access function(THIS:LPID3DXSkinInfo;Bone:DWORD) return LPCSTR with Convention=>Stdcall;
SetBoneOffsetMatrix:access procedure(THIS:LPID3DXSkinInfo;Bone:DWORD;pBoneTransform:LPCD3DXMATRIX) with Convention=>Stdcall;
GetBoneOffsetMatrix:access function(THIS:LPID3DXSkinInfo;Bone:DWORD) return LPD3DMATRIX with Convention=>Stdcall;
Clone:access procedure(THIS:LPID3DXSkinInfo;ppSkinInfo:LPLPD3DXSKININFO) with Convention=>Stdcall;
Remap:access procedure(THIS:LPID3DXSkinInfo;NumVertices:DWORD;pVertexRemap:LPDWORD) with Convention=>Stdcall;
SetFVF:access procedure(THIS:LPID3DXSkinInfo;FVF:DWORD) with Convention=>Stdcall;
SetDeclaration:access procedure(THIS:LPID3DXSkinInfo;pDeclaration:access constant D3DVERTEXELEMENT9) with Convention=>Stdcall;
GetFVF:access function(THIS:LPID3DXSkinInfo) return DWORD with Convention=>Stdcall;
GetDeclaration:access procedure(THIS:LPID3DXSkinInfo;Declaration:D3DVERTEXELEMENT9_Array_x) with Convention=>Stdcall;
UpdateSkinnedMesh:access procedure(THIS:LPID3DXSkinInfo;pBoneTransforms:LPCD3DXMATRIX;pBoneInvTransposeTransforms:LPCD3DXMATRIX;pVerticesSrc:LPCVOID;pVerticesDst:PVOID) with Convention=>Stdcall;
ConvertToBlendedMesh:access procedure(THIS:LPID3DXSkinInfo;pMesh:LPD3DXMESH;Options:DWORD;pAdjacencyIn:access constant DWORD;pAdjacencyOut:LPDWORD;pFaceRemap:LPDWORD;ppVertexRemap:LPLPD3DXBUFFER;pMaxFaceInfl:LPDWORD;pNumBoneCombinations:LPDWORD;ppBoneCombinationTable:LPLPD3DXBUFFER;ppMesh:access LPD3DXMESH) with Convention=>Stdcall;
ConvertToIndexedBlendedMesh:access procedure(THIS:LPID3DXSkinInfo;pMesh:LPD3DXMESH;Options:DWORD;paletteSize:DWORD;pAdjacencyIn:access constant DWORD;pAdjacencyOut:LPDWORD;pFaceRemap:LPDWORD;ppVertexRemap:LPLPD3DXBUFFER;pMaxVertexInfl:LPDWORD;pNumBoneCombinations:LPDWORD;ppBoneCombinationTable:LPLPD3DXBUFFER;ppMesh:access LPD3DXMESH) with Convention=>Stdcall;
end record;
type tagD3DXINTERSECTINFO is record
FaceIndex:DWORD;
U:FLOAT;
V:FLOAT;
Dist:FLOAT;
end record;
subtype D3DXINTERSECTINFO is tagD3DXINTERSECTINFO;
type LPD3DXINTERSECTINFO is access all tagD3DXINTERSECTINFO;
type tagD3DXSHCOMPRESSQUALITYTYPE is (D3DXSHCQUAL_FASTLOWQUALITY,
D3DXSHCQUAL_SLOWHIGHQUALITY,
D3DXSHCQUAL_FORCE_DWORD);
for tagD3DXSHCOMPRESSQUALITYTYPE use (D3DXSHCQUAL_FASTLOWQUALITY=>1,
D3DXSHCQUAL_SLOWHIGHQUALITY=>2,
D3DXSHCQUAL_FORCE_DWORD=>16#7fffffff#);
subtype D3DXSHCOMPRESSQUALITYTYPE is tagD3DXSHCOMPRESSQUALITYTYPE;
type tagD3DXSHGPUSIMOPT is (D3DXSHGPUSIMOPT_SHADOWRES512,
D3DXSHGPUSIMOPT_SHADOWRES256,
D3DXSHGPUSIMOPT_SHADOWRES1024,
D3DXSHGPUSIMOPT_SHADOWRES2048,
D3DXSHGPUSIMOPT_HIGHQUALITY,
D3DXSHGPUSIMOPT_FORCE_DWORD);
for tagD3DXSHGPUSIMOPT use (D3DXSHGPUSIMOPT_SHADOWRES512=>0,
D3DXSHGPUSIMOPT_SHADOWRES256=>1,
D3DXSHGPUSIMOPT_SHADOWRES1024=>2,
D3DXSHGPUSIMOPT_SHADOWRES2048=>3,
D3DXSHGPUSIMOPT_HIGHQUALITY=>4,
D3DXSHGPUSIMOPT_FORCE_DWORD=>16#7fffffff#);
subtype D3DXSHGPUSIMOPT is tagD3DXSHGPUSIMOPT;
type tagD3DXSHMATERIAL is record
Diffuse:D3DCOLORVALUE;
bMirror:BOOL;
bSubSurf:BOOL;
RelativeIndexOfRefraction:FLOAT;
Absorption:D3DCOLORVALUE;
ReducedScattering:D3DCOLORVALUE;
end record;
subtype D3DXSHMATERIAL is tagD3DXSHMATERIAL;
type LPD3DXSHMATERIAL is access all D3DXSHMATERIAL;
type LPCD3DXSHMATERIAL is access constant D3DXSHMATERIAL;
type LPLPD3DXSHMATERIAL is access all LPD3DXSHMATERIAL;
type tagD3DXSHPRTSPLITMESHVERTDATA is record
uVertRemap:UINT;
uSubCluster:UINT;
ucVertStatus:UCHAR;
end record;
subtype D3DXSHPRTSPLITMESHVERTDATA is tagD3DXSHPRTSPLITMESHVERTDATA;
type LPD3DXSHPRTSPLITMESHVERTDATA is access all D3DXSHPRTSPLITMESHVERTDATA;
type LPCD3DXSHPRTSPLITMESHVERTDATA is access constant D3DXSHPRTSPLITMESHVERTDATA;
type tagD3DXSHPRTSPLITMESHCLUSTERDATA is record
uVertStart:UINT;
uVertLength:UINT;
uFaceStart:UINT;
uFaceLength:UINT;
uClusterStart:UINT;
uClusterLength:UINT;
end record;
subtype D3DXSHPRTSPLITMESHCLUSTERDATA is tagD3DXSHPRTSPLITMESHCLUSTERDATA;
type LPD3DXSHPRTSPLITMESHCLUSTERDATA is access all D3DXSHPRTSPLITMESHCLUSTERDATA;
type LPCD3DXSHPRTSPLITMESHCLUSTERDATA is access constant D3DXSHPRTSPLITMESHCLUSTERDATA;
type LPD3DXSHPRTSIMCB is access function(fPercentDone:float;lpUserContext:LPVOID) return HRESULT with Convention=>stdcall;
IID_ID3DXPRTBuffer:constant win32.rpcdce.GUID:=(16#f1827e47#,16#a8#,16#49cd#,(16#90#,16#8c#,16#9d#,16#11#,16#95#,16#5f#,16#87#,16#28#));
IID_ID3DXPRTCompBuffer:constant win32.rpcdce.GUID:=(16#a758d465#,16#fe8d#,16#45ad#,(16#9c#,16#f0#,16#d0#,16#1e#,16#56#,16#26#,16#6a#,16#7#));
IID_ID3DXTextureGutterHelper:constant win32.rpcdce.GUID:=(16#838f01ec#,16#9729#,16#4527#,(16#aa#,16#db#,16#df#,16#70#,16#ad#,16#e7#,16#fe#,16#a9#));
IID_ID3DXPRTEngine:constant win32.rpcdce.GUID:=(16#683a4278#,16#cd5f#,16#4d24#,(16#90#,16#ad#,16#c4#,16#e1#,16#b6#,16#85#,16#5d#,16#53#));
--
-- Interface ID3DXPRTBuffer
--
type ID3DXPRTBuffer is record
QueryInterface:access procedure(THIS:LPID3DXPRTBuffer;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXPRTBuffer) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXPRTBuffer) return ULONG with Convention=>Stdcall;
GetNumSamples:access function(THIS:LPID3DXPRTBuffer) return UINT with Convention=>Stdcall;
GetNumCoeffs:access function(THIS:LPID3DXPRTBuffer) return UINT with Convention=>Stdcall;
GetNumChannels:access function(THIS:LPID3DXPRTBuffer) return UINT with Convention=>Stdcall;
IsTexture:access function(THIS:LPID3DXPRTBuffer) return BOOL with Convention=>Stdcall;
GetWidth:access function(THIS:LPID3DXPRTBuffer) return UINT with Convention=>Stdcall;
GetHeight:access function(THIS:LPID3DXPRTBuffer) return UINT with Convention=>Stdcall;
Resize:access procedure(THIS:LPID3DXPRTBuffer;NewSize:UINT) with Convention=>Stdcall;
LockBuffer:access procedure(THIS:LPID3DXPRTBuffer;Start:UINT;NumSamples:UINT;ppData:access win32.LPFLOAT) with Convention=>Stdcall;
UnlockBuffer:access procedure(THIS:LPID3DXPRTBuffer) with Convention=>Stdcall;
ScaleBuffer:access procedure(THIS:LPID3DXPRTBuffer;Scale:FLOAT) with Convention=>Stdcall;
AddBuffer:access procedure(THIS:LPID3DXPRTBuffer;pBuffer:LPD3DXPRTBUFFER) with Convention=>Stdcall;
AttachGH:access procedure(THIS:LPID3DXPRTBuffer;hlp:LPD3DXTEXTUREGUTTERHELPER) with Convention=>Stdcall;
ReleaseGH:access procedure(THIS:LPID3DXPRTBuffer) with Convention=>Stdcall;
EvalGH:access procedure(THIS:LPID3DXPRTBuffer) with Convention=>Stdcall;
ExtractTexture:access procedure(THIS:LPID3DXPRTBuffer;Channel:UINT;StartCoefficient:UINT;NumCoefficients:UINT;pTexture:LPDIRECT3DTEXTURE9) with Convention=>Stdcall;
ExtractToMesh:access procedure(THIS:LPID3DXPRTBuffer;NumCoefficients:UINT;Usage:D3DDECLUSAGE;UsageIndexStart:UINT;pScene:LPD3DXMESH) with Convention=>Stdcall;
end record;
--
-- Interface ID3DXPRTCompBuffer
--
type ID3DXPRTCompBuffer;
type LPID3DXPRTCompBuffer is access all ID3DXPRTCompBuffer;
type LPD3DXPRTCOMPBUFFER is access all ID3DXPRTCompBuffer;
type LPLPD3DXPRTCompBuffer is access all LPD3DXPRTCompBuffer;
type ID3DXPRTCompBuffer is record
QueryInterface:access procedure(THIS:LPID3DXPRTCompBuffer;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXPRTCompBuffer) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXPRTCompBuffer) return ULONG with Convention=>Stdcall;
GetNumSamples:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
GetNumCoeffs:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
GetNumChannels:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
IsTexture:access function(THIS:LPID3DXPRTCompBuffer) return BOOL with Convention=>Stdcall;
GetWidth:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
GetHeight:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
GetNumClusters:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
GetNumPCA:access function(THIS:LPID3DXPRTCompBuffer) return UINT with Convention=>Stdcall;
NormalizeData:access procedure(THIS:LPID3DXPRTCompBuffer) with Convention=>Stdcall;
ExtractBasis:access procedure(THIS:LPID3DXPRTCompBuffer;Cluster:UINT;pClusterBasis:win32.LPFLOAT) with Convention=>Stdcall;
ExtractClusterIDs:access procedure(THIS:LPID3DXPRTCompBuffer;pClusterIDs:win32.LPUINT) with Convention=>Stdcall;
ExtractPCA:access procedure(THIS:LPID3DXPRTCompBuffer;StartPCA:UINT;NumExtract:UINT;pPCACoefficients:win32.LPFLOAT) with Convention=>Stdcall;
ExtractTexture:access procedure(THIS:LPID3DXPRTCompBuffer;StartPCA:UINT;NumpPCA:UINT;pTexture:LPDIRECT3DTEXTURE9) with Convention=>Stdcall;
ExtractToMesh:access procedure(THIS:LPID3DXPRTCompBuffer;NumPCA:UINT;Usage:D3DDECLUSAGE;UsageIndexStart:UINT;pScene:LPD3DXMESH) with Convention=>Stdcall;
end record;
--
-- Interface ID3DXTextureGutterHelper
--
type ID3DXTextureGutterHelper is record
QueryInterface:access procedure(THIS:LPID3DXTextureGutterHelper;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXTextureGutterHelper) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXTextureGutterHelper) return ULONG with Convention=>Stdcall;
GetWidth:access function(THIS:LPID3DXTextureGutterHelper) return UINT with Convention=>Stdcall;
GetHeight:access function(THIS:LPID3DXTextureGutterHelper) return UINT with Convention=>Stdcall;
ApplyGuttersFloat:access procedure(THIS:LPID3DXTextureGutterHelper;pDataIn:win32.LPFLOAT;NumCoeffs:UINT;Width:UINT;Height:UINT) with Convention=>Stdcall;
ApplyGuttersTex:access procedure(THIS:LPID3DXTextureGutterHelper;pTexture:LPDIRECT3DTEXTURE9) with Convention=>Stdcall;
ApplyGuttersPRT:access procedure(THIS:LPID3DXTextureGutterHelper;pBuffer:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ResampleTex:access procedure(THIS:LPID3DXTextureGutterHelper;pTextureIn:LPDIRECT3DTEXTURE9;pMeshIn:LPD3DXMESH;Usage:D3DDECLUSAGE;UsageIndex:UINT;pTextureOut:LPDIRECT3DTEXTURE9) with Convention=>Stdcall;
GetFaceMap:access procedure(THIS:LPID3DXTextureGutterHelper;pFaceData:win32.LPUINT) with Convention=>Stdcall;
GetBaryMap:access procedure(THIS:LPID3DXTextureGutterHelper;pBaryData:LPD3DXVECTOR2) with Convention=>Stdcall;
GetTexelMap:access procedure(THIS:LPID3DXTextureGutterHelper;pTexelData:LPD3DXVECTOR2) with Convention=>Stdcall;
GetGutterMap:access procedure(THIS:LPID3DXTextureGutterHelper;pGutterData:LPBYTE) with Convention=>Stdcall;
SetFaceMap:access procedure(THIS:LPID3DXTextureGutterHelper;pFaceData:win32.LPUINT) with Convention=>Stdcall;
SetBaryMap:access procedure(THIS:LPID3DXTextureGutterHelper;pBaryData:LPD3DXVECTOR2) with Convention=>Stdcall;
SetTexelMap:access procedure(THIS:LPID3DXTextureGutterHelper;pTexelData:LPD3DXVECTOR2) with Convention=>Stdcall;
SetGutterMap:access procedure(THIS:LPID3DXTextureGutterHelper;pGutterData:LPBYTE) with Convention=>Stdcall;
end record;
--
-- Interface ID3DXPRTEngine
--
type ID3DXPRTEngine;
type LPID3DXPRTEngine is access all ID3DXPRTEngine;
type LPD3DXPRTENGINE is access all ID3DXPRTEngine;
type LPLPD3DXPRTENGINE is access all ID3DXPRTEngine;
type ID3DXPRTEngine is record
QueryInterface:access procedure(THIS:LPID3DXPRTEngine;iid:REFIID;ppv:WIN32.LPLPVOID) with Convention=>Stdcall;
AddRef:access function(THIS:LPID3DXPRTEngine) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID3DXPRTEngine) return ULONG with Convention=>Stdcall;
SetMeshMaterials:access procedure(THIS:LPID3DXPRTEngine;ppMaterials:access LPCD3DXSHMATERIAL;NumMeshes:UINT;NumChannels:UINT;bSetAlbedo:BOOL;fLengthScale:FLOAT) with Convention=>Stdcall;
SetPerVertexAlbedo:access procedure(THIS:LPID3DXPRTEngine;pDataIn:LPCVOID;NumChannels:UINT;Stride:UINT) with Convention=>Stdcall;
SetPerTexelAlbedo:access procedure(THIS:LPID3DXPRTEngine;pAlbedoTexture:LPDIRECT3DTEXTURE9;NumChannels:UINT;pGH:LPD3DXTEXTUREGUTTERHELPER) with Convention=>Stdcall;
GetVertexAlbedo:access procedure(THIS:LPID3DXPRTEngine;pVertColors:LPD3DXCOLOR;NumVerts:UINT) with Convention=>Stdcall;
SetPerTexelNormal:access procedure(THIS:LPID3DXPRTEngine;pNormalTexture:LPDIRECT3DTEXTURE9) with Convention=>Stdcall;
ExtractPerVertexAlbedo:access procedure(THIS:LPID3DXPRTEngine;pMesh:LPD3DXMESH;Usage:D3DDECLUSAGE;NumChannels:UINT) with Convention=>Stdcall;
ResampleBuffer:access procedure(THIS:LPID3DXPRTEngine;pBufferIn:LPD3DXPRTBUFFER;pBufferOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
GetAdaptedMesh:access procedure(THIS:LPID3DXPRTEngine;pD3DDevice:LPDIRECT3DDEVICE9;pFaceRemap:win32.LPUINT;pVertRemap:win32.LPUINT;pfVertWeights:win32.LPFLOAT;ppMesh:access LPD3DXMESH) with Convention=>Stdcall;
GetNumVerts:access function(THIS:LPID3DXPRTEngine) return UINT with Convention=>Stdcall;
GetNumFaces:access function(THIS:LPID3DXPRTEngine) return UINT with Convention=>Stdcall;
SetMinMaxIntersection:access procedure(THIS:LPID3DXPRTEngine;fMin:FLOAT;fMax:FLOAT) with Convention=>Stdcall;
RobustMeshRefine:access procedure(THIS:LPID3DXPRTEngine;MinEdgeLength:FLOAT;MaxSubdiv:UINT) with Convention=>Stdcall;
SetSamplingInfo:access procedure(THIS:LPID3DXPRTEngine;NumRays:UINT;UseSphere:BOOL;UseCosine:BOOL;Adaptive:BOOL;AdaptiveThresh:FLOAT) with Convention=>Stdcall;
ComputeDirectLightingSH:access procedure(THIS:LPID3DXPRTEngine;SHOrder:UINT;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeDirectLightingSHAdaptive:access procedure(THIS:LPID3DXPRTEngine;SHOrder:UINT;AdaptiveThresh:FLOAT;MinEdgeLength:FLOAT;MaxSubdiv:UINT;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeDirectLightingSHGPU:access procedure(THIS:LPID3DXPRTEngine;pD3DDevice:LPDIRECT3DDEVICE9;Flags:UINT;SHOrder:UINT;ZBias:FLOAT;ZAngleBias:FLOAT;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeSS:access procedure(THIS:LPID3DXPRTEngine;pDataIn:LPD3DXPRTBUFFER;pDataOut:LPD3DXPRTBUFFER;pDataTotal:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeSSAdaptive:access procedure(THIS:LPID3DXPRTEngine;pDataIn:LPD3DXPRTBUFFER;AdaptiveThresh:FLOAT;MinEdgeLength:FLOAT;MaxSubdiv:UINT;pDataOut:LPD3DXPRTBUFFER;pDataTotal:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeBounce:access procedure(THIS:LPID3DXPRTEngine;pDataIn:LPD3DXPRTBUFFER;pDataOut:LPD3DXPRTBUFFER;pDataTotal:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeBounceAdaptive:access procedure(THIS:LPID3DXPRTEngine;pDataIn:LPD3DXPRTBUFFER;AdaptiveThresh:FLOAT;MinEdgeLength:FLOAT;MaxSubdiv:UINT;pDataOut:LPD3DXPRTBUFFER;pDataTotal:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeVolumeSamplesDirectSH:access procedure(THIS:LPID3DXPRTEngine;SHOrderIn:UINT;SHOrderOut:UINT;NumVolSamples:UINT;pSampleLocs:LPCD3DXVECTOR3;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeVolumeSamples:access procedure(THIS:LPID3DXPRTEngine;pSurfDataIn:LPD3DXPRTBUFFER;SHOrder:UINT;NumVolSamples:UINT;pSampleLocs:LPCD3DXVECTOR3;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeSurfSamplesDirectSH:access procedure(THIS:LPID3DXPRTEngine;SHOrder:UINT;NumSamples:UINT;pSampleLocs:LPCD3DXVECTOR3;pSampleNorms:LPCD3DXVECTOR3;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ComputeSurfSamplesBounce:access procedure(THIS:LPID3DXPRTEngine;pSurfDataIn:LPD3DXPRTBUFFER;NumSamples:UINT;pSampleLocs:LPCD3DXVECTOR3;pSampleNorms:LPCD3DXVECTOR3;pDataOut:LPD3DXPRTBUFFER;pDataTotal:LPD3DXPRTBUFFER) with Convention=>Stdcall;
FreeSSData:access procedure(THIS:LPID3DXPRTEngine) with Convention=>Stdcall;
FreeBounceData:access procedure(THIS:LPID3DXPRTEngine) with Convention=>Stdcall;
ComputeLDPRTCoeffs:access procedure(THIS:LPID3DXPRTEngine;pDataIn:LPD3DXPRTBUFFER;SHOrder:UINT;pNormOut:LPD3DXVECTOR3;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
ScaleMeshChunk:access procedure(THIS:LPID3DXPRTEngine;uMeshChunk:UINT;fScale:FLOAT;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
MultiplyAlbedo:access procedure(THIS:LPID3DXPRTEngine;pDataOut:LPD3DXPRTBUFFER) with Convention=>Stdcall;
SetCallBack:access procedure(THIS:LPID3DXPRTEngine;pCB:LPD3DXSHPRTSIMCB;Frequency:FLOAT;lpUserContext:LPVOID) with Convention=>Stdcall;
ShadowRayIntersects:access function(THIS:LPID3DXPRTEngine;pRayPos:LPCD3DXVECTOR3;pRayDir:LPCD3DXVECTOR3) return BOOL with Convention=>Stdcall;
ClosestRayIntersects:access function(THIS:LPID3DXPRTEngine;pRayPos:LPCD3DXVECTOR3;pRayDir:LPCD3DXVECTOR3;pFaceIndex:LPDWORD;pU:WIN32.LPFLOAT;pV:LPFLOAT;pDist:WIN32.LPFLOAT) return BOOL with Convention=>Stdcall;
end record;
type tagXFILECOMPRESSEDANIMATIONSET is record
CompressedBlockSize:DWORD;
TicksPerSec:FLOAT;
PlaybackType:DWORD;
BufferLength:DWORD;
end record;
subtype XFILECOMPRESSEDANIMATIONSET is tagXFILECOMPRESSEDANIMATIONSET;
type LPXFILECOMPRESSEDANIMATIONSET is access all XFILECOMPRESSEDANIMATIONSET;
--
-- APIs
--
function D3DXCreateMesh(NumFaces:DWORD;NumVertices:DWORD;Options:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateMesh";
function D3DXCreateMeshFVF(NumFaces:DWORD;NumVertices:DWORD;Options:DWORD;FVF:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateMeshFVF";
function D3DXCreateSPMesh(pMesh:LPD3DXMESH;pAdjacency:access constant DWORD;pVertexAttributeWeights:LPCD3DXATTRIBUTEWEIGHTS;pVertexWeights:LPCFLOAT;ppSMesh:LPLPD3DXSPMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateSPMesh";
function D3DXCleanMesh(CleanType:D3DXCLEANTYPE;pMeshIn:LPD3DXMESH;pAdjacencyIn:access constant DWORD;ppMeshOut:access LPD3DXMESH;pAdjacencyOut:LPDWORD;ppErrorsAndWarnings:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCleanMesh";
function D3DXValidMesh(pMeshIn:LPD3DXMESH;pAdjacency:access constant DWORD;ppErrorsAndWarnings:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXValidMesh";
function D3DXGeneratePMesh(pMesh:LPD3DXMESH;pAdjacency:access constant DWORD;pVertexAttributeWeights:LPCD3DXATTRIBUTEWEIGHTS;pVertexWeights:LPCFLOAT;MinValue:DWORD;Options:DWORD;ppPMesh:LPLPD3DXPMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXGeneratePMesh";
function D3DXSimplifyMesh(pMesh:LPD3DXMESH;pAdjacency:access constant DWORD;pVertexAttributeWeights:LPCD3DXATTRIBUTEWEIGHTS;pVertexWeights:LPCFLOAT;MinValue:DWORD;Options:DWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSimplifyMesh";
function D3DXComputeBoundingSphere(pFirstPosition:LPCD3DXVECTOR3;NumVertices:DWORD;dwStride:DWORD;pCenter:LPD3DXVECTOR3;pRadius:LPFLOAT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeBoundingSphere";
function D3DXComputeBoundingBox(pFirstPosition:LPCD3DXVECTOR3;NumVertices:DWORD;dwStride:DWORD;pMin:LPD3DXVECTOR3;pMax:LPD3DXVECTOR3) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeBoundingBox";
function D3DXComputeNormals(pMesh:LPD3DXBASEMESH;pAdjacency:access constant DWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeNormals";
function D3DXCreateBuffer(NumBytes:DWORD;ppBuffer:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateBuffer";
function D3DXLoadMeshFromXA(pFilename:LPCSTR;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadMeshFromXA";
function D3DXLoadMeshFromX(pFilename:LPCSTR;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadMeshFromXA";
function D3DXLoadMeshFromXW(pFilename:LPCWSTR;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadMeshFromXW";
function D3DXLoadMeshFromXInMemory(Memory:LPCVOID;SizeOfMemory:DWORD;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadMeshFromXInMemory";
function D3DXLoadMeshFromXResource(Module:HMODULE;Name:LPCSTR;Typ:LPCSTR;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadMeshFromXResource";
function D3DXSaveMeshToXA(pFilename:LPCSTR;pMesh:LPD3DXMESH;pAdjacency:access constant DWORD;pMaterials:LPCD3DXMATERIAL;pEffectInstances:LPCD3DXEFFECTINSTANCE;NumMaterials:DWORD;Format:DWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSaveMeshToXA";
function D3DXSaveMeshToX(pFilename:LPCSTR;pMesh:LPD3DXMESH;pAdjacency:access constant DWORD;pMaterials:LPCD3DXMATERIAL;pEffectInstances:LPCD3DXEFFECTINSTANCE;NumMaterials:DWORD;Format:DWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSaveMeshToXA";
function D3DXSaveMeshToXW(pFilename:LPCWSTR;pMesh:LPD3DXMESH;pAdjacency:access constant DWORD;pMaterials:LPCD3DXMATERIAL;pEffectInstances:LPCD3DXEFFECTINSTANCE;NumMaterials:DWORD;Format:DWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSaveMeshToXW";
function D3DXCreatePMeshFromStream(pStream:access IStream;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppPMesh:LPLPD3DXPMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreatePMeshFromStream";
function D3DXCreateSkinInfo(NumVertices:DWORD;pDeclaration:access constant D3DVERTEXELEMENT9;NumBones:DWORD;ppSkinInfo:LPLPD3DXSKININFO) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateSkinInfo";
function D3DXCreateSkinInfoFVF(NumVertices:DWORD;FVF:DWORD;NumBones:DWORD;ppSkinInfo:LPLPD3DXSKININFO) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateSkinInfoFVF";
function D3DXLoadMeshFromXof(pxofMesh:LPD3DXFILEDATA;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:LPDWORD;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadMeshFromXof";
function D3DXLoadSkinMeshFromXof(pxofMesh:LPD3DXFILEDATA;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppAdjacency:LPLPD3DXBUFFER;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pMatOut:LPDWORD;ppSkinInfo:LPLPD3DXSKININFO;ppMesh:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadSkinMeshFromXof";
function D3DXCreateSkinInfoFromBlendedMesh(pMesh:LPD3DXBASEMESH;NumBones:DWORD;pBoneCombinationTable:LPCD3DXBONECOMBINATION;ppSkinInfo:LPLPD3DXSKININFO) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateSkinInfoFromBlendedMesh";
function D3DXTessellateNPatches(pMeshIn:LPD3DXMESH;pAdjacencyIn:access constant DWORD;NumSegs:FLOAT;QuadraticInterpNormals:BOOL;ppMeshOut:access LPD3DXMESH;ppAdjacencyOut:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXTessellateNPatches";
function D3DXGenerateOutputDecl(pOutput:LPD3DVERTEXELEMENT9;pInput:access constant D3DVERTEXELEMENT9) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXGenerateOutputDecl";
function D3DXLoadPatchMeshFromXof(pXofObjMesh:LPD3DXFILEDATA;Options:DWORD;pD3DDevice:LPDIRECT3DDEVICE9;ppMaterials:LPLPD3DXBUFFER;ppEffectInstances:LPLPD3DXBUFFER;pNumMaterials:PDWORD;ppMesh:LPLPD3DXPATCHMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPatchMeshFromXof";
function D3DXRectPatchSize(pfNumSegs:LPCFLOAT;pdwTriangles:LPDWORD;pdwVertices:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXRectPatchSize";
function D3DXTriPatchSize(pfNumSegs:LPCFLOAT;pdwTriangles:LPDWORD;pdwVertices:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXTriPatchSize";
function D3DXTessellateRectPatch(pVB:LPDIRECT3DVERTEXBUFFER9;pNumSegs:LPCFLOAT;pdwInDecl:access constant D3DVERTEXELEMENT9;pRectPatchInfo:LPCD3DRECTPATCH_INFO;pMesh:LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXTessellateRectPatch";
function D3DXTessellateTriPatch(pVB:LPDIRECT3DVERTEXBUFFER9;pNumSegs:LPCFLOAT;pInDecl:access constant D3DVERTEXELEMENT9;pTriPatchInfo:LPCD3DTRIPATCH_INFO;pMesh:LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXTessellateTriPatch";
function D3DXCreateNPatchMesh(pMeshSysMem:LPD3DXMESH;pPatchMesh:LPLPD3DXPATCHMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateNPatchMesh";
function D3DXCreatePatchMesh(pInfo:LPCD3DXPATCHINFO;dwNumPatches:DWORD;dwNumVertices:DWORD;dwOptions:DWORD;pDecl:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;pPatchMesh:LPLPD3DXPATCHMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreatePatchMesh";
function D3DXValidPatchMesh(pMesh:LPD3DXPATCHMESH;dwcDegenerateVertices:LPDWORD;dwcDegeneratePatches:LPDWORD;ppErrorsAndWarnings:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXValidPatchMesh";
function D3DXGetFVFVertexSize(FVF:DWORD) return UINT with Import,Convention=>stdcall,external_name=>"D3DXGetFVFVertexSize";
function D3DXGetDeclVertexSize(pDecl:access constant D3DVERTEXELEMENT9;Stream:DWORD) return UINT with Import,Convention=>stdcall,external_name=>"D3DXGetDeclVertexSize";
function D3DXGetDeclLength(pDecl:access constant D3DVERTEXELEMENT9) return UINT with Import,Convention=>stdcall,external_name=>"D3DXGetDeclLength";
function D3DXDeclaratorFromFVF(FVF:DWORD;pDeclarator:D3DVERTEXELEMENT9_Array) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXDeclaratorFromFVF";
function D3DXFVFFromDeclarator(pDeclarator:access constant D3DVERTEXELEMENT9;pFVF:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXFVFFromDeclarator";
function D3DXWeldVertices(pMesh:LPD3DXMESH;Flags:DWORD;pEpsilons:LPCD3DXWELDEPSILONS;pAdjacencyIn:access constant DWORD;pAdjacencyOut:LPDWORD;pFaceRemap:LPDWORD;ppVertexRemap:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXWeldVertices";
function D3DXIntersect(pMesh:LPD3DXBASEMESH;pRayPos:LPCD3DXVECTOR3;pRayDir:LPCD3DXVECTOR3;pHit:LPBOOL;pFaceIndex:LPDWORD;pU:LPFLOAT;pV:LPFLOAT;pDist:LPFLOAT;ppAllHits:LPLPD3DXBUFFER;pCountOfHits:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXIntersect";
function D3DXIntersectSubset(pMesh:LPD3DXBASEMESH;AttribId:DWORD;pRayPos:LPCD3DXVECTOR3;pRayDir:LPCD3DXVECTOR3;pHit:LPBOOL;pFaceIndex:LPDWORD;pU:LPFLOAT;pV:LPFLOAT;pDist:LPFLOAT;ppAllHits:LPLPD3DXBUFFER;pCountOfHits:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXIntersectSubset";
function D3DXSphereBoundProbe(pCenter:LPCD3DXVECTOR3;Radius:FLOAT;pRayPosition:LPCD3DXVECTOR3;pRayDirection:LPCD3DXVECTOR3) return BOOL with Import,Convention=>stdcall,external_name=>"D3DXSphereBoundProbe";
function D3DXBoxBoundProbe(pMin:LPCD3DXVECTOR3;pMax:LPCD3DXVECTOR3;pRayPosition:LPCD3DXVECTOR3;pRayDirection:LPCD3DXVECTOR3) return BOOL with Import,Convention=>stdcall,external_name=>"D3DXBoxBoundProbe";
function D3DXComputeTangentFrame(pMesh:LPID3DXMesh;dwOptions:DWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeTangentFrame";
function D3DXComputeTangentFrameEx(pMesh:LPID3DXMesh;dwTextureInSemantic:DWORD;dwTextureInIndex:DWORD;dwUPartialOutSemantic:DWORD;dwUPartialOutIndex:DWORD;dwVPartialOutSemantic:DWORD;dwVPartialOutIndex:DWORD;dwNormalOutSemantic:DWORD;dwNormalOutIndex:DWORD;dwOptions:DWORD;pdwAdjacency:access constant DWORD;fPartialEdgeThreshold:FLOAT;fSingularPointThreshold:FLOAT;fNormalEdgeThreshold:FLOAT;ppMeshOut:LPLPID3DXMesh;ppVertexMapping:LPLPID3DXBuffer) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeTangentFrameEx";
function D3DXComputeTangent(Mesh:LPD3DXMESH;TexStage:DWORD;TangentIndex:DWORD;BinormIndex:DWORD;Wrap:DWORD;pAdjacency:access constant DWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeTangent";
type LPD3DXUVATLASCB is access function(fPercentDone:float;lpUserContext:lpvoid) return HRESULT with Convention=>stdcall;
type LPD3DXIMTSIGNALCALLBACK is access function(uv:access constant D3DXVECTOR2;uPrimitiveID:uint;uSignalDimension:uint;pUserData:LPVOID;pfSignalOut:LPFLOAT) return HRESULT with Convention=>stdcall;
function D3DXUVAtlasCreate(pMesh:LPD3DXMESH;uMaxChartNumber:UINT;fMaxStretch:FLOAT;uWidth:UINT;uHeight:UINT;fGutter:FLOAT;dwTextureIndex:DWORD;pdwAdjacency:access constant DWORD;pdwFalseEdgeAdjacency:access constant DWORD;pfIMTArray:LPCFLOAT;pStatusCallback:LPD3DXUVATLASCB;fCallbackFrequency:FLOAT;pUserContext:LPVOID;dwOptions:DWORD;ppMeshOut:access LPD3DXMESH;ppFacePartitioning:LPLPD3DXBUFFER;ppVertexRemapArray:LPLPD3DXBUFFER;pfMaxStretchOut:LPFLOAT;puNumChartsOut:LPUINT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXUVAtlasCreate";
function D3DXUVAtlasPartition(pMesh:LPD3DXMESH;uMaxChartNumber:UINT;fMaxStretch:FLOAT;dwTextureIndex:DWORD;pdwAdjacency:access constant DWORD;pdwFalseEdgeAdjacency:access constant DWORD;pfIMTArray:LPCFLOAT;pStatusCallback:LPD3DXUVATLASCB;fCallbackFrequency:FLOAT;pUserContext:LPVOID;dwOptions:DWORD;ppMeshOut:access LPD3DXMESH;ppFacePartitioning:LPLPD3DXBUFFER;ppVertexRemapArray:LPLPD3DXBUFFER;ppPartitionResultAdjacency:LPLPD3DXBUFFER;pfMaxStretchOut:LPFLOAT;puNumChartsOut:LPUINT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXUVAtlasPartition";
function D3DXUVAtlasPack(pMesh:LPID3DXMesh;uWidth:UINT;uHeight:UINT;fGutter:FLOAT;dwTextureIndex:DWORD;pdwPartitionResultAdjacency:access constant DWORD;pStatusCallback:LPD3DXUVATLASCB;fCallbackFrequency:FLOAT;pUserContext:LPVOID;dwOptions:DWORD;pFacePartitioning:LPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXUVAtlasPack";
function D3DXComputeIMTFromSignal(pMesh:LPD3DXMESH;dwTextureIndex:DWORD;uSignalDimension:UINT;fMaxUVDistance:FLOAT;dwOptions:DWORD;pSignalCallback:LPD3DXIMTSIGNALCALLBACK;pUserData:LPVOID;pStatusCallback:LPD3DXUVATLASCB;pUserContext:LPVOID;ppIMTData:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeIMTFromSignal";
function D3DXComputeIMTFromPerTexelSignal(pMesh:LPD3DXMESH;dwTextureIndex:DWORD;pfTexelSignal:LPFLOAT;uWidth:UINT;uHeight:UINT;uSignalDimension:UINT;uComponents:UINT;dwOptions:DWORD;pStatusCallback:LPD3DXUVATLASCB;pUserContext:LPVOID;ppIMTData:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeIMTFromPerTexelSignal";
function D3DXComputeIMTFromTexture(pMesh:LPD3DXMESH;pTexture:LPDIRECT3DTEXTURE9;dwTextureIndex:DWORD;dwOption:DWORD;pStatusCallback:LPD3DXUVATLASCB;pUserContext:LPVOID;ppIMTData:access LPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeIMTFromTexture";
function D3DXComputeIMTFromPerVertexSignal(pMesh:LPD3DXMESH;pfVertexSignal:LPCFLOAT;uSignalDimension:UINT;uSignalStride:UINT;dwOptions:DWORD;pStatusCallback:LPD3DXUVATLASCB;pUserContext:LPVOID;ppIMTData:access LPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXComputeIMTFromPerVertexSignal";
function D3DXConvertMeshSubsetToSingleStrip(MeshIn:LPD3DXBASEMESH;AttribId:DWORD;IBOptions:DWORD;ppIndexBuffer:access LPDIRECT3DINDEXBUFFER9;pNumIndices:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXConvertMeshSubsetToSingleStrip";
function D3DXConvertMeshSubsetToStrips(MeshIn:LPD3DXBASEMESH;AttribId:DWORD;IBOptions:DWORD;ppIndexBuffer:access LPDIRECT3DINDEXBUFFER9;pNumIndices:LPDWORD;ppStripLengths:LPLPD3DXBUFFER;pNumStrips:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXConvertMeshSubsetToStrips";
function D3DXOptimizeFaces(pbIndices:LPCVOID;cFaces:UINT;cVertices:UINT;b32BitIndices:BOOL;pFaceRemap:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXOptimizeFaces";
function D3DXOptimizeVertices(pbIndices:LPCVOID;cFaces:UINT;cVertices:UINT;b32BitIndices:BOOL;pVertexRemap:LPDWORD) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXOptimizeVertices";
function D3DXCreatePRTBuffer(NumSamples:UINT;NumCoeffs:UINT;NumChannels:UINT;ppBuffer:LPLPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreatePRTBuffer";
function D3DXCreatePRTBufferTex(Width:UINT;Height:UINT;NumCoeffs:UINT;NumChannels:UINT;ppBuffer:LPLPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreatePRTBufferTex";
function D3DXLoadPRTBufferFromFileA(pFilename:LPCSTR;ppBuffer:LPLPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPRTBufferFromFileA";
function D3DXLoadPRTBufferFromFile(pFilename:LPCSTR;ppBuffer:LPLPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPRTBufferFromFileA";
function D3DXLoadPRTBufferFromFileW(pFilename:LPCWSTR;ppBuffer:LPLPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPRTBufferFromFileW";
function D3DXSavePRTBufferToFileA(pFileName:LPCSTR;pBuffer:LPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSavePRTBufferToFileA";
function D3DXSavePRTBufferToFile(pFileName:LPCSTR;pBuffer:LPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSavePRTBufferToFileA";
function D3DXSavePRTBufferToFileW(pFileName:LPCWSTR;pBuffer:LPD3DXPRTBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSavePRTBufferToFileW";
function D3DXLoadPRTCompBufferFromFileA(pFilename:LPCSTR;ppBuffer:LPLPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPRTCompBufferFromFileA";
function D3DXLoadPRTCompBufferFromFile(pFilename:LPCSTR;ppBuffer:LPLPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPRTCompBufferFromFileA";
function D3DXLoadPRTCompBufferFromFileW(pFilename:LPCWSTR;ppBuffer:LPLPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXLoadPRTCompBufferFromFileW";
function D3DXSavePRTCompBufferToFileA(pFileName:LPCSTR;pBuffer:LPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSavePRTCompBufferToFileA";
function D3DXSavePRTCompBufferToFile(pFileName:LPCSTR;pBuffer:LPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSavePRTCompBufferToFileA";
function D3DXSavePRTCompBufferToFileW(pFileName:LPCWSTR;pBuffer:LPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSavePRTCompBufferToFileW";
function D3DXCreatePRTCompBuffer(Quality:D3DXSHCOMPRESSQUALITYTYPE;NumClusters:UINT;NumPCA:UINT;pCB:LPD3DXSHPRTSIMCB;lpUserContext:LPVOID;pBufferIn:LPD3DXPRTBUFFER;ppBufferOut:LPLPD3DXPRTCOMPBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreatePRTCompBuffer";
function D3DXCreateTextureGutterHelper(Width:UINT;Height:UINT;pMesh:LPD3DXMESH;GutterSize:FLOAT;ppBuffer:LPLPD3DXTEXTUREGUTTERHELPER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateTextureGutterHelper";
function D3DXCreatePRTEngine(pMesh:LPD3DXMESH;pAdjacency:LPDWORD;ExtractUVs:BOOL;pBlockerMesh:LPD3DXMESH;ppEngine:LPLPD3DXPRTENGINE) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreatePRTEngine";
function D3DXConcatenateMeshes(ppMeshes:access LPD3DXMESH;NumMeshes:UINT;Options:DWORD;pGeomXForms:LPCD3DXMATRIX;pTextureXForms:LPCD3DXMATRIX;pDecl:access constant D3DVERTEXELEMENT9;pD3DDevice:LPDIRECT3DDEVICE9;ppMeshOut:access LPD3DXMESH) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXConcatenateMeshes";
function D3DXSHPRTCompSuperCluster(pClusterIDs:LPUINT;pScene:LPD3DXMESH;MaxNumClusters:UINT;NumClusters:UINT;pSuperClusterIDs:LPUINT;pNumSuperClusters:LPUINT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSHPRTCompSuperCluster";
function D3DXSHPRTCompSplitMeshSC(pClusterIDs:LPUINT;NumVertices:UINT;NumClusters:UINT;pSuperClusterIDs:LPUINT;NumSuperClusters:UINT;pInputIB:LPVOID;InputIBIs32Bit:BOOL;NumFaces:UINT;ppIBData:LPLPD3DXBUFFER;pIBDataLength:LPUINT;OutputIBIs32Bit:BOOL;ppFaceRemap:LPLPD3DXBUFFER;ppVertData:LPLPD3DXBUFFER;pVertDataLength:LPUINT;pSCClusterList:LPUINT;pSCData:LPD3DXSHPRTSPLITMESHCLUSTERDATA) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXSHPRTCompSplitMeshSC";
--
-- THE END
--
end d3dx9mesh;