Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1407 lines
47 KiB

  1. #undef LPVOID
  2. #undef DWORD
  3. #undef UINT
  4. #ifdef _WIN64
  5. #define HFONT HANDLE
  6. #else
  7. #define HFONT LONG
  8. #endif
  9. #define DWORD LONG
  10. #define UINT LONG
  11. #define LPVOID void *
  12. #define LPD3DXFONT D3DXFont *
  13. #define LPD3DXBUFFER D3DXBuffer *
  14. #define LPDIRECTXFILEDATA IUnknown *
  15. #define LPD3DXBASEMESH D3DXBaseMesh *
  16. #define LPD3DXMESH D3DXMesh *
  17. #define LPD3DXPMESH D3DXPMesh *
  18. #define LPD3DXSPMESH D3DXSPMesh *
  19. #define LPD3DXSKINMESH D3DXSkinMesh *
  20. //defined as IUnknown in wrapper code but
  21. //already defined in d3di.idl for VB typelib
  22. #ifdef C_ONLY
  23. #define LPDIRECT3DVERTEXBUFFER8 IUnknown*
  24. #define LPDIRECT3DINDEXBUFFER8 IUnknown*
  25. #define LPDIRECT3DDEVICE8 IUnknown*
  26. #define LPDIRECT3DTEXTURE8 IUnknown*
  27. #define LPDIRECT3DVOLUME8 IUnknown*
  28. #define LPDIRECT3DBASETEXTURE8 IUnknown*
  29. #define LPDIRECT3DCUBETEXTURE8 IUnknown*
  30. #define LPDIRECT3DSURFACE8 IUnknown*
  31. #define D3DPOOL LONG
  32. #define D3DCOLOR LONG
  33. #define D3DFORMAT LONG
  34. #define CONST_D3DFORMAT LONG
  35. #define CONST_D3DPOOL LONG
  36. #define CONST_D3DXIMAGE_FILEFORMAT LONG
  37. #else
  38. #define I_dxj_D3DX8 ID3DX8
  39. #define D3DXRTS_DESC_CDESC D3DXRTS_DESC
  40. #define D3DXATTRIBUTERANGE_CDESC D3DXATTRIBUTERANGE
  41. #define D3DXMATERIAL_CDESC D3DXMATERIAL
  42. #define D3DXDECLARATOR_CDESC D3DXDECLARATOR
  43. #define D3DXATTRIBUTEWEIGHTS_CDESC D3DXATTRIBUTEWEIGHTS
  44. #define GLYPHMETRICSFLOAT_CDESC GLYPHMETRICSFLOAT
  45. #define POINTFLOAT_CDESC POINTFLOAT
  46. #define LOGFONT_CDESC LOGFONT
  47. #define D3DXIMAGE_INFO_CDESC D3DXIMAGE_INFO
  48. #define D3DXBONECOMBINATION_CDESC D3DXBONECOMBINATION
  49. typedef enum CONST_D3DXIMAGE_FILEFORMAT
  50. {
  51. D3DXIFF_BMP = 0,
  52. D3DXIFF_JPG = 1,
  53. D3DXIFF_TGA = 2,
  54. D3DXIFF_PNG = 3,
  55. D3DXIFF_DDS = 4,
  56. D3DXIFF_PPM = 5,
  57. D3DXIFF_DIB = 6,
  58. D3DXIFF_FORCE_DWORD = 0x7fffffff
  59. } CONST_D3DXIMAGE_FILEFORMAT;
  60. [helpcontext(86596)]
  61. typedef enum CONST_D3DXERR {
  62. D3DXERR_CANNOTMODIFYINDEXBUFFER = 0x88760B54,
  63. D3DXERR_INVALIDMESH = 0x88760B55,
  64. D3DXERR_CANNOTATTRSORT = 0x88760B56,
  65. D3DXERR_SKINNINGNOTSUPPORTED= 0x88760B57,
  66. D3DXERR_TOOMANYINFLUENCES = 0x88760B58,
  67. D3DXERR_INVALIDDATA = 0x88760B59,
  68. D3DXERR_LOADEDMESHASNODATA = 0x88760B5A,
  69. } CONST_D3DXERR;
  70. [helpcontext(86597)]
  71. typedef enum CONST_D3DXMESH
  72. {
  73. // 32BIT meshes currently not supported
  74. D3DXMESH_32BIT = 0x001, // If set, then use 32 bit indices, if not set use 16 bit indices
  75. D3DXMESH_DONOTCLIP = 0x002,
  76. D3DXMESH_POINTS = 0x004,
  77. D3DXMESH_RTPATCHES = 0x008,
  78. D3DXMESH_NPATCHES = 0x4000,// Use D3DUSAGE_NPATCHES for VB & IB.
  79. D3DXMESH_VB_SYSTEMMEM = 0x010,
  80. D3DXMESH_VB_MANAGED = 0x020,
  81. D3DXMESH_VB_WRITEONLY = 0x040,
  82. D3DXMESH_VB_DYNAMIC = 0x080,
  83. D3DXMESH_IB_SYSTEMMEM = 0x100,
  84. D3DXMESH_IB_MANAGED = 0x200,
  85. D3DXMESH_IB_WRITEONLY = 0x400,
  86. D3DXMESH_IB_DYNAMIC = 0x800,
  87. D3DXMESH_VB_SHARE = 0x1000,
  88. D3DXMESH_USEHWONLY = 0x2000,
  89. D3DXMESH_SYSTEMMEM = 0x110,
  90. D3DXMESH_MANAGED = 0x220,
  91. D3DXMESH_WRITEONLY = 0x440,
  92. D3DXMESH_DYNAMIC = 0x880,
  93. } CONST_D3DXMESHENUM;
  94. [helpcontext(91001)]
  95. typedef enum CONST_D3DXASM
  96. {
  97. D3DXASM_DEBUG =1,
  98. D3DXASM_SKIPVALIDATION =2,
  99. } CONST_D3DXASM;
  100. [helpcontext(86600)]
  101. typedef enum CONST_D3DXMESHSIMP
  102. {
  103. D3DXMESHSIMP_VERTEX = 0x1,
  104. D3DXMESHSIMP_FACE = 0x2,
  105. } CONST_D3DXMESHSIMPENUM;
  106. [helpcontext(87110)]
  107. typedef enum CONST_DTFLAGS
  108. {
  109. DT_TOP =0x00000000, //yes winuser.h has DT_TOP and DT_LEFt set to 0
  110. DT_LEFT =0x00000000,
  111. DT_CENTER =0x00000001,
  112. DT_RIGHT =0x00000002,
  113. DT_VCENTER =0x00000004,
  114. DT_BOTTOM =0x00000008,
  115. DT_WORDBREAK =0x00000010,
  116. DT_SINGLELINE =0x00000020,
  117. DT_EXPANDTABS =0x00000040,
  118. DT_TABSTOP =0x00000080,
  119. DT_NOCLIP =0x00000100,
  120. DT_EXTERNALLEADING =0x00000200,
  121. DT_CALCRECT =0x00000400,
  122. DT_NOPREFIX =0x00000800,
  123. DT_INTERNAL =0x00001000,
  124. DT_EDITCONTROL =0x00002000,
  125. DT_PATH_ELLIPSIS =0x00004000,
  126. DT_END_ELLIPSIS =0x00008000,
  127. DT_MODIFYSTRING =0x00010000,
  128. DT_RTLREADING =0x00020000,
  129. DT_WORD_ELLIPSIS =0x00040000,
  130. DT_NOFULLWIDTHCHARBREAK =0x00080000,
  131. DT_HIDEPREFIX =0x00100000,
  132. DT_PREFIXONLY =0x00200000,
  133. } CONST_DTFLAGS ;
  134. [helpcontext(86599)]
  135. typedef enum CONST_D3DXMESHOPT
  136. {
  137. D3DXMESHOPT_COMPACT = 0x01000000,
  138. D3DXMESHOPT_ATTRSORT = 0x02000000,
  139. D3DXMESHOPT_VERTEXCACHE = 0x04000000,
  140. D3DXMESHOPT_STRIPREORDER = 0x08000000,
  141. D3DXMESHOPT_IGNOREVERTS = 0x10000000, // optimize faces only, don't touch vertices
  142. D3DXMESHOPT_SHAREVB = 0x20000000,
  143. } CONST_D3DXMESHOPTENUM;
  144. [helpcontext(86598)]
  145. typedef enum CONST_D3DXMESHMISC
  146. {
  147. UNUSED16 =0x0000ffff,
  148. UNUSED32 =0xffffffff,
  149. MAX_FVF_DECL_SIZE = 20,
  150. } CONST_D3DXMESHMISCENUM;
  151. #endif
  152. [helpcontext(86594)]
  153. typedef struct D3DXRTS_DESC_CDESC
  154. {
  155. LONG Width;
  156. LONG Height;
  157. LONG Format;
  158. LONG DepthStencil;
  159. LONG DepthStencilFormat;
  160. } D3DXRTS_DESC_CDESC;
  161. [helpcontext(86590)]
  162. typedef struct D3DXATTRIBUTERANGE_CDESC
  163. {
  164. DWORD AttribId;
  165. DWORD FaceStart;
  166. DWORD FaceCount;
  167. DWORD VertexStart;
  168. DWORD VertexCount;
  169. } D3DXATTRIBUTERANGE_CDESC;
  170. [helpcontext(86591)]
  171. typedef struct D3DXATTRIBUTEWEIGHTS_CDESC
  172. {
  173. FLOAT Position;
  174. FLOAT Boundary;
  175. FLOAT Normal;
  176. FLOAT Diffuse;
  177. FLOAT Specular;
  178. FLOAT Tex[8];
  179. } D3DXATTRIBUTEWEIGHTS_CDESC;
  180. [helpcontext(87090)]
  181. typedef struct D3DXBONECOMBINATION_CDESC
  182. {
  183. DWORD AttribId;
  184. DWORD FaceStart;
  185. DWORD FaceCount;
  186. DWORD VertexStart;
  187. DWORD VertexCount;
  188. [hidden] DWORD pBones;
  189. } D3DXBONECOMBINATION_CDESC;
  190. [helpcontext(87091)]
  191. typedef struct D3DXIMAGE_INFO_CDESC
  192. {
  193. UINT Width;
  194. UINT Height;
  195. UINT Depth;
  196. UINT MipLevels;
  197. } D3DXIMAGE_INFO_CDESC;
  198. [helpcontext(86593)]
  199. typedef struct D3DXMATERIAL_CDESC
  200. {
  201. D3DMATERIAL8_CDESC MatD3D;
  202. BSTR TextureFilename;
  203. } D3DXMATERIAL_CDESC;
  204. [helpcontext(86592)]
  205. typedef struct D3DXDECLARATOR_CDESC
  206. {
  207. LONG value[32];
  208. } D3DXDECLARATOR_CDESC;
  209. [helpcontext(87092)]
  210. typedef struct POINTFLOAT_CDESC {
  211. FLOAT x;
  212. FLOAT y;
  213. } POINTFLOAT_CDESC;
  214. [helpcontext(87093)]
  215. typedef struct GLYPHMETRICSFLOAT_CDESC {
  216. FLOAT BlackBoxX;
  217. FLOAT BlackBoxY;
  218. POINTFLOAT_CDESC GlyphOrigin;
  219. FLOAT CellIncX;
  220. FLOAT CellIncY;
  221. } GLYPHMETRICSFLOAT_CDESC;
  222. [helpcontext(87094)]
  223. typedef struct LOGFONT_CDESC
  224. {
  225. LONG Height;
  226. LONG Width;
  227. LONG Escapement;
  228. LONG Orientation;
  229. LONG Weight;
  230. BYTE Italic;
  231. BYTE Underline;
  232. BYTE StrikeOut;
  233. BYTE CharSet;
  234. BYTE OutPrecision;
  235. BYTE ClipPrecision;
  236. BYTE Quality;
  237. BYTE PitchAndFamily;
  238. BYTE FaceName[32];
  239. } LOGFONT_CDESC;
  240. //forward references to interfaces
  241. interface D3DXFont;
  242. interface D3DXBuffer;
  243. interface I_dxj_D3DX8;
  244. interface D3DXBasMesh;
  245. interface D3DXMesh;
  246. interface D3DXPMesh;
  247. interface D3DXSPMesh;
  248. interface D3DXSkinMesh;
  249. interface D3DXSprite;
  250. #ifdef VB_ONLY
  251. //CONSTANTS
  252. [helpcontext(86595)]
  253. typedef enum CONST_D3DXENUM {
  254. //#define D3DX_DEFAULT ULONG_MAX
  255. //#define D3DX_DEFAULT_FLOAT FLT_MAX
  256. D3DX_DEFAULT=0xFFFFFFFF,
  257. D3DX_FILTER_NONE =1,
  258. D3DX_FILTER_POINT =2,
  259. D3DX_FILTER_LINEAR =3,
  260. D3DX_FILTER_TRIANGLE =4,
  261. D3DX_FILTER_BOX =5,
  262. D3DX_FILTER_MIRROR_U = 0x00010000,
  263. D3DX_FILTER_MIRROR_V = 0x00020000,
  264. D3DX_FILTER_MIRROR_W = 0x00040000,
  265. D3DX_FILTER_MIRROR = 0x00070000,
  266. D3DX_FILTER_DITHER = 0x00080000,
  267. } CONST_D3DXENUM;
  268. #endif
  269. [
  270. object,
  271. uuid(932E6A7E-C68E-45dd-A7BF-53D19C86DB1F),
  272. pointer_default(unique),
  273. helpcontext(86361),
  274. local
  275. ]
  276. interface D3DXBuffer : IUnknown
  277. {
  278. // ID3DXBuffer
  279. [helpcontext(86402)] LPVOID GetBufferPointer();
  280. [helpcontext(86403)] DWORD GetBufferSize();
  281. };
  282. [
  283. object,
  284. uuid(2D501DF7-D253-4414-865F-A6D54A753138),
  285. pointer_default(unique),
  286. helpcontext(86364),
  287. local
  288. ]
  289. interface D3DXFont : IUnknown
  290. {
  291. [helpcontext(86408)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8* ppDevice) ;
  292. [helpcontext(86409)] HRESULT GetLogFont([in,out] LOGFONT_CDESC * LogFont);
  293. [helpcontext(86405)] HRESULT Begin() ;
  294. [helpcontext(87095),hidden] INT DrawTextA([in] BYTE *Text, [in] INT Count, [in] RECT_CDESC *DestRect, [in] LONG Format, [in] LONG Color);
  295. [helpcontext(86406)] INT DrawTextW([in] BSTR Text, [in] INT Count, [in] RECT_CDESC *DestRect, [in] LONG Format, [in] LONG Color);
  296. [helpcontext(86407)] HRESULT End();
  297. [helpcontext(86407)] HRESULT OnLostDevice();
  298. [helpcontext(86407)] HRESULT OnResetDevice();
  299. };
  300. [
  301. object,
  302. uuid(E8691849-87B8-4929-9050-1B0542D5538C),
  303. pointer_default(unique),
  304. helpcontext(87096),
  305. local
  306. ]
  307. interface D3DXSprite : IUnknown
  308. {
  309. [helpcontext(86473)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8* ppDevice);
  310. [helpcontext(86469)] HRESULT Begin();
  311. [helpcontext(86470)] HRESULT Draw([in] LPDIRECT3DTEXTURE8 SrcTexture,[in] void *SrcRect, [in] D3DVECTOR2_CDESC *Scaling,
  312. [in] D3DVECTOR2_CDESC *RotationCenter, [in] FLOAT Rotation,
  313. [in] D3DVECTOR2_CDESC *Translation, [in] LONG Color);
  314. [helpcontext(86471)] HRESULT DrawTransform([in] LPDIRECT3DTEXTURE8 SrcTexture,[in] void *SrcRect,
  315. [in] D3DMATRIX_CDESC *TransformMatrix,
  316. [in] LONG Color);
  317. [helpcontext(86472)] HRESULT End();
  318. [helpcontext(86407)] HRESULT OnLostDevice();
  319. [helpcontext(86407)] HRESULT OnResetDevice();
  320. };
  321. [
  322. object,
  323. uuid(69CC587C-E40C-458d-B5D3-B029E18EB60A),
  324. pointer_default(unique),
  325. helpcontext(87097),
  326. local
  327. ]
  328. interface D3DXRenderToSurface : IUnknown
  329. {
  330. [helpcontext(86432)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8* ppDevice);
  331. [helpcontext(86431)] HRESULT GetDesc ([out] D3DXRTS_DESC_CDESC *Parameters);
  332. [helpcontext(86429)] HRESULT BeginScene([in] LPDIRECT3DSURFACE8 Surface, [in] D3DVIEWPORT8_CDESC * Viewport) ;
  333. [helpcontext(86430)] HRESULT EndScene();
  334. [helpcontext(86407)] HRESULT OnLostDevice();
  335. [helpcontext(86407)] HRESULT OnResetDevice();
  336. };
  337. [
  338. object,
  339. uuid(A69BA991-1F7D-11d3-B929-00C04F68DC23),
  340. pointer_default(unique),
  341. helpcontext(86344),
  342. local
  343. ]
  344. interface D3DXBaseMesh : IUnknown
  345. {
  346. // ID3DXBaseMesh
  347. [helpcontext(86387)] HRESULT DrawSubset ([in] DWORD attribId) ;
  348. [helpcontext(86393)] DWORD GetNumFaces ();
  349. [helpcontext(86394)] DWORD GetNumVertices();
  350. [helpcontext(86391)] DWORD GetFVF();
  351. [helpcontext(86389)] HRESULT GetDeclaration([in,out] DWORD *Declaration);
  352. [helpcontext(86395)] DWORD GetOptions();
  353. [helpcontext(86390)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8 *ret);
  354. [helpcontext(86386)] HRESULT CloneMeshFVF([in] DWORD options,
  355. [in] DWORD fvf,
  356. [in] LPDIRECT3DDEVICE8 D3DDevice,
  357. [out,retval] LPD3DXMESH *ppCloneMesh);
  358. [helpcontext(86385)] HRESULT CloneMesh([in] DWORD options,
  359. [in] void *Declaration,
  360. [in] LPDIRECT3DDEVICE8 D3DDevice,
  361. [out,retval] LPD3DXMESH *ppCloneMesh);
  362. [helpcontext(86396)] HRESULT GetVertexBuffer([out,retval] LPDIRECT3DVERTEXBUFFER8* ppVB) ;
  363. [helpcontext(86392)] HRESULT GetIndexBuffer ([out,retval] LPDIRECT3DINDEXBUFFER8* ppIB) ;
  364. [helpcontext(86398)] HRESULT LockVertexBuffer([in] DWORD flags, [out,retval] LONG *VBuffAddr);
  365. [helpcontext(86400)] HRESULT UnlockVertexBuffer();
  366. [helpcontext(86397)] HRESULT LockIndexBuffer([in] DWORD flags, [out,retval] LONG *IBuffAddr);
  367. [helpcontext(86399)] HRESULT UnlockIndexBuffer();
  368. //[helpcontext(86388)] HRESULT GetAttributeTable([in,out] D3DXATTRIBUTERANGE_CDESC *attribEntry, [in,out] DWORD* attribTabSize);
  369. [helpcontext(86348)] HRESULT GetAttributeTable([in,out] void *attribEntry, [in,out] DWORD* attribTabSize);
  370. [helpcontext(86411)] HRESULT ConvertPointRepsToAdjacency(void *PointRep, void* Adjacency);
  371. [helpcontext(87098)] HRESULT ConvertAdjacencyToPointReps(void* Adjacency, void *PointRep);
  372. [helpcontext(86412)] HRESULT GenerateAdjacency ([in] FLOAT epsilon, [in,out] void* Adjacency);
  373. };
  374. [
  375. object,
  376. uuid(9D84AC46-6B90-49a9-A721-085C7A3E3DAE),
  377. pointer_default(unique),
  378. helpcontext(86365),
  379. local
  380. ]
  381. interface D3DXMesh : IUnknown
  382. {
  383. // ID3DXBaseMesh
  384. [helpcontext(88348)] HRESULT DrawSubset ([in] DWORD attribId) ;
  385. [helpcontext(86349)] DWORD GetNumFaces ();
  386. [helpcontext(86350)] DWORD GetNumVertices();
  387. [helpcontext(86351)] DWORD GetFVF();
  388. [helpcontext(86352)] HRESULT GetDeclaration([in,out] DWORD *Declaration);
  389. [helpcontext(86353)] DWORD GetOptions();
  390. [helpcontext(86354)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8 *ret);
  391. [helpcontext(86355)] HRESULT CloneMeshFVF([in] DWORD options,
  392. [in] DWORD fvf,
  393. [in] LPDIRECT3DDEVICE8 D3DDevice,
  394. [out,retval] LPD3DXMESH *ppCloneMesh);
  395. [helpcontext(86356)] HRESULT CloneMesh([in] DWORD options,
  396. [in] void *Declaration,
  397. [in] LPDIRECT3DDEVICE8 D3DDevice,
  398. [out,retval] LPD3DXMESH *ppCloneMesh);
  399. [helpcontext(86357)] HRESULT GetVertexBuffer([out,retval] LPDIRECT3DVERTEXBUFFER8* ppVB) ;
  400. [helpcontext(86358)] HRESULT GetIndexBuffer ([out,retval] LPDIRECT3DINDEXBUFFER8* ppIB) ;
  401. [helpcontext(86359)] HRESULT LockVertexBuffer([in] DWORD flags, [out,retval] LONG *VBuffAddr);
  402. [helpcontext(86360)] HRESULT UnlockVertexBuffer();
  403. [helpcontext(96361)] HRESULT LockIndexBuffer([in] DWORD flags, [out,retval] LONG *IBuffAddr);
  404. [helpcontext(96362)] HRESULT UnlockIndexBuffer();
  405. [helpcontext(86363)] HRESULT GetAttributeTable([in,out] void *attribEntry, [in,out] DWORD* attribTabSize);
  406. // ID3DXMesh
  407. [helpcontext(86411)] HRESULT ConvertPointRepsToAdjacency(void *PointRep, void* Adjacency);
  408. [helpcontext(87098)] HRESULT ConvertAdjacencyToPointReps(void* Adjacency, void *PointRep);
  409. [helpcontext(86412)] HRESULT GenerateAdjacency ([in] FLOAT epsilon, [in,out] void* Adjacency);
  410. //REMOVED 07/16/00 [helpcontext(99389)] HRESULT GeneratePointReps ([in] void* Adjacency, [in,out] void* PRep) ;
  411. [helpcontext(86413)] HRESULT LockAttributeBuffer([in] LONG flags, [out,retval] LONG *pData);
  412. [helpcontext(86416)] HRESULT UnlockAttributeBuffer();
  413. [helpcontext(86414)] HRESULT Optimize ([in] DWORD flags,[in,out] void* adjacency, [in,out] void* optAdj,
  414. [in,out] void* FaceRemap, [out] LPD3DXBUFFER *VertexRemapOut,
  415. [out,retval] LPD3DXMESH* ppOptMesh);
  416. [helpcontext(86415)] HRESULT OptimizeInplace([in] DWORD flags,[in] void* adjacencyIn, [in,out] void* adjacencyOut,
  417. [in] void * faceRemap, [out] LPD3DXBUFFER *VertexRemapOut);
  418. };
  419. [
  420. object,
  421. uuid(82A53844-F322-409e-A2E9-992E1104069D),
  422. pointer_default(unique),
  423. helpcontext(870999),
  424. local
  425. ]
  426. interface D3DXSkinMesh : IUnknown
  427. {
  428. // ID3DXMesh
  429. [helpcontext(86893)] DWORD GetNumFaces ();
  430. [helpcontext(86894)] DWORD GetNumVertices();
  431. [helpcontext(86891)] DWORD GetFVF();
  432. [helpcontext(86889)] HRESULT GetDeclaration([in,out] DWORD *Declaration);
  433. [helpcontext(86895)] DWORD GetOptions();
  434. [helpcontext(86438)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8 *ret);
  435. [helpcontext(86445)] HRESULT GetVertexBuffer([out,retval] LPDIRECT3DVERTEXBUFFER8* ppVB) ;
  436. [helpcontext(86439)] HRESULT GetIndexBuffer ([out,retval] LPDIRECT3DINDEXBUFFER8* ppIB) ;
  437. [helpcontext(86448)] HRESULT LockVertexBuffer([in] DWORD flags, [out,retval] LONG *VBuffAddr);
  438. [helpcontext(86452)] HRESULT UnlockVertexBuffer();
  439. [helpcontext(86447)] HRESULT LockIndexBuffer([in] DWORD flags, [out,retval] LONG *IBuffAddr);
  440. [helpcontext(86451)] HRESULT UnlockIndexBuffer();
  441. [helpcontext(86446)] HRESULT LockAttributeBuffer([in] LONG flags, [out,retval] LONG *pData);
  442. [helpcontext(86450)] HRESULT UnlockAttributeBuffer();
  443. [helpcontext(86443)] DWORD GetNumBones();
  444. [helpcontext(86444)] HRESULT GetOriginalMesh([out,retval] LPD3DXMESH *pMesh);
  445. [helpcontext(86449)] HRESULT SetBoneInfluence([in] DWORD bone, [in] DWORD numInfluences, [in] DWORD *vertices, [in] FLOAT *weights);
  446. [helpcontext(86442)] DWORD GetNumBoneInfluences([in] DWORD bone);
  447. [helpcontext(86437)] HRESULT GetBoneInfluence([in] DWORD bone, [in,out] DWORD *vertices, [in,out] FLOAT *weights);
  448. [helpcontext(86441)] HRESULT GetMaxVertexInfluences([out,retval] DWORD *maxVertexInfluences);
  449. [helpcontext(86440)] HRESULT GetMaxFaceInfluences([out,retval] DWORD *maxFaceInfluences);
  450. [helpcontext(86434)] HRESULT ConvertToBlendedMesh(
  451. [in] DWORD options, [in] void *AdjacencyIn, [in,out] void *AdjacencyOut,
  452. [in,out] DWORD* RetNumBoneCombinations, [in,out] LPD3DXBUFFER* RetBoneCombinationTable,
  453. [in,out] void* pFaceRemap,
  454. [in,out] LPD3DXBUFFER* VertexRemap,
  455. [out,retval] LPD3DXMESH* RetMesh);
  456. [helpcontext(86435)] HRESULT ConvertToIndexedBlendedMesh(
  457. [in] DWORD options, [in] void *AdjacencyIn, [in] DWORD paletteSize,
  458. [in,out] void *AdjacencyOut,
  459. [in,out] DWORD* RetNumBoneCombinations, [in,out] LPD3DXBUFFER* RetBoneCombinationTable,
  460. [in,out] void* pFaceRemap,
  461. [in,out] LPD3DXBUFFER* VertexRemap,
  462. [out,retval] LPD3DXMESH *RetMesh);
  463. [helpcontext(86436)] HRESULT GenerateSkinnedMesh (
  464. [in] DWORD options, [in] FLOAT minWeight,
  465. [in] void *AdjacencyIn, [in,out] void *AdjacencyOut,
  466. [in,out] void* pFaceRemap,
  467. [in,out] LPD3DXBUFFER* VertexRemap,
  468. [out,retval] LPD3DXMESH *RetMesh);
  469. [helpcontext(87100)] HRESULT UpdateSkinnedMesh (
  470. [in] void* BoneTransformsIn, [in] D3DMATRIX_CDESC* BoneInvTransforms, [in,out] LPD3DXMESH RetMesh);
  471. };
  472. [
  473. object,
  474. uuid(15981AA8-1A05-48e3-BBE7-FF5D49654E3F),
  475. pointer_default(unique),
  476. helpcontext(86371),
  477. local
  478. ]
  479. interface D3DXPMesh : IUnknown
  480. {
  481. // ID3DXBaseMesh
  482. [helpcontext(88350)] HRESULT DrawSubset ([in] DWORD attribId) ;
  483. [helpcontext(88351)] DWORD GetNumFaces ();
  484. [helpcontext(88352)] DWORD GetNumVertices();
  485. [helpcontext(88353)] DWORD GetFVF();
  486. [helpcontext(88354)] HRESULT GetDeclaration([in,out] DWORD *Declaration);
  487. [helpcontext(88355)] DWORD GetOptions();
  488. [helpcontext(88356)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8 *ret);
  489. [helpcontext(88357)] HRESULT CloneMeshFVF([in] DWORD options,
  490. [in] DWORD fvf,
  491. [in] LPDIRECT3DDEVICE8 D3DDevice,
  492. [out,retval] LPD3DXMESH *ppCloneMesh);
  493. [helpcontext(88358)] HRESULT CloneMesh([in] DWORD options,
  494. [in] void *Declaration,
  495. [in] LPDIRECT3DDEVICE8 D3DDevice,
  496. [out,retval] LPD3DXMESH *ppCloneMesh);
  497. [helpcontext(88359)] HRESULT GetVertexBuffer([out,retval] LPDIRECT3DVERTEXBUFFER8* ppVB) ;
  498. [helpcontext(88360)] HRESULT GetIndexBuffer ([out,retval] LPDIRECT3DINDEXBUFFER8* ppIB) ;
  499. [helpcontext(88361)] HRESULT LockVertexBuffer([in] DWORD flags, [out,retval] LONG *VBuffAddr);
  500. [helpcontext(88362)] HRESULT UnlockVertexBuffer();
  501. [helpcontext(88363)] HRESULT LockIndexBuffer([in] DWORD flags, [out,retval] LONG *IBuffAddr);
  502. [helpcontext(88364)] HRESULT UnlockIndexBuffer();
  503. [helpcontext(88365)] HRESULT GetAttributeTable([in,out] void *attribEntry, [in,out] DWORD* attribTabSize);
  504. // ID3DXMesh
  505. [helpcontext(86411)] HRESULT ConvertPointRepsToAdjacency(void *PointRep, void* Adjacency);
  506. [helpcontext(87098)] HRESULT ConvertAdjacencyToPointReps(void* Adjacency, void *PointRep);
  507. [helpcontext(86412)] HRESULT GenerateAdjacency ([in] FLOAT epsilon, [in,out] void* Adjacency);
  508. // ID3DXPMesh
  509. [helpcontext(86419)] HRESULT ClonePMeshFVF([in] DWORD options,
  510. [in] DWORD fvf,
  511. [in] LPDIRECT3DDEVICE8 D3DDevice,
  512. [out,retval] LPD3DXPMESH *ppCloneMesh);
  513. [helpcontext(86418)] HRESULT ClonePMesh([in] DWORD options,
  514. [in] void *Declaration,
  515. [in] LPDIRECT3DDEVICE8 D3DDevice,
  516. [out,retval] LPD3DXPMESH *ppCloneMesh);
  517. [helpcontext(86426)] HRESULT SetNumFaces([in] DWORD faces);
  518. [helpcontext(86427)] HRESULT SetNumVertices([in] DWORD vertices) ;
  519. [helpcontext(86421)] DWORD GetMaxFaces();
  520. [helpcontext(86423)] DWORD GetMinFaces();
  521. [helpcontext(86422)] DWORD GetMaxVertices();
  522. [helpcontext(86424)] DWORD GetMinVertices();
  523. //[helpcontext(86400),hidden] HRESULT Save(IStream* pStream,[in] LONG MaterialBufferHandle,[in] LONG NumMaterials);
  524. [helpcontext(86400),hidden] HRESULT Save([in] LONG pIStream,[in] LONG MaterialBufferHandle,[in] LONG NumMaterials);
  525. [helpcontext(86425)] HRESULT Optimize ([in] DWORD Flags,[in,out] void * AdjacencyOut, [in,out] void * FaceRemap,
  526. [in,out] LPD3DXBUFFER *VertexRemapOut, [out,retval] LPD3DXMESH* ppOptMesh);
  527. [helpcontext(86425)] HRESULT OptimizeBaseLOD([in] DWORD Flags, [in,out] void* FaceRemap);
  528. [helpcontext(86425)] HRESULT TrimByFaces([in] DWORD NewFacesMin, [in] DWORD NewFacesMax, [in,out] DWORD *rgiFaceRemap, [in,out] DWORD *rgiVertRemap);
  529. [helpcontext(86425)] HRESULT TrimByVertices([in] DWORD NewVerticesMin, [in] DWORD NewVerticesMax, [in,out] DWORD *rgiFaceRemap, [in,out] DWORD *rgiVertRemap);
  530. [helpcontext(86420)] HRESULT GetAdjacency ([out] void * AdjacencyOut);
  531. };
  532. [
  533. object,
  534. uuid(BC3BBDE2-1F7D-11d3-B929-00C04F68DC23),
  535. pointer_default(unique),
  536. helpcontext(86380),
  537. local
  538. ]
  539. interface D3DXSPMesh : IUnknown
  540. {
  541. // ID3DXSPMesh
  542. [helpcontext(86463)] DWORD GetNumFaces();
  543. [helpcontext(86464)] DWORD GetNumVertices();
  544. [helpcontext(86460)] DWORD GetFVF();
  545. [helpcontext(86458)] HRESULT GetDeclaration([in,out] DWORD *Declaration);
  546. [helpcontext(86465)] DWORD GetOptions();
  547. [helpcontext(86459)] HRESULT GetDevice([out,retval] LPDIRECT3DDEVICE8 *ret);
  548. [helpcontext(86455)] HRESULT CloneMeshFVF([in] DWORD options,
  549. [in] DWORD fvf,
  550. [in] LPDIRECT3DDEVICE8 D3DDevice,
  551. [in,out] void *AdjacencyOut,
  552. [in,out] void *VertexRemapOut,
  553. [out,retval] LPD3DXPMESH *ppCloneMesh);
  554. [helpcontext(86454)] HRESULT CloneMesh([in] DWORD options,
  555. [in] void *Declaration,
  556. [in] LPDIRECT3DDEVICE8 D3DDevice,
  557. [in,out] void *AdjacencyOut,
  558. [in,out] void *VertexRemapOut,
  559. [out,retval] LPD3DXPMESH *ppCloneMesh);
  560. [helpcontext(86457)] HRESULT ClonePMeshFVF ([in] DWORD options,
  561. [in] DWORD fvf, [in] LPDIRECT3DDEVICE8 pD3D, [in,out] void *VertexRemapOut,[out,retval] LPD3DXPMESH* ppCloneMesh) ;
  562. [helpcontext(86456)] HRESULT ClonePMesh ([in] DWORD options,
  563. [in] void *Declaration, [in] LPDIRECT3DDEVICE8 pD3D, [in,out] void *VertexRemapOut, [out,retval] LPD3DXPMESH* ppCloneMesh) ;
  564. [helpcontext(86466)] HRESULT ReduceFaces([in] DWORD faces) ;
  565. [helpcontext(86467)] HRESULT ReduceVertices([in] DWORD vertices) ;
  566. [helpcontext(86461)] DWORD GetMaxFaces() ;
  567. [helpcontext(86462)] DWORD GetMaxVertices() ;
  568. };
  569. [
  570. object,
  571. uuid(3AC50043-CF82-4c44-862E-B206B4F03301),
  572. pointer_default(unique),
  573. local,
  574. helpcontext(89202),
  575. hidden
  576. ]
  577. interface I_dxj_D3DX8 : IUnknown
  578. {
  579. [helpcontext(86336)] HRESULT CreateFont(
  580. [in] LPDIRECT3DDEVICE8 Device,
  581. [in] HFONT hFont,
  582. [out,retval] LPD3DXFONT* retFont);
  583. [helpcontext(96344)] HRESULT DrawText(
  584. [in] LPD3DXFONT d3dFont,
  585. [in] D3DCOLOR Color,
  586. [in] BSTR TextString,
  587. [in] RECT* Rect,
  588. [in] DWORD Format);
  589. [helpcontext(96365)] HRESULT GetFVFVertexSize(
  590. [in] DWORD FVF,
  591. [out,retval] DWORD *size);
  592. [helpcontext(86312)] HRESULT AssembleShaderFromFile(
  593. [in] BSTR SrcFile,
  594. [in] LONG Flags,
  595. [in,out] BSTR *ErrLog,
  596. [in,out] LPD3DXBUFFER* Constants,
  597. [out,retval] LPD3DXBUFFER* ppVertexShader);
  598. [helpcontext(86311)] HRESULT AssembleShader(
  599. [in] BSTR SrcData,
  600. [in] LONG Flags,
  601. [in,out] LPD3DXBUFFER* Constants,
  602. [in,out,optional] BSTR *ErrLog,
  603. [out,retval] LPD3DXBUFFER* ppVertexShader);
  604. [helpcontext(96364)] HRESULT GetErrorString([in] LONG hr, [out,retval] BSTR *retStr);
  605. [helpcontext(96371)] HRESULT LoadSurfaceFromFile(
  606. [in] LPDIRECT3DSURFACE8 DestSurface,
  607. [in] void * DestPalette,
  608. [in] void * DestRect,
  609. [in] BSTR SrcFile,
  610. [in] void* SrcRect,
  611. [in] DWORD Filter,
  612. [in] LONG ColorKey,
  613. [in,out] void* SrcInfo);
  614. [helpcontext(86372)] HRESULT LoadSurfaceFromFileInMemory(
  615. [in] LPDIRECT3DSURFACE8 DestSurface,
  616. [in] void * DestPalette,
  617. [in] void * DestRect,
  618. [in] void * SrcData,
  619. [in] LONG LengthInBytes,
  620. [in] void * SrcRect,
  621. [in] DWORD Filter,
  622. [in] LONG ColorKey,
  623. [in,out] void* SrcInfo);
  624. [helpcontext(86375)] HRESULT LoadSurfaceFromSurface(
  625. [in] LPDIRECT3DSURFACE8 DestSurface,
  626. [in] void * DestPalette,
  627. [in] void * DestRect,
  628. [in] LPDIRECT3DSURFACE8 SrcSurface,
  629. [in] void * SrcPalette,
  630. [in] void * SrcRect,
  631. [in] DWORD Filter,
  632. [in] LONG ColorKey);
  633. [helpcontext(86373)] HRESULT LoadSurfaceFromMemory(
  634. [in] LPDIRECT3DSURFACE8 DestSurface,
  635. [in] void * DestPalette,
  636. [in] void * DestRect,
  637. [in] LPVOID SrcData,
  638. [in] CONST_D3DFORMAT formatSrc,
  639. [in] UINT SrcPitch,
  640. [in] void * SrcPalette,
  641. [in] RECT_CDESC * SrcRect,
  642. [in] LONG Filter,
  643. [in] LONG ColorKey);
  644. [helpcontext(86320)] HRESULT CheckTextureRequirements(
  645. [in,out] LPDIRECT3DDEVICE8 Device,
  646. [in,out] LONG* Width,
  647. [in,out] LONG* Height,
  648. [in,out] LONG* NumMipLevels,
  649. [in] LONG Usage,
  650. [in,out] CONST_D3DFORMAT* PixelFormat,
  651. [in] CONST_D3DPOOL Pool);
  652. [helpcontext(96349)] HRESULT CreateTexture(
  653. [in] LPDIRECT3DDEVICE8 Device,
  654. [in] UINT Width,
  655. [in] UINT Height,
  656. [in] UINT MipLevels,
  657. [in] LONG Usage,
  658. [in] CONST_D3DFORMAT PixelFormat,
  659. [in] CONST_D3DPOOL Pool,
  660. [out,retval] LPDIRECT3DTEXTURE8* ppTexture);
  661. [helpcontext(96354)] HRESULT CreateTextureFromResource(
  662. [in] LPDIRECT3DDEVICE8 Device,
  663. #ifdef _WIN64
  664. [in] HANDLE hModule,
  665. #else
  666. [in] LONG hModule,
  667. #endif
  668. [in] BSTR SrcResource,
  669. [out,retval] LPDIRECT3DTEXTURE8* ppTexture);
  670. [helpcontext(96350)] HRESULT CreateTextureFromFile(
  671. [in] LPDIRECT3DDEVICE8 Device,
  672. [in] BSTR SrcFile,
  673. [out,retval] LPDIRECT3DTEXTURE8* ppTexture);
  674. [helpcontext(96351)] HRESULT CreateTextureFromFileEx(
  675. [in] LPDIRECT3DDEVICE8 Device,
  676. [in] BSTR SrcFile,
  677. [in] UINT Width,
  678. [in] UINT Height,
  679. [in] UINT MipLevels,
  680. [in] LONG Usage,
  681. [in] CONST_D3DFORMAT PixelFormat,
  682. [in] CONST_D3DPOOL Pool,
  683. [in] DWORD Filter,
  684. [in] DWORD MipFilter,
  685. [in] DWORD ColorKey,
  686. [in,out] void* SrcInfo,
  687. [in] void* Palette,
  688. [out,retval] LPDIRECT3DTEXTURE8* ppTexture);
  689. [helpcontext(96352)] HRESULT CreateTextureFromFileInMemory(
  690. [in] LPDIRECT3DDEVICE8 Device,
  691. [in] void *SrcData,
  692. [in] LONG LengthInBytes,
  693. [out,retval] LPDIRECT3DTEXTURE8* ppTexture);
  694. [helpcontext(96353)] HRESULT CreateTextureFromFileInMemoryEx(
  695. [in] LPDIRECT3DDEVICE8 Device,
  696. [in] void *SrcData,
  697. [in] LONG LengthInBytes,
  698. [in] UINT Width,
  699. [in] UINT Height,
  700. [in] UINT MipLevels,
  701. [in] LONG Usage,
  702. [in] CONST_D3DFORMAT PixelFormat,
  703. [in] CONST_D3DPOOL Pool,
  704. [in] DWORD Filter,
  705. [in] DWORD MipFilter,
  706. [in] DWORD ColorKey,
  707. [in,out] void* SrcInfo,
  708. [in] void* Palette,
  709. [out,retval] LPDIRECT3DTEXTURE8* ppTexture);
  710. [helpcontext(96360)] HRESULT FilterTexture(
  711. [in] LPDIRECT3DTEXTURE8 Texture,
  712. [in] void* Palette,
  713. [in] UINT SrcLevel,
  714. [in] DWORD Filter);
  715. [helpcontext(86319)] HRESULT CheckCubeTextureRequirements(
  716. [in] LPDIRECT3DDEVICE8 Device,
  717. [in,out] UINT* Size,
  718. [in,out] UINT* NumMipLevels,
  719. [in] LONG Usage,
  720. [in,out] CONST_D3DFORMAT *PixelFormat,
  721. [in] CONST_D3DPOOL Pool);
  722. [helpcontext(86330)] HRESULT CreateCubeTexture(
  723. [in] LPDIRECT3DDEVICE8 pDevice,
  724. [in] UINT Size,
  725. [in] UINT MipLevels,
  726. [in] LONG Usage,
  727. [in] CONST_D3DFORMAT PixelFormat,
  728. [in] CONST_D3DPOOL Pool,
  729. [out,retval] LPDIRECT3DCUBETEXTURE8* ppCubeTexture);
  730. [helpcontext(86331)] HRESULT CreateCubeTextureFromFile(
  731. [in] LPDIRECT3DDEVICE8 Device,
  732. [in] BSTR SrcFile,
  733. [out,retval] LPDIRECT3DCUBETEXTURE8* ppCubeTexture);
  734. [helpcontext(86332)] HRESULT CreateCubeTextureFromFileEx(
  735. [in] LPDIRECT3DDEVICE8 Device,
  736. [in] BSTR SrcFile,
  737. [in] UINT TextureSize,
  738. [in] UINT MipLevels,
  739. [in] LONG Usage,
  740. [in] CONST_D3DFORMAT PixelFormat,
  741. [in] CONST_D3DPOOL Pool,
  742. [in] DWORD Filter,
  743. [in] DWORD MipFilter,
  744. [in] DWORD ColorKey,
  745. [in,out] void* SrcInfo,
  746. [in] void* Palette,
  747. [out,retval] LPDIRECT3DCUBETEXTURE8* ppTexture);
  748. [helpcontext(86333)] HRESULT CreateCubeTextureFromFileInMemory(
  749. [in] LPDIRECT3DDEVICE8 Device,
  750. [in] void *SrcData,
  751. [in] LONG LengthInBytes,
  752. [out,retval] LPDIRECT3DCUBETEXTURE8* ppTexture);
  753. [helpcontext(86334)] HRESULT CreateCubeTextureFromFileInMemoryEx(
  754. [in] LPDIRECT3DDEVICE8 Device,
  755. [in] void *SrcData,
  756. [in] LONG LengthInBytes,
  757. [in] UINT TextureSize,
  758. [in] UINT MipLevels,
  759. [in] LONG Usage,
  760. [in] CONST_D3DFORMAT PixelFormat,
  761. [in] CONST_D3DPOOL Pool,
  762. [in] DWORD Filter,
  763. [in] DWORD MipFilter,
  764. [in] DWORD ColorKey,
  765. [in,out] void* SrcInfo,
  766. [in] void* Palette,
  767. [out,retval] LPDIRECT3DCUBETEXTURE8* ppTexture);
  768. [helpcontext(96359)] HRESULT FilterCubeTexture(
  769. [in] LPDIRECT3DCUBETEXTURE8 CubeTexture,
  770. [in] void *Palette,
  771. [in] UINT SrcLevel,
  772. [in] DWORD Filter);
  773. [helpcontext(86321)] HRESULT CheckVolumeTextureRequirements(
  774. [in] LPDIRECT3DDEVICE8 Device,
  775. [out] LONG* Width,
  776. [out] LONG* Height,
  777. [out] LONG* Depth,
  778. [out] LONG* NumMipLevels,
  779. [in] LONG Usage,
  780. [in,out]CONST_D3DFORMAT *PixelFormat,
  781. [in] CONST_D3DPOOL Pool);
  782. [helpcontext(96355)] HRESULT CreateTextureFromResourceEx(
  783. [in] LPDIRECT3DDEVICE8 Device,
  784. #ifdef _WIN64
  785. [in] HANDLE hSrcModule,
  786. #else
  787. [in] LONG hSrcModule,
  788. #endif
  789. [in] BSTR SrcResource,
  790. [in] LONG Width,
  791. [in] LONG Height,
  792. [in] LONG MipLevels,
  793. [in] LONG Usage,
  794. [in] CONST_D3DFORMAT PixelFormat,
  795. [in] CONST_D3DPOOL Pool,
  796. [in] LONG Filter,
  797. [in] LONG MipFilter,
  798. [in] DWORD ColorKey,
  799. [in,out] void *SrcInfo,
  800. [in] void *Palette,
  801. [out,retval] LPDIRECT3DTEXTURE8 *retTexture);
  802. [helpcontext(96357)] HRESULT CreateVolumeTexture(
  803. [in] LPDIRECT3DDEVICE8 Device,
  804. [in] LONG Width,
  805. [in] LONG Height,
  806. [in] LONG Depth,
  807. [in] LONG MipLevels,
  808. [in] LONG Usage,
  809. [in] CONST_D3DFORMAT PixelFormat,
  810. [in] CONST_D3DPOOL Pool,
  811. [out,retval] LPDIRECT3DVOLUME8 *ppVolumeTexture);
  812. [helpcontext(97361)] HRESULT FilterVolumeTexture(
  813. [in] LPDIRECT3DVOLUME8 VolumeTexture,
  814. [in] void *Palette,
  815. [in] UINT SrcLevel,
  816. [in] LONG Filter);
  817. [helpcontext(86374)] HRESULT LoadSurfaceFromResource(
  818. [in] LPDIRECT3DSURFACE8 DestSurface,
  819. [in] void* DestPalette,
  820. [in] void* DestRect,
  821. #ifdef _WIN64
  822. [in] HANDLE hSrcModule,
  823. #else
  824. [in] LONG hSrcModule,
  825. #endif
  826. [in] BSTR SrcResource,
  827. [in] void* SrcRect,
  828. [in] LONG Filter,
  829. [in] LONG ColorKey,
  830. [in,out] void* SrcInfo);
  831. [helpcontext(86377)] HRESULT LoadVolumeFromVolume(
  832. [in] LPDIRECT3DVOLUME8 DestVolume,
  833. [in] void *DestPalette,
  834. [in] void *DestBox,
  835. [in] LPDIRECT3DVOLUME8 SrcVolume,
  836. [in] void *SrcPalette,
  837. [in] void *SrcBox,
  838. [in] LONG Filter,
  839. [in] LONG ColorKey);
  840. [helpcontext(86376)] HRESULT LoadVolumeFromMemory(
  841. [in] LPDIRECT3DVOLUME8 DestVolume,
  842. [in] void *DestPalette,
  843. [in] void *DestBox,
  844. [in] void *SrcMemory,
  845. [in] LONG SrcFormat,
  846. [in] LONG SrcRowPitch,
  847. [in] LONG SrcSlicePitch,
  848. [in] void *SrcPalette,
  849. [in] void *SrcBox,
  850. [in] LONG Filter,
  851. [in] LONG ColorKey);
  852. [helpcontext(86337)] HRESULT CreateMesh(
  853. [in] DWORD numFaces,
  854. [in] DWORD numVertices,
  855. [in] DWORD options,
  856. [in] void *declaration,
  857. [in] LPDIRECT3DDEVICE8 pD3D,
  858. [out,retval] LPD3DXMESH* ppMesh);
  859. [helpcontext(86338)] HRESULT CreateMeshFVF(
  860. [in] DWORD numFaces,
  861. [in] DWORD numVertices,
  862. [in] DWORD options,
  863. [in] DWORD fvf,
  864. [in] LPDIRECT3DDEVICE8 pD3D,
  865. [out,retval] LPD3DXMESH* ppMesh);
  866. [helpcontext(86345)] HRESULT CreateSPMesh(
  867. [in] LPD3DXMESH pMesh,
  868. [in] void * adjacency,
  869. [in] void * VertexAttributeWeights,
  870. [in] void * VertexWeights,
  871. [out,retval] LPD3DXSPMESH* ppSMesh);
  872. [helpcontext(96363)] HRESULT GeneratePMesh(
  873. [in] LPD3DXMESH Mesh,
  874. [in] void * Adjacency,
  875. [in] void * VertexAttributeWeights,
  876. [in] void * VertexWeights,
  877. [in] DWORD minValue,
  878. [in] DWORD options,
  879. [out,retval] LPD3DXPMESH* ppPMesh);
  880. [helpcontext(96380)] HRESULT SimplifyMesh(
  881. [in] LPD3DXMESH Mesh,
  882. [in] void * Adjacency,
  883. [in] void * VertexAttributeWeights,
  884. [in] void * VertexWeights,
  885. [in] DWORD minValue,
  886. [in] DWORD options,
  887. [out,retval] LPD3DXMESH* ppMesh);
  888. [helpcontext(86325)] HRESULT ComputeBoundingSphere(
  889. [in] LPVOID PointsFVF,
  890. [in] UINT numVertices,
  891. [in] DWORD FVF,
  892. [in] D3DVECTOR_CDESC *Centers,
  893. [in,out] FLOAT *RadiusArray);
  894. [helpcontext(86323)] HRESULT ComputeBoundingBox(
  895. [in] LPVOID PointsFVF,
  896. [in] UINT numVertices,
  897. [in] DWORD FVF,
  898. [in,out] D3DVECTOR_CDESC *MinVert,
  899. [in,out] D3DVECTOR_CDESC *MaxVert);
  900. [helpcontext(86327)] HRESULT ComputeNormals(
  901. [in] LPD3DXBASEMESH pMesh);
  902. [helpcontext(96358)] HRESULT DeclaratorFromFVF(
  903. [in] LONG FVF,
  904. [out] D3DXDECLARATOR_CDESC *Declarator);
  905. [helpcontext(86362)] HRESULT FVFFromDeclarator(
  906. [in] D3DXDECLARATOR_CDESC *Declarator,
  907. [out,retval] LONG *fvf);
  908. [helpcontext(86329)] HRESULT CreateBuffer(
  909. [in] DWORD numBytes,
  910. [out,retval] LPD3DXBUFFER *ppBuffer);
  911. //CONSIDER MESH CONTAINER
  912. // GetMesh
  913. // GetAdjacencyCount
  914. // CopyOutAdjacency
  915. // GetAdjacency(i)
  916. // GetMaterialCount
  917. // GetMaterial(i)
  918. // GetMaterialBuffer
  919. // GetAdjacencyBuffer
  920. [helpcontext(86369)] HRESULT LoadMeshFromX(
  921. [in] BSTR Filename,
  922. [in] DWORD options,
  923. [in] LPDIRECT3DDEVICE8 D3DDevice,
  924. [in,out] LPD3DXBUFFER *retAdjacency,
  925. [in,out] LPD3DXBUFFER *retMaterials,
  926. [in,out] DWORD *retMaterialCount,
  927. [out,retval] LPD3DXMESH *retMesh);
  928. [helpcontext(86378)] HRESULT SaveMeshToX(
  929. [in] BSTR Filename,
  930. [in] LPD3DXMESH Mesh,
  931. [in] void *AdjacencyArray,
  932. [in] D3DXMATERIAL_CDESC* MaterialArray,
  933. [in] DWORD MaterialCount,
  934. [in] DWORD xFormat);
  935. [helpcontext(86370)] HRESULT LoadMeshFromXof(
  936. [in] LPDIRECTXFILEDATA xofobjMesh,
  937. [in] DWORD options,
  938. [in] LPDIRECT3DDEVICE8 D3DDevice,
  939. [in,out] LPD3DXBUFFER *retBufAdjacency,
  940. [in,out] LPD3DXBUFFER *retMaterials,
  941. [in,out] DWORD *retMaterialCount,
  942. [out,retval] LPD3DXMESH *retMesh);
  943. [helpcontext(86382)] HRESULT TessellateNPatches(
  944. [in] LPD3DXMESH MeshIn, // mesh to tesselate
  945. [in] void *AdjacencyIn,
  946. [in] FLOAT NumSegs, // number of segments per edge to tesselate to
  947. [in] VARIANT_BOOL QuadraticInterpNormals,
  948. [in,out, optional] LPD3DXBUFFER *AdjacencyOut,
  949. [out,retval] LPD3DXMESH *MeshOut); // tesselated mesh
  950. [helpcontext(86401)] HRESULT BufferGetMaterial([in] LPD3DXBUFFER MaterialBuffer,
  951. [in] DWORD index,[out] D3DMATERIAL8_CDESC *mat);
  952. [helpcontext(86317)] HRESULT BufferGetTextureName([in] LPD3DXBUFFER MaterialBuffer,
  953. [in] DWORD index, [out,retval] BSTR *retName);
  954. [helpcontext(86315)] HRESULT BufferGetData([in] LPD3DXBUFFER Buffer,
  955. [in] DWORD index, [in] DWORD typesize, [in] DWORD typecount,[in,out] LPVOID data);
  956. [helpcontext(86318)] HRESULT BufferSetData([in] LPD3DXBUFFER Buffer,
  957. [in] DWORD index, [in] DWORD typesize, [in] DWORD typecount,[in,out] LPVOID data);
  958. [helpcontext(86366)] HRESULT Intersect(
  959. [in] D3DXMesh *MeshIn,
  960. [in] D3DVECTOR_CDESC *RayPos,
  961. [in] D3DVECTOR_CDESC *RayDir,
  962. [out] LONG *retHit,
  963. [out] LONG *retFaceIndex,
  964. [out] FLOAT *U,
  965. [out] FLOAT *V,
  966. [out] FLOAT *retDist,
  967. [out] DWORD *countHits,
  968. [out,retval] LPD3DXBUFFER *AllHits);
  969. [helpcontext(86381)] HRESULT SphereBoundProbe(
  970. [in] D3DVECTOR_CDESC *Center,
  971. [in] FLOAT Radius,
  972. [in] D3DVECTOR_CDESC *RayPosition,
  973. [in] D3DVECTOR_CDESC *Raydirection,
  974. [out,retval] VARIANT_BOOL *retHit);
  975. [helpcontext(86326)] HRESULT ComputeBoundingSphereFromMesh(
  976. [in] D3DXMesh *MeshIn,
  977. [in,out] D3DVECTOR_CDESC *Centers,
  978. [in,out] FLOAT *RadiusArray);
  979. [helpcontext(86324)] HRESULT ComputeBoundingBoxFromMesh(
  980. [in] D3DXMesh *MeshIn,
  981. [in,out] D3DVECTOR_CDESC *MinArray,
  982. [in,out] D3DVECTOR_CDESC *MaxArray);
  983. [helpcontext(86341)] HRESULT CreateSkinMesh(
  984. [in] DWORD numFaces,
  985. [in] DWORD numVertices,
  986. [in] DWORD numBones,
  987. [in] DWORD options,
  988. [in] void *Declaration,
  989. [in] LPDIRECT3DDEVICE8 D3DDevice,
  990. [out,retval]LPD3DXSKINMESH* SkinMesh);
  991. [helpcontext(86343)] HRESULT CreateSkinMeshFVF(
  992. [in] DWORD numFaces,
  993. [in] DWORD numVertices,
  994. [in] DWORD numBones,
  995. [in] DWORD options,
  996. [in] DWORD fvf,
  997. [in] LPDIRECT3DDEVICE8 D3DDevice,
  998. [out,retval] LPD3DXSKINMESH* ppSkinMesh);
  999. [helpcontext(86342)] HRESULT CreateSkinMeshFromMesh(
  1000. [in] LPD3DXMESH Mesh,
  1001. [in] DWORD numBones,
  1002. [out,retval] LPD3DXSKINMESH* ppSkinMesh);
  1003. [helpcontext(86368)] HRESULT LoadSkinMeshFromXof(
  1004. [in] IUnknown *xofobjMesh, //LPDIRECTXFILEDATA pxofobjMesh,
  1005. [in] DWORD options,
  1006. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1007. [in,out] LPD3DXBUFFER* AdjacencyOut,
  1008. [in,out] LPD3DXBUFFER* MaterialsOut,
  1009. [in,out] DWORD *NumMatOut,
  1010. [in,out] LPD3DXBUFFER* BoneNamesOut,
  1011. [in,out] LPD3DXBUFFER* BoneTransformsOut,
  1012. [out,retval] LPD3DXSKINMESH* ppMesh);
  1013. [helpcontext(86339)] HRESULT CreatePolygon(
  1014. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1015. [in] FLOAT Length,
  1016. [in] UINT Sides,
  1017. [in,out] LPD3DXBUFFER *RetAdjacency,
  1018. [out,retval] LPD3DXMESH* RetMesh);
  1019. [helpcontext(86328)] HRESULT CreateBox(
  1020. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1021. [in] FLOAT Width,
  1022. [in] FLOAT Height,
  1023. [in] FLOAT Depth,
  1024. [in,out] LPD3DXBUFFER *RetAdjacency,
  1025. [out,retval] LPD3DXMESH* RetMesh);
  1026. [helpcontext(86335)] HRESULT CreateCylinder(
  1027. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1028. [in] FLOAT Radius1,
  1029. [in] FLOAT Radius2,
  1030. [in] FLOAT Length,
  1031. [in] UINT Slices,
  1032. [in] UINT Stacks,
  1033. [in,out] LPD3DXBUFFER *RetAdjacency,
  1034. [out,retval] LPD3DXMESH* RetMesh);
  1035. [helpcontext(97344)] HRESULT CreateSphere(
  1036. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1037. [in] FLOAT Radius,
  1038. [in] UINT Slices,
  1039. [in] UINT Stacks,
  1040. [in,out] LPD3DXBUFFER *RetAdjacency,
  1041. [out,retval] LPD3DXMESH* RetMesh);
  1042. [helpcontext(96356)] HRESULT CreateTorus(
  1043. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1044. [in] FLOAT InnerRadius,
  1045. [in] FLOAT OuterRadius,
  1046. [in] UINT Sides,
  1047. [in] UINT Rings,
  1048. [in,out] LPD3DXBUFFER *RetAdjacency,
  1049. [out,retval] LPD3DXMESH* RetMesh);
  1050. [helpcontext(86347)] HRESULT CreateTeapot(
  1051. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1052. [in,out] LPD3DXBUFFER *RetAdjacency,
  1053. [out,retval] LPD3DXMESH* RetMesh);
  1054. [helpcontext(96348)] HRESULT CreateText(
  1055. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1056. [in] HDC hDC,
  1057. [in] BSTR Text,
  1058. [in] FLOAT Deviation,
  1059. [in] FLOAT Extrusion,
  1060. [in,out] LPD3DXMESH * RetMesh,
  1061. [in,out] LPD3DXBUFFER *AdjacencyOut,
  1062. [in,out] void *GlyphMetrics);
  1063. [helpcontext(86314)] HRESULT BufferGetBoneName([in] LPD3DXBUFFER BoneNameBuffer,
  1064. [in] DWORD index, [out,retval] BSTR *retName);
  1065. [helpcontext(86346)] HRESULT CreateSprite(
  1066. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1067. [out,retval] D3DXSprite ** retSprite);
  1068. [helpcontext(86340)] HRESULT CreateRenderToSurface(
  1069. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1070. [in] UINT Width,
  1071. [in] UINT Height,
  1072. [in] CONST_D3DFORMAT Format,
  1073. [in] LONG DepthStencil,
  1074. [in] CONST_D3DFORMAT DepthStencilFormat,
  1075. [out,retval] D3DXRenderToSurface **RetRenderToSurface);
  1076. [helpcontext(86322)] HRESULT CleanMesh([in] LPD3DXMESH MeshIn,[in] void *Adjacency, [in,out] BSTR *ErrLog,
  1077. [in,out] LPD3DXBUFFER AdjacencyOut,
  1078. [out,retval] LPD3DXMESH* MeshOut);
  1079. [helpcontext(86383)] HRESULT ValidMesh([in] LPD3DXMESH MeshIn,[in] void *Adjacency, [in,out,optional] BSTR *ErrLog,
  1080. [out,retval] VARIANT_BOOL *ret);
  1081. [helpcontext(86313)] HRESULT BoxBoundProbe([in] D3DVECTOR_CDESC *MinVert,[in] D3DVECTOR_CDESC *MaxVert,[in] D3DVECTOR_CDESC *RayPosition, [in] D3DVECTOR_CDESC *RayDirection, [out,retval] VARIANT_BOOL *ret);
  1082. [helpcontext(86379)] HRESULT SavePMeshToFile(
  1083. [in] BSTR Filename,
  1084. [in] D3DXPMesh *Mesh,
  1085. [in] D3DXMATERIAL_CDESC *MaterialArray,
  1086. [in] LONG MaterialCount);
  1087. [helpcontext(86367)] HRESULT LoadPMeshFromFile(
  1088. [in] BSTR Filename,
  1089. [in] DWORD options,
  1090. [in] LPDIRECT3DDEVICE8 D3DDevice,
  1091. [out] LPD3DXBUFFER *RetMaterials,
  1092. [out] LONG *RetNumMaterials,
  1093. [out,retval] D3DXPMesh **RetPMesh);
  1094. [helpcontext(87101)] HRESULT BufferGetBoneCombo([in] LPD3DXBUFFER BoneComboBuffer,
  1095. [in] DWORD index, [in,out] D3DXBONECOMBINATION_CDESC *boneCombo);
  1096. [helpcontext(87102)] HRESULT BufferGetBoneComboBoneIds([in] LPD3DXBUFFER BoneComboBuffer,
  1097. [in] DWORD index, [in] DWORD PaletteSize, [in] void *BoneIds);
  1098. [helpcontext(1)] HRESULT SaveSurfaceToFile([in] BSTR DestFile,
  1099. [in] CONST_D3DXIMAGE_FILEFORMAT DestFormat,
  1100. [in] LPDIRECT3DSURFACE8 SrcSurface,
  1101. [in] PALETTEENTRY* SrcPalette,
  1102. [in] RECT* SrcRect);
  1103. [helpcontext(1)] HRESULT SaveVolumeToFile([in] BSTR DestFile,
  1104. [in] CONST_D3DXIMAGE_FILEFORMAT DestFormat,
  1105. [in] LPDIRECT3DVOLUME8 SrcVolume,
  1106. [in] PALETTEENTRY* SrcPalette,
  1107. [in] void* SrcBox);
  1108. [helpcontext(1)] HRESULT SaveTextureToFile([in] BSTR DestFile,
  1109. [in] CONST_D3DXIMAGE_FILEFORMAT DestFormat,
  1110. [in] LPDIRECT3DBASETEXTURE8 SrcTexture,
  1111. [in] PALETTEENTRY* SrcPalette);
  1112. };
  1113. [
  1114. uuid(58356C5D-0BFD-48ed-93C5-F4520B6233DE),
  1115. helpstring("D3DX8"),
  1116. helpcontext(86302)
  1117. ]
  1118. coclass D3DX8 {
  1119. [default] interface I_dxj_D3DX8;
  1120. };