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.

1708 lines
78 KiB

  1. /*==========================================================================;
  2. *
  3. * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: d3drm.h
  6. * Content: Direct3DRM include file
  7. *@@BEGIN_MSINTERNAL
  8. *
  9. * History:
  10. * Date By Reason
  11. * ==== == ======
  12. * 27/02/96 stevela Moved from RL to D3DRM.
  13. *@@END_MSINTERNAL
  14. *
  15. ***************************************************************************/
  16. #ifndef _D3DRMOBJ_H_
  17. #define _D3DRMOBJ_H_
  18. // @@BEGIN_MSINTERNAL
  19. #ifdef WIN32
  20. // @@END_MSINTERNAL
  21. #include <objbase.h> /* Use Windows header files */
  22. #define VIRTUAL
  23. // @@BEGIN_MSINTERNAL
  24. #else
  25. /* No Windows platform */
  26. #include "d3drmbase.h"
  27. #endif
  28. // @@END_MSINTERNAL
  29. // @@BEGIN_MSINTERNAL
  30. #ifdef WINNT
  31. #include "d3prmdef.h"
  32. #else
  33. #include "d3drmdef.h"
  34. #endif
  35. #if 0
  36. // @@END_MSINTERNAL
  37. #include "d3drmdef.h"
  38. // @@BEGIN_MSINTERNAL
  39. #endif
  40. // @@END_MSINTERNAL
  41. #include "d3d.h"
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45. /*
  46. * The methods for IUnknown
  47. */
  48. #define IUNKNOWN_METHODS(kind) \
  49. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
  50. STDMETHOD_(ULONG, AddRef) (THIS) kind; \
  51. STDMETHOD_(ULONG, Release) (THIS) kind
  52. /*
  53. * The methods for IDirect3DRMObject
  54. */
  55. #define IDIRECT3DRMOBJECT_METHODS(kind) \
  56. STDMETHOD(Clone) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) kind; \
  57. STDMETHOD(AddDestroyCallback) (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
  58. STDMETHOD(DeleteDestroyCallback) (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
  59. STDMETHOD(SetAppData) (THIS_ DWORD data) kind; \
  60. STDMETHOD_(DWORD, GetAppData) (THIS) kind; \
  61. STDMETHOD(SetName) (THIS_ LPCSTR) kind; \
  62. STDMETHOD(GetName) (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind; \
  63. STDMETHOD(GetClassName) (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind
  64. #define WIN_TYPES(itype, ptype) \
  65. typedef interface itype FAR *LP##ptype, FAR **LPLP##ptype
  66. WIN_TYPES(IDirect3DRMObject, DIRECT3DRMOBJECT);
  67. WIN_TYPES(IDirect3DRMObject2, DIRECT3DRMOBJECT2);
  68. WIN_TYPES(IDirect3DRMDevice, DIRECT3DRMDEVICE);
  69. WIN_TYPES(IDirect3DRMDevice2, DIRECT3DRMDEVICE2);
  70. WIN_TYPES(IDirect3DRMDevice3, DIRECT3DRMDEVICE3);
  71. WIN_TYPES(IDirect3DRMViewport, DIRECT3DRMVIEWPORT);
  72. WIN_TYPES(IDirect3DRMViewport2, DIRECT3DRMVIEWPORT2);
  73. WIN_TYPES(IDirect3DRMFrame, DIRECT3DRMFRAME);
  74. WIN_TYPES(IDirect3DRMFrame2, DIRECT3DRMFRAME2);
  75. WIN_TYPES(IDirect3DRMFrame3, DIRECT3DRMFRAME3);
  76. WIN_TYPES(IDirect3DRMVisual, DIRECT3DRMVISUAL);
  77. WIN_TYPES(IDirect3DRMMesh, DIRECT3DRMMESH);
  78. WIN_TYPES(IDirect3DRMMeshBuilder, DIRECT3DRMMESHBUILDER);
  79. WIN_TYPES(IDirect3DRMMeshBuilder2, DIRECT3DRMMESHBUILDER2);
  80. WIN_TYPES(IDirect3DRMMeshBuilder3, DIRECT3DRMMESHBUILDER3);
  81. WIN_TYPES(IDirect3DRMFace, DIRECT3DRMFACE);
  82. WIN_TYPES(IDirect3DRMFace2, DIRECT3DRMFACE2);
  83. WIN_TYPES(IDirect3DRMLight, DIRECT3DRMLIGHT);
  84. WIN_TYPES(IDirect3DRMTexture, DIRECT3DRMTEXTURE);
  85. WIN_TYPES(IDirect3DRMTexture2, DIRECT3DRMTEXTURE2);
  86. WIN_TYPES(IDirect3DRMTexture3, DIRECT3DRMTEXTURE3);
  87. WIN_TYPES(IDirect3DRMWrap, DIRECT3DRMWRAP);
  88. WIN_TYPES(IDirect3DRMMaterial, DIRECT3DRMMATERIAL);
  89. WIN_TYPES(IDirect3DRMMaterial2, DIRECT3DRMMATERIAL2);
  90. WIN_TYPES(IDirect3DRMInterpolator, DIRECT3DRMINTERPOLATOR);
  91. WIN_TYPES(IDirect3DRMAnimation, DIRECT3DRMANIMATION);
  92. WIN_TYPES(IDirect3DRMAnimation2, DIRECT3DRMANIMATION2);
  93. WIN_TYPES(IDirect3DRMAnimationSet, DIRECT3DRMANIMATIONSET);
  94. WIN_TYPES(IDirect3DRMAnimationSet2, DIRECT3DRMANIMATIONSET2);
  95. WIN_TYPES(IDirect3DRMUserVisual, DIRECT3DRMUSERVISUAL);
  96. WIN_TYPES(IDirect3DRMShadow, DIRECT3DRMSHADOW);
  97. WIN_TYPES(IDirect3DRMShadow2, DIRECT3DRMSHADOW2);
  98. WIN_TYPES(IDirect3DRMArray, DIRECT3DRMARRAY);
  99. WIN_TYPES(IDirect3DRMObjectArray, DIRECT3DRMOBJECTARRAY);
  100. WIN_TYPES(IDirect3DRMDeviceArray, DIRECT3DRMDEVICEARRAY);
  101. WIN_TYPES(IDirect3DRMFaceArray, DIRECT3DRMFACEARRAY);
  102. WIN_TYPES(IDirect3DRMViewportArray, DIRECT3DRMVIEWPORTARRAY);
  103. WIN_TYPES(IDirect3DRMFrameArray, DIRECT3DRMFRAMEARRAY);
  104. WIN_TYPES(IDirect3DRMAnimationArray, DIRECT3DRMANIMATIONARRAY);
  105. WIN_TYPES(IDirect3DRMVisualArray, DIRECT3DRMVISUALARRAY);
  106. WIN_TYPES(IDirect3DRMPickedArray, DIRECT3DRMPICKEDARRAY);
  107. WIN_TYPES(IDirect3DRMPicked2Array, DIRECT3DRMPICKED2ARRAY);
  108. WIN_TYPES(IDirect3DRMLightArray, DIRECT3DRMLIGHTARRAY);
  109. WIN_TYPES(IDirect3DRMProgressiveMesh, DIRECT3DRMPROGRESSIVEMESH);
  110. WIN_TYPES(IDirect3DRMClippedVisual, DIRECT3DRMCLIPPEDVISUAL);
  111. /*
  112. * Direct3DRM Object classes
  113. */
  114. DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  115. DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  116. DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  117. DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  118. DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  119. DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  120. DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  121. DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  122. DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  123. DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  124. DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  125. DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  126. DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  127. DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  128. DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator,
  129. 0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  130. DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator,
  131. 0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  132. DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator,
  133. 0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  134. DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator,
  135. 0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  136. DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator,
  137. 0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  138. DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator,
  139. 0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  140. DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
  141. DEFINE_GUID(CLSID_CDirect3DRMClippedVisual, 0x5434e72d, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
  142. /*
  143. * Direct3DRM Object interfaces
  144. */
  145. DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  146. DEFINE_GUID(IID_IDirect3DRMObject2, 0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
  147. DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  148. DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
  149. DEFINE_GUID(IID_IDirect3DRMDevice3, 0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x0, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
  150. DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  151. DEFINE_GUID(IID_IDirect3DRMViewport2, 0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x0, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
  152. DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  153. DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x0, 0x0, 0xc0, 0x29, 0x1a, 0xc3);
  154. DEFINE_GUID(IID_IDirect3DRMFrame3, 0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
  155. DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  156. DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  157. DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  158. DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  159. DEFINE_GUID(IID_IDirect3DRMMeshBuilder3, 0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
  160. DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  161. DEFINE_GUID(IID_IDirect3DRMFace2, 0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
  162. DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  163. DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  164. DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b);
  165. DEFINE_GUID(IID_IDirect3DRMTexture3, 0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
  166. DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  167. DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  168. DEFINE_GUID(IID_IDirect3DRMMaterial2, 0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
  169. DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  170. DEFINE_GUID(IID_IDirect3DRMAnimation2, 0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
  171. DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  172. DEFINE_GUID(IID_IDirect3DRMAnimationSet2, 0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
  173. DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  174. DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  175. DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  176. DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  177. DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  178. DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  179. DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  180. DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  181. DEFINE_GUID(IID_IDirect3DRMAnimationArray,
  182. 0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x0, 0x60, 0x8, 0x3e, 0x45, 0xf3);
  183. DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  184. DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  185. DEFINE_GUID(IID_IDirect3DRMShadow2, 0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0xb, 0x0, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
  186. DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  187. DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  188. DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
  189. DEFINE_GUID(IID_IDirect3DRMClippedVisual, 0x5434e733, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
  190. typedef void (__cdecl *D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
  191. typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
  192. typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(LPDIRECT3DRMFRAME3 obj, LPVOID arg, D3DVALUE delta);
  193. typedef void (__cdecl *D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
  194. typedef void (__cdecl *D3DRMDEVICE3UPDATECALLBACK)(LPDIRECT3DRMDEVICE3 obj, LPVOID arg, int, LPD3DRECT);
  195. typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)
  196. ( LPDIRECT3DRMUSERVISUAL obj, LPVOID arg, D3DRMUSERVISUALREASON reason,
  197. LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view
  198. );
  199. typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)
  200. (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
  201. typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)
  202. (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE3 *);
  203. typedef void (__cdecl *D3DRMLOADCALLBACK)
  204. (LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
  205. typedef HRESULT (__cdecl *D3DRMDOWNSAMPLECALLBACK)
  206. (LPDIRECT3DRMTEXTURE3 lpDirect3DRMTexture, LPVOID pArg,
  207. LPDIRECTDRAWSURFACE pDDSSrc, LPDIRECTDRAWSURFACE pDDSDst);
  208. typedef HRESULT (__cdecl *D3DRMVALIDATIONCALLBACK)
  209. (LPDIRECT3DRMTEXTURE3 lpDirect3DRMTexture, LPVOID pArg,
  210. DWORD dwFlags, DWORD dwcRects, LPRECT pRects);
  211. //@@BEGIN_MSINTERNAL
  212. #ifdef BUILD_RLAPI
  213. typedef D3DRMOBJECTCALLBACK RLObjectCallback;
  214. typedef D3DRMFRAMEMOVECALLBACK RLFrameMoveCallback;
  215. typedef D3DRMFRAME3MOVECALLBACK RLFrame3MoveCallback;
  216. typedef D3DRMUPDATECALLBACK RLUpdateCallback;
  217. typedef D3DRMDEVICE3UPDATECALLBACK RLDevice3UpdateCallback;
  218. typedef D3DRMUSERVISUALCALLBACK RLUserVisualCallback;
  219. typedef D3DRMLOADTEXTURECALLBACK RLLoadTextureCallback;
  220. typedef D3DRMLOADTEXTURE3CALLBACK RLLoadTexture3Callback;
  221. typedef D3DRMLOADCALLBACK RLLoadCallback;
  222. typedef D3DRMDOWNSAMPLECALLBACK RLDownsampleCallback;
  223. typedef D3DRMVALIDATIONCALLBACK RLValidationCallback;
  224. #endif
  225. //@@END_MSINTERNAL
  226. typedef struct _D3DRMPICKDESC
  227. {
  228. ULONG ulFaceIdx;
  229. LONG lGroupIdx;
  230. D3DVECTOR vPosition;
  231. } D3DRMPICKDESC, *LPD3DRMPICKDESC;
  232. typedef struct _D3DRMPICKDESC2
  233. {
  234. ULONG ulFaceIdx;
  235. LONG lGroupIdx;
  236. D3DVECTOR dvPosition;
  237. D3DVALUE tu;
  238. D3DVALUE tv;
  239. D3DVECTOR dvNormal;
  240. D3DCOLOR dcColor;
  241. } D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
  242. #undef INTERFACE
  243. #define INTERFACE IDirect3DRMObject
  244. /*
  245. * Base class
  246. */
  247. DECLARE_INTERFACE_(IDirect3DRMObject, IUnknown)
  248. {
  249. IUNKNOWN_METHODS(PURE);
  250. IDIRECT3DRMOBJECT_METHODS(PURE);
  251. };
  252. #undef INTERFACE
  253. #define INTERFACE IDirect3DRMObject2
  254. DECLARE_INTERFACE_(IDirect3DRMObject2, IUnknown)
  255. {
  256. IUNKNOWN_METHODS(PURE);
  257. /*
  258. * IDirect3DRMObject2 methods
  259. */
  260. STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK lpFunc, LPVOID pvArg) PURE;
  261. STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE; \
  262. STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK lpFunc, LPVOID pvArg) PURE; \
  263. STDMETHOD(GetClientData)(THIS_ DWORD dwID, LPVOID* lplpvData) PURE;
  264. STDMETHOD(GetDirect3DRM)(THIS_ LPDIRECT3DRM* lplpDirect3DRM) PURE;
  265. STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
  266. STDMETHOD(SetClientData)(THIS_ DWORD dwID, LPVOID lpvData, DWORD dwFlags) PURE;
  267. STDMETHOD(SetName)(THIS_ LPCSTR lpName) PURE;
  268. STDMETHOD(GetAge)(THIS_ DWORD dwFlags, LPDWORD pdwAge) PURE;
  269. };
  270. #undef INTERFACE
  271. #define INTERFACE IDirect3DRMVisual
  272. DECLARE_INTERFACE_(IDirect3DRMVisual, IDirect3DRMObject)
  273. {
  274. IUNKNOWN_METHODS(PURE);
  275. IDIRECT3DRMOBJECT_METHODS(PURE);
  276. };
  277. #undef INTERFACE
  278. #define INTERFACE IDirect3DRMDevice
  279. DECLARE_INTERFACE_(IDirect3DRMDevice, IDirect3DRMObject)
  280. {
  281. IUNKNOWN_METHODS(PURE);
  282. IDIRECT3DRMOBJECT_METHODS(PURE);
  283. /*
  284. * IDirect3DRMDevice methods
  285. */
  286. STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
  287. STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
  288. STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
  289. STDMETHOD(Update)(THIS) PURE;
  290. STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
  291. STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
  292. STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
  293. STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
  294. STDMETHOD(SetDither)(THIS_ BOOL) PURE;
  295. STDMETHOD(SetShades)(THIS_ DWORD) PURE;
  296. STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
  297. STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
  298. STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
  299. STDMETHOD_(BOOL, GetDither)(THIS) PURE;
  300. STDMETHOD_(DWORD, GetShades)(THIS) PURE;
  301. STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
  302. STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
  303. STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
  304. STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
  305. STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
  306. STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
  307. STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
  308. STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
  309. };
  310. #undef INTERFACE
  311. #define INTERFACE IDirect3DRMDevice2
  312. DECLARE_INTERFACE_(IDirect3DRMDevice2, IDirect3DRMDevice)
  313. {
  314. IUNKNOWN_METHODS(PURE);
  315. IDIRECT3DRMOBJECT_METHODS(PURE);
  316. /*
  317. * IDirect3DRMDevice methods
  318. */
  319. STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
  320. STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
  321. STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
  322. STDMETHOD(Update)(THIS) PURE;
  323. STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
  324. STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
  325. STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
  326. STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
  327. STDMETHOD(SetDither)(THIS_ BOOL) PURE;
  328. STDMETHOD(SetShades)(THIS_ DWORD) PURE;
  329. STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
  330. STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
  331. STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
  332. STDMETHOD_(BOOL, GetDither)(THIS) PURE;
  333. STDMETHOD_(DWORD, GetShades)(THIS) PURE;
  334. STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
  335. STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
  336. STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
  337. STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
  338. STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
  339. STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
  340. STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
  341. STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
  342. /*
  343. * IDirect3DRMDevice2 methods
  344. */
  345. STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev) PURE;
  346. STDMETHOD(InitFromSurface)(THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack) PURE;
  347. STDMETHOD(SetRenderMode)(THIS_ DWORD dwFlags) PURE;
  348. STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
  349. STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
  350. };
  351. #undef INTERFACE
  352. #define INTERFACE IDirect3DRMDevice3
  353. DECLARE_INTERFACE_(IDirect3DRMDevice3, IDirect3DRMObject)
  354. {
  355. IUNKNOWN_METHODS(PURE);
  356. IDIRECT3DRMOBJECT_METHODS(PURE);
  357. /*
  358. * IDirect3DRMDevice methods
  359. */
  360. STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
  361. STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
  362. STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
  363. STDMETHOD(Update)(THIS) PURE;
  364. STDMETHOD(AddUpdateCallback)(THIS_ D3DRMDEVICE3UPDATECALLBACK, LPVOID arg) PURE;
  365. STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMDEVICE3UPDATECALLBACK, LPVOID arg) PURE;
  366. STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
  367. STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
  368. STDMETHOD(SetDither)(THIS_ BOOL) PURE;
  369. STDMETHOD(SetShades)(THIS_ DWORD) PURE;
  370. STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
  371. STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
  372. STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
  373. STDMETHOD_(BOOL, GetDither)(THIS) PURE;
  374. STDMETHOD_(DWORD, GetShades)(THIS) PURE;
  375. STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
  376. STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
  377. STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
  378. STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
  379. STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
  380. STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
  381. STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
  382. STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
  383. /*
  384. * IDirect3DRMDevice2 methods
  385. */
  386. STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev) PURE;
  387. STDMETHOD(InitFromSurface)(THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack, DWORD dwFlags) PURE;
  388. STDMETHOD(SetRenderMode)(THIS_ DWORD dwFlags) PURE;
  389. STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
  390. STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
  391. /*
  392. * IDirect3DRMDevice3 methods
  393. */
  394. STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD dwBitDepths, DWORD dwFlags, LPDDPIXELFORMAT lpDDPF) PURE;
  395. STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD dwVal, DWORD dwFlags) PURE;
  396. STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD dwVal, DWORD dwFlags) PURE;
  397. STDMETHOD(GetStateChangeOptions)(THIS_ DWORD dwStateClass, DWORD dwStateNum, LPDWORD pdwFlags) PURE;
  398. STDMETHOD(SetStateChangeOptions)(THIS_ DWORD dwStateClass, DWORD dwStateNum, DWORD dwFlags) PURE;
  399. };
  400. #undef INTERFACE
  401. #define INTERFACE IDirect3DRMViewport
  402. DECLARE_INTERFACE_(IDirect3DRMViewport, IDirect3DRMObject)
  403. {
  404. IUNKNOWN_METHODS(PURE);
  405. IDIRECT3DRMOBJECT_METHODS(PURE);
  406. /*
  407. * IDirect3DRMViewport methods
  408. */
  409. STDMETHOD(Init)
  410. ( THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera,
  411. DWORD xpos, DWORD ypos, DWORD width, DWORD height
  412. ) PURE;
  413. STDMETHOD(Clear)(THIS) PURE;
  414. STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
  415. STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
  416. STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
  417. STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
  418. STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
  419. STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME) PURE;
  420. STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
  421. STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
  422. STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
  423. STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
  424. STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
  425. STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
  426. STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME *) PURE;
  427. STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE *) PURE;
  428. STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
  429. STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
  430. STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
  431. STDMETHOD_(LONG, GetX)(THIS) PURE;
  432. STDMETHOD_(LONG, GetY)(THIS) PURE;
  433. STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
  434. STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
  435. STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
  436. STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
  437. STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
  438. STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
  439. STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
  440. };
  441. #undef INTERFACE
  442. #define INTERFACE IDirect3DRMViewport2
  443. DECLARE_INTERFACE_(IDirect3DRMViewport2, IDirect3DRMObject)
  444. {
  445. IUNKNOWN_METHODS(PURE);
  446. IDIRECT3DRMOBJECT_METHODS(PURE);
  447. /*
  448. * IDirect3DRMViewport2 methods
  449. */
  450. STDMETHOD(Init)
  451. ( THIS_ LPDIRECT3DRMDEVICE3 dev, LPDIRECT3DRMFRAME3 camera,
  452. DWORD xpos, DWORD ypos, DWORD width, DWORD height
  453. ) PURE;
  454. STDMETHOD(Clear)(THIS_ DWORD dwFlags) PURE;
  455. STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME3) PURE;
  456. STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
  457. STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
  458. STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
  459. STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
  460. STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME3) PURE;
  461. STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
  462. STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
  463. STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
  464. STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
  465. STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
  466. STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
  467. STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
  468. STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE3 *) PURE;
  469. STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
  470. STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
  471. STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
  472. STDMETHOD_(LONG, GetX)(THIS) PURE;
  473. STDMETHOD_(LONG, GetY)(THIS) PURE;
  474. STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
  475. STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
  476. STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
  477. STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
  478. STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
  479. STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
  480. STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
  481. STDMETHOD(TransformVectors)(THIS_ DWORD dwNumVectors,
  482. LPD3DRMVECTOR4D lpDstVectors,
  483. LPD3DVECTOR lpSrcVectors) PURE;
  484. STDMETHOD(InverseTransformVectors)(THIS_ DWORD dwNumVectors,
  485. LPD3DVECTOR lpDstVectors,
  486. LPD3DRMVECTOR4D lpSrcVectors) PURE;
  487. };
  488. #undef INTERFACE
  489. #define INTERFACE IDirect3DRMFrame
  490. DECLARE_INTERFACE_(IDirect3DRMFrame, IDirect3DRMVisual)
  491. {
  492. IUNKNOWN_METHODS(PURE);
  493. IDIRECT3DRMOBJECT_METHODS(PURE);
  494. /*
  495. * IDirect3DRMFrame methods
  496. */
  497. STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
  498. STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
  499. STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
  500. STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
  501. STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  502. STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  503. STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
  504. STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
  505. STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
  506. STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
  507. STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
  508. STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
  509. STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
  510. STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
  511. STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
  512. STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
  513. STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
  514. STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
  515. STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
  516. STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
  517. STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
  518. STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
  519. STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
  520. STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
  521. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
  522. STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
  523. STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
  524. STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
  525. STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
  526. STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
  527. STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
  528. STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
  529. STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
  530. STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
  531. STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
  532. STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
  533. STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
  534. STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
  535. STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  536. STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
  537. STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  538. STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
  539. STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
  540. STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
  541. STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
  542. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  543. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  544. STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
  545. STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
  546. STDMETHOD(SetOrientation)
  547. ( THIS_ LPDIRECT3DRMFRAME reference,
  548. D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
  549. D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
  550. ) PURE;
  551. STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  552. STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
  553. STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
  554. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  555. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  556. STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
  557. STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
  558. STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
  559. };
  560. #undef INTERFACE
  561. #define INTERFACE IDirect3DRMFrame2
  562. DECLARE_INTERFACE_(IDirect3DRMFrame2, IDirect3DRMFrame)
  563. {
  564. IUNKNOWN_METHODS(PURE);
  565. IDIRECT3DRMOBJECT_METHODS(PURE);
  566. /*
  567. * IDirect3DRMFrame methods
  568. */
  569. STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
  570. STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
  571. STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
  572. STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
  573. STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  574. STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  575. STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
  576. STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
  577. STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
  578. STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
  579. STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
  580. STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
  581. STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
  582. STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
  583. STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
  584. STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
  585. STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
  586. STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
  587. STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
  588. STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
  589. STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
  590. STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
  591. STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
  592. STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
  593. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
  594. STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
  595. STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
  596. STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
  597. STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
  598. STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
  599. STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
  600. STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
  601. STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
  602. STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
  603. STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
  604. STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
  605. STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
  606. STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
  607. STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  608. STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
  609. STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  610. STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
  611. STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
  612. STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
  613. STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
  614. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  615. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  616. STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
  617. STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
  618. STDMETHOD(SetOrientation)
  619. ( THIS_ LPDIRECT3DRMFRAME reference,
  620. D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
  621. D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
  622. ) PURE;
  623. STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  624. STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
  625. STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
  626. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  627. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  628. STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
  629. STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
  630. STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
  631. /*
  632. * IDirect3DRMFrame2 methods
  633. */
  634. STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg, DWORD dwFlags) PURE;
  635. STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
  636. STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
  637. STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
  638. STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
  639. STDMETHOD_(BOOL, GetInheritAxes)(THIS);
  640. STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
  641. STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
  642. STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
  643. STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
  644. D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
  645. STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
  646. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
  647. STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME reference, D3DRMQUATERNION *q) PURE;
  648. STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DRMRAY ray, DWORD dwFlags, LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
  649. STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat,
  650. D3DRMSAVEOPTIONS d3dSaveFlags);
  651. };
  652. #undef INTERFACE
  653. #define INTERFACE IDirect3DRMFrame3
  654. DECLARE_INTERFACE_(IDirect3DRMFrame3, IDirect3DRMVisual)
  655. {
  656. IUNKNOWN_METHODS(PURE);
  657. IDIRECT3DRMOBJECT_METHODS(PURE);
  658. /*
  659. * IDirect3DRMFrame3 methods
  660. */
  661. STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME3 child) PURE;
  662. STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
  663. STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg, DWORD dwFlags) PURE;
  664. STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
  665. STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  666. STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  667. STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
  668. STDMETHOD(AddVisual)(THIS_ LPUNKNOWN) PURE;
  669. STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
  670. STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
  671. STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
  672. STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
  673. STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
  674. STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_position) PURE;
  675. STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
  676. STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
  677. STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
  678. STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
  679. STDMETHOD(GetTransform)(THIS_ LPDIRECT3DRMFRAME3 reference,
  680. D3DRMMATRIX4D rmMatrix) PURE;
  681. STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
  682. STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
  683. STDMETHOD(GetVisuals)(THIS_ LPDWORD lpdwCount, LPUNKNOWN *) PURE;
  684. STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
  685. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID lpArg)PURE;
  686. STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME3 target, LPDIRECT3DRMFRAME3 reference, D3DRMFRAMECONSTRAINT) PURE;
  687. STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
  688. STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME3) PURE;
  689. STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
  690. STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg) PURE;
  691. STDMETHOD(DeleteVisual)(THIS_ LPUNKNOWN) PURE;
  692. STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
  693. STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
  694. STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
  695. STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
  696. STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
  697. STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
  698. STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
  699. STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  700. STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
  701. STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
  702. STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
  703. STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
  704. STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
  705. STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
  706. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  707. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  708. STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
  709. STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
  710. STDMETHOD(SetOrientation)
  711. ( THIS_ LPDIRECT3DRMFRAME3 reference,
  712. D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
  713. D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
  714. ) PURE;
  715. STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  716. STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
  717. STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
  718. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
  719. STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
  720. STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
  721. STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
  722. STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
  723. STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
  724. STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
  725. STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
  726. STDMETHOD_(BOOL, GetInheritAxes)(THIS);
  727. STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
  728. STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
  729. STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
  730. STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
  731. D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
  732. STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
  733. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
  734. STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DRMQUATERNION *q) PURE;
  735. STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DRMRAY ray, DWORD dwFlags, LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
  736. STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat,
  737. D3DRMSAVEOPTIONS d3dSaveFlags);
  738. STDMETHOD(TransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference,
  739. DWORD dwNumVectors,
  740. LPD3DVECTOR lpDstVectors,
  741. LPD3DVECTOR lpSrcVectors) PURE;
  742. STDMETHOD(InverseTransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference,
  743. DWORD dwNumVectors,
  744. LPD3DVECTOR lpDstVectors,
  745. LPD3DVECTOR lpSrcVectors) PURE;
  746. STDMETHOD(SetTraversalOptions)(THIS_ DWORD dwFlags) PURE;
  747. STDMETHOD(GetTraversalOptions)(THIS_ LPDWORD lpdwFlags) PURE;
  748. STDMETHOD(SetSceneFogMethod)(THIS_ DWORD dwFlags) PURE;
  749. STDMETHOD(GetSceneFogMethod)(THIS_ LPDWORD lpdwFlags) PURE;
  750. STDMETHOD(SetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
  751. STDMETHOD(GetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
  752. };
  753. #undef INTERFACE
  754. #define INTERFACE IDirect3DRMMesh
  755. DECLARE_INTERFACE_(IDirect3DRMMesh, IDirect3DRMVisual)
  756. {
  757. IUNKNOWN_METHODS(PURE);
  758. IDIRECT3DRMOBJECT_METHODS(PURE);
  759. /*
  760. * IDirect3DRMMesh methods
  761. */
  762. STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  763. STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
  764. STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
  765. STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData, D3DRMGROUPINDEX *returnId) PURE;
  766. STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count, D3DRMVERTEX *values) PURE;
  767. STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
  768. STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  769. STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
  770. STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
  771. STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value) PURE;
  772. STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value) PURE;
  773. STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
  774. STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace, DWORD *fDataSize, unsigned *fData) PURE;
  775. STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
  776. STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
  777. STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
  778. STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
  779. STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr) PURE;
  780. STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr) PURE;
  781. };
  782. #undef INTERFACE
  783. #define INTERFACE IDirect3DRMProgressiveMesh
  784. DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh, IDirect3DRMVisual)
  785. {
  786. IUNKNOWN_METHODS(PURE);
  787. IDIRECT3DRMOBJECT_METHODS(PURE);
  788. /*
  789. * IDirect3DRMProgressiveMesh methods
  790. */
  791. STDMETHOD(Load) (THIS_ LPVOID lpObjLocation, LPVOID lpObjId,
  792. D3DRMLOADOPTIONS dloLoadflags, D3DRMLOADTEXTURECALLBACK lpCallback,
  793. LPVOID lpArg) PURE;
  794. STDMETHOD(GetLoadStatus) (THIS_ LPD3DRMPMESHLOADSTATUS lpStatus) PURE;
  795. STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
  796. STDMETHOD(Abort) (THIS_ DWORD dwFlags) PURE;
  797. STDMETHOD(GetFaceDetail) (THIS_ LPDWORD lpdwCount) PURE;
  798. STDMETHOD(GetVertexDetail) (THIS_ LPDWORD lpdwCount) PURE;
  799. STDMETHOD(SetFaceDetail) (THIS_ DWORD dwCount) PURE;
  800. STDMETHOD(SetVertexDetail) (THIS_ DWORD dwCount) PURE;
  801. STDMETHOD(GetFaceDetailRange) (THIS_ LPDWORD lpdwMin, LPDWORD lpdwMax) PURE;
  802. STDMETHOD(GetVertexDetailRange) (THIS_ LPDWORD lpdwMin, LPDWORD lpdwMax) PURE;
  803. STDMETHOD(GetDetail) (THIS_ D3DVALUE *lpdvVal) PURE;
  804. STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
  805. STDMETHOD(RegisterEvents) (THIS_ HANDLE hEvent, DWORD dwFlags, DWORD dwReserved) PURE;
  806. STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *lplpD3DRMMesh) PURE;
  807. STDMETHOD(Duplicate) (THIS_ LPDIRECT3DRMPROGRESSIVEMESH *lplpD3DRMPMesh) PURE;
  808. STDMETHOD(GetBox) (THIS_ LPD3DRMBOX lpBBox) PURE;
  809. STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY) PURE;
  810. STDMETHOD(GetQuality) (THIS_ LPD3DRMRENDERQUALITY lpdwquality) PURE;
  811. };
  812. #undef INTERFACE
  813. #define INTERFACE IDirect3DRMShadow
  814. DECLARE_INTERFACE_(IDirect3DRMShadow, IDirect3DRMVisual)
  815. {
  816. IUNKNOWN_METHODS(PURE);
  817. IDIRECT3DRMOBJECT_METHODS(PURE);
  818. /*
  819. * IDirect3DRMShadow methods
  820. */
  821. STDMETHOD(Init)
  822. ( THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
  823. D3DVALUE px, D3DVALUE py, D3DVALUE pz,
  824. D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
  825. ) PURE;
  826. };
  827. #undef INTERFACE
  828. #define INTERFACE IDirect3DRMShadow2
  829. DECLARE_INTERFACE_(IDirect3DRMShadow2, IDirect3DRMVisual)
  830. {
  831. IUNKNOWN_METHODS(PURE);
  832. IDIRECT3DRMOBJECT_METHODS(PURE);
  833. /*
  834. * IDirect3DRMShadow methods
  835. */
  836. STDMETHOD(Init)
  837. ( THIS_ LPUNKNOWN pUNK, LPDIRECT3DRMLIGHT light,
  838. D3DVALUE px, D3DVALUE py, D3DVALUE pz,
  839. D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
  840. ) PURE;
  841. /*
  842. * IDirect3DRMShadow2 methods
  843. */
  844. STDMETHOD(GetVisual)(THIS_ LPDIRECT3DRMVISUAL *) PURE;
  845. STDMETHOD(SetVisual)(THIS_ LPUNKNOWN pUNK, DWORD) PURE;
  846. STDMETHOD(GetLight)(THIS_ LPDIRECT3DRMLIGHT *) PURE;
  847. STDMETHOD(SetLight)(THIS_ LPDIRECT3DRMLIGHT, DWORD) PURE;
  848. STDMETHOD(GetPlane)(THIS_ LPD3DVALUE px, LPD3DVALUE py, LPD3DVALUE pz,
  849. LPD3DVALUE nx, LPD3DVALUE ny, LPD3DVALUE nz) PURE;
  850. STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
  851. D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, DWORD) PURE;
  852. STDMETHOD(GetOptions)(THIS_ LPDWORD) PURE;
  853. STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
  854. };
  855. #undef INTERFACE
  856. #define INTERFACE IDirect3DRMFace
  857. DECLARE_INTERFACE_(IDirect3DRMFace, IDirect3DRMObject)
  858. {
  859. IUNKNOWN_METHODS(PURE);
  860. IDIRECT3DRMOBJECT_METHODS(PURE);
  861. /*
  862. * IDirect3DRMFace methods
  863. */
  864. STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  865. STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
  866. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
  867. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  868. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  869. STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
  870. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
  871. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  872. STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
  873. STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
  874. STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
  875. STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
  876. STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
  877. STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
  878. STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
  879. STDMETHOD_(int, GetVertexCount)(THIS) PURE;
  880. STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
  881. STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
  882. STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
  883. };
  884. #undef INTERFACE
  885. #define INTERFACE IDirect3DRMFace2
  886. DECLARE_INTERFACE_(IDirect3DRMFace2, IDirect3DRMObject)
  887. {
  888. IUNKNOWN_METHODS(PURE);
  889. IDIRECT3DRMOBJECT_METHODS(PURE);
  890. /*
  891. * IDirect3DRMFace methods
  892. */
  893. STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  894. STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
  895. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
  896. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  897. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
  898. STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
  899. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
  900. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  901. STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
  902. STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
  903. STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
  904. STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
  905. STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
  906. STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
  907. STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
  908. STDMETHOD_(int, GetVertexCount)(THIS) PURE;
  909. STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
  910. STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
  911. STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
  912. };
  913. #undef INTERFACE
  914. #define INTERFACE IDirect3DRMMeshBuilder
  915. DECLARE_INTERFACE_(IDirect3DRMMeshBuilder, IDirect3DRMVisual)
  916. {
  917. IUNKNOWN_METHODS(PURE);
  918. IDIRECT3DRMOBJECT_METHODS(PURE);
  919. /*
  920. * IDirect3DRMMeshBuilder methods
  921. */
  922. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
  923. STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
  924. STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  925. STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
  926. STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
  927. STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
  928. STDMETHOD(GenerateNormals)(THIS) PURE;
  929. STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
  930. STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
  931. STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
  932. STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
  933. STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
  934. STDMETHOD(AddFaces)
  935. ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
  936. DWORD *data, LPDIRECT3DRMFACEARRAY*
  937. ) PURE;
  938. STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
  939. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  940. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  941. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  942. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
  943. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  944. STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
  945. STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
  946. STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  947. STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  948. STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
  949. STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
  950. STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  951. STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
  952. STDMETHOD(GetVertices)
  953. ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
  954. ) PURE;
  955. STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
  956. STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  957. STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  958. STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
  959. STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
  960. STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
  961. STDMETHOD_(int, GetFaceCount)(THIS) PURE;
  962. STDMETHOD_(int, GetVertexCount)(THIS) PURE;
  963. STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
  964. STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
  965. };
  966. #undef INTERFACE
  967. #define INTERFACE IDirect3DRMMeshBuilder2
  968. DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2, IDirect3DRMMeshBuilder)
  969. {
  970. IUNKNOWN_METHODS(PURE);
  971. IDIRECT3DRMOBJECT_METHODS(PURE);
  972. /*
  973. * IDirect3DRMMeshBuilder methods
  974. */
  975. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
  976. STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
  977. STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  978. STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
  979. STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
  980. STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
  981. STDMETHOD(GenerateNormals)(THIS) PURE;
  982. STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
  983. STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
  984. STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
  985. STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
  986. STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
  987. STDMETHOD(AddFaces)
  988. ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
  989. DWORD *data, LPDIRECT3DRMFACEARRAY*
  990. ) PURE;
  991. STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
  992. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  993. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  994. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
  995. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
  996. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  997. STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
  998. STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
  999. STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1000. STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1001. STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
  1002. STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
  1003. STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  1004. STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
  1005. STDMETHOD(GetVertices)
  1006. ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
  1007. ) PURE;
  1008. STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
  1009. STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1010. STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1011. STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
  1012. STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
  1013. STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
  1014. STDMETHOD_(int, GetFaceCount)(THIS) PURE;
  1015. STDMETHOD_(int, GetVertexCount)(THIS) PURE;
  1016. STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
  1017. STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
  1018. /*
  1019. * IDirect3DRMMeshBuilder2 methods
  1020. */
  1021. STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD dwFlags) PURE;
  1022. STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE*) PURE;
  1023. };
  1024. #undef INTERFACE
  1025. #define INTERFACE IDirect3DRMMeshBuilder3
  1026. DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3, IDirect3DRMVisual)
  1027. {
  1028. IUNKNOWN_METHODS(PURE);
  1029. IDIRECT3DRMOBJECT_METHODS(PURE);
  1030. /*
  1031. * IDirect3DRMMeshBuilder3 methods
  1032. */
  1033. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID lpArg) PURE;
  1034. STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
  1035. STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
  1036. STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
  1037. STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
  1038. STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
  1039. STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD dwFlags) PURE;
  1040. STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
  1041. STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
  1042. STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3, DWORD dwFlags) PURE;
  1043. STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME3) PURE;
  1044. STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
  1045. STDMETHOD(AddFaces)
  1046. ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
  1047. DWORD *data, LPDIRECT3DRMFACEARRAY*
  1048. ) PURE;
  1049. STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
  1050. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  1051. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  1052. STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
  1053. STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
  1054. STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
  1055. STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
  1056. STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
  1057. STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1058. STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1059. STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
  1060. STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
  1061. STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  1062. STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
  1063. STDMETHOD(GetGeometry)
  1064. ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
  1065. ) PURE;
  1066. STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
  1067. STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1068. STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1069. STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE2 *) PURE;
  1070. STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
  1071. STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
  1072. STDMETHOD_(int, GetFaceCount)(THIS) PURE;
  1073. STDMETHOD_(int, GetVertexCount)(THIS) PURE;
  1074. STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
  1075. STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
  1076. STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE2 *) PURE;
  1077. STDMETHOD(GetVertex)(THIS_ DWORD dwIndex, LPD3DVECTOR lpVector) PURE;
  1078. STDMETHOD(GetNormal)(THIS_ DWORD dwIndex, LPD3DVECTOR lpVector) PURE;
  1079. STDMETHOD(DeleteVertices)(THIS_ DWORD dwIndexFirst, DWORD dwCount) PURE;
  1080. STDMETHOD(DeleteNormals)(THIS_ DWORD dwIndexFirst, DWORD dwCount) PURE;
  1081. STDMETHOD(DeleteFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
  1082. STDMETHOD(Empty)(THIS_ DWORD dwFlags) PURE;
  1083. STDMETHOD(Optimize)(THIS_ DWORD dwFlags) PURE;
  1084. STDMETHOD(AddFacesIndexed)(THIS_ DWORD dwFlags, DWORD *lpdwvIndices, DWORD *dwIndexFirst, DWORD *dwCount) PURE;
  1085. STDMETHOD(CreateSubMesh)(THIS_ LPUNKNOWN *) PURE;
  1086. STDMETHOD(GetParentMesh)(THIS_ DWORD, LPUNKNOWN *) PURE;
  1087. STDMETHOD(GetSubMeshes)(THIS_ LPDWORD lpdwCount, LPUNKNOWN *) PURE;
  1088. STDMETHOD(DeleteSubMesh)(THIS_ LPUNKNOWN) PURE;
  1089. STDMETHOD(Enable)(THIS_ DWORD) PURE;
  1090. STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
  1091. STDMETHOD(AddTriangles)(THIS_ DWORD dwFlags, DWORD dwFormat,
  1092. DWORD dwVertexCount, LPVOID lpvData) PURE;
  1093. STDMETHOD(SetVertices)(THIS_ DWORD dwIndexFirst, DWORD dwCount, LPD3DVECTOR) PURE;
  1094. STDMETHOD(GetVertices)(THIS_ DWORD dwIndexFirst, LPDWORD lpdwCount, LPD3DVECTOR) PURE;
  1095. STDMETHOD(SetNormals)(THIS_ DWORD dwIndexFirst, DWORD dwCount, LPD3DVECTOR) PURE;
  1096. STDMETHOD(GetNormals)(THIS_ DWORD dwIndexFirst, LPDWORD lpdwCount, LPD3DVECTOR) PURE;
  1097. STDMETHOD_(int, GetNormalCount)(THIS) PURE;
  1098. };
  1099. #undef INTERFACE
  1100. #define INTERFACE IDirect3DRMLight
  1101. DECLARE_INTERFACE_(IDirect3DRMLight, IDirect3DRMObject)
  1102. {
  1103. IUNKNOWN_METHODS(PURE);
  1104. IDIRECT3DRMOBJECT_METHODS(PURE);
  1105. /*
  1106. * IDirect3DRMLight methods
  1107. */
  1108. STDMETHOD(SetType)(THIS_ D3DRMLIGHTTYPE) PURE;
  1109. STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
  1110. STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
  1111. STDMETHOD(SetRange)(THIS_ D3DVALUE) PURE;
  1112. STDMETHOD(SetUmbra)(THIS_ D3DVALUE) PURE;
  1113. STDMETHOD(SetPenumbra)(THIS_ D3DVALUE) PURE;
  1114. STDMETHOD(SetConstantAttenuation)(THIS_ D3DVALUE) PURE;
  1115. STDMETHOD(SetLinearAttenuation)(THIS_ D3DVALUE) PURE;
  1116. STDMETHOD(SetQuadraticAttenuation)(THIS_ D3DVALUE) PURE;
  1117. STDMETHOD_(D3DVALUE, GetRange)(THIS) PURE;
  1118. STDMETHOD_(D3DVALUE, GetUmbra)(THIS) PURE;
  1119. STDMETHOD_(D3DVALUE, GetPenumbra)(THIS) PURE;
  1120. STDMETHOD_(D3DVALUE, GetConstantAttenuation)(THIS) PURE;
  1121. STDMETHOD_(D3DVALUE, GetLinearAttenuation)(THIS) PURE;
  1122. STDMETHOD_(D3DVALUE, GetQuadraticAttenuation)(THIS) PURE;
  1123. STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
  1124. STDMETHOD_(D3DRMLIGHTTYPE, GetType)(THIS) PURE;
  1125. STDMETHOD(SetEnableFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
  1126. STDMETHOD(GetEnableFrame)(THIS_ LPDIRECT3DRMFRAME*) PURE;
  1127. };
  1128. #undef INTERFACE
  1129. #define INTERFACE IDirect3DRMTexture
  1130. DECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
  1131. {
  1132. IUNKNOWN_METHODS(PURE);
  1133. IDIRECT3DRMOBJECT_METHODS(PURE);
  1134. /*
  1135. * IDirect3DRMTexture methods
  1136. */
  1137. STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
  1138. STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
  1139. STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
  1140. STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
  1141. STDMETHOD(SetColors)(THIS_ DWORD) PURE;
  1142. STDMETHOD(SetShades)(THIS_ DWORD) PURE;
  1143. STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
  1144. STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
  1145. STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
  1146. STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
  1147. STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
  1148. STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
  1149. STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
  1150. STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
  1151. STDMETHOD_(DWORD, GetShades)(THIS) PURE;
  1152. STDMETHOD_(DWORD, GetColors)(THIS) PURE;
  1153. STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
  1154. STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
  1155. STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
  1156. };
  1157. #undef INTERFACE
  1158. #define INTERFACE IDirect3DRMTexture2
  1159. DECLARE_INTERFACE_(IDirect3DRMTexture2, IDirect3DRMTexture)
  1160. {
  1161. IUNKNOWN_METHODS(PURE);
  1162. IDIRECT3DRMOBJECT_METHODS(PURE);
  1163. /*
  1164. * IDirect3DRMTexture methods
  1165. */
  1166. STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
  1167. STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
  1168. STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
  1169. STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
  1170. STDMETHOD(SetColors)(THIS_ DWORD) PURE;
  1171. STDMETHOD(SetShades)(THIS_ DWORD) PURE;
  1172. STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
  1173. STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
  1174. STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
  1175. STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
  1176. STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
  1177. STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
  1178. STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
  1179. STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
  1180. STDMETHOD_(DWORD, GetShades)(THIS) PURE;
  1181. STDMETHOD_(DWORD, GetColors)(THIS) PURE;
  1182. STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
  1183. STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
  1184. STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
  1185. /*
  1186. * IDirect3DRMTexture2 methods
  1187. */
  1188. STDMETHOD(InitFromImage)(THIS_ LPD3DRMIMAGE) PURE;
  1189. STDMETHOD(InitFromResource2)(THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType) PURE;
  1190. STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
  1191. };
  1192. #undef INTERFACE
  1193. #define INTERFACE IDirect3DRMTexture3
  1194. DECLARE_INTERFACE_(IDirect3DRMTexture3, IDirect3DRMVisual)
  1195. {
  1196. IUNKNOWN_METHODS(PURE);
  1197. IDIRECT3DRMOBJECT_METHODS(PURE);
  1198. /*
  1199. * IDirect3DRMTexture3 methods
  1200. */
  1201. STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
  1202. STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
  1203. STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
  1204. STDMETHOD(Changed)(THIS_ DWORD dwFlags, DWORD dwcRects, LPRECT pRects) PURE;
  1205. STDMETHOD(SetColors)(THIS_ DWORD) PURE;
  1206. STDMETHOD(SetShades)(THIS_ DWORD) PURE;
  1207. STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
  1208. STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
  1209. STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
  1210. STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
  1211. STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
  1212. STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
  1213. STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
  1214. STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
  1215. STDMETHOD_(DWORD, GetShades)(THIS) PURE;
  1216. STDMETHOD_(DWORD, GetColors)(THIS) PURE;
  1217. STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
  1218. STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
  1219. STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
  1220. STDMETHOD(InitFromImage)(THIS_ LPD3DRMIMAGE) PURE;
  1221. STDMETHOD(InitFromResource2)(THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType) PURE;
  1222. STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
  1223. STDMETHOD(GetSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE* lplpDDS) PURE;
  1224. STDMETHOD(SetCacheOptions)(THIS_ LONG lImportance, DWORD dwFlags) PURE;
  1225. STDMETHOD(GetCacheOptions)(THIS_ LPLONG lplImportance, LPDWORD lpdwFlags) PURE;
  1226. STDMETHOD(SetDownsampleCallback)(THIS_ D3DRMDOWNSAMPLECALLBACK pCallback, LPVOID pArg) PURE;
  1227. STDMETHOD(SetValidationCallback)(THIS_ D3DRMVALIDATIONCALLBACK pCallback, LPVOID pArg) PURE;
  1228. };
  1229. #undef INTERFACE
  1230. #define INTERFACE IDirect3DRMWrap
  1231. DECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
  1232. {
  1233. IUNKNOWN_METHODS(PURE);
  1234. IDIRECT3DRMOBJECT_METHODS(PURE);
  1235. /*
  1236. * IDirect3DRMWrap methods
  1237. */
  1238. STDMETHOD(Init)
  1239. ( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME ref,
  1240. D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
  1241. D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
  1242. D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
  1243. D3DVALUE ou, D3DVALUE ov,
  1244. D3DVALUE su, D3DVALUE sv
  1245. ) PURE;
  1246. STDMETHOD(Apply)(THIS_ LPDIRECT3DRMOBJECT) PURE;
  1247. STDMETHOD(ApplyRelative)(THIS_ LPDIRECT3DRMFRAME frame, LPDIRECT3DRMOBJECT) PURE;
  1248. };
  1249. #undef INTERFACE
  1250. #define INTERFACE IDirect3DRMMaterial
  1251. DECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
  1252. {
  1253. IUNKNOWN_METHODS(PURE);
  1254. IDIRECT3DRMOBJECT_METHODS(PURE);
  1255. /*
  1256. * IDirect3DRMMaterial methods
  1257. */
  1258. STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
  1259. STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
  1260. STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
  1261. STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
  1262. STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
  1263. STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
  1264. };
  1265. #undef INTERFACE
  1266. #define INTERFACE IDirect3DRMMaterial2
  1267. DECLARE_INTERFACE_(IDirect3DRMMaterial2, IDirect3DRMObject)
  1268. {
  1269. IUNKNOWN_METHODS(PURE);
  1270. IDIRECT3DRMOBJECT_METHODS(PURE);
  1271. /*
  1272. * IDirect3DRMMaterial2 methods
  1273. */
  1274. STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
  1275. STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
  1276. STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
  1277. STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
  1278. STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
  1279. STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
  1280. STDMETHOD(GetAmbient)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
  1281. STDMETHOD(SetAmbient)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
  1282. };
  1283. #undef INTERFACE
  1284. #define INTERFACE IDirect3DRMAnimation
  1285. DECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
  1286. {
  1287. IUNKNOWN_METHODS(PURE);
  1288. IDIRECT3DRMOBJECT_METHODS(PURE);
  1289. /*
  1290. * IDirect3DRMAnimation methods
  1291. */
  1292. STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
  1293. STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
  1294. STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1295. STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1296. STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
  1297. STDMETHOD(SetFrame)(THIS_ LPDIRECT3DRMFRAME frame) PURE;
  1298. STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
  1299. STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
  1300. };
  1301. #undef INTERFACE
  1302. #define INTERFACE IDirect3DRMAnimation2
  1303. DECLARE_INTERFACE_(IDirect3DRMAnimation2, IDirect3DRMObject)
  1304. {
  1305. IUNKNOWN_METHODS(PURE);
  1306. IDIRECT3DRMOBJECT_METHODS(PURE);
  1307. /*
  1308. * IDirect3DRMAnimation2 methods
  1309. */
  1310. STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
  1311. STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
  1312. STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1313. STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
  1314. STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
  1315. STDMETHOD(SetFrame)(THIS_ LPDIRECT3DRMFRAME3 frame) PURE;
  1316. STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
  1317. STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
  1318. STDMETHOD(GetFrame)(THIS_ LPDIRECT3DRMFRAME3 *lpD3DFrame) PURE;
  1319. STDMETHOD(DeleteKeyByID)(THIS_ DWORD dwID) PURE;
  1320. STDMETHOD(AddKey)(THIS_ LPD3DRMANIMATIONKEY lpKey) PURE;
  1321. STDMETHOD(ModifyKey)(THIS_ LPD3DRMANIMATIONKEY lpKey) PURE;
  1322. STDMETHOD(GetKeys)(THIS_ D3DVALUE dvTimeMin,
  1323. D3DVALUE dvTimeMax, LPDWORD lpdwNumKeys,
  1324. LPD3DRMANIMATIONKEY lpKey);
  1325. };
  1326. #undef INTERFACE
  1327. #define INTERFACE IDirect3DRMAnimationSet
  1328. DECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
  1329. {
  1330. IUNKNOWN_METHODS(PURE);
  1331. IDIRECT3DRMOBJECT_METHODS(PURE);
  1332. /*
  1333. * IDirect3DRMAnimationSet methods
  1334. */
  1335. STDMETHOD(AddAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
  1336. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg, LPDIRECT3DRMFRAME parent)PURE;
  1337. STDMETHOD(DeleteAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
  1338. STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
  1339. };
  1340. #undef INTERFACE
  1341. #define INTERFACE IDirect3DRMAnimationSet2
  1342. DECLARE_INTERFACE_(IDirect3DRMAnimationSet2, IDirect3DRMObject)
  1343. {
  1344. IUNKNOWN_METHODS(PURE);
  1345. IDIRECT3DRMOBJECT_METHODS(PURE);
  1346. /*
  1347. * IDirect3DRMAnimationSet2 methods
  1348. */
  1349. STDMETHOD(AddAnimation)(THIS_ LPDIRECT3DRMANIMATION2 aid) PURE;
  1350. STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID lpArg, LPDIRECT3DRMFRAME3 parent)PURE;
  1351. STDMETHOD(DeleteAnimation)(THIS_ LPDIRECT3DRMANIMATION2 aid) PURE;
  1352. STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
  1353. STDMETHOD(GetAnimations)(THIS_ LPDIRECT3DRMANIMATIONARRAY *) PURE;
  1354. };
  1355. #undef INTERFACE
  1356. #define INTERFACE IDirect3DRMUserVisual
  1357. DECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
  1358. {
  1359. IUNKNOWN_METHODS(PURE);
  1360. IDIRECT3DRMOBJECT_METHODS(PURE);
  1361. /*
  1362. * IDirect3DRMUserVisual methods
  1363. */
  1364. STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
  1365. };
  1366. #undef INTERFACE
  1367. #define INTERFACE IDirect3DRMArray
  1368. DECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
  1369. {
  1370. IUNKNOWN_METHODS(PURE);
  1371. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1372. /* No GetElement method as it would get overloaded
  1373. * in derived classes, and overloading is
  1374. * a no-no in COM
  1375. */
  1376. };
  1377. #undef INTERFACE
  1378. #define INTERFACE IDirect3DRMObjectArray
  1379. DECLARE_INTERFACE_(IDirect3DRMObjectArray, IDirect3DRMArray)
  1380. {
  1381. IUNKNOWN_METHODS(PURE);
  1382. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1383. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMOBJECT *) PURE;
  1384. };
  1385. #undef INTERFACE
  1386. #define INTERFACE IDirect3DRMDeviceArray
  1387. DECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
  1388. {
  1389. IUNKNOWN_METHODS(PURE);
  1390. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1391. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMDEVICE *) PURE;
  1392. };
  1393. #undef INTERFACE
  1394. #define INTERFACE IDirect3DRMFrameArray
  1395. DECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
  1396. {
  1397. IUNKNOWN_METHODS(PURE);
  1398. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1399. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFRAME *) PURE;
  1400. };
  1401. #undef INTERFACE
  1402. #define INTERFACE IDirect3DRMViewportArray
  1403. DECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
  1404. {
  1405. IUNKNOWN_METHODS(PURE);
  1406. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1407. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVIEWPORT *) PURE;
  1408. };
  1409. #undef INTERFACE
  1410. #define INTERFACE IDirect3DRMVisualArray
  1411. DECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
  1412. {
  1413. IUNKNOWN_METHODS(PURE);
  1414. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1415. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *) PURE;
  1416. };
  1417. #undef INTERFACE
  1418. #define INTERFACE IDirect3DRMAnimationArray
  1419. DECLARE_INTERFACE_(IDirect3DRMAnimationArray, IDirect3DRMArray)
  1420. {
  1421. IUNKNOWN_METHODS(PURE);
  1422. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1423. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMANIMATION2 *) PURE;
  1424. };
  1425. #undef INTERFACE
  1426. #define INTERFACE IDirect3DRMPickedArray
  1427. DECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
  1428. {
  1429. IUNKNOWN_METHODS(PURE);
  1430. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1431. STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC) PURE;
  1432. };
  1433. #undef INTERFACE
  1434. #define INTERFACE IDirect3DRMLightArray
  1435. DECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
  1436. {
  1437. IUNKNOWN_METHODS(PURE);
  1438. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1439. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMLIGHT *) PURE;
  1440. };
  1441. #undef INTERFACE
  1442. #define INTERFACE IDirect3DRMFaceArray
  1443. DECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
  1444. {
  1445. IUNKNOWN_METHODS(PURE);
  1446. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1447. STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFACE *) PURE;
  1448. };
  1449. #undef INTERFACE
  1450. #define INTERFACE IDirect3DRMPicked2Array
  1451. DECLARE_INTERFACE_(IDirect3DRMPicked2Array, IDirect3DRMArray)
  1452. {
  1453. IUNKNOWN_METHODS(PURE);
  1454. STDMETHOD_(DWORD, GetSize)(THIS) PURE;
  1455. STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC2) PURE;
  1456. };
  1457. #undef INTERFACE
  1458. #define INTERFACE IDirect3DRMInterpolator
  1459. DECLARE_INTERFACE_(IDirect3DRMInterpolator, IDirect3DRMObject)
  1460. {
  1461. IUNKNOWN_METHODS(PURE);
  1462. IDIRECT3DRMOBJECT_METHODS(PURE);
  1463. /*
  1464. * IDirect3DRMInterpolator methods
  1465. */
  1466. STDMETHOD(AttachObject)(THIS_ LPDIRECT3DRMOBJECT) PURE;
  1467. STDMETHOD(GetAttachedObjects)(THIS_ LPDIRECT3DRMOBJECTARRAY *) PURE;
  1468. STDMETHOD(DetachObject)(THIS_ LPDIRECT3DRMOBJECT) PURE;
  1469. STDMETHOD(SetIndex)(THIS_ D3DVALUE) PURE;
  1470. STDMETHOD_(D3DVALUE, GetIndex)(THIS) PURE;
  1471. STDMETHOD(Interpolate)(THIS_ D3DVALUE, LPDIRECT3DRMOBJECT, D3DRMINTERPOLATIONOPTIONS) PURE;
  1472. };
  1473. #undef INTERFACE
  1474. #define INTERFACE IDirect3DRMClippedVisual
  1475. DECLARE_INTERFACE_(IDirect3DRMClippedVisual, IDirect3DRMVisual)
  1476. {
  1477. IUNKNOWN_METHODS(PURE);
  1478. IDIRECT3DRMOBJECT_METHODS(PURE);
  1479. /*
  1480. * IDirect3DRMClippedVisual methods
  1481. */
  1482. STDMETHOD(Init) (THIS_ LPDIRECT3DRMVISUAL) PURE;
  1483. STDMETHOD(AddPlane) (THIS_ LPDIRECT3DRMFRAME3, LPD3DVECTOR, LPD3DVECTOR, DWORD, LPDWORD) PURE;
  1484. STDMETHOD(DeletePlane)(THIS_ DWORD, DWORD) PURE;
  1485. STDMETHOD(GetPlaneIDs)(THIS_ LPDWORD, LPDWORD, DWORD) PURE;
  1486. STDMETHOD(GetPlane) (THIS_ DWORD, LPDIRECT3DRMFRAME3, LPD3DVECTOR, LPD3DVECTOR, DWORD) PURE;
  1487. STDMETHOD(SetPlane) (THIS_ DWORD, LPDIRECT3DRMFRAME3, LPD3DVECTOR, LPD3DVECTOR, DWORD) PURE;
  1488. };
  1489. #ifdef __cplusplus
  1490. };
  1491. #endif
  1492. #endif /* _D3DRMOBJ_H_ */