1 #############################################################################
3 # Copyright 2008 Tungsten Graphics, Inc.
5 # This program is free software: you can redistribute it and/or modify it
6 # under the terms of the GNU Lesser General Public License as published
7 # by the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # This program 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
13 # GNU Lesser General Public License for more details.
15 # You should have received a copy of the GNU Lesser General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #############################################################################
23 from d3dtypes import *
26 D3DNEXT = Flags(DWORD, [
32 D3DDP = Flags(DWORD, [
36 "D3DDP_DONOTUPDATEEXTENTS",
40 HRESULT = Enum("HRESULT", [
42 "D3DERR_BADMAJORVERSION",
43 "D3DERR_BADMINORVERSION",
44 "D3DERR_INVALID_DEVICE",
46 "D3DERR_DEVICEAGGREGATED",
47 "D3DERR_EXECUTE_CREATE_FAILED",
48 "D3DERR_EXECUTE_DESTROY_FAILED",
49 "D3DERR_EXECUTE_LOCK_FAILED",
50 "D3DERR_EXECUTE_UNLOCK_FAILED",
51 "D3DERR_EXECUTE_LOCKED",
52 "D3DERR_EXECUTE_NOT_LOCKED",
53 "D3DERR_EXECUTE_FAILED",
54 "D3DERR_EXECUTE_CLIPPED_FAILED",
55 "D3DERR_TEXTURE_NO_SUPPORT",
56 "D3DERR_TEXTURE_CREATE_FAILED",
57 "D3DERR_TEXTURE_DESTROY_FAILED",
58 "D3DERR_TEXTURE_LOCK_FAILED",
59 "D3DERR_TEXTURE_UNLOCK_FAILED",
60 "D3DERR_TEXTURE_LOAD_FAILED",
61 "D3DERR_TEXTURE_SWAP_FAILED",
62 "D3DERR_TEXTURE_LOCKED",
63 "D3DERR_TEXTURE_NOT_LOCKED",
64 "D3DERR_TEXTURE_GETSURF_FAILED",
65 "D3DERR_MATRIX_CREATE_FAILED",
66 "D3DERR_MATRIX_DESTROY_FAILED",
67 "D3DERR_MATRIX_SETDATA_FAILED",
68 "D3DERR_MATRIX_GETDATA_FAILED",
69 "D3DERR_SETVIEWPORTDATA_FAILED",
70 "D3DERR_INVALIDCURRENTVIEWPORT",
71 "D3DERR_INVALIDPRIMITIVETYPE",
72 "D3DERR_INVALIDVERTEXTYPE",
73 "D3DERR_TEXTURE_BADSIZE",
74 "D3DERR_INVALIDRAMPTEXTURE",
75 "D3DERR_MATERIAL_CREATE_FAILED",
76 "D3DERR_MATERIAL_DESTROY_FAILED",
77 "D3DERR_MATERIAL_SETDATA_FAILED",
78 "D3DERR_MATERIAL_GETDATA_FAILED",
79 "D3DERR_INVALIDPALETTE",
80 "D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY",
81 "D3DERR_ZBUFF_NEEDS_VIDEOMEMORY",
82 "D3DERR_SURFACENOTINVIDMEM",
83 "D3DERR_LIGHT_SET_FAILED",
84 "D3DERR_LIGHTHASVIEWPORT",
85 "D3DERR_LIGHTNOTINTHISVIEWPORT",
86 "D3DERR_SCENE_IN_SCENE",
87 "D3DERR_SCENE_NOT_IN_SCENE",
88 "D3DERR_SCENE_BEGIN_FAILED",
89 "D3DERR_SCENE_END_FAILED",
93 "D3DERR_VIEWPORTDATANOTSET",
94 "D3DERR_VIEWPORTHASNODEVICE",
95 "D3DERR_NOCURRENTVIEWPORT",
96 "D3DERR_INVALIDVERTEXFORMAT",
97 "D3DERR_COLORKEYATTACHED",
98 "D3DERR_VERTEXBUFFEROPTIMIZED",
99 "D3DERR_VBUF_CREATE_FAILED",
100 "D3DERR_VERTEXBUFFERLOCKED",
101 "D3DERR_VERTEXBUFFERUNLOCKFAILED",
102 "D3DERR_ZBUFFER_NOTPRESENT",
103 "D3DERR_STENCILBUFFER_NOTPRESENT",
104 "D3DERR_WRONGTEXTUREFORMAT",
105 "D3DERR_UNSUPPORTEDCOLOROPERATION",
106 "D3DERR_UNSUPPORTEDCOLORARG",
107 "D3DERR_UNSUPPORTEDALPHAOPERATION",
108 "D3DERR_UNSUPPORTEDALPHAARG",
109 "D3DERR_TOOMANYOPERATIONS",
110 "D3DERR_CONFLICTINGTEXTUREFILTER",
111 "D3DERR_UNSUPPORTEDFACTORVALUE",
112 "D3DERR_CONFLICTINGRENDERSTATE",
113 "D3DERR_UNSUPPORTEDTEXTUREFILTER",
114 "D3DERR_TOOMANYPRIMITIVES",
115 "D3DERR_INVALIDMATRIX",
116 "D3DERR_TOOMANYVERTICES",
117 "D3DERR_CONFLICTINGTEXTUREPALETTE",
118 "D3DERR_INVALIDSTATEBLOCK",
119 "D3DERR_INBEGINSTATEBLOCK",
120 "D3DERR_NOTINBEGINSTATEBLOCK",
123 IDirect3D = Interface("IDirect3D", IUnknown)
124 IDirect3D2 = Interface("IDirect3D2", IUnknown)
125 IDirect3D3 = Interface("IDirect3D3", IUnknown)
126 IDirect3D7 = Interface("IDirect3D7", IUnknown)
127 IDirect3DDevice = Interface("IDirect3DDevice", IUnknown)
128 IDirect3DDevice2 = Interface("IDirect3DDevice2", IUnknown)
129 IDirect3DDevice3 = Interface("IDirect3DDevice3", IUnknown)
130 IDirect3DDevice7 = Interface("IDirect3DDevice7", IUnknown)
131 IDirect3DExecuteBuffer = Interface("IDirect3DExecuteBuffer", IUnknown)
132 IDirect3DLight = Interface("IDirect3DLight", IUnknown)
133 IDirect3DMaterial = Interface("IDirect3DMaterial", IUnknown)
134 IDirect3DMaterial2 = Interface("IDirect3DMaterial2", IUnknown)
135 IDirect3DMaterial3 = Interface("IDirect3DMaterial3", IUnknown)
136 IDirect3DTexture = Interface("IDirect3DTexture", IUnknown)
137 IDirect3DTexture2 = Interface("IDirect3DTexture2", IUnknown)
138 IDirect3DViewport = Interface("IDirect3DViewport", IUnknown)
139 IDirect3DViewport2 = Interface("IDirect3DViewport2", IDirect3DViewport)
140 IDirect3DViewport3 = Interface("IDirect3DViewport3", IDirect3DViewport2)
141 IDirect3DVertexBuffer = Interface("IDirect3DVertexBuffer", IUnknown)
142 IDirect3DVertexBuffer7 = Interface("IDirect3DVertexBuffer7", IUnknown)
144 LPUNKNOWN = WrapPointer(IUnknown)
146 LPDIRECT3D = WrapPointer(IDirect3D)
147 LPDIRECT3DDEVICE = WrapPointer(IDirect3DDevice)
148 LPDIRECT3DEXECUTEBUFFER = WrapPointer(IDirect3DExecuteBuffer)
149 LPDIRECT3DLIGHT = WrapPointer(IDirect3DLight)
150 LPDIRECT3DMATERIAL = WrapPointer(IDirect3DMaterial)
151 LPDIRECT3DTEXTURE = WrapPointer(IDirect3DTexture)
152 LPDIRECT3DVIEWPORT = WrapPointer(IDirect3DViewport)
154 LPDIRECT3D2 = WrapPointer(IDirect3D2)
155 LPDIRECT3DDEVICE2 = WrapPointer(IDirect3DDevice2)
156 LPDIRECT3DMATERIAL2 = WrapPointer(IDirect3DMaterial2)
157 LPDIRECT3DTEXTURE2 = WrapPointer(IDirect3DTexture2)
158 LPDIRECT3DVIEWPORT2 = WrapPointer(IDirect3DViewport2)
160 LPDIRECT3D3 = WrapPointer(IDirect3D3)
161 LPDIRECT3DDEVICE3 = WrapPointer(IDirect3DDevice3)
162 LPDIRECT3DMATERIAL3 = WrapPointer(IDirect3DMaterial3)
163 LPDIRECT3DVIEWPORT3 = WrapPointer(IDirect3DViewport3)
164 LPDIRECT3DVERTEXBUFFER = WrapPointer(IDirect3DVertexBuffer)
166 LPDIRECT3D7 = WrapPointer(IDirect3D7)
167 LPDIRECT3DDEVICE7 = WrapPointer(IDirect3DDevice7)
168 LPDIRECT3DVERTEXBUFFER7 = WrapPointer(IDirect3DVertexBuffer7)
170 IDirect3D.methods += [
171 Method(HRESULT, "Initialize", [REFCLSID]),
172 Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
173 Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
174 Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL),LPUNKNOWN]),
175 Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT),LPUNKNOWN]),
176 Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
179 IDirect3D2.methods += [
180 Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
181 Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
182 Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL2),LPUNKNOWN]),
183 Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT2),LPUNKNOWN]),
184 Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
185 Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE,OutPointer(LPDIRECT3DDEVICE2)]),
188 IDirect3D3.methods += [
189 Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
190 Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
191 Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL3),LPUNKNOWN]),
192 Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT3),LPUNKNOWN]),
193 Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
194 Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE4,OutPointer(LPDIRECT3DDEVICE3),LPUNKNOWN]),
195 Method(HRESULT, "CreateVertexBuffer", [LPD3DVERTEXBUFFERDESC,OutPointer(LPDIRECT3DVERTEXBUFFER),DWORD,LPUNKNOWN]),
196 Method(HRESULT, "EnumZBufferFormats", [REFCLSID,LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
197 Method(HRESULT, "EvictManagedTextures", []),
200 IDirect3D7.methods += [
201 Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK7,LPVOID]),
202 Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE7,OutPointer(LPDIRECT3DDEVICE7)]),
203 Method(HRESULT, "CreateVertexBuffer", [LPD3DVERTEXBUFFERDESC,OutPointer(LPDIRECT3DVERTEXBUFFER7),DWORD]),
204 Method(HRESULT, "EnumZBufferFormats", [REFCLSID,LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
205 Method(HRESULT, "EvictManagedTextures", []),
208 IDirect3DDevice.methods += [
209 Method(HRESULT, "Initialize", [LPDIRECT3D,LPGUID,LPD3DDEVICEDESC]),
210 Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
211 Method(HRESULT, "SwapTextureHandles", [LPDIRECT3DTEXTURE,LPDIRECT3DTEXTURE]),
212 Method(HRESULT, "CreateExecuteBuffer", [LPD3DEXECUTEBUFFERDESC,OutPointer(LPDIRECT3DEXECUTEBUFFER),LPUNKNOWN]),
213 Method(HRESULT, "GetStats", [LPD3DSTATS]),
214 Method(HRESULT, "Execute", [LPDIRECT3DEXECUTEBUFFER,LPDIRECT3DVIEWPORT,DWORD]),
215 Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT]),
216 Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT]),
217 Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT,OutPointer(LPDIRECT3DVIEWPORT),DWORD]),
218 Method(HRESULT, "Pick", [LPDIRECT3DEXECUTEBUFFER,LPDIRECT3DVIEWPORT,DWORD,LPD3DRECT]),
219 Method(HRESULT, "GetPickRecords", [LPDWORD,LPD3DPICKRECORD]),
220 Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
221 Method(HRESULT, "CreateMatrix", [LPD3DMATRIXHANDLE]),
222 Method(HRESULT, "SetMatrix", [D3DMATRIXHANDLE,Const(LPD3DMATRIX)]),
223 Method(HRESULT, "GetMatrix", [D3DMATRIXHANDLE,LPD3DMATRIX]),
224 Method(HRESULT, "DeleteMatrix", [D3DMATRIXHANDLE]),
225 Method(HRESULT, "BeginScene", []),
226 Method(HRESULT, "EndScene", []),
227 Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D)]),
230 IDirect3DDevice2.methods += [
231 Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
232 Method(HRESULT, "SwapTextureHandles", [LPDIRECT3DTEXTURE2,LPDIRECT3DTEXTURE2]),
233 Method(HRESULT, "GetStats", [LPD3DSTATS]),
234 Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT2]),
235 Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT2]),
236 Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT2,OutPointer(LPDIRECT3DVIEWPORT2),DWORD]),
237 Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
238 Method(HRESULT, "BeginScene", []),
239 Method(HRESULT, "EndScene", []),
240 Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D2)]),
241 Method(HRESULT, "SetCurrentViewport", [LPDIRECT3DVIEWPORT2]),
242 Method(HRESULT, "GetCurrentViewport", [OutPointer(LPDIRECT3DVIEWPORT2)]),
243 Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE,DWORD]),
244 Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE)]),
245 Method(HRESULT, "Begin", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,DWORD]),
246 Method(HRESULT, "BeginIndexed", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,DWORD]),
247 Method(HRESULT, "Vertex", [LPVOID]),
248 Method(HRESULT, "Index", [WORD]),
249 Method(HRESULT, "End", [DWORD]),
250 Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
251 Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
252 Method(HRESULT, "GetLightState", [D3DLIGHTSTATETYPE,LPDWORD]),
253 Method(HRESULT, "SetLightState", [D3DLIGHTSTATETYPE,DWORD]),
254 Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
255 Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
256 Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
257 Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,DWORD]),
258 Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
259 Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
260 Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
263 IDirect3DDevice3.methods += [
264 Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
265 Method(HRESULT, "GetStats", [LPD3DSTATS]),
266 Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT3]),
267 Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT3]),
268 Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT3,OutPointer(LPDIRECT3DVIEWPORT3),DWORD]),
269 Method(HRESULT, "EnumTextureFormats", [LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
270 Method(HRESULT, "BeginScene", []),
271 Method(HRESULT, "EndScene", []),
272 Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D3)]),
273 Method(HRESULT, "SetCurrentViewport", [LPDIRECT3DVIEWPORT3]),
274 Method(HRESULT, "GetCurrentViewport", [OutPointer(LPDIRECT3DVIEWPORT3)]),
275 Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE4,DWORD]),
276 Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE4)]),
277 Method(HRESULT, "Begin", [D3DPRIMITIVETYPE,DWORD,DWORD]),
278 Method(HRESULT, "BeginIndexed", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
279 Method(HRESULT, "Vertex", [LPVOID]),
280 Method(HRESULT, "Index", [WORD]),
281 Method(HRESULT, "End", [DWORD]),
282 Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
283 Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
284 Method(HRESULT, "GetLightState", [D3DLIGHTSTATETYPE,LPDWORD]),
285 Method(HRESULT, "SetLightState", [D3DLIGHTSTATETYPE,DWORD]),
286 Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
287 Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
288 Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
289 Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
290 Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
291 Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
292 Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
293 Method(HRESULT, "DrawPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,DWORD]),
294 Method(HRESULT, "DrawIndexedPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPWORD,DWORD,DWORD]),
295 Method(HRESULT, "DrawPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER,DWORD,DWORD,DWORD]),
296 Method(HRESULT, "DrawIndexedPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER,LPWORD,DWORD,DWORD]),
297 Method(HRESULT, "ComputeSphereVisibility", [LPD3DVECTOR,LPD3DVALUE,DWORD,DWORD,LPDWORD]),
298 Method(HRESULT, "GetTexture", [DWORD,OutPointer(LPDIRECT3DTEXTURE2)]),
299 Method(HRESULT, "SetTexture", [DWORD,LPDIRECT3DTEXTURE2]),
300 Method(HRESULT, "GetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,LPDWORD]),
301 Method(HRESULT, "SetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,DWORD]),
302 Method(HRESULT, "ValidateDevice", [LPDWORD]),
305 IDirect3DDevice7.methods += [
306 Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC7]),
307 Method(HRESULT, "EnumTextureFormats", [LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
308 Method(HRESULT, "BeginScene", []),
309 Method(HRESULT, "EndScene", []),
310 Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D7)]),
311 Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE7,DWORD]),
312 Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE7)]),
313 Method(HRESULT, "Clear", [DWORD,LPD3DRECT,DWORD,D3DCOLOR,D3DVALUE,DWORD]),
314 Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
315 Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
316 Method(HRESULT, "SetViewport", [LPD3DVIEWPORT7]),
317 Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
318 Method(HRESULT, "GetViewport", [LPD3DVIEWPORT7]),
319 Method(HRESULT, "SetMaterial", [LPD3DMATERIAL7]),
320 Method(HRESULT, "GetMaterial", [LPD3DMATERIAL7]),
321 Method(HRESULT, "SetLight", [DWORD,LPD3DLIGHT7]),
322 Method(HRESULT, "GetLight", [DWORD,LPD3DLIGHT7]),
323 Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
324 Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
325 Method(HRESULT, "BeginStateBlock", []),
326 Method(HRESULT, "EndStateBlock", [LPDWORD]),
327 Method(HRESULT, "PreLoad", [LPDIRECTDRAWSURFACE7]),
328 Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
329 Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
330 Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
331 Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
332 Method(HRESULT, "DrawPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,DWORD]),
333 Method(HRESULT, "DrawIndexedPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPWORD,DWORD,DWORD]),
334 Method(HRESULT, "DrawPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER7,DWORD,DWORD,DWORD]),
335 Method(HRESULT, "DrawIndexedPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER7,DWORD,DWORD,LPWORD,DWORD,DWORD]),
336 Method(HRESULT, "ComputeSphereVisibility", [LPD3DVECTOR,LPD3DVALUE,DWORD,DWORD,LPDWORD]),
337 Method(HRESULT, "GetTexture", [DWORD,OutPointer(LPDIRECTDRAWSURFACE7)]),
338 Method(HRESULT, "SetTexture", [DWORD,LPDIRECTDRAWSURFACE7]),
339 Method(HRESULT, "GetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,LPDWORD]),
340 Method(HRESULT, "SetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,DWORD]),
341 Method(HRESULT, "ValidateDevice", [LPDWORD]),
342 Method(HRESULT, "ApplyStateBlock", [DWORD]),
343 Method(HRESULT, "CaptureStateBlock", [DWORD]),
344 Method(HRESULT, "DeleteStateBlock", [DWORD]),
345 Method(HRESULT, "CreateStateBlock", [D3DSTATEBLOCKTYPE,LPDWORD]),
346 Method(HRESULT, "Load", [LPDIRECTDRAWSURFACE7,LPPOINT,LPDIRECTDRAWSURFACE7,LPRECT,DWORD]),
347 Method(HRESULT, "LightEnable", [DWORD,BOOL]),
348 Method(HRESULT, "GetLightEnable", [DWORD,OutPointer(BOOL)]),
349 Method(HRESULT, "SetClipPlane", [DWORD,OutPointer(D3DVALUE)]),
350 Method(HRESULT, "GetClipPlane", [DWORD,OutPointer(D3DVALUE)]),
351 Method(HRESULT, "GetInfo", [DWORD,LPVOID,DWORD]),
354 IDirect3DExecuteBuffer.methods += [
355 Method(HRESULT, "Initialize", [LPDIRECT3DDEVICE,LPD3DEXECUTEBUFFERDESC]),
356 Method(HRESULT, "Lock", [LPD3DEXECUTEBUFFERDESC]),
357 Method(HRESULT, "Unlock", []),
358 Method(HRESULT, "SetExecuteData", [LPD3DEXECUTEDATA]),
359 Method(HRESULT, "GetExecuteData", [LPD3DEXECUTEDATA]),
360 Method(HRESULT, "Validate", [LPDWORD,LPD3DVALIDATECALLBACK,LPVOID,DWORD]),
361 Method(HRESULT, "Optimize", [DWORD]),
364 IDirect3DLight.methods += [
365 Method(HRESULT, "Initialize", [LPDIRECT3D]),
366 Method(HRESULT, "SetLight", [LPD3DLIGHT]),
367 Method(HRESULT, "GetLight", [LPD3DLIGHT]),
370 IDirect3DMaterial.methods += [
371 Method(HRESULT, "Initialize", [LPDIRECT3D]),
372 Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
373 Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
374 Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE,LPD3DMATERIALHANDLE]),
375 Method(HRESULT, "Reserve", []),
376 Method(HRESULT, "Unreserve", []),
379 IDirect3DMaterial2.methods += [
380 Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
381 Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
382 Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE2,LPD3DMATERIALHANDLE]),
385 IDirect3DMaterial3.methods += [
386 Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
387 Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
388 Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE3,LPD3DMATERIALHANDLE]),
391 IDirect3DTexture.methods += [
392 Method(HRESULT, "Initialize", [LPDIRECT3DDEVICE,LPDIRECTDRAWSURFACE]),
393 Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE,LPD3DTEXTUREHANDLE]),
394 Method(HRESULT, "PaletteChanged", [DWORD,DWORD]),
395 Method(HRESULT, "Load", [LPDIRECT3DTEXTURE]),
396 Method(HRESULT, "Unload", []),
399 IDirect3DTexture2.methods += [
400 Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE2,LPD3DTEXTUREHANDLE]),
401 Method(HRESULT, "PaletteChanged", [DWORD,DWORD]),
402 Method(HRESULT, "Load", [LPDIRECT3DTEXTURE2]),
405 IDirect3DViewport.methods += [
406 Method(HRESULT, "Initialize", [LPDIRECT3D]),
407 Method(HRESULT, "GetViewport", [LPD3DVIEWPORT]),
408 Method(HRESULT, "SetViewport", [LPD3DVIEWPORT]),
409 Method(HRESULT, "TransformVertices", [DWORD,LPD3DTRANSFORMDATA,DWORD,LPDWORD]),
410 Method(HRESULT, "LightElements", [DWORD,LPD3DLIGHTDATA]),
411 Method(HRESULT, "SetBackground", [D3DMATERIALHANDLE]),
412 Method(HRESULT, "GetBackground", [LPD3DMATERIALHANDLE,LPBOOL]),
413 Method(HRESULT, "SetBackgroundDepth", [LPDIRECTDRAWSURFACE]),
414 Method(HRESULT, "GetBackgroundDepth", [OutPointer(LPDIRECTDRAWSURFACE),LPBOOL]),
415 Method(HRESULT, "Clear", [DWORD,LPD3DRECT,DWORD]),
416 Method(HRESULT, "AddLight", [LPDIRECT3DLIGHT]),
417 Method(HRESULT, "DeleteLight", [LPDIRECT3DLIGHT]),
418 Method(HRESULT, "NextLight", [LPDIRECT3DLIGHT,OutPointer(LPDIRECT3DLIGHT),DWORD]),
421 IDirect3DViewport2.methods += [
422 Method(HRESULT, "GetViewport2", [LPD3DVIEWPORT2]),
423 Method(HRESULT, "SetViewport2", [LPD3DVIEWPORT2]),
426 IDirect3DViewport3.methods += [
427 Method(HRESULT, "SetBackgroundDepth2", [LPDIRECTDRAWSURFACE4]),
428 Method(HRESULT, "GetBackgroundDepth2", [OutPointer(LPDIRECTDRAWSURFACE4),LPBOOL]),
429 Method(HRESULT, "Clear2", [DWORD,LPD3DRECT,DWORD,D3DCOLOR,D3DVALUE,DWORD]),
432 IDirect3DVertexBuffer.methods += [
433 Method(HRESULT, "Lock", [DWORD,OutPointer(LPVOID),LPDWORD]),
434 Method(HRESULT, "Unlock", []),
435 Method(HRESULT, "ProcessVertices", [DWORD,DWORD,DWORD,LPDIRECT3DVERTEXBUFFER,DWORD,LPDIRECT3DDEVICE3,DWORD]),
436 Method(HRESULT, "GetVertexBufferDesc", [LPD3DVERTEXBUFFERDESC]),
437 Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE3,DWORD]),
440 IDirect3DVertexBuffer7.methods += [
441 Method(HRESULT, "Lock", [DWORD,OutPointer(LPVOID),LPDWORD]),
442 Method(HRESULT, "Unlock", []),
443 Method(HRESULT, "ProcessVertices", [DWORD,DWORD,DWORD,LPDIRECT3DVERTEXBUFFER7,DWORD,LPDIRECT3DDEVICE7,DWORD]),
444 Method(HRESULT, "GetVertexBufferDesc", [LPD3DVERTEXBUFFERDESC]),
445 Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE7,DWORD]),
446 Method(HRESULT, "ProcessVerticesStrided", [DWORD,DWORD,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPDIRECT3DDEVICE7,DWORD]),