d3d9.h 100 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487
  1. /*
  2. * Copyright (C) 2002-2003 Jason Edmeades
  3. * Raphael Junqueira
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2.1 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General Public
  16. * License along with this library; if not, write to the Free Software
  17. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  18. */
  19. #ifndef __WINE_D3D9_H
  20. #define __WINE_D3D9_H
  21. #ifndef DIRECT3D_VERSION
  22. #define DIRECT3D_VERSION 0x0900
  23. #endif
  24. #include <objbase.h>
  25. #include <d3d9types.h>
  26. #include <d3d9caps.h>
  27. /*****************************************************************************
  28. * Behavior Flags for IDirect3D8::CreateDevice
  29. */
  30. #define D3DCREATE_FPU_PRESERVE 0x00000002L
  31. #define D3DCREATE_MULTITHREADED 0x00000004L
  32. #define D3DCREATE_PUREDEVICE 0x00000010L
  33. #define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L
  34. #define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L
  35. #define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L
  36. #define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100L
  37. #define D3DCREATE_ADAPTERGROUP_DEVICE 0x00000200L
  38. /*****************************************************************************
  39. * Flags for SetPrivateData
  40. */
  41. #define D3DSPD_IUNKNOWN 0x00000001L
  42. /*****************************************************************************
  43. * #defines and error codes
  44. */
  45. #define D3DADAPTER_DEFAULT 0
  46. #define D3DENUM_NO_WHQL_LEVEL 0x00000002L
  47. #define D3DPRESENT_BACK_BUFFERS_MAX 3L
  48. #define D3DSGR_NO_CALIBRATION 0x00000000L
  49. #define D3DSGR_CALIBRATE 0x00000001L
  50. #define _FACD3D 0x876
  51. #define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
  52. #define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code )
  53. /*****************************************************************************
  54. * Direct3D Errors
  55. */
  56. #define D3D_OK S_OK
  57. #define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
  58. #define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
  59. #define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
  60. #define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
  61. #define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
  62. #define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
  63. #define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
  64. #define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
  65. #define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
  66. #define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
  67. #define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
  68. #define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
  69. #define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
  70. #define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
  71. #define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
  72. #define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
  73. #define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
  74. #define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
  75. #define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
  76. #define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
  77. #define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
  78. #define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
  79. #define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
  80. /*****************************************************************************
  81. * Predeclare the interfaces
  82. */
  83. DEFINE_GUID(IID_IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
  84. typedef struct IDirect3D9 IDirect3D9, *LPDIRECT3D9, *PDIRECT3D9;
  85. DEFINE_GUID(IID_IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
  86. typedef struct IDirect3DDevice9 IDirect3DDevice9, *LPDIRECT3DDEVICE9;
  87. DEFINE_GUID(IID_IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
  88. typedef struct IDirect3DResource9 IDirect3DResource9, *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
  89. DEFINE_GUID(IID_IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
  90. typedef struct IDirect3DVertexBuffer9 IDirect3DVertexBuffer9, *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
  91. DEFINE_GUID(IID_IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
  92. typedef struct IDirect3DVolume9 IDirect3DVolume9, *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
  93. DEFINE_GUID(IID_IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
  94. typedef struct IDirect3DSwapChain9 IDirect3DSwapChain9, *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
  95. DEFINE_GUID(IID_IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
  96. typedef struct IDirect3DSurface9 IDirect3DSurface9, *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
  97. DEFINE_GUID(IID_IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
  98. typedef struct IDirect3DIndexBuffer9 IDirect3DIndexBuffer9, *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
  99. DEFINE_GUID(IID_IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
  100. typedef struct IDirect3DBaseTexture9 IDirect3DBaseTexture9, *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
  101. DEFINE_GUID(IID_IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
  102. typedef struct IDirect3DTexture9 IDirect3DTexture9, *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
  103. DEFINE_GUID(IID_IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
  104. typedef struct IDirect3DCubeTexture9 IDirect3DCubeTexture9, *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
  105. DEFINE_GUID(IID_IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
  106. typedef struct IDirect3DVolumeTexture9 IDirect3DVolumeTexture9, *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
  107. DEFINE_GUID(IID_IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
  108. typedef struct IDirect3DVertexDeclaration9 IDirect3DVertexDeclaration9, *LPDIRECT3DVERTEXDECLARATION9;
  109. DEFINE_GUID(IID_IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
  110. typedef struct IDirect3DVertexShader9 IDirect3DVertexShader9, *LPDIRECT3DVERTEXSHADER9;
  111. DEFINE_GUID(IID_IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
  112. typedef struct IDirect3DPixelShader9 IDirect3DPixelShader9, *LPDIRECT3DPIXELSHADER9;
  113. DEFINE_GUID(IID_IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
  114. typedef struct IDirect3DStateBlock9 IDirect3DStateBlock9, *LPDIRECT3DSTATEBLOCK9;
  115. DEFINE_GUID(IID_IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
  116. typedef struct IDirect3DQuery9 IDirect3DQuery9, *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
  117. /*****************************************************************************
  118. * IDirect3D9 interface
  119. */
  120. #define INTERFACE IDirect3D9
  121. DECLARE_INTERFACE_(IDirect3D9,IUnknown)
  122. {
  123. /*** IUnknown methods ***/
  124. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  125. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  126. STDMETHOD_(ULONG,Release)(THIS) PURE;
  127. /*** IDirect3D9 methods ***/
  128. STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
  129. STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
  130. STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
  131. STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
  132. STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
  133. STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
  134. STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
  135. STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
  136. STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
  137. STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
  138. STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
  139. STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
  140. STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
  141. STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
  142. };
  143. #undef INTERFACE
  144. #if !defined(__cplusplus) || defined(CINTERFACE)
  145. /*** IUnknown methods ***/
  146. #define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  147. #define IDirect3D9_AddRef(p) (p)->lpVtbl->AddRef(p)
  148. #define IDirect3D9_Release(p) (p)->lpVtbl->Release(p)
  149. /*** IDirect3D9 methods ***/
  150. #define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
  151. #define IDirect3D9_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
  152. #define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
  153. #define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
  154. #define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
  155. #define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
  156. #define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
  157. #define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
  158. #define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
  159. #define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
  160. #define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
  161. #define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
  162. #define IDirect3D9_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
  163. #define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
  164. #else
  165. /*** IUnknown methods ***/
  166. #define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  167. #define IDirect3D9_AddRef(p) (p)->AddRef()
  168. #define IDirect3D9_Release(p) (p)->Release()
  169. /*** IDirect3D9 methods ***/
  170. #define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
  171. #define IDirect3D9_GetAdapterCount(p) (p)->GetAdapterCount()
  172. #define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
  173. #define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
  174. #define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
  175. #define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
  176. #define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
  177. #define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
  178. #define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
  179. #define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
  180. #define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
  181. #define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
  182. #define IDirect3D9_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
  183. #define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
  184. #endif
  185. /*****************************************************************************
  186. * IDirect3DDevice9 interface
  187. */
  188. #define INTERFACE IDirect3DDevice9
  189. DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
  190. {
  191. /*** IUnknown methods ***/
  192. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  193. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  194. STDMETHOD_(ULONG,Release)(THIS) PURE;
  195. /*** IDirect3DDevice9 methods ***/
  196. STDMETHOD(TestCooperativeLevel)(THIS) PURE;
  197. STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
  198. STDMETHOD(EvictManagedResources)(THIS) PURE;
  199. STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
  200. STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
  201. STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
  202. STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
  203. STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
  204. STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
  205. STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
  206. STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
  207. STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
  208. STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
  209. STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
  210. STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
  211. STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
  212. STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
  213. STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
  214. STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
  215. STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
  216. STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
  217. STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
  218. STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
  219. STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
  220. STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
  221. STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
  222. STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
  223. STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
  224. STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
  225. STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
  226. STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
  227. STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
  228. STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
  229. STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
  230. STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
  231. STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
  232. STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
  233. STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
  234. STDMETHOD(BeginScene)(THIS) PURE;
  235. STDMETHOD(EndScene)(THIS) PURE;
  236. STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
  237. STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
  238. STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
  239. STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
  240. STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
  241. STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
  242. STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
  243. STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
  244. STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
  245. STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
  246. STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
  247. STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
  248. STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
  249. STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
  250. STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
  251. STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
  252. STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
  253. STDMETHOD(BeginStateBlock)(THIS) PURE;
  254. STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
  255. STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
  256. STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
  257. STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
  258. STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
  259. STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
  260. STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
  261. STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
  262. STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
  263. STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
  264. STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
  265. STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
  266. STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
  267. STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
  268. STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
  269. STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
  270. STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
  271. STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
  272. STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
  273. STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
  274. STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
  275. STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
  276. STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
  277. STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
  278. STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
  279. STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
  280. STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
  281. STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
  282. STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
  283. STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
  284. STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
  285. STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
  286. STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
  287. STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
  288. STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
  289. STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
  290. STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
  291. STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE;
  292. STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
  293. STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
  294. STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
  295. STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
  296. STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
  297. STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
  298. STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
  299. STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
  300. STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
  301. STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
  302. STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
  303. STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
  304. STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
  305. STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
  306. STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) PURE;
  307. STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
  308. STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
  309. STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
  310. STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
  311. STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
  312. };
  313. #undef INTERFACE
  314. #if !defined(__cplusplus) || defined(CINTERFACE)
  315. /*** IUnknown methods ***/
  316. #define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  317. #define IDirect3DDevice9_AddRef(p) (p)->lpVtbl->AddRef(p)
  318. #define IDirect3DDevice9_Release(p) (p)->lpVtbl->Release(p)
  319. /*** IDirect3DDevice9 methods ***/
  320. #define IDirect3DDevice9_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
  321. #define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
  322. #define IDirect3DDevice9_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
  323. #define IDirect3DDevice9_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
  324. #define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
  325. #define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
  326. #define IDirect3DDevice9_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
  327. #define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
  328. #define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
  329. #define IDirect3DDevice9_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
  330. #define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
  331. #define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
  332. #define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
  333. #define IDirect3DDevice9_Reset(p,a) (p)->lpVtbl->Reset(p,a)
  334. #define IDirect3DDevice9_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
  335. #define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
  336. #define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
  337. #define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
  338. #define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
  339. #define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
  340. #define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
  341. #define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
  342. #define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
  343. #define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
  344. #define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
  345. #define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
  346. #define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
  347. #define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
  348. #define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
  349. #define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
  350. #define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
  351. #define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
  352. #define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
  353. #define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
  354. #define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
  355. #define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
  356. #define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
  357. #define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
  358. #define IDirect3DDevice9_BeginScene(p) (p)->lpVtbl->BeginScene(p)
  359. #define IDirect3DDevice9_EndScene(p) (p)->lpVtbl->EndScene(p)
  360. #define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
  361. #define IDirect3DDevice9_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
  362. #define IDirect3DDevice9_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
  363. #define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
  364. #define IDirect3DDevice9_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
  365. #define IDirect3DDevice9_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
  366. #define IDirect3DDevice9_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
  367. #define IDirect3DDevice9_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
  368. #define IDirect3DDevice9_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
  369. #define IDirect3DDevice9_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
  370. #define IDirect3DDevice9_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
  371. #define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
  372. #define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
  373. #define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
  374. #define IDirect3DDevice9_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
  375. #define IDirect3DDevice9_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
  376. #define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
  377. #define IDirect3DDevice9_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
  378. #define IDirect3DDevice9_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
  379. #define IDirect3DDevice9_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
  380. #define IDirect3DDevice9_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
  381. #define IDirect3DDevice9_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
  382. #define IDirect3DDevice9_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
  383. #define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
  384. #define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
  385. #define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
  386. #define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
  387. #define IDirect3DDevice9_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
  388. #define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
  389. #define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
  390. #define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
  391. #define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
  392. #define IDirect3DDevice9_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
  393. #define IDirect3DDevice9_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
  394. #define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
  395. #define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
  396. #define IDirect3DDevice9_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
  397. #define IDirect3DDevice9_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
  398. #define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
  399. #define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
  400. #define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
  401. #define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
  402. #define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
  403. #define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
  404. #define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
  405. #define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
  406. #define IDirect3DDevice9_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
  407. #define IDirect3DDevice9_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
  408. #define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
  409. #define IDirect3DDevice9_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
  410. #define IDirect3DDevice9_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
  411. #define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
  412. #define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
  413. #define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
  414. #define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
  415. #define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
  416. #define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
  417. #define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
  418. #define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
  419. #define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
  420. #define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
  421. #define IDirect3DDevice9_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
  422. #define IDirect3DDevice9_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
  423. #define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
  424. #define IDirect3DDevice9_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
  425. #define IDirect3DDevice9_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
  426. #define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
  427. #define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
  428. #define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
  429. #define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
  430. #define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
  431. #define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
  432. #define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
  433. #define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
  434. #define IDirect3DDevice9_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
  435. #define IDirect3DDevice9_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
  436. #else
  437. /*** IUnknown methods ***/
  438. #define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  439. #define IDirect3DDevice9_AddRef(p) (p)->AddRef()
  440. #define IDirect3DDevice9_Release(p) (p)->Release()
  441. /*** IDirect3DDevice9 methods ***/
  442. #define IDirect3DDevice9_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
  443. #define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
  444. #define IDirect3DDevice9_EvictManagedResources(p) (p)->EvictManagedResources()
  445. #define IDirect3DDevice9_GetDirect3D(p,a) (p)->GetDirect3D(a)
  446. #define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
  447. #define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
  448. #define IDirect3DDevice9_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
  449. #define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
  450. #define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
  451. #define IDirect3DDevice9_ShowCursor(p,a) (p)->ShowCursor(a)
  452. #define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
  453. #define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
  454. #define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
  455. #define IDirect3DDevice9_Reset(p,a) (p)->Reset(a)
  456. #define IDirect3DDevice9_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
  457. #define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
  458. #define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
  459. #define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
  460. #define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
  461. #define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
  462. #define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
  463. #define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
  464. #define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
  465. #define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
  466. #define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
  467. #define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
  468. #define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
  469. #define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
  470. #define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
  471. #define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
  472. #define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
  473. #define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
  474. #define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
  475. #define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
  476. #define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
  477. #define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
  478. #define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
  479. #define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
  480. #define IDirect3DDevice9_BeginScene(p) (p)->BeginScene()
  481. #define IDirect3DDevice9_EndScene(p) (p)->EndScene()
  482. #define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
  483. #define IDirect3DDevice9_SetTransform(p,a,b) (p)->SetTransform(a,b)
  484. #define IDirect3DDevice9_GetTransform(p,a,b) (p)->GetTransform(a,b)
  485. #define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
  486. #define IDirect3DDevice9_SetViewport(p,a) (p)->SetViewport(a)
  487. #define IDirect3DDevice9_GetViewport(p,a) (p)->GetViewport(a)
  488. #define IDirect3DDevice9_SetMaterial(p,a) (p)->SetMaterial(a)
  489. #define IDirect3DDevice9_GetMaterial(p,a) (p)->GetMaterial(a)
  490. #define IDirect3DDevice9_SetLight(p,a,b) (p)->SetLight(a,b)
  491. #define IDirect3DDevice9_GetLight(p,a,b) (p)->GetLight(a,b)
  492. #define IDirect3DDevice9_LightEnable(p,a,b) (p)->LightEnable(a,b)
  493. #define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
  494. #define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
  495. #define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
  496. #define IDirect3DDevice9_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
  497. #define IDirect3DDevice9_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
  498. #define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
  499. #define IDirect3DDevice9_BeginStateBlock(p) (p)->BeginStateBlock()
  500. #define IDirect3DDevice9_EndStateBlock(p,a) (p)->EndStateBlock(a)
  501. #define IDirect3DDevice9_SetClipStatus(p,a) (p)->SetClipStatus(a)
  502. #define IDirect3DDevice9_GetClipStatus(p,a) (p)->GetClipStatus(a)
  503. #define IDirect3DDevice9_GetTexture(p,a,b) (p)->GetTexture(a,b)
  504. #define IDirect3DDevice9_SetTexture(p,a,b) (p)->SetTexture(a,b)
  505. #define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
  506. #define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
  507. #define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
  508. #define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
  509. #define IDirect3DDevice9_ValidateDevice(p,a) (p)->ValidateDevice(a)
  510. #define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
  511. #define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
  512. #define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
  513. #define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
  514. #define IDirect3DDevice9_SetScissorRect(p,a) (p)->SetScissorRect(a)
  515. #define IDirect3DDevice9_GetScissorRect(p,a) (p)->GetScissorRect(a)
  516. #define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
  517. #define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
  518. #define IDirect3DDevice9_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
  519. #define IDirect3DDevice9_GetNPatchMode(p) (p)->GetNPatchMode()
  520. #define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
  521. #define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
  522. #define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
  523. #define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
  524. #define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
  525. #define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
  526. #define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
  527. #define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
  528. #define IDirect3DDevice9_SetFVF(p,a) (p)->SetFVF(a)
  529. #define IDirect3DDevice9_GetFVF(p,a) (p)->GetFVF(a)
  530. #define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
  531. #define IDirect3DDevice9_SetVertexShader(p,a) (p)->SetVertexShader(a)
  532. #define IDirect3DDevice9_GetVertexShader(p,a) (p)->GetVertexShader(a)
  533. #define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
  534. #define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
  535. #define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
  536. #define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
  537. #define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
  538. #define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
  539. #define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
  540. #define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
  541. #define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
  542. #define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
  543. #define IDirect3DDevice9_SetIndices(p,a) (p)->SetIndices(a)
  544. #define IDirect3DDevice9_GetIndices(p,a) (p)->GetIndices(a)
  545. #define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
  546. #define IDirect3DDevice9_SetPixelShader(p,a) (p)->SetPixelShader(a)
  547. #define IDirect3DDevice9_GetPixelShader(p,a) (p)->GetPixelShader(a)
  548. #define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
  549. #define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
  550. #define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
  551. #define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
  552. #define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
  553. #define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
  554. #define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
  555. #define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
  556. #define IDirect3DDevice9_DeletePatch(p,a) (p)->DeletePatch(a)
  557. #define IDirect3DDevice9_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
  558. #endif
  559. /*****************************************************************************
  560. * IDirect3DVolume9 interface
  561. */
  562. #define INTERFACE IDirect3DVolume9
  563. DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
  564. {
  565. /*** IUnknown methods ***/
  566. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  567. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  568. STDMETHOD_(ULONG,Release)(THIS) PURE;
  569. /*** IDirect3DVolume9 methods ***/
  570. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  571. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  572. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  573. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  574. STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
  575. STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
  576. STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
  577. STDMETHOD(UnlockBox)(THIS) PURE;
  578. };
  579. #undef INTERFACE
  580. #if !defined(__cplusplus) || defined(CINTERFACE)
  581. /*** IUnknown methods ***/
  582. #define IDirect3DVolume9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  583. #define IDirect3DVolume9_AddRef(p) (p)->lpVtbl->AddRef(p)
  584. #define IDirect3DVolume9_Release(p) (p)->lpVtbl->Release(p)
  585. /*** IDirect3DVolume9 methods ***/
  586. #define IDirect3DVolume9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  587. #define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  588. #define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  589. #define IDirect3DVolume9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  590. #define IDirect3DVolume9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
  591. #define IDirect3DVolume9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
  592. #define IDirect3DVolume9_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
  593. #define IDirect3DVolume9_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
  594. #else
  595. /*** IUnknown methods ***/
  596. #define IDirect3DVolume9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  597. #define IDirect3DVolume9_AddRef(p) (p)->AddRef()
  598. #define IDirect3DVolume9_Release(p) (p)->Release()
  599. /*** IDirect3DVolume9 methods ***/
  600. #define IDirect3DVolume9_GetDevice(p,a) (p)->GetDevice(a)
  601. #define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  602. #define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  603. #define IDirect3DVolume9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  604. #define IDirect3DVolume9_GetContainer(p,a,b) (p)->GetContainer(a,b)
  605. #define IDirect3DVolume9_GetDesc(p,a) (p)->GetDesc(a)
  606. #define IDirect3DVolume9_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
  607. #define IDirect3DVolume9_UnlockBox(p) (p)->UnlockBox()
  608. #endif
  609. /*****************************************************************************
  610. * IDirect3DSwapChain9 interface
  611. */
  612. #define INTERFACE IDirect3DSwapChain9
  613. DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
  614. {
  615. /*** IUnknown methods ***/
  616. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  617. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  618. STDMETHOD_(ULONG,Release)(THIS) PURE;
  619. /*** IDirect3DSwapChain9 methods ***/
  620. STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion, DWORD dwFlags) PURE;
  621. STDMETHOD(GetFrontBufferData)(THIS_ IDirect3DSurface9* pDestSurface) PURE;
  622. STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
  623. STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE;
  624. STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE;
  625. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  626. STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
  627. };
  628. #undef INTERFACE
  629. #if !defined(__cplusplus) || defined(CINTERFACE)
  630. /*** IUnknown methods ***/
  631. #define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  632. #define IDirect3DSwapChain9_AddRef(p) (p)->lpVtbl->AddRef(p)
  633. #define IDirect3DSwapChain9_Release(p) (p)->lpVtbl->Release(p)
  634. /*** IDirect3DSwapChain9 methods ***/
  635. #define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
  636. #define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
  637. #define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
  638. #define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
  639. #define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
  640. #define IDirect3DSwapChain9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  641. #define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
  642. #else
  643. /*** IUnknown methods ***/
  644. #define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  645. #define IDirect3DSwapChain9_AddRef(p) (p)->AddRef()
  646. #define IDirect3DSwapChain9_Release(p) (p)->Release()
  647. /*** IDirect3DSwapChain9 methods ***/
  648. #define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
  649. #define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
  650. #define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
  651. #define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
  652. #define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
  653. #define IDirect3DSwapChain9_GetDevice(p,a) (p)->GetDevice(a)
  654. #define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
  655. #endif
  656. /*****************************************************************************
  657. * IDirect3DResource9 interface
  658. */
  659. #define INTERFACE IDirect3DResource9
  660. DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
  661. {
  662. /*** IUnknown methods ***/
  663. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  664. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  665. STDMETHOD_(ULONG,Release)(THIS) PURE;
  666. /*** IDirect3DResource9 methods ***/
  667. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  668. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  669. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  670. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  671. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  672. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  673. STDMETHOD_(void, PreLoad)(THIS) PURE;
  674. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  675. };
  676. #undef INTERFACE
  677. #if !defined(__cplusplus) || defined(CINTERFACE)
  678. /*** IUnknown methods ***/
  679. #define IDirect3DResource9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  680. #define IDirect3DResource9_AddRef(p) (p)->lpVtbl->AddRef(p)
  681. #define IDirect3DResource9_Release(p) (p)->lpVtbl->Release(p)
  682. /*** IDirect3DResource9 methods ***/
  683. #define IDirect3DResource9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  684. #define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  685. #define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  686. #define IDirect3DResource9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  687. #define IDirect3DResource9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  688. #define IDirect3DResource9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  689. #define IDirect3DResource9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  690. #define IDirect3DResource9_GetType(p) (p)->lpVtbl->GetType(p)
  691. #else
  692. /*** IUnknown methods ***/
  693. #define IDirect3DResource9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  694. #define IDirect3DResource9_AddRef(p) (p)->AddRef()
  695. #define IDirect3DResource9_Release(p) (p)->Release()
  696. /*** IDirect3DResource9 methods ***/
  697. #define IDirect3DResource9_GetDevice(p,a) (p)->GetDevice(a)
  698. #define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  699. #define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  700. #define IDirect3DResource9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  701. #define IDirect3DResource9_SetPriority(p,a) (p)->SetPriority(a)
  702. #define IDirect3DResource9_GetPriority(p) (p)->GetPriority()
  703. #define IDirect3DResource9_PreLoad(p) (p)->PreLoad()
  704. #define IDirect3DResource9_GetType(p) (p)->GetType()
  705. #endif
  706. /*****************************************************************************
  707. * IDirect3DSurface9 interface
  708. */
  709. #define INTERFACE IDirect3DSurface9
  710. DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
  711. {
  712. /*** IUnknown methods ***/
  713. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  714. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  715. STDMETHOD_(ULONG,Release)(THIS) PURE;
  716. /*** IDirect3DResource9 methods ***/
  717. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  718. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  719. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  720. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  721. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  722. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  723. STDMETHOD_(void, PreLoad)(THIS) PURE;
  724. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  725. /*** IDirect3DSurface9 methods ***/
  726. STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
  727. STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
  728. STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
  729. STDMETHOD(UnlockRect)(THIS) PURE;
  730. STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
  731. STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
  732. };
  733. #undef INTERFACE
  734. #if !defined(__cplusplus) || defined(CINTERFACE)
  735. /*** IUnknown methods ***/
  736. #define IDirect3DSurface9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  737. #define IDirect3DSurface9_AddRef(p) (p)->lpVtbl->AddRef(p)
  738. #define IDirect3DSurface9_Release(p) (p)->lpVtbl->Release(p)
  739. /*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
  740. #define IDirect3DSurface9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  741. #define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  742. #define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  743. #define IDirect3DSurface9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  744. #define IDirect3DSurface9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  745. #define IDirect3DSurface9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  746. #define IDirect3DSurface9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  747. #define IDirect3DSurface9_GetType(p) (p)->lpVtbl->GetType(p)
  748. /*** IDirect3DSurface9 methods ***/
  749. #define IDirect3DSurface9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
  750. #define IDirect3DSurface9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
  751. #define IDirect3DSurface9_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
  752. #define IDirect3DSurface9_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
  753. #define IDirect3DSurface9_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
  754. #define IDirect3DSurface9_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
  755. #else
  756. /*** IUnknown methods ***/
  757. #define IDirect3DSurface9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  758. #define IDirect3DSurface9_AddRef(p) (p)->AddRef()
  759. #define IDirect3DSurface9_Release(p) (p)->Release()
  760. /*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
  761. #define IDirect3DSurface9_GetDevice(p,a) (p)->GetDevice(a)
  762. #define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  763. #define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  764. #define IDirect3DSurface9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  765. #define IDirect3DSurface9_SetPriority(p,a) (p)->SetPriority(a)
  766. #define IDirect3DSurface9_GetPriority(p) (p)->GetPriority()
  767. #define IDirect3DSurface9_PreLoad(p) (p)->PreLoad()
  768. #define IDirect3DSurface9_GetType(p) (p)->GetType()
  769. /*** IDirect3DSurface9 methods ***/
  770. #define IDirect3DSurface9_GetContainer(p,a,b) (p)->GetContainer(a,b)
  771. #define IDirect3DSurface9_GetDesc(p,a) (p)->GetDesc(a)
  772. #define IDirect3DSurface9_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
  773. #define IDirect3DSurface9_UnlockRect(p) (p)->UnlockRect()
  774. #define IDirect3DSurface9_GetDC(p,a) (p)->GetDC(a)
  775. #define IDirect3DSurface9_ReleaseDC(p,a) (p)->ReleaseDC(a)
  776. #endif
  777. /*****************************************************************************
  778. * IDirect3DVertexBuffer9 interface
  779. */
  780. #define INTERFACE IDirect3DVertexBuffer9
  781. DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
  782. {
  783. /*** IUnknown methods ***/
  784. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  785. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  786. STDMETHOD_(ULONG,Release)(THIS) PURE;
  787. /*** IDirect3DResource9 methods ***/
  788. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  789. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  790. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  791. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  792. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  793. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  794. STDMETHOD_(void, PreLoad)(THIS) PURE;
  795. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  796. /*** IDirect3DVertexBuffer9 methods ***/
  797. STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
  798. STDMETHOD(Unlock)(THIS) PURE;
  799. STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC* pDesc) PURE;
  800. };
  801. #undef INTERFACE
  802. #if !defined(__cplusplus) || defined(CINTERFACE)
  803. /*** IUnknown methods ***/
  804. #define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  805. #define IDirect3DVertexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
  806. #define IDirect3DVertexBuffer9_Release(p) (p)->lpVtbl->Release(p)
  807. /*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
  808. #define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  809. #define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  810. #define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  811. #define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  812. #define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  813. #define IDirect3DVertexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  814. #define IDirect3DVertexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  815. #define IDirect3DVertexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
  816. /*** IDirect3DVertexBuffer9 methods ***/
  817. #define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
  818. #define IDirect3DVertexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
  819. #define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
  820. #else
  821. /*** IUnknown methods ***/
  822. #define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  823. #define IDirect3DVertexBuffer9_AddRef(p) (p)->AddRef()
  824. #define IDirect3DVertexBuffer9_Release(p) (p)->Release()
  825. /*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
  826. #define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
  827. #define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  828. #define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  829. #define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  830. #define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
  831. #define IDirect3DVertexBuffer9_GetPriority(p) (p)->GetPriority()
  832. #define IDirect3DVertexBuffer9_PreLoad(p) (p)->PreLoad()
  833. #define IDirect3DVertexBuffer9_GetType(p) (p)->GetType()
  834. /*** IDirect3DVertexBuffer9 methods ***/
  835. #define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
  836. #define IDirect3DVertexBuffer9_Unlock(p) (p)->Unlock()
  837. #define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
  838. #endif
  839. /*****************************************************************************
  840. * IDirect3DIndexBuffer9 interface
  841. */
  842. #define INTERFACE IDirect3DIndexBuffer9
  843. DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
  844. {
  845. /*** IUnknown methods ***/
  846. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  847. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  848. STDMETHOD_(ULONG,Release)(THIS) PURE;
  849. /*** IDirect3DResource9 methods ***/
  850. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  851. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  852. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  853. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  854. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  855. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  856. STDMETHOD_(void, PreLoad)(THIS) PURE;
  857. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  858. /*** IDirect3DIndexBuffer9 methods ***/
  859. STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
  860. STDMETHOD(Unlock)(THIS) PURE;
  861. STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC* pDesc) PURE;
  862. };
  863. #undef INTERFACE
  864. #if !defined(__cplusplus) || defined(CINTERFACE)
  865. /*** IUnknown methods ***/
  866. #define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  867. #define IDirect3DIndexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
  868. #define IDirect3DIndexBuffer9_Release(p) (p)->lpVtbl->Release(p)
  869. /*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
  870. #define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  871. #define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  872. #define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  873. #define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  874. #define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  875. #define IDirect3DIndexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  876. #define IDirect3DIndexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  877. #define IDirect3DIndexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
  878. /*** IDirect3DIndexBuffer9 methods ***/
  879. #define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
  880. #define IDirect3DIndexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
  881. #define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
  882. #else
  883. /*** IUnknown methods ***/
  884. #define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  885. #define IDirect3DIndexBuffer9_AddRef(p) (p)->AddRef()
  886. #define IDirect3DIndexBuffer9_Release(p) (p)->Release()
  887. /*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
  888. #define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
  889. #define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  890. #define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  891. #define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  892. #define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
  893. #define IDirect3DIndexBuffer9_GetPriority(p) (p)->GetPriority()
  894. #define IDirect3DIndexBuffer9_PreLoad(p) (p)->PreLoad()
  895. #define IDirect3DIndexBuffer9_GetType(p) (p)->GetType()
  896. /*** IDirect3DIndexBuffer9 methods ***/
  897. #define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
  898. #define IDirect3DIndexBuffer9_Unlock(p) (p)->Unlock()
  899. #define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
  900. #endif
  901. /*****************************************************************************
  902. * IDirect3DBaseTexture9 interface
  903. */
  904. #define INTERFACE IDirect3DBaseTexture9
  905. DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
  906. {
  907. /*** IUnknown methods ***/
  908. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  909. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  910. STDMETHOD_(ULONG,Release)(THIS) PURE;
  911. /*** IDirect3DResource9 methods ***/
  912. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  913. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  914. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  915. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  916. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  917. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  918. STDMETHOD_(void, PreLoad)(THIS) PURE;
  919. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  920. /*** IDirect3DBaseTexture9 methods ***/
  921. STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
  922. STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
  923. STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
  924. STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
  925. STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
  926. STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
  927. };
  928. #undef INTERFACE
  929. #if !defined(__cplusplus) || defined(CINTERFACE)
  930. /*** IUnknown methods ***/
  931. #define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  932. #define IDirect3DBaseTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
  933. #define IDirect3DBaseTexture9_Release(p) (p)->lpVtbl->Release(p)
  934. /*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
  935. #define IDirect3DBaseTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  936. #define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  937. #define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  938. #define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  939. #define IDirect3DBaseTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  940. #define IDirect3DBaseTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  941. #define IDirect3DBaseTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  942. #define IDirect3DBaseTexture9_GetType(p) (p)->lpVtbl->GetType(p)
  943. /*** IDirect3DBaseTexture9 methods ***/
  944. #define IDirect3DBaseTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
  945. #define IDirect3DBaseTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
  946. #define IDirect3DBaseTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
  947. #define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
  948. #define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
  949. #define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
  950. #else
  951. /*** IUnknown methods ***/
  952. #define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  953. #define IDirect3DBaseTexture9_AddRef(p) (p)->AddRef()
  954. #define IDirect3DBaseTexture9_Release(p) (p)->Release()
  955. /*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
  956. #define IDirect3DBaseTexture9_GetDevice(p,a) (p)->GetDevice(a)
  957. #define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  958. #define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  959. #define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  960. #define IDirect3DBaseTexture9_SetPriority(p,a) (p)->SetPriority(a)
  961. #define IDirect3DBaseTexture9_GetPriority(p) (p)->GetPriority()
  962. #define IDirect3DBaseTexture9_PreLoad(p) (p)->PreLoad()
  963. #define IDirect3DBaseTexture9_GetType(p) (p)->GetType()
  964. /*** IDirect3DBaseTexture9 methods ***/
  965. #define IDirect3DBaseTexture9_SetLOD(p,a) (p)->SetLOD(a)
  966. #define IDirect3DBaseTexture9_GetLOD(p) (p)->GetLOD()
  967. #define IDirect3DBaseTexture9_GetLevelCount(p) (p)->GetLevelCount()
  968. #define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
  969. #define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
  970. #define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
  971. #endif
  972. /*****************************************************************************
  973. * IDirect3DCubeTexture9 interface
  974. */
  975. #define INTERFACE IDirect3DCubeTexture9
  976. DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
  977. {
  978. /*** IUnknown methods ***/
  979. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  980. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  981. STDMETHOD_(ULONG,Release)(THIS) PURE;
  982. /*** IDirect3DResource9 methods ***/
  983. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  984. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  985. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  986. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  987. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  988. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  989. STDMETHOD_(void, PreLoad)(THIS) PURE;
  990. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  991. /*** IDirect3DBaseTexture9 methods ***/
  992. STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
  993. STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
  994. STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
  995. STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
  996. STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
  997. STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
  998. /*** IDirect3DCubeTexture9 methods ***/
  999. STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
  1000. STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
  1001. STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
  1002. STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
  1003. STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE;
  1004. };
  1005. #undef INTERFACE
  1006. #if !defined(__cplusplus) || defined(CINTERFACE)
  1007. /*** IUnknown methods ***/
  1008. #define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1009. #define IDirect3DCubeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1010. #define IDirect3DCubeTexture9_Release(p) (p)->lpVtbl->Release(p)
  1011. /*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
  1012. #define IDirect3DCubeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1013. #define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  1014. #define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  1015. #define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  1016. #define IDirect3DCubeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  1017. #define IDirect3DCubeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  1018. #define IDirect3DCubeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  1019. #define IDirect3DCubeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
  1020. /*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
  1021. #define IDirect3DCubeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
  1022. #define IDirect3DCubeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
  1023. #define IDirect3DCubeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
  1024. #define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
  1025. #define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
  1026. #define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
  1027. /*** IDirect3DCubeTexture9 methods ***/
  1028. #define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
  1029. #define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
  1030. #define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
  1031. #define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
  1032. #define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
  1033. #else
  1034. /*** IUnknown methods ***/
  1035. #define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1036. #define IDirect3DCubeTexture9_AddRef(p) (p)->AddRef()
  1037. #define IDirect3DCubeTexture9_Release(p) (p)->Release()
  1038. /*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
  1039. #define IDirect3DCubeTexture9_GetDevice(p,a) (p)->GetDevice(a)
  1040. #define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  1041. #define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  1042. #define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  1043. #define IDirect3DCubeTexture9_SetPriority(p,a) (p)->SetPriority(a)
  1044. #define IDirect3DCubeTexture9_GetPriority(p) (p)->GetPriority()
  1045. #define IDirect3DCubeTexture9_PreLoad(p) (p)->PreLoad()
  1046. #define IDirect3DCubeTexture9_GetType(p) (p)->GetType()
  1047. /*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
  1048. #define IDirect3DCubeTexture9_SetLOD(p,a) (p)->SetLOD(a)
  1049. #define IDirect3DCubeTexture9_GetLOD(p) (p)->GetLOD()
  1050. #define IDirect3DCubeTexture9_GetLevelCount(p) (p)->GetLevelCount()
  1051. #define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
  1052. #define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
  1053. #define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
  1054. /*** IDirect3DCubeTexture9 methods ***/
  1055. #define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
  1056. #define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c)
  1057. #define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e)
  1058. #define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->UnlockRect(a,b)
  1059. #define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b)
  1060. #endif
  1061. /*****************************************************************************
  1062. * IDirect3DTexture9 interface
  1063. */
  1064. #define INTERFACE IDirect3DTexture9
  1065. DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
  1066. {
  1067. /*** IUnknown methods ***/
  1068. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1069. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1070. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1071. /*** IDirect3DResource9 methods ***/
  1072. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1073. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  1074. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  1075. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  1076. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  1077. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  1078. STDMETHOD_(void, PreLoad)(THIS) PURE;
  1079. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  1080. /*** IDirect3DBaseTexture9 methods ***/
  1081. STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
  1082. STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
  1083. STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
  1084. STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
  1085. STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
  1086. STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
  1087. /*** IDirect3DTexture9 methods ***/
  1088. STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
  1089. STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
  1090. STDMETHOD(LockRect)(THIS_ UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
  1091. STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
  1092. STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE;
  1093. };
  1094. #undef INTERFACE
  1095. #if !defined(__cplusplus) || defined(CINTERFACE)
  1096. /*** IUnknown methods ***/
  1097. #define IDirect3DTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1098. #define IDirect3DTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1099. #define IDirect3DTexture9_Release(p) (p)->lpVtbl->Release(p)
  1100. /*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
  1101. #define IDirect3DTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1102. #define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  1103. #define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  1104. #define IDirect3DTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  1105. #define IDirect3DTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  1106. #define IDirect3DTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  1107. #define IDirect3DTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  1108. #define IDirect3DTexture9_GetType(p) (p)->lpVtbl->GetType(p)
  1109. /*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
  1110. #define IDirect3DTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
  1111. #define IDirect3DTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
  1112. #define IDirect3DTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
  1113. #define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
  1114. #define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
  1115. #define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
  1116. /*** IDirect3DTexture9 methods ***/
  1117. #define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
  1118. #define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
  1119. #define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
  1120. #define IDirect3DTexture9_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
  1121. #define IDirect3DTexture9_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
  1122. #else
  1123. /*** IUnknown methods ***/
  1124. #define IDirect3DTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1125. #define IDirect3DTexture9_AddRef(p) (p)->AddRef()
  1126. #define IDirect3DTexture9_Release(p) (p)->Release()
  1127. /*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
  1128. #define IDirect3DTexture9_GetDevice(p,a) (p)->GetDevice(a)
  1129. #define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  1130. #define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  1131. #define IDirect3DTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  1132. #define IDirect3DTexture9_SetPriority(p,a) (p)->SetPriority(a)
  1133. #define IDirect3DTexture9_GetPriority(p) (p)->GetPriority()
  1134. #define IDirect3DTexture9_PreLoad(p) (p)->PreLoad()
  1135. #define IDirect3DTexture9_GetType(p) (p)->GetType()
  1136. /*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
  1137. #define IDirect3DTexture9_SetLOD(p,a) (p)->SetLOD(a)
  1138. #define IDirect3DTexture9_GetLOD(p) (p)->GetLOD()
  1139. #define IDirect3DTexture9_GetLevelCount(p) (p)->GetLevelCount()
  1140. #define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
  1141. #define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
  1142. #define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
  1143. /*** IDirect3DTexture9 methods ***/
  1144. #define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
  1145. #define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b)
  1146. #define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d)
  1147. #define IDirect3DTexture9_UnlockRect(p,a) (p)->UnlockRect(a)
  1148. #define IDirect3DTexture9_AddDirtyRect(p,a) (p)->AddDirtyRect(a)
  1149. #endif
  1150. /*****************************************************************************
  1151. * IDirect3DVolumeTexture9 interface
  1152. */
  1153. #define INTERFACE IDirect3DVolumeTexture9
  1154. DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
  1155. {
  1156. /*** IUnknown methods ***/
  1157. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1158. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1159. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1160. /*** IDirect3DResource9 methods ***/
  1161. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1162. STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
  1163. STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
  1164. STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
  1165. STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
  1166. STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
  1167. STDMETHOD_(void, PreLoad)(THIS) PURE;
  1168. STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
  1169. /*** IDirect3DBaseTexture9 methods ***/
  1170. STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
  1171. STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
  1172. STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
  1173. STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
  1174. STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
  1175. STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
  1176. /*** IDirect3DVolumeTexture9 methods ***/
  1177. STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
  1178. STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
  1179. STDMETHOD(LockBox)(THIS_ UINT Level, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
  1180. STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
  1181. STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE;
  1182. };
  1183. #undef INTERFACE
  1184. #if !defined(__cplusplus) || defined(CINTERFACE)
  1185. /*** IUnknown methods ***/
  1186. #define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1187. #define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1188. #define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p)
  1189. /*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
  1190. #define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1191. #define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
  1192. #define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
  1193. #define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
  1194. #define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
  1195. #define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
  1196. #define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
  1197. #define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
  1198. /*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
  1199. #define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
  1200. #define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
  1201. #define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
  1202. #define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
  1203. #define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
  1204. #define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
  1205. /*** IDirect3DVolumeTexture9 methods ***/
  1206. #define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
  1207. #define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
  1208. #define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
  1209. #define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
  1210. #define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
  1211. #else
  1212. /*** IUnknown methods ***/
  1213. #define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1214. #define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef()
  1215. #define IDirect3DVolumeTexture9_Release(p) (p)->Release()
  1216. /*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
  1217. #define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a)
  1218. #define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
  1219. #define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
  1220. #define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
  1221. #define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a)
  1222. #define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority()
  1223. #define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad()
  1224. #define IDirect3DVolumeTexture9_GetType(p) (p)->GetType()
  1225. /*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
  1226. #define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a)
  1227. #define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD()
  1228. #define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount()
  1229. #define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
  1230. #define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
  1231. #define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
  1232. /*** IDirect3DVolumeTexture9 methods ***/
  1233. #define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
  1234. #define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
  1235. #define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
  1236. #define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a)
  1237. #define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
  1238. #endif
  1239. /*****************************************************************************
  1240. * IDirect3DVertexDeclaration9 interface
  1241. */
  1242. #define INTERFACE IDirect3DVertexDeclaration9
  1243. DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
  1244. {
  1245. /*** IUnknown methods ***/
  1246. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1247. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1248. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1249. /*** IDirect3DVertexDeclaration9 methods ***/
  1250. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1251. STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*, UINT* pNumElements) PURE;
  1252. };
  1253. #undef INTERFACE
  1254. #if !defined(__cplusplus) || defined(CINTERFACE)
  1255. /*** IUnknown methods ***/
  1256. #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1257. #define IDirect3DVertexDeclaration9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1258. #define IDirect3DVertexDeclaration9_Release(p) (p)->lpVtbl->Release(p)
  1259. /*** IDirect3DVertexShader9 methods ***/
  1260. #define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1261. #define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->lpVtbl->GetDeclaration(p,a,b)
  1262. #else
  1263. /*** IUnknown methods ***/
  1264. #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1265. #define IDirect3DVertexDeclaration9_AddRef(p) (p)->AddRef()
  1266. #define IDirect3DVertexDeclaration9_Release(p) (p)->Release()
  1267. /*** IDirect3DVertexShader9 methods ***/
  1268. #define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->GetDevice(a)
  1269. #define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->GetDeclaration(a,b)
  1270. #endif
  1271. /*****************************************************************************
  1272. * IDirect3DVertexShader9 interface
  1273. */
  1274. #define INTERFACE IDirect3DVertexShader9
  1275. DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
  1276. {
  1277. /*** IUnknown methods ***/
  1278. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1279. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1280. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1281. /*** IDirect3DVertexShader9 methods ***/
  1282. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1283. STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
  1284. };
  1285. #undef INTERFACE
  1286. #if !defined(__cplusplus) || defined(CINTERFACE)
  1287. /*** IUnknown methods ***/
  1288. #define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1289. #define IDirect3DVertexShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1290. #define IDirect3DVertexShader9_Release(p) (p)->lpVtbl->Release(p)
  1291. /*** IDirect3DVertexShader9 methods ***/
  1292. #define IDirect3DVertexShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1293. #define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
  1294. #else
  1295. /*** IUnknown methods ***/
  1296. #define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1297. #define IDirect3DVertexShader9_AddRef(p) (p)->AddRef()
  1298. #define IDirect3DVertexShader9_Release(p) (p)->Release()
  1299. /*** IDirect3DVertexShader9 methods ***/
  1300. #define IDirect3DVertexShader9_GetDevice(p,a) (p)->GetDevice(a)
  1301. #define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
  1302. #endif
  1303. /*****************************************************************************
  1304. * IDirect3DPixelShader9 interface
  1305. */
  1306. #define INTERFACE IDirect3DPixelShader9
  1307. DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
  1308. {
  1309. /*** IUnknown methods ***/
  1310. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1311. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1312. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1313. /*** IDirect3DPixelShader9 methods ***/
  1314. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1315. STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
  1316. };
  1317. #undef INTERFACE
  1318. #if !defined(__cplusplus) || defined(CINTERFACE)
  1319. /*** IUnknown methods ***/
  1320. #define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1321. #define IDirect3DPixelShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1322. #define IDirect3DPixelShader9_Release(p) (p)->lpVtbl->Release(p)
  1323. /*** IDirect3DPixelShader9 methods ***/
  1324. #define IDirect3DPixelShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1325. #define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
  1326. #else
  1327. /*** IUnknown methods ***/
  1328. #define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1329. #define IDirect3DPixelShader9_AddRef(p) (p)->AddRef()
  1330. #define IDirect3DPixelShader9_Release(p) (p)->Release()
  1331. /*** IDirect3DPixelShader9 methods ***/
  1332. #define IDirect3DPixelShader9_GetDevice(p,a) (p)->GetDevice(a)
  1333. #define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
  1334. #endif
  1335. /*****************************************************************************
  1336. * IDirect3DStateBlock9 interface
  1337. */
  1338. #define INTERFACE IDirect3DStateBlock9
  1339. DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
  1340. {
  1341. /*** IUnknown methods ***/
  1342. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1343. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1344. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1345. /*** IDirect3DStateBlock9 methods ***/
  1346. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1347. STDMETHOD(Capture)(THIS) PURE;
  1348. STDMETHOD(Apply)(THIS) PURE;
  1349. };
  1350. #undef INTERFACE
  1351. #if !defined(__cplusplus) || defined(CINTERFACE)
  1352. /*** IUnknown methods ***/
  1353. #define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1354. #define IDirect3DStateBlock9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1355. #define IDirect3DStateBlock9_Release(p) (p)->lpVtbl->Release(p)
  1356. /*** IDirect3DStateBlock9 methods ***/
  1357. #define IDirect3DStateBlock9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1358. #define IDirect3DStateBlock9_Capture(p) (p)->lpVtbl->Capture(p)
  1359. #define IDirect3DStateBlock9_Apply(p) (p)->lpVtbl->Apply(p)
  1360. #else
  1361. /*** IUnknown methods ***/
  1362. #define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1363. #define IDirect3DStateBlock9_AddRef(p) (p)->AddRef()
  1364. #define IDirect3DStateBlock9_Release(p) (p)->Release()
  1365. /*** IDirect3DStateBlock9 methods ***/
  1366. #define IDirect3DStateBlock9_GetDevice(p,a) (p)->GetDevice(a)
  1367. #define IDirect3DStateBlock9_Capture(p) (p)->Capture()
  1368. #define IDirect3DStateBlock9_Apply(p) (p)->Apply()
  1369. #endif
  1370. /*****************************************************************************
  1371. * IDirect3DQuery9 interface
  1372. */
  1373. #define INTERFACE IDirect3DQuery9
  1374. DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
  1375. {
  1376. /*** IUnknown methods ***/
  1377. STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
  1378. STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  1379. STDMETHOD_(ULONG,Release)(THIS) PURE;
  1380. /*** IDirect3DQuery9 methods ***/
  1381. STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
  1382. STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE;
  1383. STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
  1384. STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
  1385. STDMETHOD(GetData)(THIS_ void* pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
  1386. };
  1387. #undef INTERFACE
  1388. #if !defined(__cplusplus) || defined(CINTERFACE)
  1389. /*** IUnknown methods ***/
  1390. #define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  1391. #define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p)
  1392. #define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p)
  1393. /*** IDirect3DQuery9 ***/
  1394. #define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
  1395. #define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p)
  1396. #define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
  1397. #define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a)
  1398. #define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
  1399. #else
  1400. /*** IUnknown methods ***/
  1401. #define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
  1402. #define IDirect3DQuery9_AddRef(p) (p)->AddRef()
  1403. #define IDirect3DQuery9_Release(p) (p)->Release()
  1404. /*** IDirect3DQuery9 ***/
  1405. #define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a)
  1406. #define IDirect3DQuery9_GetType(p) (p)->GetType()
  1407. #define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize()
  1408. #define IDirect3DQuery9_Issue(p,a) (p)->Issue(a)
  1409. #define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c)
  1410. #endif
  1411. #ifdef __cplusplus
  1412. extern "C" {
  1413. #endif /* defined(__cplusplus) */
  1414. /* Define the main entrypoint as well */
  1415. IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
  1416. #ifdef __cplusplus
  1417. } /* extern "C" */
  1418. #endif /* defined(__cplusplus) */
  1419. #endif /* __WINE_D3D9_H */