blob: 702f541750ecbc97ed9bc978aee1eea32d59c420 [file] [log] [blame]
José Fonseca7ad40262009-09-30 17:17:12 +01001##########################################################################
José Fonseca91af9232009-04-13 16:15:28 +01002#
José Fonseca7ad40262009-09-30 17:17:12 +01003# Copyright 2008-2009 VMware, Inc.
4# All Rights Reserved.
José Fonseca91af9232009-04-13 16:15:28 +01005#
José Fonseca7ad40262009-09-30 17:17:12 +01006# Permission is hereby granted, free of charge, to any person obtaining a copy
7# of this software and associated documentation files (the "Software"), to deal
8# in the Software without restriction, including without limitation the rights
9# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10# copies of the Software, and to permit persons to whom the Software is
11# furnished to do so, subject to the following conditions:
José Fonseca91af9232009-04-13 16:15:28 +010012#
José Fonseca7ad40262009-09-30 17:17:12 +010013# The above copyright notice and this permission notice shall be included in
14# all copies or substantial portions of the Software.
José Fonseca91af9232009-04-13 16:15:28 +010015#
José Fonseca7ad40262009-09-30 17:17:12 +010016# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22# THE SOFTWARE.
José Fonseca91af9232009-04-13 16:15:28 +010023#
José Fonseca7ad40262009-09-30 17:17:12 +010024##########################################################################/
José Fonseca91af9232009-04-13 16:15:28 +010025
26"""d3d.h"""
27
Piotr Podsiadły0b8b0192019-01-03 20:39:55 +010028from .winapi import *
29from .ddraw import *
30from .d3dtypes import *
31from .d3dcaps import *
José Fonseca91af9232009-04-13 16:15:28 +010032
José Fonsecabb4421f2011-05-26 08:21:37 +010033d3dnextFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +010034 "D3DNEXT_NEXT",
35 "D3DNEXT_HEAD",
36 "D3DNEXT_TAIL",
37])
38
José Fonsecabb4421f2011-05-26 08:21:37 +010039direct3dFlags = Flags(DWORD, [
40 "DIRECT3D_VERSION",
41])
42
43d3ddpFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +010044 "D3DDP_WAIT",
45 "D3DDP_OUTOFORDER",
46 "D3DDP_DONOTCLIP",
47 "D3DDP_DONOTUPDATEEXTENTS",
48 "D3DDP_DONOTLIGHT",
49])
50
José Fonseca73841ad2012-04-16 20:47:56 +010051HRESULT = MAKE_HRESULT(ok = "D3D_OK", errors = [
José Fonseca91af9232009-04-13 16:15:28 +010052 "D3DERR_BADMAJORVERSION",
53 "D3DERR_BADMINORVERSION",
54 "D3DERR_INVALID_DEVICE",
55 "D3DERR_INITFAILED",
56 "D3DERR_DEVICEAGGREGATED",
57 "D3DERR_EXECUTE_CREATE_FAILED",
58 "D3DERR_EXECUTE_DESTROY_FAILED",
59 "D3DERR_EXECUTE_LOCK_FAILED",
60 "D3DERR_EXECUTE_UNLOCK_FAILED",
61 "D3DERR_EXECUTE_LOCKED",
62 "D3DERR_EXECUTE_NOT_LOCKED",
63 "D3DERR_EXECUTE_FAILED",
64 "D3DERR_EXECUTE_CLIPPED_FAILED",
65 "D3DERR_TEXTURE_NO_SUPPORT",
66 "D3DERR_TEXTURE_CREATE_FAILED",
67 "D3DERR_TEXTURE_DESTROY_FAILED",
68 "D3DERR_TEXTURE_LOCK_FAILED",
69 "D3DERR_TEXTURE_UNLOCK_FAILED",
70 "D3DERR_TEXTURE_LOAD_FAILED",
71 "D3DERR_TEXTURE_SWAP_FAILED",
72 "D3DERR_TEXTURE_LOCKED",
73 "D3DERR_TEXTURE_NOT_LOCKED",
74 "D3DERR_TEXTURE_GETSURF_FAILED",
75 "D3DERR_MATRIX_CREATE_FAILED",
76 "D3DERR_MATRIX_DESTROY_FAILED",
77 "D3DERR_MATRIX_SETDATA_FAILED",
78 "D3DERR_MATRIX_GETDATA_FAILED",
79 "D3DERR_SETVIEWPORTDATA_FAILED",
80 "D3DERR_INVALIDCURRENTVIEWPORT",
81 "D3DERR_INVALIDPRIMITIVETYPE",
82 "D3DERR_INVALIDVERTEXTYPE",
83 "D3DERR_TEXTURE_BADSIZE",
84 "D3DERR_INVALIDRAMPTEXTURE",
85 "D3DERR_MATERIAL_CREATE_FAILED",
86 "D3DERR_MATERIAL_DESTROY_FAILED",
87 "D3DERR_MATERIAL_SETDATA_FAILED",
88 "D3DERR_MATERIAL_GETDATA_FAILED",
89 "D3DERR_INVALIDPALETTE",
90 "D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY",
91 "D3DERR_ZBUFF_NEEDS_VIDEOMEMORY",
92 "D3DERR_SURFACENOTINVIDMEM",
93 "D3DERR_LIGHT_SET_FAILED",
94 "D3DERR_LIGHTHASVIEWPORT",
95 "D3DERR_LIGHTNOTINTHISVIEWPORT",
96 "D3DERR_SCENE_IN_SCENE",
97 "D3DERR_SCENE_NOT_IN_SCENE",
98 "D3DERR_SCENE_BEGIN_FAILED",
99 "D3DERR_SCENE_END_FAILED",
100 "D3DERR_INBEGIN",
101 "D3DERR_NOTINBEGIN",
102 "D3DERR_NOVIEWPORTS",
103 "D3DERR_VIEWPORTDATANOTSET",
104 "D3DERR_VIEWPORTHASNODEVICE",
105 "D3DERR_NOCURRENTVIEWPORT",
106 "D3DERR_INVALIDVERTEXFORMAT",
107 "D3DERR_COLORKEYATTACHED",
108 "D3DERR_VERTEXBUFFEROPTIMIZED",
109 "D3DERR_VBUF_CREATE_FAILED",
110 "D3DERR_VERTEXBUFFERLOCKED",
111 "D3DERR_VERTEXBUFFERUNLOCKFAILED",
112 "D3DERR_ZBUFFER_NOTPRESENT",
113 "D3DERR_STENCILBUFFER_NOTPRESENT",
114 "D3DERR_WRONGTEXTUREFORMAT",
115 "D3DERR_UNSUPPORTEDCOLOROPERATION",
116 "D3DERR_UNSUPPORTEDCOLORARG",
117 "D3DERR_UNSUPPORTEDALPHAOPERATION",
118 "D3DERR_UNSUPPORTEDALPHAARG",
119 "D3DERR_TOOMANYOPERATIONS",
120 "D3DERR_CONFLICTINGTEXTUREFILTER",
121 "D3DERR_UNSUPPORTEDFACTORVALUE",
122 "D3DERR_CONFLICTINGRENDERSTATE",
123 "D3DERR_UNSUPPORTEDTEXTUREFILTER",
124 "D3DERR_TOOMANYPRIMITIVES",
125 "D3DERR_INVALIDMATRIX",
126 "D3DERR_TOOMANYVERTICES",
127 "D3DERR_CONFLICTINGTEXTUREPALETTE",
128 "D3DERR_INVALIDSTATEBLOCK",
129 "D3DERR_INBEGINSTATEBLOCK",
130 "D3DERR_NOTINBEGINSTATEBLOCK",
131])
132
133IDirect3D = Interface("IDirect3D", IUnknown)
134IDirect3D2 = Interface("IDirect3D2", IUnknown)
135IDirect3D3 = Interface("IDirect3D3", IUnknown)
136IDirect3D7 = Interface("IDirect3D7", IUnknown)
137IDirect3DDevice = Interface("IDirect3DDevice", IUnknown)
138IDirect3DDevice2 = Interface("IDirect3DDevice2", IUnknown)
139IDirect3DDevice3 = Interface("IDirect3DDevice3", IUnknown)
140IDirect3DDevice7 = Interface("IDirect3DDevice7", IUnknown)
141IDirect3DExecuteBuffer = Interface("IDirect3DExecuteBuffer", IUnknown)
142IDirect3DLight = Interface("IDirect3DLight", IUnknown)
143IDirect3DMaterial = Interface("IDirect3DMaterial", IUnknown)
144IDirect3DMaterial2 = Interface("IDirect3DMaterial2", IUnknown)
145IDirect3DMaterial3 = Interface("IDirect3DMaterial3", IUnknown)
146IDirect3DTexture = Interface("IDirect3DTexture", IUnknown)
147IDirect3DTexture2 = Interface("IDirect3DTexture2", IUnknown)
148IDirect3DViewport = Interface("IDirect3DViewport", IUnknown)
149IDirect3DViewport2 = Interface("IDirect3DViewport2", IDirect3DViewport)
150IDirect3DViewport3 = Interface("IDirect3DViewport3", IDirect3DViewport2)
151IDirect3DVertexBuffer = Interface("IDirect3DVertexBuffer", IUnknown)
152IDirect3DVertexBuffer7 = Interface("IDirect3DVertexBuffer7", IUnknown)
153
José Fonseca9782b292012-04-14 22:02:42 +0100154LPUNKNOWN = ObjPointer(IUnknown)
José Fonseca91af9232009-04-13 16:15:28 +0100155
José Fonseca9782b292012-04-14 22:02:42 +0100156LPDIRECT3D = ObjPointer(IDirect3D)
157LPDIRECT3DDEVICE = ObjPointer(IDirect3DDevice)
158LPDIRECT3DEXECUTEBUFFER = ObjPointer(IDirect3DExecuteBuffer)
159LPDIRECT3DLIGHT = ObjPointer(IDirect3DLight)
160LPDIRECT3DMATERIAL = ObjPointer(IDirect3DMaterial)
161LPDIRECT3DTEXTURE = ObjPointer(IDirect3DTexture)
162LPDIRECT3DVIEWPORT = ObjPointer(IDirect3DViewport)
José Fonseca91af9232009-04-13 16:15:28 +0100163
José Fonseca9782b292012-04-14 22:02:42 +0100164LPDIRECT3D2 = ObjPointer(IDirect3D2)
165LPDIRECT3DDEVICE2 = ObjPointer(IDirect3DDevice2)
166LPDIRECT3DMATERIAL2 = ObjPointer(IDirect3DMaterial2)
167LPDIRECT3DTEXTURE2 = ObjPointer(IDirect3DTexture2)
168LPDIRECT3DVIEWPORT2 = ObjPointer(IDirect3DViewport2)
José Fonseca91af9232009-04-13 16:15:28 +0100169
José Fonseca9782b292012-04-14 22:02:42 +0100170LPDIRECT3D3 = ObjPointer(IDirect3D3)
171LPDIRECT3DDEVICE3 = ObjPointer(IDirect3DDevice3)
172LPDIRECT3DMATERIAL3 = ObjPointer(IDirect3DMaterial3)
173LPDIRECT3DVIEWPORT3 = ObjPointer(IDirect3DViewport3)
174LPDIRECT3DVERTEXBUFFER = ObjPointer(IDirect3DVertexBuffer)
José Fonseca91af9232009-04-13 16:15:28 +0100175
José Fonseca9782b292012-04-14 22:02:42 +0100176LPDIRECT3D7 = ObjPointer(IDirect3D7)
177LPDIRECT3DDEVICE7 = ObjPointer(IDirect3DDevice7)
178LPDIRECT3DVERTEXBUFFER7 = ObjPointer(IDirect3DVertexBuffer7)
José Fonseca91af9232009-04-13 16:15:28 +0100179
180IDirect3D.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000181 StdMethod(HRESULT, "Initialize", [(REFCLSID, "riid")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000182 StdMethod(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK, "lpEnumDevicesCallback"), (LPVOID, "lpUserArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000183 StdMethod(HRESULT, "CreateLight", [Out(Pointer(LPDIRECT3DLIGHT), "lplpDirect3DLight"), (LPUNKNOWN, "pUnkOuter")]),
184 StdMethod(HRESULT, "CreateMaterial", [Out(Pointer(LPDIRECT3DMATERIAL), "lplpDirect3DMaterial"), (LPUNKNOWN, "pUnkOuter")]),
185 StdMethod(HRESULT, "CreateViewport", [Out(Pointer(LPDIRECT3DVIEWPORT), "lplpD3DViewport"), (LPUNKNOWN, "pUnkOuter")]),
186 StdMethod(HRESULT, "FindDevice", [(LPD3DFINDDEVICESEARCH, "lpD3DDFS"), (LPD3DFINDDEVICERESULT, "lplpD3DDevice")]),
José Fonseca91af9232009-04-13 16:15:28 +0100187]
188
189IDirect3D2.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000190 StdMethod(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK, "lpEnumDevicesCallback"), (LPVOID, "lpUserArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000191 StdMethod(HRESULT, "CreateLight", [Out(Pointer(LPDIRECT3DLIGHT), "lplpDirect3DLight"), (LPUNKNOWN, "pUnkOuter")]),
192 StdMethod(HRESULT, "CreateMaterial", [Out(Pointer(LPDIRECT3DMATERIAL2), "lplpDirect3DMaterial2"), (LPUNKNOWN, "pUnkOuter")]),
193 StdMethod(HRESULT, "CreateViewport", [Out(Pointer(LPDIRECT3DVIEWPORT2), "lplpD3DViewport2"), (LPUNKNOWN, "pUnkOuter")]),
194 StdMethod(HRESULT, "FindDevice", [(LPD3DFINDDEVICESEARCH, "lpD3DDFS"), (LPD3DFINDDEVICERESULT, "lpD3DFDR")]),
195 StdMethod(HRESULT, "CreateDevice", [(REFCLSID, "rclsid"), (LPDIRECTDRAWSURFACE, "lpDDS"), Out(Pointer(LPDIRECT3DDEVICE2), "lplpD3DDevice2")]),
José Fonseca91af9232009-04-13 16:15:28 +0100196]
197
198IDirect3D3.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000199 StdMethod(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK, "lpEnumDevicesCallback"), (LPVOID, "lpUserArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000200 StdMethod(HRESULT, "CreateLight", [Out(Pointer(LPDIRECT3DLIGHT), "lplpDirect3DLight"), (LPUNKNOWN, "pUnkOuter")]),
201 StdMethod(HRESULT, "CreateMaterial", [Out(Pointer(LPDIRECT3DMATERIAL3), "lplpDirect3DMaterial3"), (LPUNKNOWN, "pUnkOuter")]),
202 StdMethod(HRESULT, "CreateViewport", [Out(Pointer(LPDIRECT3DVIEWPORT3), "lplpD3DViewport3"), (LPUNKNOWN, "pUnkOuter")]),
203 StdMethod(HRESULT, "FindDevice", [(LPD3DFINDDEVICESEARCH, "lpD3DDFS"), Out(LPD3DFINDDEVICERESULT, "lpD3DFDR")]),
204 StdMethod(HRESULT, "CreateDevice", [(REFCLSID, "rclsid"), (LPDIRECTDRAWSURFACE4, "lpDDS"), Out(Pointer(LPDIRECT3DDEVICE3), "lplpD3DDevice3"), (LPUNKNOWN, "lpUnk")]),
205 StdMethod(HRESULT, "CreateVertexBuffer", [(LPD3DVERTEXBUFFERDESC, "lpD3DVertBufDesc"), Out(Pointer(LPDIRECT3DVERTEXBUFFER), "lplpD3DVertBuf"), (DWORD, "dwFlags"), (LPUNKNOWN, "lpUnk")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000206 StdMethod(HRESULT, "EnumZBufferFormats", [(REFCLSID, "riidDevice"), (LPD3DENUMPIXELFORMATSCALLBACK, "lpEnumCallback"), (LPVOID, "lpContext")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000207 StdMethod(HRESULT, "EvictManagedTextures", []),
José Fonseca91af9232009-04-13 16:15:28 +0100208]
209
210IDirect3D7.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000211 StdMethod(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK7, "lpEnumDevicesCallback"), (LPVOID, "lpUserArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000212 StdMethod(HRESULT, "CreateDevice", [(REFCLSID, "rclsid"), (LPDIRECTDRAWSURFACE7, "lpDDS"), Out(Pointer(LPDIRECT3DDEVICE7), "lplpD3DDevice")]),
213 StdMethod(HRESULT, "CreateVertexBuffer", [(LPD3DVERTEXBUFFERDESC, "lpD3DVertBufDesc"), Out(Pointer(LPDIRECT3DVERTEXBUFFER7), "lplpD3DVertBuf"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000214 StdMethod(HRESULT, "EnumZBufferFormats", [(REFCLSID, "riidDevice"), (LPD3DENUMPIXELFORMATSCALLBACK, "lpEnumCallback"), (LPVOID, "lpContext")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000215 StdMethod(HRESULT, "EvictManagedTextures", []),
José Fonseca91af9232009-04-13 16:15:28 +0100216]
217
218IDirect3DDevice.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000219 StdMethod(HRESULT, "Initialize", [(LPDIRECT3D, "lpDirect3D"), (LPGUID, "lpGUID"), (LPD3DDEVICEDESC, "lpD3DDVDesc")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000220 StdMethod(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC, "lpD3DHWDevDesc"), Out(LPD3DDEVICEDESC, "lpD3DHELDevDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000221 StdMethod(HRESULT, "SwapTextureHandles", [(LPDIRECT3DTEXTURE, "lpD3Dtex1"), (LPDIRECT3DTEXTURE, "lpD3DTex2")]),
222 StdMethod(HRESULT, "CreateExecuteBuffer", [(LPD3DEXECUTEBUFFERDESC, "lpDesc"), Out(Pointer(LPDIRECT3DEXECUTEBUFFER), "lplpDirect3DExecuteBuffer"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000223 StdMethod(HRESULT, "GetStats", [(LPD3DSTATS, "lpD3DStats")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000224 StdMethod(HRESULT, "Execute", [(LPDIRECT3DEXECUTEBUFFER, "lpDirect3DExecuteBuffer"), (LPDIRECT3DVIEWPORT, "lpDirect3DViewport"), (DWORD, "dwFlags")]),
225 StdMethod(HRESULT, "AddViewport", [(LPDIRECT3DVIEWPORT, "lpDirect3DViewport")]),
226 StdMethod(HRESULT, "DeleteViewport", [(LPDIRECT3DVIEWPORT, "lpDirect3DViewport")]),
227 StdMethod(HRESULT, "NextViewport", [(LPDIRECT3DVIEWPORT, "lpDirect3DViewport"), Out(Pointer(LPDIRECT3DVIEWPORT), "lplpDirect3DViewport"), (DWORD, "dwFlags")]),
228 StdMethod(HRESULT, "Pick", [(LPDIRECT3DEXECUTEBUFFER, "lpDirect3DExecuteBuffer"), (LPDIRECT3DVIEWPORT, "lpDirect3DViewport"), (DWORD, "dwFlags"), (LPD3DRECT, "lpRect")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000229 StdMethod(HRESULT, "GetPickRecords", [(LPDWORD, "lpCount"), (LPD3DPICKRECORD, "lpD3DPickRec")], sideeffects=False),
230 StdMethod(HRESULT, "EnumTextureFormats", [(LPD3DENUMTEXTUREFORMATSCALLBACK, "lpD3DEnumTextureProc"), (LPVOID, "lpArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000231 StdMethod(HRESULT, "CreateMatrix", [Out(LPD3DMATRIXHANDLE, "lpD3DMatHandle")]),
232 StdMethod(HRESULT, "SetMatrix", [(D3DMATRIXHANDLE, "D3DMatHandle"), (Const(LPD3DMATRIX), "lpD3DMatrix")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000233 StdMethod(HRESULT, "GetMatrix", [(D3DMATRIXHANDLE, "D3DMatHandle"), Out(LPD3DMATRIX, "lpD3DMatrix")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000234 StdMethod(HRESULT, "DeleteMatrix", [(D3DMATRIXHANDLE, "D3DMatHandle")]),
235 StdMethod(HRESULT, "BeginScene", []),
236 StdMethod(HRESULT, "EndScene", []),
237 StdMethod(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D), "lplpDirect3D")]),
José Fonseca91af9232009-04-13 16:15:28 +0100238]
239
240IDirect3DDevice2.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000241 StdMethod(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC, "lpD3DHWDevDesc"), Out(LPD3DDEVICEDESC, "lpD3DHELDevDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000242 StdMethod(HRESULT, "SwapTextureHandles", [(LPDIRECT3DTEXTURE2, "lpD3DTex1"), (LPDIRECT3DTEXTURE2, "lpD3DTex2")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000243 StdMethod(HRESULT, "GetStats", [Out(LPD3DSTATS, "lpD3DStats")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000244 StdMethod(HRESULT, "AddViewport", [(LPDIRECT3DVIEWPORT2, "lpDirect3DViewport2")]),
245 StdMethod(HRESULT, "DeleteViewport", [(LPDIRECT3DVIEWPORT2, "lpDirect3DViewport2")]),
246 StdMethod(HRESULT, "NextViewport", [(LPDIRECT3DVIEWPORT2, "lpDirect3DViewport2"), Out(Pointer(LPDIRECT3DVIEWPORT2), "lplpDirect3DViewport2"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000247 StdMethod(HRESULT, "EnumTextureFormats", [(LPD3DENUMTEXTUREFORMATSCALLBACK, "lpD3DEnumTextureProc"), (LPVOID, "lpArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000248 StdMethod(HRESULT, "BeginScene", []),
249 StdMethod(HRESULT, "EndScene", []),
250 StdMethod(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D2), "lplpDirect3D2")]),
251 StdMethod(HRESULT, "SetCurrentViewport", [(LPDIRECT3DVIEWPORT2, "lpDirect3DViewport2")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000252 StdMethod(HRESULT, "GetCurrentViewport", [Out(Pointer(LPDIRECT3DVIEWPORT2), "lplpDirect3DViewport2")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000253 StdMethod(HRESULT, "SetRenderTarget", [(LPDIRECTDRAWSURFACE, "lpNewRenderTarget"), (DWORD, "dwFlags")]),
254 StdMethod(HRESULT, "GetRenderTarget", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpRenderTarget")]),
255 StdMethod(HRESULT, "Begin", [(D3DPRIMITIVETYPE, "d3dpt"), (D3DVERTEXTYPE, "dwVertexTypeDesc"), (DWORD, "dwFlags")]),
256 StdMethod(HRESULT, "BeginIndexed", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DVERTEXTYPE, "d3dvtVertexType"), (LPVOID, "lpvVertices"), (DWORD, "dwNumVertices"), (DWORD, "dwFlags")]),
257 StdMethod(HRESULT, "Vertex", [(LPVOID, "lpVertexType")]),
258 StdMethod(HRESULT, "Index", [(WORD, "wVertexIndex")]),
259 StdMethod(HRESULT, "End", [(DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000260 StdMethod(HRESULT, "GetRenderState", [(D3DRENDERSTATETYPE, "dwRenderStateType"), Out(LPDWORD, "lpdwRenderState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000261 StdMethod(HRESULT, "SetRenderState", [(D3DRENDERSTATETYPE, "dwRenderStateType"), (DWORD, "dwRenderState")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000262 StdMethod(HRESULT, "GetLightState", [(D3DLIGHTSTATETYPE, "dwLightStateType"), Out(LPDWORD, "lpdwLightState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000263 StdMethod(HRESULT, "SetLightState", [(D3DLIGHTSTATETYPE, "dwLightStateType"), (DWORD, "dwLightState")]),
264 StdMethod(HRESULT, "SetTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), (LPD3DMATRIX, "lpD3DMatrix")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000265 StdMethod(HRESULT, "GetTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), Out(LPD3DMATRIX, "lpD3DMatrix")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000266 StdMethod(HRESULT, "MultiplyTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), (LPD3DMATRIX, "lpD3DMatrix")]),
267 StdMethod(HRESULT, "DrawPrimitive", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DVERTEXTYPE, "d3dvtVertexType"), (LPVOID, "lpvVertices"), (DWORD, "dwVertexCount"), (DWORD, "dwFlags")]),
Jose Fonseca8aef6312017-08-28 19:53:43 +0100268 StdMethod(HRESULT, "DrawIndexedPrimitive", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DVERTEXTYPE, "d3dvtVertexType"), (LPVOID, "lpvVertices"), (DWORD, "dwVertexCount"), (LPWORD, "lpwIndices"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000269 StdMethod(HRESULT, "SetClipStatus", [(LPD3DCLIPSTATUS, "lpD3DClipStatus")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000270 StdMethod(HRESULT, "GetClipStatus", [(LPD3DCLIPSTATUS, "lpD3DClipStatus")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +0100271]
272
273IDirect3DDevice3.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000274 StdMethod(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC, "lpD3DHWDevDesc"), Out(LPD3DDEVICEDESC, "lpD3DHELDevDesc")], sideeffects=False),
275 StdMethod(HRESULT, "GetStats", [Out(LPD3DSTATS, "lpD3DStats")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000276 StdMethod(HRESULT, "AddViewport", [(LPDIRECT3DVIEWPORT3, "lpDirect3DViewport3")]),
277 StdMethod(HRESULT, "DeleteViewport", [(LPDIRECT3DVIEWPORT3, "lpDirect3DViewport3")]),
278 StdMethod(HRESULT, "NextViewport", [(LPDIRECT3DVIEWPORT3, "lpDirect3DViewport3"), Out(Pointer(LPDIRECT3DVIEWPORT3), "lplpDirect3DViewport3"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000279 StdMethod(HRESULT, "EnumTextureFormats", [(LPD3DENUMPIXELFORMATSCALLBACK, "lpD3DEnumPixelProc"), (LPVOID, "lpArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000280 StdMethod(HRESULT, "BeginScene", []),
281 StdMethod(HRESULT, "EndScene", []),
282 StdMethod(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D3), "lplpDirect3D3")]),
283 StdMethod(HRESULT, "SetCurrentViewport", [(LPDIRECT3DVIEWPORT3, "lpDirect3DViewport3")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000284 StdMethod(HRESULT, "GetCurrentViewport", [Out(Pointer(LPDIRECT3DVIEWPORT3), "lplpDirect3DViewport3")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000285 StdMethod(HRESULT, "SetRenderTarget", [(LPDIRECTDRAWSURFACE4, "lpNewRenderTarget"), (DWORD, "dwFlags")]),
286 StdMethod(HRESULT, "GetRenderTarget", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpRenderTarget")]),
287 StdMethod(HRESULT, "Begin", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (DWORD, "dwVertexTypeDesc"), (DWORD, "dwFlags")]),
288 StdMethod(HRESULT, "BeginIndexed", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (DWORD, "d3dvtVertexType"), (LPVOID, "lpvVertices"), (DWORD, "dwNumVertices"), (DWORD, "dwFlags")]),
289 StdMethod(HRESULT, "Vertex", [(LPVOID, "lpVertexType")]),
290 StdMethod(HRESULT, "Index", [(WORD, "wVertexIndex")]),
291 StdMethod(HRESULT, "End", [(DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000292 StdMethod(HRESULT, "GetRenderState", [(D3DRENDERSTATETYPE, "dwRenderStateType"), Out(LPDWORD, "lpdwRenderState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000293 StdMethod(HRESULT, "SetRenderState", [(D3DRENDERSTATETYPE, "dwRenderStateType"), (DWORD, "dwRenderState")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000294 StdMethod(HRESULT, "GetLightState", [(D3DLIGHTSTATETYPE, "dwLightStateType"), Out(LPDWORD, "lpdwLightState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000295 StdMethod(HRESULT, "SetLightState", [(D3DLIGHTSTATETYPE, "dwLightStateType"), (DWORD, "dwLightState")]),
296 StdMethod(HRESULT, "SetTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), (LPD3DMATRIX, "lpD3DMatrix")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000297 StdMethod(HRESULT, "GetTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), Out(LPD3DMATRIX, "lpD3DMatrix")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000298 StdMethod(HRESULT, "MultiplyTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), (LPD3DMATRIX, "lpD3DMatrix")]),
299 StdMethod(HRESULT, "DrawPrimitive", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (DWORD, "d3dvtVertexType"), (LPVOID, "lpvVertices"), (DWORD, "dwVertexCount"), (DWORD, "dwFlags")]),
Jose Fonseca8aef6312017-08-28 19:53:43 +0100300 StdMethod(HRESULT, "DrawIndexedPrimitive", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (DWORD, "d3dvtVertexType"), (LPVOID, "lpvVertices"), (DWORD, "dwVertexCount"), (LPWORD, "lpwIndices"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000301 StdMethod(HRESULT, "SetClipStatus", [(LPD3DCLIPSTATUS, "lpD3DClipStatus")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000302 StdMethod(HRESULT, "GetClipStatus", [Out(LPD3DCLIPSTATUS, "lpD3DClipStatus")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000303 StdMethod(HRESULT, "DrawPrimitiveStrided", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (DWORD, "dwVertexType"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "lpD3DDrawPrimStrideData"), (DWORD, "dwVertexCount"), (DWORD, "dwFlags")]),
304 StdMethod(HRESULT, "DrawIndexedPrimitiveStrided", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (DWORD, "dwVertexType"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "lpD3DDrawPrimStrideData"), (DWORD, "dwVertexCount"), (LPWORD, "lpIndex"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
305 StdMethod(HRESULT, "DrawPrimitiveVB", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (LPDIRECT3DVERTEXBUFFER, "lpD3DVertexBuf"), (DWORD, "dwStartVertex"), (DWORD, "dwNumVertices"), (DWORD, "dwFlags")]),
306 StdMethod(HRESULT, "DrawIndexedPrimitiveVB", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (LPDIRECT3DVERTEXBUFFER, "lpD3DVertexBuf"), (LPWORD, "lpwIndices"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
307 StdMethod(HRESULT, "ComputeSphereVisibility", [(LPD3DVECTOR, "lpCenters"), (LPD3DVALUE, "lpRadii"), (DWORD, "dwNumSpheres"), (DWORD, "dwFlags"), (LPDWORD, "lpdwReturnValues")]),
308 StdMethod(HRESULT, "GetTexture", [(DWORD, "dwStage"), Out(Pointer(LPDIRECT3DTEXTURE2), "lplpTexture2")]),
309 StdMethod(HRESULT, "SetTexture", [(DWORD, "dwStage"), (LPDIRECT3DTEXTURE2, "lpTexture2")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000310 StdMethod(HRESULT, "GetTextureStageState", [(DWORD, "dwStage"), (D3DTEXTURESTAGESTATETYPE, "d3dTexStageStateType"), Out(LPDWORD, "lpdwState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000311 StdMethod(HRESULT, "SetTextureStageState", [(DWORD, "dwStage"), (D3DTEXTURESTAGESTATETYPE, "d3dTexStageStateType"), (DWORD, "dwState")]),
312 StdMethod(HRESULT, "ValidateDevice", [(LPDWORD, "lpdwPasses")]),
José Fonseca91af9232009-04-13 16:15:28 +0100313]
314
315IDirect3DDevice7.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000316 StdMethod(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC7, "lpD3DHELDevDesc")], sideeffects=False),
317 StdMethod(HRESULT, "EnumTextureFormats", [(LPD3DENUMPIXELFORMATSCALLBACK, "lpD3DEnumPixelProc"), (LPVOID, "lpArg")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000318 StdMethod(HRESULT, "BeginScene", []),
319 StdMethod(HRESULT, "EndScene", []),
320 StdMethod(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D7), "lplpDirect3D3")]),
321 StdMethod(HRESULT, "SetRenderTarget", [(LPDIRECTDRAWSURFACE7, "lpNewRenderTarget"), (DWORD, "dwFlags")]),
322 StdMethod(HRESULT, "GetRenderTarget", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpRenderTarget")]),
José Fonseca7cdbd382015-01-16 10:59:02 +0000323 StdMethod(HRESULT, "Clear", [(DWORD, "dwCount"), (Array(D3DRECT, "dwCount"), "lpRects"), (D3DCLEAR, "dwFlags"), (D3DCOLOR, "dwColor"), (D3DVALUE, "dvZ"), (DWORD, "dwStencil")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000324 StdMethod(HRESULT, "SetTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), (LPD3DMATRIX, "lpD3DMatrix")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000325 StdMethod(HRESULT, "GetTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), Out(LPD3DMATRIX, "lpD3DMatrix")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000326 StdMethod(HRESULT, "SetViewport", [(LPD3DVIEWPORT7, "lpData")]),
327 StdMethod(HRESULT, "MultiplyTransform", [(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"), (LPD3DMATRIX, "lpD3DMatrix")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000328 StdMethod(HRESULT, "GetViewport", [Out(LPD3DVIEWPORT7, "lpData")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000329 StdMethod(HRESULT, "SetMaterial", [(LPD3DMATERIAL7, "lpMat")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000330 StdMethod(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL7, "lpMat")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000331 StdMethod(HRESULT, "SetLight", [(DWORD, "dwLightIndex"), (LPD3DLIGHT7, "lpLight")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000332 StdMethod(HRESULT, "GetLight", [(DWORD, "dwLightIndex"), (LPD3DLIGHT7, "lpLight")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000333 StdMethod(HRESULT, "SetRenderState", [(D3DRENDERSTATETYPE, "dwRenderStateType"), (DWORD, "dwRenderState")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000334 StdMethod(HRESULT, "GetRenderState", [(D3DRENDERSTATETYPE, "dwRenderStateType"), Out(LPDWORD, "lpdwRenderState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000335 StdMethod(HRESULT, "BeginStateBlock", []),
336 StdMethod(HRESULT, "EndStateBlock", [Out(LPDWORD, "lpdwBlockHandle")]),
337 StdMethod(HRESULT, "PreLoad", [(LPDIRECTDRAWSURFACE7, "lpddsTexture")]),
José Fonseca7300ed72015-01-15 12:55:04 +0000338 StdMethod(HRESULT, "DrawPrimitive", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DFVF, "d3dvtVertexType"), (Blob(VOID, "dwVertexCount * _getVertexSize(d3dvtVertexType)"), "lpvVertices"), (DWORD, "dwVertexCount"), (DWORD, "dwFlags")]),
Jose Fonseca8aef6312017-08-28 19:53:43 +0100339 StdMethod(HRESULT, "DrawIndexedPrimitive", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DFVF, "d3dvtVertexType"), (Blob(VOID, "dwVertexCount * _getVertexSize(d3dvtVertexType)"), "lpvVertices"), (DWORD, "dwVertexCount"), (Blob(WORD, "dwIndexCount"), "lpwIndices"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000340 StdMethod(HRESULT, "SetClipStatus", [(LPD3DCLIPSTATUS, "lpD3DClipStatus")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000341 StdMethod(HRESULT, "GetClipStatus", [Out(LPD3DCLIPSTATUS, "lpD3DClipStatus")], sideeffects=False),
José Fonseca1c854972012-11-28 21:17:30 +0000342 StdMethod(HRESULT, "DrawPrimitiveStrided", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DFVF, "dwVertexType"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "lpD3DDrawPrimStrideData"), (DWORD, "dwVertexCount"), (DWORD, "dwFlags")]),
343 StdMethod(HRESULT, "DrawIndexedPrimitiveStrided", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (D3DFVF, "dwVertexType"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "lpD3DDrawPrimStrideData"), (DWORD, "dwVertexCount"), (LPWORD, "lpIndex"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000344 StdMethod(HRESULT, "DrawPrimitiveVB", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (LPDIRECT3DVERTEXBUFFER7, "lpD3DVertexBuf"), (DWORD, "dwStartVertex"), (DWORD, "dwNumVertices"), (DWORD, "dwFlags")]),
345 StdMethod(HRESULT, "DrawIndexedPrimitiveVB", [(D3DPRIMITIVETYPE, "d3dptPrimitiveType"), (LPDIRECT3DVERTEXBUFFER7, "lpD3DVertexBuf"), (DWORD, "dwStartVertex"), (DWORD, "dwNumVertices"), (LPWORD, "lpwIndices"), (DWORD, "dwIndexCount"), (DWORD, "dwFlags")]),
346 StdMethod(HRESULT, "ComputeSphereVisibility", [(LPD3DVECTOR, "lpCenters"), (LPD3DVALUE, "lpRadii"), (DWORD, "dwNumSpheres"), (DWORD, "dwFlags"), (LPDWORD, "lpdwReturnValues")]),
347 StdMethod(HRESULT, "GetTexture", [(DWORD, "dwStage"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpTexture")]),
348 StdMethod(HRESULT, "SetTexture", [(DWORD, "dwStage"), (LPDIRECTDRAWSURFACE7, "lpTexture")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000349 StdMethod(HRESULT, "GetTextureStageState", [(DWORD, "dwStage"), (D3DTEXTURESTAGESTATETYPE, "d3dTexStageStateType"), Out(LPDWORD, "lpdwState")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000350 StdMethod(HRESULT, "SetTextureStageState", [(DWORD, "dwStage"), (D3DTEXTURESTAGESTATETYPE, "d3dTexStageStateType"), (DWORD, "dwState")]),
351 StdMethod(HRESULT, "ValidateDevice", [Out(LPDWORD, "lpdwPasses")]),
352 StdMethod(HRESULT, "ApplyStateBlock", [(DWORD, "dwBlockHandle")]),
353 StdMethod(HRESULT, "CaptureStateBlock", [(DWORD, "dwBlockHandle")]),
354 StdMethod(HRESULT, "DeleteStateBlock", [(DWORD, "dwBlockHandle")]),
355 StdMethod(HRESULT, "CreateStateBlock", [(D3DSTATEBLOCKTYPE, "d3dsbType"), Out(LPDWORD, "lpdwBlockHandle")]),
356 StdMethod(HRESULT, "Load", [(LPDIRECTDRAWSURFACE7, "lpDestTex"), (LPPOINT, "lpDestPoint"), (LPDIRECTDRAWSURFACE7, "lpSrcTex"), (LPRECT, "lprcSrcRect"), (DWORD, "dwFlags")]),
357 StdMethod(HRESULT, "LightEnable", [(DWORD, "dwLightIndex"), (BOOL, "bEnable")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000358 StdMethod(HRESULT, "GetLightEnable", [(DWORD, "dwLightIndex"), Out(Pointer(BOOL), "pbEnable")], sideeffects=False),
Jose Fonsecacf519352015-05-20 17:17:32 +0100359 StdMethod(HRESULT, "SetClipPlane", [(DWORD, "dwIndex"), (Array(D3DVALUE, 4), "pPlaneEquation")]),
360 StdMethod(HRESULT, "GetClipPlane", [(DWORD, "dwIndex"), Out(Array(D3DVALUE, 4), "pPlaneEquation")], sideeffects=False),
José Fonseca50c2a142015-01-15 13:10:46 +0000361 StdMethod(HRESULT, "GetInfo", [(DWORD, "dwDevInfoID"), Out(LPVOID, "pDevInfoStruct"), (DWORD, "dwSize")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +0100362]
363
364IDirect3DExecuteBuffer.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000365 StdMethod(HRESULT, "Initialize", [(LPDIRECT3DDEVICE, "lpDirect3DDevice"), (LPD3DEXECUTEBUFFERDESC, "lpDesc")]),
366 StdMethod(HRESULT, "Lock", [(LPD3DEXECUTEBUFFERDESC, "lpDesc")]),
367 StdMethod(HRESULT, "Unlock", []),
368 StdMethod(HRESULT, "SetExecuteData", [(LPD3DEXECUTEDATA, "lpData")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000369 StdMethod(HRESULT, "GetExecuteData", [Out(LPD3DEXECUTEDATA, "lpData")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000370 StdMethod(HRESULT, "Validate", [(LPDWORD, "lpdwOffset"), (LPD3DVALIDATECALLBACK, "lpFunc"), (LPVOID, "lpUserArg"), (DWORD, "dwReserved")]),
371 StdMethod(HRESULT, "Optimize", [(DWORD, "dwDummy")]),
José Fonseca91af9232009-04-13 16:15:28 +0100372]
373
374IDirect3DLight.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000375 StdMethod(HRESULT, "Initialize", [(LPDIRECT3D, "lpDirect3D")]),
376 StdMethod(HRESULT, "SetLight", [(LPD3DLIGHT, "lpLight")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000377 StdMethod(HRESULT, "GetLight", [Out(LPD3DLIGHT, "lpLight")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +0100378]
379
380IDirect3DMaterial.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000381 StdMethod(HRESULT, "Initialize", [(LPDIRECT3D, "lpDirect3D")]),
382 StdMethod(HRESULT, "SetMaterial", [(LPD3DMATERIAL, "lpMat")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000383 StdMethod(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL, "lpMat")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000384 StdMethod(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE, "lpDirect3DDevice"), Out(LPD3DMATERIALHANDLE, "lpHandle")]),
385 StdMethod(HRESULT, "Reserve", []),
386 StdMethod(HRESULT, "Unreserve", []),
José Fonseca91af9232009-04-13 16:15:28 +0100387]
388
389IDirect3DMaterial2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000390 StdMethod(HRESULT, "SetMaterial", [(LPD3DMATERIAL, "lpMat")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000391 StdMethod(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL, "lpMat")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000392 StdMethod(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE2, "lpDirect3DDevice2"), Out(LPD3DMATERIALHANDLE, "lpHandle")]),
José Fonseca91af9232009-04-13 16:15:28 +0100393]
394
395IDirect3DMaterial3.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000396 StdMethod(HRESULT, "SetMaterial", [(LPD3DMATERIAL, "lpMat")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000397 StdMethod(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL, "lpMat")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000398 StdMethod(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE3, "lpDirect3DDevice3"), Out(LPD3DMATERIALHANDLE, "lpHandle")]),
José Fonseca91af9232009-04-13 16:15:28 +0100399]
400
401IDirect3DTexture.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000402 StdMethod(HRESULT, "Initialize", [(LPDIRECT3DDEVICE, "lpDirect3DDevice"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
403 StdMethod(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE, "lpDirect3DDevice"), Out(LPD3DTEXTUREHANDLE, "lpHandle")]),
404 StdMethod(HRESULT, "PaletteChanged", [(DWORD, "dwStart"), (DWORD, "dwCount")]),
405 StdMethod(HRESULT, "Load", [(LPDIRECT3DTEXTURE, "lpD3DTexture")]),
406 StdMethod(HRESULT, "Unload", []),
José Fonseca91af9232009-04-13 16:15:28 +0100407]
408
409IDirect3DTexture2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000410 StdMethod(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE2, "lpDirect3DDevice2"), Out(LPD3DTEXTUREHANDLE, "lpHandle")]),
411 StdMethod(HRESULT, "PaletteChanged", [(DWORD, "dwStart"), (DWORD, "dwCount")]),
412 StdMethod(HRESULT, "Load", [(LPDIRECT3DTEXTURE2, "lpD3DTexture2")]),
José Fonseca91af9232009-04-13 16:15:28 +0100413]
414
415IDirect3DViewport.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000416 StdMethod(HRESULT, "Initialize", [(LPDIRECT3D, "lpDirect3D")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000417 StdMethod(HRESULT, "GetViewport", [Out(LPD3DVIEWPORT, "lpData")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000418 StdMethod(HRESULT, "SetViewport", [(LPD3DVIEWPORT, "lpData")]),
419 StdMethod(HRESULT, "TransformVertices", [(DWORD, "dwVertexCount"), (LPD3DTRANSFORMDATA, "lpData"), (DWORD, "dwFlags"), (LPDWORD, "lpOffScreen")]),
420 StdMethod(HRESULT, "LightElements", [(DWORD, "dwElementCount"), (LPD3DLIGHTDATA, "lpData")]),
421 StdMethod(HRESULT, "SetBackground", [(D3DMATERIALHANDLE, "hMat")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000422 StdMethod(HRESULT, "GetBackground", [Out(LPD3DMATERIALHANDLE, "lphMat"), Out(LPBOOL, "lpValid")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000423 StdMethod(HRESULT, "SetBackgroundDepth", [(LPDIRECTDRAWSURFACE, "lpDDSurface")]),
424 StdMethod(HRESULT, "GetBackgroundDepth", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), Out(LPBOOL, "lpValid")]),
Jose Fonseca4ccc8772015-05-20 17:18:31 +0100425 StdMethod(HRESULT, "Clear", [(DWORD, "dwCount"), (Array(D3DRECT, "dwCount"), "lpRects"), (D3DCLEAR, "dwFlags")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000426 StdMethod(HRESULT, "AddLight", [(LPDIRECT3DLIGHT, "lpDirect3DLight")]),
427 StdMethod(HRESULT, "DeleteLight", [(LPDIRECT3DLIGHT, "lpDirect3DLight")]),
428 StdMethod(HRESULT, "NextLight", [(LPDIRECT3DLIGHT, "lpDirect3DLight"), Out(Pointer(LPDIRECT3DLIGHT), "lplpDirect3DLight"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +0100429]
430
431IDirect3DViewport2.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000432 StdMethod(HRESULT, "GetViewport2", [Out(LPD3DVIEWPORT2, "lpData")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000433 StdMethod(HRESULT, "SetViewport2", [(LPD3DVIEWPORT2, "lpData")]),
José Fonseca91af9232009-04-13 16:15:28 +0100434]
435
436IDirect3DViewport3.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +0000437 StdMethod(HRESULT, "SetBackgroundDepth2", [(LPDIRECTDRAWSURFACE4, "lpDDS")]),
438 StdMethod(HRESULT, "GetBackgroundDepth2", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDS"), (LPBOOL, "lpValid")]),
Jose Fonseca4ccc8772015-05-20 17:18:31 +0100439 StdMethod(HRESULT, "Clear2", [(DWORD, "dwCount"), (Array(D3DRECT, "dwCount"), "lpRects"), (D3DCLEAR, "dwFlags"), (D3DCOLOR, "dwColor"), (D3DVALUE, "dvZ"), (DWORD, "dwStencil")]),
José Fonseca91af9232009-04-13 16:15:28 +0100440]
441
442IDirect3DVertexBuffer.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000443 StdMethod(HRESULT, "Lock", [(DirectDrawSurfaceLockFlags, "dwFlags"), Out(Pointer(LPVOID), "lplpData"), (LPDWORD, "lpdwSize")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000444 StdMethod(HRESULT, "Unlock", []),
445 StdMethod(HRESULT, "ProcessVertices", [(DWORD, "dwVertexOp"), (DWORD, "dwDestIndex"), (DWORD, "dwCount"), (LPDIRECT3DVERTEXBUFFER, "lpSrcBuffer"), (DWORD, "dwSrcIndex"), (LPDIRECT3DDEVICE3, "lpD3DDevice"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000446 StdMethod(HRESULT, "GetVertexBufferDesc", [Out(LPD3DVERTEXBUFFERDESC, "lpD3DVertexBufferDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000447 StdMethod(HRESULT, "Optimize", [(LPDIRECT3DDEVICE3, "lpD3DDevice"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +0100448]
449
450IDirect3DVertexBuffer7.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +0000451 StdMethod(HRESULT, "Lock", [(DirectDrawSurfaceLockFlags, "dwFlags"), Out(Pointer(LPVOID), "lplpData"), (LPDWORD, "lpdwSize")]),
José Fonseca43aa19f2012-11-10 09:29:38 +0000452 StdMethod(HRESULT, "Unlock", []),
453 StdMethod(HRESULT, "ProcessVertices", [(DWORD, "dwVertexOp"), (DWORD, "dwDestIndex"), (DWORD, "dwCount"), (LPDIRECT3DVERTEXBUFFER7, "lpSrcBuffer"), (DWORD, "dwSrcIndex"), (LPDIRECT3DDEVICE7, "lpD3DDevice"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +0000454 StdMethod(HRESULT, "GetVertexBufferDesc", [Out(LPD3DVERTEXBUFFERDESC, "lpD3DVertexBufferDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +0000455 StdMethod(HRESULT, "Optimize", [(LPDIRECT3DDEVICE7, "lpD3DDevice"), (DWORD, "dwFlags")]),
456 StdMethod(HRESULT, "ProcessVerticesStrided", [(DWORD, "dwVertexOp"), (DWORD, "dwDestIndex"), (DWORD, "dwCount"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "lpStrideData"), (DWORD, "dwVertexTypeDesc"), (LPDIRECT3DDEVICE7, "lpD3DDevice"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +0100457]
José Fonseca8384ccb2011-05-25 10:12:02 +0100458
459interfaces = [
460 IDirectDraw,
461 IDirectDraw2,
462 IDirectDraw4,
463 IDirectDraw7,
464 IDirect3D,
465 IDirect3D2,
466 IDirect3D3,
467 IDirect3D7,
468]
469
José Fonseca54f304a2012-01-14 19:33:08 +0000470ddraw.addInterfaces(interfaces)
José Fonseca8384ccb2011-05-25 10:12:02 +0100471