*.xml
*.zip
config.log
+ddraw.cpp
d3d8.cpp
d3d9.cpp
opengl32.cpp
conf = Configure(env)
has_d3d9 = conf.CheckCHeader('d3d9.h')
has_d3d8 = conf.CheckCHeader('d3d8.h')
+has_d3d7 = conf.CheckCHeader('ddraw.h')
env = conf.Finish()
+if has_d3d7:
+ env.Command(
+ target = 'ddraw.cpp',
+ source = ['ddraw.py', 'd3d.py', 'd3dtypes.py', 'd3dcaps.py', 'windows.py', 'base.py'],
+ action = 'python $SOURCE > $TARGET',
+ )
+
+ ddraw = env.SharedLibrary(
+ target = 'ddraw',
+ source = [
+ 'ddraw.def',
+ 'ddraw.cpp',
+ 'log.cpp',
+ ]
+ )
+
+ env.Default(ddraw)
+
if has_d3d8:
env.Command(
target = 'd3d8.cpp',
--- /dev/null
+#############################################################################
+#
+# Copyright 2008 Tungsten Graphics, Inc.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#############################################################################
+
+"""d3d.h"""
+
+from windows import *
+from d3dtypes import *
+from d3dcaps import *
+
+D3DNEXT = Flags(DWORD, [
+ "D3DNEXT_NEXT",
+ "D3DNEXT_HEAD",
+ "D3DNEXT_TAIL",
+])
+
+D3DDP = Flags(DWORD, [
+ "D3DDP_WAIT",
+ "D3DDP_OUTOFORDER",
+ "D3DDP_DONOTCLIP",
+ "D3DDP_DONOTUPDATEEXTENTS",
+ "D3DDP_DONOTLIGHT",
+])
+
+HRESULT = Enum("HRESULT", [
+ "D3D_OK",
+ "D3DERR_BADMAJORVERSION",
+ "D3DERR_BADMINORVERSION",
+ "D3DERR_INVALID_DEVICE",
+ "D3DERR_INITFAILED",
+ "D3DERR_DEVICEAGGREGATED",
+ "D3DERR_EXECUTE_CREATE_FAILED",
+ "D3DERR_EXECUTE_DESTROY_FAILED",
+ "D3DERR_EXECUTE_LOCK_FAILED",
+ "D3DERR_EXECUTE_UNLOCK_FAILED",
+ "D3DERR_EXECUTE_LOCKED",
+ "D3DERR_EXECUTE_NOT_LOCKED",
+ "D3DERR_EXECUTE_FAILED",
+ "D3DERR_EXECUTE_CLIPPED_FAILED",
+ "D3DERR_TEXTURE_NO_SUPPORT",
+ "D3DERR_TEXTURE_CREATE_FAILED",
+ "D3DERR_TEXTURE_DESTROY_FAILED",
+ "D3DERR_TEXTURE_LOCK_FAILED",
+ "D3DERR_TEXTURE_UNLOCK_FAILED",
+ "D3DERR_TEXTURE_LOAD_FAILED",
+ "D3DERR_TEXTURE_SWAP_FAILED",
+ "D3DERR_TEXTURE_LOCKED",
+ "D3DERR_TEXTURE_NOT_LOCKED",
+ "D3DERR_TEXTURE_GETSURF_FAILED",
+ "D3DERR_MATRIX_CREATE_FAILED",
+ "D3DERR_MATRIX_DESTROY_FAILED",
+ "D3DERR_MATRIX_SETDATA_FAILED",
+ "D3DERR_MATRIX_GETDATA_FAILED",
+ "D3DERR_SETVIEWPORTDATA_FAILED",
+ "D3DERR_INVALIDCURRENTVIEWPORT",
+ "D3DERR_INVALIDPRIMITIVETYPE",
+ "D3DERR_INVALIDVERTEXTYPE",
+ "D3DERR_TEXTURE_BADSIZE",
+ "D3DERR_INVALIDRAMPTEXTURE",
+ "D3DERR_MATERIAL_CREATE_FAILED",
+ "D3DERR_MATERIAL_DESTROY_FAILED",
+ "D3DERR_MATERIAL_SETDATA_FAILED",
+ "D3DERR_MATERIAL_GETDATA_FAILED",
+ "D3DERR_INVALIDPALETTE",
+ "D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY",
+ "D3DERR_ZBUFF_NEEDS_VIDEOMEMORY",
+ "D3DERR_SURFACENOTINVIDMEM",
+ "D3DERR_LIGHT_SET_FAILED",
+ "D3DERR_LIGHTHASVIEWPORT",
+ "D3DERR_LIGHTNOTINTHISVIEWPORT",
+ "D3DERR_SCENE_IN_SCENE",
+ "D3DERR_SCENE_NOT_IN_SCENE",
+ "D3DERR_SCENE_BEGIN_FAILED",
+ "D3DERR_SCENE_END_FAILED",
+ "D3DERR_INBEGIN",
+ "D3DERR_NOTINBEGIN",
+ "D3DERR_NOVIEWPORTS",
+ "D3DERR_VIEWPORTDATANOTSET",
+ "D3DERR_VIEWPORTHASNODEVICE",
+ "D3DERR_NOCURRENTVIEWPORT",
+ "D3DERR_INVALIDVERTEXFORMAT",
+ "D3DERR_COLORKEYATTACHED",
+ "D3DERR_VERTEXBUFFEROPTIMIZED",
+ "D3DERR_VBUF_CREATE_FAILED",
+ "D3DERR_VERTEXBUFFERLOCKED",
+ "D3DERR_VERTEXBUFFERUNLOCKFAILED",
+ "D3DERR_ZBUFFER_NOTPRESENT",
+ "D3DERR_STENCILBUFFER_NOTPRESENT",
+ "D3DERR_WRONGTEXTUREFORMAT",
+ "D3DERR_UNSUPPORTEDCOLOROPERATION",
+ "D3DERR_UNSUPPORTEDCOLORARG",
+ "D3DERR_UNSUPPORTEDALPHAOPERATION",
+ "D3DERR_UNSUPPORTEDALPHAARG",
+ "D3DERR_TOOMANYOPERATIONS",
+ "D3DERR_CONFLICTINGTEXTUREFILTER",
+ "D3DERR_UNSUPPORTEDFACTORVALUE",
+ "D3DERR_CONFLICTINGRENDERSTATE",
+ "D3DERR_UNSUPPORTEDTEXTUREFILTER",
+ "D3DERR_TOOMANYPRIMITIVES",
+ "D3DERR_INVALIDMATRIX",
+ "D3DERR_TOOMANYVERTICES",
+ "D3DERR_CONFLICTINGTEXTUREPALETTE",
+ "D3DERR_INVALIDSTATEBLOCK",
+ "D3DERR_INBEGINSTATEBLOCK",
+ "D3DERR_NOTINBEGINSTATEBLOCK",
+])
+
+IDirect3D = Interface("IDirect3D", IUnknown)
+IDirect3D2 = Interface("IDirect3D2", IUnknown)
+IDirect3D3 = Interface("IDirect3D3", IUnknown)
+IDirect3D7 = Interface("IDirect3D7", IUnknown)
+IDirect3DDevice = Interface("IDirect3DDevice", IUnknown)
+IDirect3DDevice2 = Interface("IDirect3DDevice2", IUnknown)
+IDirect3DDevice3 = Interface("IDirect3DDevice3", IUnknown)
+IDirect3DDevice7 = Interface("IDirect3DDevice7", IUnknown)
+IDirect3DExecuteBuffer = Interface("IDirect3DExecuteBuffer", IUnknown)
+IDirect3DLight = Interface("IDirect3DLight", IUnknown)
+IDirect3DMaterial = Interface("IDirect3DMaterial", IUnknown)
+IDirect3DMaterial2 = Interface("IDirect3DMaterial2", IUnknown)
+IDirect3DMaterial3 = Interface("IDirect3DMaterial3", IUnknown)
+IDirect3DTexture = Interface("IDirect3DTexture", IUnknown)
+IDirect3DTexture2 = Interface("IDirect3DTexture2", IUnknown)
+IDirect3DViewport = Interface("IDirect3DViewport", IUnknown)
+IDirect3DViewport2 = Interface("IDirect3DViewport2", IDirect3DViewport)
+IDirect3DViewport3 = Interface("IDirect3DViewport3", IDirect3DViewport2)
+IDirect3DVertexBuffer = Interface("IDirect3DVertexBuffer", IUnknown)
+IDirect3DVertexBuffer7 = Interface("IDirect3DVertexBuffer7", IUnknown)
+
+LPUNKNOWN = WrapPointer(IUnknown)
+
+LPDIRECT3D = WrapPointer(IDirect3D)
+LPDIRECT3DDEVICE = WrapPointer(IDirect3DDevice)
+LPDIRECT3DEXECUTEBUFFER = WrapPointer(IDirect3DExecuteBuffer)
+LPDIRECT3DLIGHT = WrapPointer(IDirect3DLight)
+LPDIRECT3DMATERIAL = WrapPointer(IDirect3DMaterial)
+LPDIRECT3DTEXTURE = WrapPointer(IDirect3DTexture)
+LPDIRECT3DVIEWPORT = WrapPointer(IDirect3DViewport)
+
+LPDIRECT3D2 = WrapPointer(IDirect3D2)
+LPDIRECT3DDEVICE2 = WrapPointer(IDirect3DDevice2)
+LPDIRECT3DMATERIAL2 = WrapPointer(IDirect3DMaterial2)
+LPDIRECT3DTEXTURE2 = WrapPointer(IDirect3DTexture2)
+LPDIRECT3DVIEWPORT2 = WrapPointer(IDirect3DViewport2)
+
+LPDIRECT3D3 = WrapPointer(IDirect3D3)
+LPDIRECT3DDEVICE3 = WrapPointer(IDirect3DDevice3)
+LPDIRECT3DMATERIAL3 = WrapPointer(IDirect3DMaterial3)
+LPDIRECT3DVIEWPORT3 = WrapPointer(IDirect3DViewport3)
+LPDIRECT3DVERTEXBUFFER = WrapPointer(IDirect3DVertexBuffer)
+
+LPDIRECT3D7 = WrapPointer(IDirect3D7)
+LPDIRECT3DDEVICE7 = WrapPointer(IDirect3DDevice7)
+LPDIRECT3DVERTEXBUFFER7 = WrapPointer(IDirect3DVertexBuffer7)
+
+IDirect3D.methods += [
+ Method(HRESULT, "Initialize", [REFCLSID]),
+ Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
+ Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
+ Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL),LPUNKNOWN]),
+ Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT),LPUNKNOWN]),
+ Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
+]
+
+IDirect3D2.methods += [
+ Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
+ Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
+ Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL2),LPUNKNOWN]),
+ Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT2),LPUNKNOWN]),
+ Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
+ Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE,OutPointer(LPDIRECT3DDEVICE2)]),
+]
+
+IDirect3D3.methods += [
+ Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
+ Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
+ Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL3),LPUNKNOWN]),
+ Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT3),LPUNKNOWN]),
+ Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
+ Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE4,OutPointer(LPDIRECT3DDEVICE3),LPUNKNOWN]),
+ Method(HRESULT, "CreateVertexBuffer", [LPD3DVERTEXBUFFERDESC,OutPointer(LPDIRECT3DVERTEXBUFFER),DWORD,LPUNKNOWN]),
+ Method(HRESULT, "EnumZBufferFormats", [REFCLSID,LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+ Method(HRESULT, "EvictManagedTextures", []),
+]
+
+IDirect3D7.methods += [
+ Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK7,LPVOID]),
+ Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE7,OutPointer(LPDIRECT3DDEVICE7)]),
+ Method(HRESULT, "CreateVertexBuffer", [LPD3DVERTEXBUFFERDESC,OutPointer(LPDIRECT3DVERTEXBUFFER7),DWORD]),
+ Method(HRESULT, "EnumZBufferFormats", [REFCLSID,LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+ Method(HRESULT, "EvictManagedTextures", []),
+]
+
+IDirect3DDevice.methods += [
+ Method(HRESULT, "Initialize", [LPDIRECT3D,LPGUID,LPD3DDEVICEDESC]),
+ Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
+ Method(HRESULT, "SwapTextureHandles", [LPDIRECT3DTEXTURE,LPDIRECT3DTEXTURE]),
+ Method(HRESULT, "CreateExecuteBuffer", [LPD3DEXECUTEBUFFERDESC,OutPointer(LPDIRECT3DEXECUTEBUFFER),LPUNKNOWN]),
+ Method(HRESULT, "GetStats", [LPD3DSTATS]),
+ Method(HRESULT, "Execute", [LPDIRECT3DEXECUTEBUFFER,LPDIRECT3DVIEWPORT,DWORD]),
+ Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT]),
+ Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT]),
+ Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT,OutPointer(LPDIRECT3DVIEWPORT),DWORD]),
+ Method(HRESULT, "Pick", [LPDIRECT3DEXECUTEBUFFER,LPDIRECT3DVIEWPORT,DWORD,LPD3DRECT]),
+ Method(HRESULT, "GetPickRecords", [LPDWORD,LPD3DPICKRECORD]),
+ Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
+ Method(HRESULT, "CreateMatrix", [LPD3DMATRIXHANDLE]),
+ Method(HRESULT, "SetMatrix", [D3DMATRIXHANDLE,Const(LPD3DMATRIX)]),
+ Method(HRESULT, "GetMatrix", [D3DMATRIXHANDLE,LPD3DMATRIX]),
+ Method(HRESULT, "DeleteMatrix", [D3DMATRIXHANDLE]),
+ Method(HRESULT, "BeginScene", []),
+ Method(HRESULT, "EndScene", []),
+ Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D)]),
+]
+
+IDirect3DDevice2.methods += [
+ Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
+ Method(HRESULT, "SwapTextureHandles", [LPDIRECT3DTEXTURE2,LPDIRECT3DTEXTURE2]),
+ Method(HRESULT, "GetStats", [LPD3DSTATS]),
+ Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT2]),
+ Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT2]),
+ Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT2,OutPointer(LPDIRECT3DVIEWPORT2),DWORD]),
+ Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
+ Method(HRESULT, "BeginScene", []),
+ Method(HRESULT, "EndScene", []),
+ Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D2)]),
+ Method(HRESULT, "SetCurrentViewport", [LPDIRECT3DVIEWPORT2]),
+ Method(HRESULT, "GetCurrentViewport", [OutPointer(LPDIRECT3DVIEWPORT2)]),
+ Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE,DWORD]),
+ Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE)]),
+ Method(HRESULT, "Begin", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,DWORD]),
+ Method(HRESULT, "BeginIndexed", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,DWORD]),
+ Method(HRESULT, "Vertex", [LPVOID]),
+ Method(HRESULT, "Index", [WORD]),
+ Method(HRESULT, "End", [DWORD]),
+ Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
+ Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
+ Method(HRESULT, "GetLightState", [D3DLIGHTSTATETYPE,LPDWORD]),
+ Method(HRESULT, "SetLightState", [D3DLIGHTSTATETYPE,DWORD]),
+ Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
+ Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
+]
+
+IDirect3DDevice3.methods += [
+ Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
+ Method(HRESULT, "GetStats", [LPD3DSTATS]),
+ Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT3]),
+ Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT3]),
+ Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT3,OutPointer(LPDIRECT3DVIEWPORT3),DWORD]),
+ Method(HRESULT, "EnumTextureFormats", [LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+ Method(HRESULT, "BeginScene", []),
+ Method(HRESULT, "EndScene", []),
+ Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D3)]),
+ Method(HRESULT, "SetCurrentViewport", [LPDIRECT3DVIEWPORT3]),
+ Method(HRESULT, "GetCurrentViewport", [OutPointer(LPDIRECT3DVIEWPORT3)]),
+ Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE4,DWORD]),
+ Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE4)]),
+ Method(HRESULT, "Begin", [D3DPRIMITIVETYPE,DWORD,DWORD]),
+ Method(HRESULT, "BeginIndexed", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
+ Method(HRESULT, "Vertex", [LPVOID]),
+ Method(HRESULT, "Index", [WORD]),
+ Method(HRESULT, "End", [DWORD]),
+ Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
+ Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
+ Method(HRESULT, "GetLightState", [D3DLIGHTSTATETYPE,LPDWORD]),
+ Method(HRESULT, "SetLightState", [D3DLIGHTSTATETYPE,DWORD]),
+ Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
+ Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
+ Method(HRESULT, "DrawPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "DrawPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER,DWORD,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "ComputeSphereVisibility", [LPD3DVECTOR,LPD3DVALUE,DWORD,DWORD,LPDWORD]),
+ Method(HRESULT, "GetTexture", [DWORD,OutPointer(LPDIRECT3DTEXTURE2)]),
+ Method(HRESULT, "SetTexture", [DWORD,LPDIRECT3DTEXTURE2]),
+ Method(HRESULT, "GetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,LPDWORD]),
+ Method(HRESULT, "SetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,DWORD]),
+ Method(HRESULT, "ValidateDevice", [LPDWORD]),
+]
+
+IDirect3DDevice7.methods += [
+ Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC7]),
+ Method(HRESULT, "EnumTextureFormats", [LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+ Method(HRESULT, "BeginScene", []),
+ Method(HRESULT, "EndScene", []),
+ Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D7)]),
+ Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE7,DWORD]),
+ Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE7)]),
+ Method(HRESULT, "Clear", [DWORD,LPD3DRECT,DWORD,D3DCOLOR,D3DVALUE,DWORD]),
+ Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "SetViewport", [LPD3DVIEWPORT7]),
+ Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
+ Method(HRESULT, "GetViewport", [LPD3DVIEWPORT7]),
+ Method(HRESULT, "SetMaterial", [LPD3DMATERIAL7]),
+ Method(HRESULT, "GetMaterial", [LPD3DMATERIAL7]),
+ Method(HRESULT, "SetLight", [DWORD,LPD3DLIGHT7]),
+ Method(HRESULT, "GetLight", [DWORD,LPD3DLIGHT7]),
+ Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
+ Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
+ Method(HRESULT, "BeginStateBlock", []),
+ Method(HRESULT, "EndStateBlock", [LPDWORD]),
+ Method(HRESULT, "PreLoad", [LPDIRECTDRAWSURFACE7]),
+ Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
+ Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
+ Method(HRESULT, "DrawPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "DrawPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER7,DWORD,DWORD,DWORD]),
+ Method(HRESULT, "DrawIndexedPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER7,DWORD,DWORD,LPWORD,DWORD,DWORD]),
+ Method(HRESULT, "ComputeSphereVisibility", [LPD3DVECTOR,LPD3DVALUE,DWORD,DWORD,LPDWORD]),
+ Method(HRESULT, "GetTexture", [DWORD,OutPointer(LPDIRECTDRAWSURFACE7)]),
+ Method(HRESULT, "SetTexture", [DWORD,LPDIRECTDRAWSURFACE7]),
+ Method(HRESULT, "GetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,LPDWORD]),
+ Method(HRESULT, "SetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,DWORD]),
+ Method(HRESULT, "ValidateDevice", [LPDWORD]),
+ Method(HRESULT, "ApplyStateBlock", [DWORD]),
+ Method(HRESULT, "CaptureStateBlock", [DWORD]),
+ Method(HRESULT, "DeleteStateBlock", [DWORD]),
+ Method(HRESULT, "CreateStateBlock", [D3DSTATEBLOCKTYPE,LPDWORD]),
+ Method(HRESULT, "Load", [LPDIRECTDRAWSURFACE7,LPPOINT,LPDIRECTDRAWSURFACE7,LPRECT,DWORD]),
+ Method(HRESULT, "LightEnable", [DWORD,BOOL]),
+ Method(HRESULT, "GetLightEnable", [DWORD,OutPointer(BOOL)]),
+ Method(HRESULT, "SetClipPlane", [DWORD,OutPointer(D3DVALUE)]),
+ Method(HRESULT, "GetClipPlane", [DWORD,OutPointer(D3DVALUE)]),
+ Method(HRESULT, "GetInfo", [DWORD,LPVOID,DWORD]),
+]
+
+IDirect3DExecuteBuffer.methods += [
+ Method(HRESULT, "Initialize", [LPDIRECT3DDEVICE,LPD3DEXECUTEBUFFERDESC]),
+ Method(HRESULT, "Lock", [LPD3DEXECUTEBUFFERDESC]),
+ Method(HRESULT, "Unlock", []),
+ Method(HRESULT, "SetExecuteData", [LPD3DEXECUTEDATA]),
+ Method(HRESULT, "GetExecuteData", [LPD3DEXECUTEDATA]),
+ Method(HRESULT, "Validate", [LPDWORD,LPD3DVALIDATECALLBACK,LPVOID,DWORD]),
+ Method(HRESULT, "Optimize", [DWORD]),
+]
+
+IDirect3DLight.methods += [
+ Method(HRESULT, "Initialize", [LPDIRECT3D]),
+ Method(HRESULT, "SetLight", [LPD3DLIGHT]),
+ Method(HRESULT, "GetLight", [LPD3DLIGHT]),
+]
+
+IDirect3DMaterial.methods += [
+ Method(HRESULT, "Initialize", [LPDIRECT3D]),
+ Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
+ Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
+ Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE,LPD3DMATERIALHANDLE]),
+ Method(HRESULT, "Reserve", []),
+ Method(HRESULT, "Unreserve", []),
+]
+
+IDirect3DMaterial2.methods += [
+ Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
+ Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
+ Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE2,LPD3DMATERIALHANDLE]),
+]
+
+IDirect3DMaterial3.methods += [
+ Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
+ Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
+ Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE3,LPD3DMATERIALHANDLE]),
+]
+
+IDirect3DTexture.methods += [
+ Method(HRESULT, "Initialize", [LPDIRECT3DDEVICE,LPDIRECTDRAWSURFACE]),
+ Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE,LPD3DTEXTUREHANDLE]),
+ Method(HRESULT, "PaletteChanged", [DWORD,DWORD]),
+ Method(HRESULT, "Load", [LPDIRECT3DTEXTURE]),
+ Method(HRESULT, "Unload", []),
+]
+
+IDirect3DTexture2.methods += [
+ Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE2,LPD3DTEXTUREHANDLE]),
+ Method(HRESULT, "PaletteChanged", [DWORD,DWORD]),
+ Method(HRESULT, "Load", [LPDIRECT3DTEXTURE2]),
+]
+
+IDirect3DViewport.methods += [
+ Method(HRESULT, "Initialize", [LPDIRECT3D]),
+ Method(HRESULT, "GetViewport", [LPD3DVIEWPORT]),
+ Method(HRESULT, "SetViewport", [LPD3DVIEWPORT]),
+ Method(HRESULT, "TransformVertices", [DWORD,LPD3DTRANSFORMDATA,DWORD,LPDWORD]),
+ Method(HRESULT, "LightElements", [DWORD,LPD3DLIGHTDATA]),
+ Method(HRESULT, "SetBackground", [D3DMATERIALHANDLE]),
+ Method(HRESULT, "GetBackground", [LPD3DMATERIALHANDLE,LPBOOL]),
+ Method(HRESULT, "SetBackgroundDepth", [LPDIRECTDRAWSURFACE]),
+ Method(HRESULT, "GetBackgroundDepth", [OutPointer(LPDIRECTDRAWSURFACE),LPBOOL]),
+ Method(HRESULT, "Clear", [DWORD,LPD3DRECT,DWORD]),
+ Method(HRESULT, "AddLight", [LPDIRECT3DLIGHT]),
+ Method(HRESULT, "DeleteLight", [LPDIRECT3DLIGHT]),
+ Method(HRESULT, "NextLight", [LPDIRECT3DLIGHT,OutPointer(LPDIRECT3DLIGHT),DWORD]),
+]
+
+IDirect3DViewport2.methods += [
+ Method(HRESULT, "GetViewport2", [LPD3DVIEWPORT2]),
+ Method(HRESULT, "SetViewport2", [LPD3DVIEWPORT2]),
+]
+
+IDirect3DViewport3.methods += [
+ Method(HRESULT, "SetBackgroundDepth2", [LPDIRECTDRAWSURFACE4]),
+ Method(HRESULT, "GetBackgroundDepth2", [OutPointer(LPDIRECTDRAWSURFACE4),LPBOOL]),
+ Method(HRESULT, "Clear2", [DWORD,LPD3DRECT,DWORD,D3DCOLOR,D3DVALUE,DWORD]),
+]
+
+IDirect3DVertexBuffer.methods += [
+ Method(HRESULT, "Lock", [DWORD,OutPointer(LPVOID),LPDWORD]),
+ Method(HRESULT, "Unlock", []),
+ Method(HRESULT, "ProcessVertices", [DWORD,DWORD,DWORD,LPDIRECT3DVERTEXBUFFER,DWORD,LPDIRECT3DDEVICE3,DWORD]),
+ Method(HRESULT, "GetVertexBufferDesc", [LPD3DVERTEXBUFFERDESC]),
+ Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE3,DWORD]),
+]
+
+IDirect3DVertexBuffer7.methods += [
+ Method(HRESULT, "Lock", [DWORD,OutPointer(LPVOID),LPDWORD]),
+ Method(HRESULT, "Unlock", []),
+ Method(HRESULT, "ProcessVertices", [DWORD,DWORD,DWORD,LPDIRECT3DVERTEXBUFFER7,DWORD,LPDIRECT3DDEVICE7,DWORD]),
+ Method(HRESULT, "GetVertexBufferDesc", [LPD3DVERTEXBUFFERDESC]),
+ Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE7,DWORD]),
+ Method(HRESULT, "ProcessVerticesStrided", [DWORD,DWORD,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPDIRECT3DDEVICE7,DWORD]),
+]
--- /dev/null
+#############################################################################
+#
+# Copyright 2008 Tungsten Graphics, Inc.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#############################################################################
+
+"""d3dcaps.h"""
+
+from windows import *
+from d3dtypes import *
+
+D3DTRANSFORMCAPS = Flags(DWORD, [
+ "D3DTRANSFORMCAPS_CLIP",
+])
+
+D3DTRANSFORMCAPS = Struct("D3DTRANSFORMCAPS", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+])
+
+D3DLIGHTINGCAPS = Struct("D3DLIGHTINGCAPS", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwLightingModel"),
+ (DWORD, "dwNumLights"),
+])
+
+D3DLIGHTINGMODEL = Flags(DWORD, [
+ "D3DLIGHTINGMODEL_RGB",
+ "D3DLIGHTINGMODEL_MONO",
+])
+
+D3DLIGHTCAPS = Flags(DWORD, [
+ "D3DLIGHTCAPS_POINT",
+ "D3DLIGHTCAPS_SPOT",
+ "D3DLIGHTCAPS_DIRECTIONAL",
+ "D3DLIGHTCAPS_PARALLELPOINT",
+ "D3DLIGHTCAPS_GLSPOT",
+])
+
+D3DPRIMCAPS = Struct("D3DPRIMCAPS", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwMiscCaps"),
+ (DWORD, "dwRasterCaps"),
+ (DWORD, "dwZCmpCaps"),
+ (DWORD, "dwSrcBlendCaps"),
+ (DWORD, "dwDestBlendCaps"),
+ (DWORD, "dwAlphaCmpCaps"),
+ (DWORD, "dwShadeCaps"),
+ (DWORD, "dwTextureCaps"),
+ (DWORD, "dwTextureFilterCaps"),
+ (DWORD, "dwTextureBlendCaps"),
+ (DWORD, "dwTextureAddressCaps"),
+ (DWORD, "dwStippleWidth"),
+ (DWORD, "dwStippleHeight"),
+])
+
+D3DPMISCCAPS = Flags(DWORD, [
+ "D3DPMISCCAPS_MASKPLANES",
+ "D3DPMISCCAPS_MASKZ",
+ "D3DPMISCCAPS_LINEPATTERNREP",
+ "D3DPMISCCAPS_CONFORMANT",
+ "D3DPMISCCAPS_CULLNONE",
+ "D3DPMISCCAPS_CULLCW",
+ "D3DPMISCCAPS_CULLCCW",
+])
+
+D3DXD3DPRASTERCAPSXX = Flags(DWORD, [
+ "D3DPRASTERCAPS_DITHER",
+ "D3DPRASTERCAPS_ROP2",
+ "D3DPRASTERCAPS_XOR",
+ "D3DPRASTERCAPS_PAT",
+ "D3DPRASTERCAPS_ZTEST",
+ "D3DPRASTERCAPS_SUBPIXEL",
+ "D3DPRASTERCAPS_SUBPIXELX",
+ "D3DPRASTERCAPS_FOGVERTEX",
+ "D3DPRASTERCAPS_FOGTABLE",
+ "D3DPRASTERCAPS_STIPPLE",
+ "D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT",
+ "D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT",
+ "D3DPRASTERCAPS_ANTIALIASEDGES",
+ "D3DPRASTERCAPS_MIPMAPLODBIAS",
+ "D3DPRASTERCAPS_ZBIAS",
+ "D3DPRASTERCAPS_ZBUFFERLESSHSR",
+ "D3DPRASTERCAPS_FOGRANGE",
+ "D3DPRASTERCAPS_ANISOTROPY",
+ "D3DPRASTERCAPS_WBUFFER",
+ "D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT",
+ "D3DPRASTERCAPS_WFOG",
+ "D3DPRASTERCAPS_ZFOG",
+])
+
+D3DPCMPCAPS = Flags(DWORD, [
+ "D3DPCMPCAPS_NEVER",
+ "D3DPCMPCAPS_LESS",
+ "D3DPCMPCAPS_EQUAL",
+ "D3DPCMPCAPS_LESSEQUAL",
+ "D3DPCMPCAPS_GREATER",
+ "D3DPCMPCAPS_NOTEQUAL",
+ "D3DPCMPCAPS_GREATEREQUAL",
+ "D3DPCMPCAPS_ALWAYS",
+])
+
+D3DPBLENDCAPS = Flags(DWORD, [
+ "D3DPBLENDCAPS_ZERO",
+ "D3DPBLENDCAPS_ONE",
+ "D3DPBLENDCAPS_SRCCOLOR",
+ "D3DPBLENDCAPS_INVSRCCOLOR",
+ "D3DPBLENDCAPS_SRCALPHA",
+ "D3DPBLENDCAPS_INVSRCALPHA",
+ "D3DPBLENDCAPS_DESTALPHA",
+ "D3DPBLENDCAPS_INVDESTALPHA",
+ "D3DPBLENDCAPS_DESTCOLOR",
+ "D3DPBLENDCAPS_INVDESTCOLOR",
+ "D3DPBLENDCAPS_SRCALPHASAT",
+ "D3DPBLENDCAPS_BOTHSRCALPHA",
+ "D3DPBLENDCAPS_BOTHINVSRCALPHA",
+])
+
+D3DPSHADECAPS = Flags(DWORD, [
+ "D3DPSHADECAPS_COLORFLATMONO",
+ "D3DPSHADECAPS_COLORFLATRGB",
+ "D3DPSHADECAPS_COLORGOURAUDMONO",
+ "D3DPSHADECAPS_COLORGOURAUDRGB",
+ "D3DPSHADECAPS_COLORPHONGMONO",
+ "D3DPSHADECAPS_COLORPHONGRGB",
+ "D3DPSHADECAPS_SPECULARFLATMONO",
+ "D3DPSHADECAPS_SPECULARFLATRGB",
+ "D3DPSHADECAPS_SPECULARGOURAUDMONO",
+ "D3DPSHADECAPS_SPECULARGOURAUDRGB",
+ "D3DPSHADECAPS_SPECULARPHONGMONO",
+ "D3DPSHADECAPS_SPECULARPHONGRGB",
+ "D3DPSHADECAPS_ALPHAFLATBLEND",
+ "D3DPSHADECAPS_ALPHAFLATSTIPPLED",
+ "D3DPSHADECAPS_ALPHAGOURAUDBLEND",
+ "D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED",
+ "D3DPSHADECAPS_ALPHAPHONGBLEND",
+ "D3DPSHADECAPS_ALPHAPHONGSTIPPLED",
+ "D3DPSHADECAPS_FOGFLAT",
+ "D3DPSHADECAPS_FOGGOURAUD",
+ "D3DPSHADECAPS_FOGPHONG",
+])
+
+D3DPTEXTURECAPS = Flags(DWORD, [
+ "D3DPTEXTURECAPS_PERSPECTIVE",
+ "D3DPTEXTURECAPS_POW2",
+ "D3DPTEXTURECAPS_ALPHA",
+ "D3DPTEXTURECAPS_TRANSPARENCY",
+ "D3DPTEXTURECAPS_BORDER",
+ "D3DPTEXTURECAPS_SQUAREONLY",
+ "D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE",
+ "D3DPTEXTURECAPS_ALPHAPALETTE",
+ "D3DPTEXTURECAPS_NONPOW2CONDITIONAL",
+ "D3DPTEXTURECAPS_PROJECTED",
+ "D3DPTEXTURECAPS_CUBEMAP",
+ "D3DPTEXTURECAPS_COLORKEYBLEND",
+])
+
+D3DPTFILTERCAPS = Flags(DWORD, [
+ "D3DPTFILTERCAPS_NEAREST",
+ "D3DPTFILTERCAPS_LINEAR",
+ "D3DPTFILTERCAPS_MIPNEAREST",
+ "D3DPTFILTERCAPS_MIPLINEAR",
+ "D3DPTFILTERCAPS_LINEARMIPNEAREST",
+ "D3DPTFILTERCAPS_LINEARMIPLINEAR",
+ "D3DPTFILTERCAPS_MINFPOINT",
+ "D3DPTFILTERCAPS_MINFLINEAR",
+ "D3DPTFILTERCAPS_MINFANISOTROPIC",
+ "D3DPTFILTERCAPS_MIPFPOINT",
+ "D3DPTFILTERCAPS_MIPFLINEAR",
+ "D3DPTFILTERCAPS_MAGFPOINT",
+ "D3DPTFILTERCAPS_MAGFLINEAR",
+ "D3DPTFILTERCAPS_MAGFANISOTROPIC",
+ "D3DPTFILTERCAPS_MAGFAFLATCUBIC",
+ "D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC",
+])
+
+D3DPTBLENDCAPS = Flags(DWORD, [
+ "D3DPTBLENDCAPS_DECAL",
+ "D3DPTBLENDCAPS_MODULATE",
+ "D3DPTBLENDCAPS_DECALALPHA",
+ "D3DPTBLENDCAPS_MODULATEALPHA",
+ "D3DPTBLENDCAPS_DECALMASK",
+ "D3DPTBLENDCAPS_MODULATEMASK",
+ "D3DPTBLENDCAPS_COPY",
+ "D3DPTBLENDCAPS_ADD",
+])
+
+D3DPTADDRESSCAPS = Flags(DWORD, [
+ "D3DPTADDRESSCAPS_WRAP",
+ "D3DPTADDRESSCAPS_MIRROR",
+ "D3DPTADDRESSCAPS_CLAMP",
+ "D3DPTADDRESSCAPS_BORDER",
+ "D3DPTADDRESSCAPS_INDEPENDENTUV",
+])
+
+D3DSTENCILCAPS = Flags(DWORD, [
+ "D3DSTENCILCAPS_KEEP",
+ "D3DSTENCILCAPS_ZERO",
+ "D3DSTENCILCAPS_REPLACE",
+ "D3DSTENCILCAPS_INCRSAT",
+ "D3DSTENCILCAPS_DECRSAT",
+ "D3DSTENCILCAPS_INVERT",
+ "D3DSTENCILCAPS_INCR",
+ "D3DSTENCILCAPS_DECR",
+])
+
+D3DTEXOPCAPS = Flags(DWORD, [
+ "D3DTEXOPCAPS_DISABLE",
+ "D3DTEXOPCAPS_SELECTARG1",
+ "D3DTEXOPCAPS_SELECTARG2",
+ "D3DTEXOPCAPS_MODULATE",
+ "D3DTEXOPCAPS_MODULATE2X",
+ "D3DTEXOPCAPS_MODULATE4X",
+ "D3DTEXOPCAPS_ADD",
+ "D3DTEXOPCAPS_ADDSIGNED",
+ "D3DTEXOPCAPS_ADDSIGNED2X",
+ "D3DTEXOPCAPS_SUBTRACT",
+ "D3DTEXOPCAPS_ADDSMOOTH",
+ "D3DTEXOPCAPS_BLENDDIFFUSEALPHA",
+ "D3DTEXOPCAPS_BLENDTEXTUREALPHA",
+ "D3DTEXOPCAPS_BLENDFACTORALPHA",
+ "D3DTEXOPCAPS_BLENDTEXTUREALPHAPM",
+ "D3DTEXOPCAPS_BLENDCURRENTALPHA",
+ "D3DTEXOPCAPS_PREMODULATE",
+ "D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR",
+ "D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA",
+ "D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR",
+ "D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA",
+ "D3DTEXOPCAPS_BUMPENVMAP",
+ "D3DTEXOPCAPS_BUMPENVMAPLUMINANCE",
+ "D3DTEXOPCAPS_DOTPRODUCT3",
+])
+
+D3DFVFCAPS = Flags(DWORD, [
+ "D3DFVFCAPS_TEXCOORDCOUNTMASK",
+ "D3DFVFCAPS_DONOTSTRIPELEMENTS",
+])
+
+D3DDD = Flags(DWORD, [
+ "D3DDD_COLORMODEL",
+ "D3DDD_DEVCAPS",
+ "D3DDD_TRANSFORMCAPS",
+ "D3DDD_LIGHTINGCAPS",
+ "D3DDD_BCLIPPING",
+ "D3DDD_LINECAPS",
+ "D3DDD_TRICAPS",
+ "D3DDD_DEVICERENDERBITDEPTH",
+ "D3DDD_DEVICEZBUFFERBITDEPTH",
+ "D3DDD_MAXBUFFERSIZE",
+ "D3DDD_MAXVERTEXCOUNT",
+])
+
+D3DDEVCAPS = Flags(DWORD, [
+ "D3DDEVCAPS_FLOATTLVERTEX",
+ "D3DDEVCAPS_SORTINCREASINGZ",
+ "D3DDEVCAPS_SORTDECREASINGZ",
+ "D3DDEVCAPS_SORTEXACT",
+ "D3DDEVCAPS_EXECUTESYSTEMMEMORY",
+ "D3DDEVCAPS_EXECUTEVIDEOMEMORY",
+ "D3DDEVCAPS_TLVERTEXSYSTEMMEMORY",
+ "D3DDEVCAPS_TLVERTEXVIDEOMEMORY",
+ "D3DDEVCAPS_TEXTURESYSTEMMEMORY",
+ "D3DDEVCAPS_TEXTUREVIDEOMEMORY",
+ "D3DDEVCAPS_DRAWPRIMTLVERTEX",
+ "D3DDEVCAPS_CANRENDERAFTERFLIP",
+ "D3DDEVCAPS_TEXTURENONLOCALVIDMEM",
+ "D3DDEVCAPS_DRAWPRIMITIVES2",
+ "D3DDEVCAPS_SEPARATETEXTUREMEMORIES",
+ "D3DDEVCAPS_DRAWPRIMITIVES2EX",
+ "D3DDEVCAPS_HWTRANSFORMANDLIGHT",
+ "D3DDEVCAPS_CANBLTSYSTONONLOCAL",
+ "D3DDEVCAPS_HWRASTERIZATION",
+])
+
+D3DVTXPCAPS = Flags(DWORD, [
+ "D3DVTXPCAPS_TEXGEN",
+ "D3DVTXPCAPS_MATERIALSOURCE7",
+ "D3DVTXPCAPS_VERTEXFOG",
+ "D3DVTXPCAPS_DIRECTIONALLIGHTS",
+ "D3DVTXPCAPS_POSITIONALLIGHTS",
+ "D3DVTXPCAPS_LOCALVIEWER",
+])
+
+D3DFDS = Flags(DWORD, [
+ "D3DFDS_COLORMODEL",
+ "D3DFDS_GUID",
+ "D3DFDS_HARDWARE",
+ "D3DFDS_TRIANGLES",
+ "D3DFDS_LINES",
+ "D3DFDS_MISCCAPS",
+ "D3DFDS_RASTERCAPS",
+ "D3DFDS_ZCMPCAPS",
+ "D3DFDS_ALPHACMPCAPS",
+ "D3DFDS_SRCBLENDCAPS",
+ "D3DFDS_DSTBLENDCAPS",
+ "D3DFDS_SHADECAPS",
+ "D3DFDS_TEXTURECAPS",
+ "D3DFDS_TEXTUREFILTERCAPS",
+ "D3DFDS_TEXTUREBLENDCAPS",
+ "D3DFDS_TEXTUREADDRESSCAPS",
+])
+
+D3DFINDDEVICESEARCH = Struct("D3DFINDDEVICESEARCH", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (BOOL, "bHardware"),
+ (D3DCOLORMODEL, "dcmColorModel"),
+ (GUID, "guid"),
+ (DWORD, "dwCaps"),
+ (D3DPRIMCAPS, "dpcPrimCaps"),
+])
+LPD3DFINDDEVICESEARCH = Pointer(D3DFINDDEVICESEARCH)
+
+D3DEXECUTEBUFFERDESC = Struct("D3DEXECUTEBUFFERDESC", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwBufferSize"),
+ (LPVOID, "lpData"),
+])
+LPD3DEXECUTEBUFFERDESC = Pointer(D3DEXECUTEBUFFERDESC)
+
+D3DDEB = Flags(DWORD, [
+ "D3DDEB_BUFSIZE",
+ "D3DDEB_CAPS",
+ "D3DDEB_LPDATA",
+])
+
+D3DDEBCAPS = Flags(DWORD, [
+ "D3DDEBCAPS_SYSTEMMEMORY",
+ "D3DDEBCAPS_VIDEOMEMORY",
+ "D3DDEBCAPS_MEM",
+])
+
+D3DDEVINFO_TEXTUREMANAGER = Struct("D3DDEVINFO_TEXTUREMANAGER", [
+ (BOOL, "bThrashing"),
+ (DWORD, "dwApproxBytesDownloaded"),
+ (DWORD, "dwNumEvicts"),
+ (DWORD, "dwNumVidCreates"),
+ (DWORD, "dwNumTexturesUsed"),
+ (DWORD, "dwNumUsedTexInVid"),
+ (DWORD, "dwWorkingSet"),
+ (DWORD, "dwWorkingSetBytes"),
+ (DWORD, "dwTotalManaged"),
+ (DWORD, "dwTotalBytes"),
+ (DWORD, "dwLastPri"),
+])
+
+D3DDEVINFO_TEXTURING = Struct("D3DDEVINFO_TEXTURING", [
+ (DWORD, "dwNumLoads"),
+ (DWORD, "dwApproxBytesLoaded"),
+ (DWORD, "dwNumPreLoads"),
+ (DWORD, "dwNumSet"),
+ (DWORD, "dwNumCreates"),
+ (DWORD, "dwNumDestroys"),
+ (DWORD, "dwNumSetPriorities"),
+ (DWORD, "dwNumSetLODs"),
+ (DWORD, "dwNumLocks"),
+ (DWORD, "dwNumGetDCs"),
+])
+
+D3DDEVICEDESC = Struct("D3DDEVICEDESC", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (D3DCOLORMODEL, "dcmColorModel"),
+ (DWORD, "dwDevCaps"),
+ (D3DTRANSFORMCAPS, "dtcTransformCaps"),
+ (BOOL, "bClipping"),
+ (D3DLIGHTINGCAPS, "dlcLightingCaps"),
+ (D3DPRIMCAPS, "dpcLineCaps"),
+ (D3DPRIMCAPS, "dpcTriCaps"),
+ (DWORD, "dwDeviceRenderBitDepth"),
+ (DWORD, "dwDeviceZBufferBitDepth"),
+ (DWORD, "dwMaxBufferSize"),
+ (DWORD, "dwMaxVertexCount"),
+ (DWORD, "dwMinTextureWidth"),
+ (DWORD, "dwMinTextureHeight"),
+ (DWORD, "dwMaxTextureWidth"),
+ (DWORD, "dwMaxTextureHeight"),
+ (DWORD, "dwMinStippleWidth"),
+ (DWORD, "dwMaxStippleWidth"),
+ (DWORD, "dwMinStippleHeight"),
+ (DWORD, "dwMaxStippleHeight"),
+ (DWORD, "dwMaxTextureRepeat"),
+ (DWORD, "dwMaxTextureAspectRatio"),
+ (DWORD, "dwMaxAnisotropy"),
+ (D3DVALUE, "dvGuardBandLeft"),
+ (D3DVALUE, "dvGuardBandTop"),
+ (D3DVALUE, "dvGuardBandRight"),
+ (D3DVALUE, "dvGuardBandBottom"),
+ (D3DVALUE, "dvExtentsAdjust"),
+ (DWORD, "dwStencilCaps"),
+ (DWORD, "dwFVFCaps"),
+ (DWORD, "dwTextureOpCaps"),
+ (WORD, "wMaxTextureBlendStages"),
+ (WORD, "wMaxSimultaneousTextures"),
+])
+LPD3DDEVICEDESC = Pointer(D3DDEVICEDESC)
+
+D3DDEVICEDESC7 = Struct("D3DDEVICEDESC7", [
+ (DWORD, "dwDevCaps"),
+ (D3DPRIMCAPS, "dpcLineCaps"),
+ (D3DPRIMCAPS, "dpcTriCaps"),
+ (DWORD, "dwDeviceRenderBitDepth"),
+ (DWORD, "dwDeviceZBufferBitDepth"),
+ (DWORD, "dwMinTextureWidth"),
+ (DWORD, "dwMinTextureHeight"),
+ (DWORD, "dwMaxTextureWidth"),
+ (DWORD, "dwMaxTextureHeight"),
+ (DWORD, "dwMaxTextureRepeat"),
+ (DWORD, "dwMaxTextureAspectRatio"),
+ (DWORD, "dwMaxAnisotropy"),
+ (D3DVALUE, "dvGuardBandLeft"),
+ (D3DVALUE, "dvGuardBandTop"),
+ (D3DVALUE, "dvGuardBandRight"),
+ (D3DVALUE, "dvGuardBandBottom"),
+ (D3DVALUE, "dvExtentsAdjust"),
+ (DWORD, "dwStencilCaps"),
+ (DWORD, "dwFVFCaps"),
+ (DWORD, "dwTextureOpCaps"),
+ (WORD, "wMaxTextureBlendStages"),
+ (WORD, "wMaxSimultaneousTextures"),
+ (DWORD, "dwMaxActiveLights"),
+ (D3DVALUE, "dvMaxVertexW"),
+ (GUID, "deviceGUID"),
+ (WORD, "wMaxUserClipPlanes"),
+ (WORD, "wMaxVertexBlendMatrices"),
+ (DWORD, "dwVertexProcessingCaps"),
+ (DWORD, "dwReserved1"),
+ (DWORD, "dwReserved2"),
+ (DWORD, "dwReserved3"),
+ (DWORD, "dwReserved4"),
+])
+LPD3DDEVICEDESC7 = Pointer(D3DDEVICEDESC7)
+
+D3DFINDDEVICERESULT = Struct("D3DFINDDEVICERESULT", [
+ (DWORD, "dwSize"),
+ (GUID, "guid"),
+ (D3DDEVICEDESC, "ddHwDesc"),
+ (D3DDEVICEDESC, "ddSwDesc"),
+])
+LPD3DFINDDEVICERESULT = Pointer(D3DFINDDEVICERESULT)
+
+LPD3DENUMDEVICESCALLBACK = Function(HRESULT, "LPD3DENUMDEVICESCALLBACK", [(Pointer(GUID), "lpGuid"), (LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID])
+LPD3DENUMDEVICESCALLBACK7 = Function(HRESULT, "LPD3DENUMDEVICESCALLBACK7", [(LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC7, LPVOID])
+
--- /dev/null
+#############################################################################
+#
+# Copyright 2008 Tungsten Graphics, Inc.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#############################################################################
+
+"""d3dtypes.h"""
+
+from windows import *
+from ddraw import *
+
+D3DVALUE = Float
+LPD3DVALUE = Pointer(Float)
+D3DFIXED = LONG
+
+LPD3DVALIDATECALLBACK = LPVOID
+LPD3DENUMTEXTUREFORMATSCALLBACK = LPVOID
+LPD3DENUMPIXELFORMATSCALLBACK = LPVOID
+
+D3DCOLOR = DWORD
+LPD3DCOLOR = Pointer(D3DCOLOR)
+
+D3DMATERIALHANDLE = DWORD
+LPD3DMATERIALHANDLE = Pointer(D3DMATERIALHANDLE)
+
+D3DTEXTUREHANDLE = DWORD
+LPD3DTEXTUREHANDLE = Pointer(D3DTEXTUREHANDLE)
+
+D3DMATRIXHANDLE = DWORD
+LPD3DMATRIXHANDLE = Pointer(D3DMATRIXHANDLE)
+
+D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
+ (D3DVALUE, "r"),
+ (D3DVALUE, "g"),
+ (D3DVALUE, "b"),
+ (D3DVALUE, "a"),
+])
+LPD3DCOLORVALUE = Pointer(D3DCOLORVALUE)
+
+D3DRECT = Struct("D3DRECT", [
+ (LONG, "x1"),
+ (LONG, "y1"),
+ (LONG, "x2"),
+ (LONG, "y2"),
+])
+LPD3DRECT = Pointer(D3DRECT)
+
+D3DVECTOR = Struct("D3DVECTOR", [
+ (D3DVALUE, "x"),
+ (D3DVALUE, "y"),
+ (D3DVALUE, "z"),
+])
+LPD3DVECTOR = Pointer(D3DVECTOR)
+
+D3DHVERTEX = Struct("D3DHVERTEX", [
+ (DWORD, "dwFlags"),
+ (D3DVALUE, "hx"),
+ (D3DVALUE, "hy"),
+ (D3DVALUE, "hz"),
+])
+LPD3DHVERTEX = Pointer(D3DHVERTEX)
+
+D3DTLVERTEX = Struct("D3DTLVERTEX", [
+ (D3DVALUE, "sx"),
+ (D3DVALUE, "sy"),
+ (D3DVALUE, "sz"),
+ (D3DVALUE, "rhw"),
+ (D3DCOLOR, "color"),
+ (D3DCOLOR, "specular"),
+ (D3DVALUE, "tu"),
+ (D3DVALUE, "tv"),
+])
+LPD3DTLVERTEX = Pointer(D3DTLVERTEX)
+
+D3DLVERTEX = Struct("D3DLVERTEX", [
+ (D3DVALUE, "x"),
+ (D3DVALUE, "y"),
+ (D3DVALUE, "z"),
+ (DWORD, "dwReserved"),
+ (D3DCOLOR, "color"),
+ (D3DCOLOR, "specular"),
+ (D3DVALUE, "tu"),
+ (D3DVALUE, "tv"),
+])
+LPD3DLVERTEX = Pointer(D3DLVERTEX)
+
+D3DVERTEX = Struct("D3DVERTEX", [
+ (D3DVALUE, "x"),
+ (D3DVALUE, "y"),
+ (D3DVALUE, "z"),
+ (D3DVALUE, "nx"),
+ (D3DVALUE, "ny"),
+ (D3DVALUE, "nz"),
+ (D3DVALUE, "tu"),
+ (D3DVALUE, "tv"),
+])
+LPD3DVERTEX = Pointer(D3DVERTEX)
+
+D3DMATRIX = Struct("D3DMATRIX", [
+ (D3DVALUE, "m[4][4]"),
+])
+LPD3DMATRIX = Pointer(D3DMATRIX)
+
+D3DVIEWPORT = Struct("D3DVIEWPORT", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwX"),
+ (DWORD, "dwY"),
+ (DWORD, "dwWidth"),
+ (DWORD, "dwHeight"),
+ (D3DVALUE, "dvScaleX"),
+ (D3DVALUE, "dvScaleY"),
+ (D3DVALUE, "dvMaxX"),
+ (D3DVALUE, "dvMaxY"),
+ (D3DVALUE, "dvMinZ"),
+ (D3DVALUE, "dvMaxZ"),
+])
+LPD3DVIEWPORT = Pointer(D3DVIEWPORT)
+
+D3DVIEWPORT2 = Struct("D3DVIEWPORT2", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwX"),
+ (DWORD, "dwY"),
+ (DWORD, "dwWidth"),
+ (DWORD, "dwHeight"),
+ (D3DVALUE, "dvClipX"),
+ (D3DVALUE, "dvClipY"),
+ (D3DVALUE, "dvClipWidth"),
+ (D3DVALUE, "dvClipHeight"),
+ (D3DVALUE, "dvMinZ"),
+ (D3DVALUE, "dvMaxZ"),
+])
+LPD3DVIEWPORT2 = Pointer(D3DVIEWPORT2)
+
+D3DVIEWPORT7 = Struct("D3DVIEWPORT7", [
+ (DWORD, "dwX"),
+ (DWORD, "dwY"),
+ (DWORD, "dwWidth"),
+ (DWORD, "dwHeight"),
+ (D3DVALUE, "dvMinZ"),
+ (D3DVALUE, "dvMaxZ"),
+])
+LPD3DVIEWPORT7 = Pointer(D3DVIEWPORT7)
+
+D3DCLIP = Flags(DWORD, [
+ "D3DCLIP_LEFT",
+ "D3DCLIP_RIGHT",
+ "D3DCLIP_TOP",
+ "D3DCLIP_BOTTOM",
+ "D3DCLIP_FRONT",
+ "D3DCLIP_BACK",
+ "D3DCLIP_GEN0",
+ "D3DCLIP_GEN1",
+ "D3DCLIP_GEN2",
+ "D3DCLIP_GEN3",
+ "D3DCLIP_GEN4",
+ "D3DCLIP_GEN5",
+])
+
+D3DSTATUS = Flags(DWORD, [
+ "D3DSTATUS_DEFAULT",
+ "D3DSTATUS_CLIPUNIONALL",
+ "D3DSTATUS_CLIPUNIONLEFT",
+ "D3DSTATUS_CLIPUNIONRIGHT",
+ "D3DSTATUS_CLIPUNIONTOP",
+ "D3DSTATUS_CLIPUNIONBOTTOM",
+ "D3DSTATUS_CLIPUNIONFRONT",
+ "D3DSTATUS_CLIPUNIONBACK",
+ "D3DSTATUS_CLIPUNIONGEN0",
+ "D3DSTATUS_CLIPUNIONGEN1",
+ "D3DSTATUS_CLIPUNIONGEN2",
+ "D3DSTATUS_CLIPUNIONGEN3",
+ "D3DSTATUS_CLIPUNIONGEN4",
+ "D3DSTATUS_CLIPUNIONGEN5",
+ "D3DSTATUS_CLIPINTERSECTIONALL",
+ "D3DSTATUS_CLIPINTERSECTIONLEFT",
+ "D3DSTATUS_CLIPINTERSECTIONRIGHT",
+ "D3DSTATUS_CLIPINTERSECTIONTOP",
+ "D3DSTATUS_CLIPINTERSECTIONBOTTOM",
+ "D3DSTATUS_CLIPINTERSECTIONFRONT",
+ "D3DSTATUS_CLIPINTERSECTIONBACK",
+ "D3DSTATUS_CLIPINTERSECTIONGEN0",
+ "D3DSTATUS_CLIPINTERSECTIONGEN1",
+ "D3DSTATUS_CLIPINTERSECTIONGEN2",
+ "D3DSTATUS_CLIPINTERSECTIONGEN3",
+ "D3DSTATUS_CLIPINTERSECTIONGEN4",
+ "D3DSTATUS_CLIPINTERSECTIONGEN5",
+ "D3DSTATUS_ZNOTVISIBLE",
+])
+
+D3DTRANSFORM = Flags(DWORD, [
+ "D3DTRANSFORM_CLIPPED",
+ "D3DTRANSFORM_UNCLIPPED",
+])
+
+D3DTRANSFORMDATA = Struct("D3DTRANSFORMDATA", [
+ (DWORD, "dwSize"),
+ (LPVOID, "lpIn"),
+ (DWORD, "dwInSize"),
+ (LPVOID, "lpOut"),
+ (DWORD, "dwOutSize"),
+ (LPD3DHVERTEX, "lpHOut"),
+ (DWORD, "dwClip"),
+ (DWORD, "dwClipIntersection"),
+ (DWORD, "dwClipUnion"),
+ (D3DRECT, "drExtent"),
+])
+LPD3DTRANSFORMDATA = Pointer(D3DTRANSFORMDATA)
+
+D3DLIGHTINGELEMENT = Struct("D3DLIGHTINGELEMENT", [
+ (D3DVECTOR, "dvPosition"),
+ (D3DVECTOR, "dvNormal"),
+])
+LPD3DLIGHTINGELEMENT = Pointer(D3DLIGHTINGELEMENT)
+
+D3DMATERIAL = Struct("D3DMATERIAL", [
+ (DWORD, "dwSize"),
+ (D3DCOLORVALUE, "diffuse"),
+ (D3DCOLORVALUE, "ambient"),
+ (D3DCOLORVALUE, "specular"),
+ (D3DCOLORVALUE, "emissive"),
+ (D3DVALUE, "power"),
+ (D3DTEXTUREHANDLE, "hTexture"),
+ (DWORD, "dwRampSize"),
+])
+LPD3DMATERIAL = Pointer(D3DMATERIAL)
+
+D3DMATERIAL7 = Struct("D3DMATERIAL7", [
+ (D3DCOLORVALUE, "diffuse"),
+ (D3DCOLORVALUE, "ambient"),
+ (D3DCOLORVALUE, "specular"),
+ (D3DCOLORVALUE, "emissive"),
+ (D3DVALUE, "power"),
+])
+LPD3DMATERIAL7 = Pointer(D3DMATERIAL7)
+
+D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
+ "D3DLIGHT_POINT",
+ "D3DLIGHT_SPOT",
+ "D3DLIGHT_DIRECTIONAL",
+ "D3DLIGHT_PARALLELPOINT",
+ "D3DLIGHT_GLSPOT",
+ "D3DLIGHT_FORCE_DWORD",
+])
+
+D3DLIGHT = Struct("D3DLIGHT", [
+ (DWORD, "dwSize"),
+ (D3DLIGHTTYPE, "dltType"),
+ (D3DCOLORVALUE, "dcvColor"),
+ (D3DVECTOR, "dvPosition"),
+ (D3DVECTOR, "dvDirection"),
+ (D3DVALUE, "dvRange"),
+ (D3DVALUE, "dvFalloff"),
+ (D3DVALUE, "dvAttenuation0"),
+ (D3DVALUE, "dvAttenuation1"),
+ (D3DVALUE, "dvAttenuation2"),
+ (D3DVALUE, "dvTheta"),
+ (D3DVALUE, "dvPhi"),
+])
+LPD3DLIGHT = Pointer(D3DLIGHT)
+
+D3DLIGHT7 = Struct("D3DLIGHT7", [
+ (D3DLIGHTTYPE, "dltType"),
+ (D3DCOLORVALUE, "dcvDiffuse"),
+ (D3DCOLORVALUE, "dcvSpecular"),
+ (D3DCOLORVALUE, "dcvAmbient"),
+ (D3DVECTOR, "dvPosition"),
+ (D3DVECTOR, "dvDirection"),
+ (D3DVALUE, "dvRange"),
+ (D3DVALUE, "dvFalloff"),
+ (D3DVALUE, "dvAttenuation0"),
+ (D3DVALUE, "dvAttenuation1"),
+ (D3DVALUE, "dvAttenuation2"),
+ (D3DVALUE, "dvTheta"),
+ (D3DVALUE, "dvPhi"),
+])
+LPD3DLIGHT7 = Pointer(D3DLIGHT7)
+
+D3DLIGHTFLAGS = Flags(DWORD, [
+ "D3DLIGHT_ACTIVE",
+ "D3DLIGHT_NO_SPECULAR",
+ "D3DLIGHT_ALL",
+])
+
+D3DLIGHT2 = Struct("D3DLIGHT2", [
+ (DWORD, "dwSize"),
+ (D3DLIGHTTYPE, "dltType"),
+ (D3DCOLORVALUE, "dcvColor"),
+ (D3DVECTOR, "dvPosition"),
+ (D3DVECTOR, "dvDirection"),
+ (D3DVALUE, "dvRange"),
+ (D3DVALUE, "dvFalloff"),
+ (D3DVALUE, "dvAttenuation0"),
+ (D3DVALUE, "dvAttenuation1"),
+ (D3DVALUE, "dvAttenuation2"),
+ (D3DVALUE, "dvTheta"),
+ (D3DVALUE, "dvPhi"),
+ (DWORD, "dwFlags"),
+])
+LPD3DLIGHT2 = Pointer(D3DLIGHT2)
+
+D3DLIGHTDATA = Struct("D3DLIGHTDATA", [
+ (DWORD, "dwSize"),
+ (LPD3DLIGHTINGELEMENT, "lpIn"),
+ (DWORD, "dwInSize"),
+ (LPD3DTLVERTEX, "lpOut"),
+ (DWORD, "dwOutSize"),
+])
+LPD3DLIGHTDATA = Pointer(D3DLIGHTDATA)
+
+D3DCOLOR = Flags(DWORD, [
+ "D3DCOLOR_MONO",
+ "D3DCOLOR_RGB",
+])
+
+D3DCOLORMODEL = DWORD
+
+D3DCLEAR = Flags(DWORD, [
+ "D3DCLEAR_TARGET",
+ "D3DCLEAR_ZBUFFER",
+ "D3DCLEAR_STENCIL",
+])
+
+D3DOPCODE = Enum("D3DOPCODE", [
+ "D3DOP_POINT",
+ "D3DOP_LINE",
+ "D3DOP_TRIANGLE",
+ "D3DOP_MATRIXLOAD",
+ "D3DOP_MATRIXMULTIPLY",
+ "D3DOP_STATETRANSFORM",
+ "D3DOP_STATELIGHT",
+ "D3DOP_STATERENDER",
+ "D3DOP_PROCESSVERTICES",
+ "D3DOP_TEXTURELOAD",
+ "D3DOP_EXIT",
+ "D3DOP_BRANCHFORWARD",
+ "D3DOP_SPAN",
+ "D3DOP_SETSTATUS",
+ "D3DOP_FORCE_DWORD",
+])
+
+D3DINSTRUCTION = Struct("D3DINSTRUCTION", [
+ (BYTE, "bOpcode"),
+ (BYTE, "bSize"),
+ (WORD, "wCount"),
+])
+
+D3DTEXTURELOAD = Struct("D3DTEXTURELOAD", [
+ (D3DTEXTUREHANDLE, "hDestTexture"),
+ (D3DTEXTUREHANDLE, "hSrcTexture"),
+])
+
+D3DPICKRECORD = Struct("D3DPICKRECORD", [
+ (BYTE, "bOpcode"),
+ (BYTE, "bPad"),
+ (DWORD, "dwOffset"),
+ (D3DVALUE, "dvZ"),
+])
+LPD3DPICKRECORD = Pointer(D3DPICKRECORD)
+
+D3DSHADEMODE = Enum("D3DSHADEMODE", [
+ "D3DSHADE_FLAT",
+ "D3DSHADE_GOURAUD",
+ "D3DSHADE_PHONG",
+ "D3DSHADE_FORCE_DWORD",
+])
+
+D3DFILLMODE = Enum("D3DFILLMODE", [
+ "D3DFILL_POINT",
+ "D3DFILL_WIREFRAME",
+ "D3DFILL_SOLID",
+ "D3DFILL_FORCE_DWORD",
+])
+
+D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
+ (WORD, "wRepeatFactor"),
+ (WORD, "wLinePattern"),
+])
+
+D3DTEXTUREFILTER = Enum("D3DTEXTUREFILTER", [
+ "D3DFILTER_NEAREST",
+ "D3DFILTER_LINEAR",
+ "D3DFILTER_MIPNEAREST",
+ "D3DFILTER_MIPLINEAR",
+ "D3DFILTER_LINEARMIPNEAREST",
+ "D3DFILTER_LINEARMIPLINEAR",
+ "D3DFILTER_FORCE_DWORD",
+])
+
+D3DBLEND = Enum("D3DBLEND", [
+ "D3DBLEND_ZERO",
+ "D3DBLEND_ONE",
+ "D3DBLEND_SRCCOLOR",
+ "D3DBLEND_INVSRCCOLOR",
+ "D3DBLEND_SRCALPHA",
+ "D3DBLEND_INVSRCALPHA",
+ "D3DBLEND_DESTALPHA",
+ "D3DBLEND_INVDESTALPHA",
+ "D3DBLEND_DESTCOLOR",
+ "D3DBLEND_INVDESTCOLOR",
+ "D3DBLEND_SRCALPHASAT",
+ "D3DBLEND_BOTHSRCALPHA",
+ "D3DBLEND_BOTHINVSRCALPHA",
+ "D3DBLEND_FORCE_DWORD",
+])
+
+D3DTEXTUREBLEND = Enum("D3DTEXTUREBLEND", [
+ "D3DTBLEND_DECAL",
+ "D3DTBLEND_MODULATE",
+ "D3DTBLEND_DECALALPHA",
+ "D3DTBLEND_MODULATEALPHA",
+ "D3DTBLEND_DECALMASK",
+ "D3DTBLEND_MODULATEMASK",
+ "D3DTBLEND_COPY",
+ "D3DTBLEND_ADD",
+ "D3DTBLEND_FORCE_DWORD",
+])
+
+D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
+ "D3DTADDRESS_WRAP",
+ "D3DTADDRESS_MIRROR",
+ "D3DTADDRESS_CLAMP",
+ "D3DTADDRESS_BORDER",
+ "D3DTADDRESS_FORCE_DWORD",
+])
+
+D3DCULL = Enum("D3DCULL", [
+ "D3DCULL_NONE",
+ "D3DCULL_CW",
+ "D3DCULL_CCW",
+ "D3DCULL_FORCE_DWORD",
+])
+
+D3DCMPFUNC = Enum("D3DCMPFUNC", [
+ "D3DCMP_NEVER",
+ "D3DCMP_LESS",
+ "D3DCMP_EQUAL",
+ "D3DCMP_LESSEQUAL",
+ "D3DCMP_GREATER",
+ "D3DCMP_NOTEQUAL",
+ "D3DCMP_GREATEREQUAL",
+ "D3DCMP_ALWAYS",
+ "D3DCMP_FORCE_DWORD",
+])
+
+D3DSTENCILOP = Enum("D3DSTENCILOP", [
+ "D3DSTENCILOP_KEEP",
+ "D3DSTENCILOP_ZERO",
+ "D3DSTENCILOP_REPLACE",
+ "D3DSTENCILOP_INCRSAT",
+ "D3DSTENCILOP_DECRSAT",
+ "D3DSTENCILOP_INVERT",
+ "D3DSTENCILOP_INCR",
+ "D3DSTENCILOP_DECR",
+ "D3DSTENCILOP_FORCE_DWORD",
+])
+
+D3DFOGMODE = Enum("D3DFOGMODE", [
+ "D3DFOG_NONE",
+ "D3DFOG_EXP",
+ "D3DFOG_EXP2",
+ "D3DFOG_LINEAR",
+ "D3DFOG_FORCE_DWORD",
+])
+
+D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
+ "D3DZB_FALSE",
+ "D3DZB_TRUE",
+ "D3DZB_USEW",
+ "D3DZB_FORCE_DWORD",
+])
+
+D3DANTIALIASMODE = Enum("D3DANTIALIASMODE", [
+ "D3DANTIALIAS_NONE",
+ "D3DANTIALIAS_SORTDEPENDENT",
+ "D3DANTIALIAS_SORTINDEPENDENT",
+ "D3DANTIALIAS_FORCE_DWORD",
+])
+
+D3DVERTEXTYPE = Enum("D3DVERTEXTYPE", [
+ "D3DVT_VERTEX",
+ "D3DVT_LVERTEX",
+ "D3DVT_TLVERTEX",
+ "D3DVT_FORCE_DWORD",
+])
+
+D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
+ "D3DPT_POINTLIST",
+ "D3DPT_LINELIST",
+ "D3DPT_LINESTRIP",
+ "D3DPT_TRIANGLELIST",
+ "D3DPT_TRIANGLESTRIP",
+ "D3DPT_TRIANGLEFAN",
+ "D3DPT_FORCE_DWORD",
+])
+
+D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
+ "D3DTRANSFORMSTATE_WORLD",
+ "D3DTRANSFORMSTATE_VIEW",
+ "D3DTRANSFORMSTATE_PROJECTION",
+ "D3DTRANSFORMSTATE_WORLD1",
+ "D3DTRANSFORMSTATE_WORLD2",
+ "D3DTRANSFORMSTATE_WORLD3",
+ "D3DTRANSFORMSTATE_TEXTURE0",
+ "D3DTRANSFORMSTATE_TEXTURE1",
+ "D3DTRANSFORMSTATE_TEXTURE2",
+ "D3DTRANSFORMSTATE_TEXTURE3",
+ "D3DTRANSFORMSTATE_TEXTURE4",
+ "D3DTRANSFORMSTATE_TEXTURE5",
+ "D3DTRANSFORMSTATE_TEXTURE6",
+ "D3DTRANSFORMSTATE_TEXTURE7",
+ "D3DTRANSFORMSTATE_FORCE_DWORD",
+])
+
+D3DLIGHTSTATETYPE = Enum("D3DLIGHTSTATETYPE", [
+ "D3DLIGHTSTATE_MATERIAL",
+ "D3DLIGHTSTATE_AMBIENT",
+ "D3DLIGHTSTATE_COLORMODEL",
+ "D3DLIGHTSTATE_FOGMODE",
+ "D3DLIGHTSTATE_FOGSTART",
+ "D3DLIGHTSTATE_FOGEND",
+ "D3DLIGHTSTATE_FOGDENSITY",
+ "D3DLIGHTSTATE_COLORVERTEX",
+ "D3DLIGHTSTATE_FORCE_DWORD",
+])
+
+D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
+ "D3DRENDERSTATE_ANTIALIAS",
+ "D3DRENDERSTATE_TEXTUREPERSPECTIVE",
+ "D3DRENDERSTATE_ZENABLE",
+ "D3DRENDERSTATE_FILLMODE",
+ "D3DRENDERSTATE_SHADEMODE",
+ "D3DRENDERSTATE_LINEPATTERN",
+ "D3DRENDERSTATE_ZWRITEENABLE",
+ "D3DRENDERSTATE_ALPHATESTENABLE",
+ "D3DRENDERSTATE_LASTPIXEL",
+ "D3DRENDERSTATE_SRCBLEND",
+ "D3DRENDERSTATE_DESTBLEND",
+ "D3DRENDERSTATE_CULLMODE",
+ "D3DRENDERSTATE_ZFUNC",
+ "D3DRENDERSTATE_ALPHAREF",
+ "D3DRENDERSTATE_ALPHAFUNC",
+ "D3DRENDERSTATE_DITHERENABLE",
+ "D3DRENDERSTATE_ALPHABLENDENABLE",
+ "D3DRENDERSTATE_FOGENABLE",
+ "D3DRENDERSTATE_SPECULARENABLE",
+ "D3DRENDERSTATE_ZVISIBLE",
+ "D3DRENDERSTATE_STIPPLEDALPHA",
+ "D3DRENDERSTATE_FOGCOLOR",
+ "D3DRENDERSTATE_FOGTABLEMODE",
+ "D3DRENDERSTATE_FOGSTART",
+ "D3DRENDERSTATE_FOGEND",
+ "D3DRENDERSTATE_FOGDENSITY",
+ "D3DRENDERSTATE_EDGEANTIALIAS",
+ "D3DRENDERSTATE_COLORKEYENABLE",
+ "D3DRENDERSTATE_ZBIAS",
+ "D3DRENDERSTATE_RANGEFOGENABLE",
+ "D3DRENDERSTATE_STENCILENABLE",
+ "D3DRENDERSTATE_STENCILFAIL",
+ "D3DRENDERSTATE_STENCILZFAIL",
+ "D3DRENDERSTATE_STENCILPASS",
+ "D3DRENDERSTATE_STENCILFUNC",
+ "D3DRENDERSTATE_STENCILREF",
+ "D3DRENDERSTATE_STENCILMASK",
+ "D3DRENDERSTATE_STENCILWRITEMASK",
+ "D3DRENDERSTATE_TEXTUREFACTOR",
+ "D3DRENDERSTATE_WRAP0",
+ "D3DRENDERSTATE_WRAP1",
+ "D3DRENDERSTATE_WRAP2",
+ "D3DRENDERSTATE_WRAP3",
+ "D3DRENDERSTATE_WRAP4",
+ "D3DRENDERSTATE_WRAP5",
+ "D3DRENDERSTATE_WRAP6",
+ "D3DRENDERSTATE_WRAP7",
+ "D3DRENDERSTATE_CLIPPING",
+ "D3DRENDERSTATE_LIGHTING",
+ "D3DRENDERSTATE_EXTENTS",
+ "D3DRENDERSTATE_AMBIENT",
+ "D3DRENDERSTATE_FOGVERTEXMODE",
+ "D3DRENDERSTATE_COLORVERTEX",
+ "D3DRENDERSTATE_LOCALVIEWER",
+ "D3DRENDERSTATE_NORMALIZENORMALS",
+ "D3DRENDERSTATE_COLORKEYBLENDENABLE",
+ "D3DRENDERSTATE_DIFFUSEMATERIALSOURCE",
+ "D3DRENDERSTATE_SPECULARMATERIALSOURCE",
+ "D3DRENDERSTATE_AMBIENTMATERIALSOURCE",
+ "D3DRENDERSTATE_EMISSIVEMATERIALSOURCE",
+ "D3DRENDERSTATE_VERTEXBLEND",
+ "D3DRENDERSTATE_CLIPPLANEENABLE",
+ "D3DRENDERSTATE_TEXTUREHANDLE",
+ "D3DRENDERSTATE_TEXTUREADDRESS",
+ "D3DRENDERSTATE_WRAPU",
+ "D3DRENDERSTATE_WRAPV",
+ "D3DRENDERSTATE_MONOENABLE",
+ "D3DRENDERSTATE_ROP2",
+ "D3DRENDERSTATE_PLANEMASK",
+ "D3DRENDERSTATE_TEXTUREMAG",
+ "D3DRENDERSTATE_TEXTUREMIN",
+ "D3DRENDERSTATE_TEXTUREMAPBLEND",
+ "D3DRENDERSTATE_SUBPIXEL",
+ "D3DRENDERSTATE_SUBPIXELX",
+ "D3DRENDERSTATE_STIPPLEENABLE",
+ "D3DRENDERSTATE_BORDERCOLOR",
+ "D3DRENDERSTATE_TEXTUREADDRESSU",
+ "D3DRENDERSTATE_TEXTUREADDRESSV",
+ "D3DRENDERSTATE_MIPMAPLODBIAS",
+ "D3DRENDERSTATE_ANISOTROPY",
+ "D3DRENDERSTATE_FLUSHBATCH",
+ "D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT",
+ "D3DRENDERSTATE_STIPPLEPATTERN00",
+ "D3DRENDERSTATE_STIPPLEPATTERN01",
+ "D3DRENDERSTATE_STIPPLEPATTERN02",
+ "D3DRENDERSTATE_STIPPLEPATTERN03",
+ "D3DRENDERSTATE_STIPPLEPATTERN04",
+ "D3DRENDERSTATE_STIPPLEPATTERN05",
+ "D3DRENDERSTATE_STIPPLEPATTERN06",
+ "D3DRENDERSTATE_STIPPLEPATTERN07",
+ "D3DRENDERSTATE_STIPPLEPATTERN08",
+ "D3DRENDERSTATE_STIPPLEPATTERN09",
+ "D3DRENDERSTATE_STIPPLEPATTERN10",
+ "D3DRENDERSTATE_STIPPLEPATTERN11",
+ "D3DRENDERSTATE_STIPPLEPATTERN12",
+ "D3DRENDERSTATE_STIPPLEPATTERN13",
+ "D3DRENDERSTATE_STIPPLEPATTERN14",
+ "D3DRENDERSTATE_STIPPLEPATTERN15",
+ "D3DRENDERSTATE_STIPPLEPATTERN16",
+ "D3DRENDERSTATE_STIPPLEPATTERN17",
+ "D3DRENDERSTATE_STIPPLEPATTERN18",
+ "D3DRENDERSTATE_STIPPLEPATTERN19",
+ "D3DRENDERSTATE_STIPPLEPATTERN20",
+ "D3DRENDERSTATE_STIPPLEPATTERN21",
+ "D3DRENDERSTATE_STIPPLEPATTERN22",
+ "D3DRENDERSTATE_STIPPLEPATTERN23",
+ "D3DRENDERSTATE_STIPPLEPATTERN24",
+ "D3DRENDERSTATE_STIPPLEPATTERN25",
+ "D3DRENDERSTATE_STIPPLEPATTERN26",
+ "D3DRENDERSTATE_STIPPLEPATTERN27",
+ "D3DRENDERSTATE_STIPPLEPATTERN28",
+ "D3DRENDERSTATE_STIPPLEPATTERN29",
+ "D3DRENDERSTATE_STIPPLEPATTERN30",
+ "D3DRENDERSTATE_STIPPLEPATTERN31",
+ "D3DRENDERSTATE_FOGTABLESTART",
+ "D3DRENDERSTATE_FOGTABLEEND",
+ "D3DRENDERSTATE_FOGTABLEDENSITY",
+])
+
+D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
+ "D3DMCS_MATERIAL",
+ "D3DMCS_COLOR1",
+ "D3DMCS_COLOR2",
+])
+
+D3DWRAP = Flags(DWORD, [
+ "D3DWRAP_U",
+ "D3DWRAP_V",
+ "D3DWRAPCOORD_0",
+ "D3DWRAPCOORD_1",
+ "D3DWRAPCOORD_2",
+ "D3DWRAPCOORD_3",
+])
+
+D3DSTATE = Struct("D3DSTATE", [
+ (D3DTRANSFORMSTATETYPE, "dtstTransformStateType"),
+ (D3DLIGHTSTATETYPE, "dlstLightStateType"),
+ (D3DRENDERSTATETYPE, "drstRenderStateType"),
+ (DWORD, "dwArg[1]"),
+ (D3DVALUE, "dvArg[1]"),
+])
+
+D3DMATRIXLOAD = Struct("D3DMATRIXLOAD", [
+ (D3DMATRIXHANDLE, "hDestMatrix"),
+ (D3DMATRIXHANDLE, "hSrcMatrix"),
+])
+
+D3DMATRIXMULTIPLY = Struct("D3DMATRIXMULTIPLY", [
+ (D3DMATRIXHANDLE, "hDestMatrix"),
+ (D3DMATRIXHANDLE, "hSrcMatrix1"),
+ (D3DMATRIXHANDLE, "hSrcMatrix2"),
+])
+
+D3DPROCESSVERTICES = Struct("D3DPROCESSVERTICES", [
+ (DWORD, "dwFlags"),
+ (WORD, "wStart"),
+ (WORD, "wDest"),
+ (DWORD, "dwCount"),
+ (DWORD, "dwReserved"),
+])
+
+D3DPROCESSVERTICES = Flags(DWORD, [
+ "D3DPROCESSVERTICES_TRANSFORMLIGHT",
+ "D3DPROCESSVERTICES_TRANSFORM",
+ "D3DPROCESSVERTICES_COPY",
+ "D3DPROCESSVERTICES_OPMASK",
+ "D3DPROCESSVERTICES_UPDATEEXTENTS",
+ "D3DPROCESSVERTICES_NOCOLOR",
+])
+
+D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
+ "D3DTSS_COLOROP",
+ "D3DTSS_COLORARG1",
+ "D3DTSS_COLORARG2",
+ "D3DTSS_ALPHAOP",
+ "D3DTSS_ALPHAARG1",
+ "D3DTSS_ALPHAARG2",
+ "D3DTSS_BUMPENVMAT00",
+ "D3DTSS_BUMPENVMAT01",
+ "D3DTSS_BUMPENVMAT10",
+ "D3DTSS_BUMPENVMAT11",
+ "D3DTSS_TEXCOORDINDEX",
+ "D3DTSS_ADDRESS",
+ "D3DTSS_ADDRESSU",
+ "D3DTSS_ADDRESSV",
+ "D3DTSS_BORDERCOLOR",
+ "D3DTSS_MAGFILTER",
+ "D3DTSS_MINFILTER",
+ "D3DTSS_MIPFILTER",
+ "D3DTSS_MIPMAPLODBIAS",
+ "D3DTSS_MAXMIPLEVEL",
+ "D3DTSS_MAXANISOTROPY",
+ "D3DTSS_BUMPENVLSCALE",
+ "D3DTSS_BUMPENVLOFFSET",
+ "D3DTSS_TEXTURETRANSFORMFLAGS",
+ "D3DTSS_FORCE_DWORD",
+])
+
+D3DTSS_TCI = Flags(DWORD, [
+ "D3DTSS_TCI_PASSTHRU",
+ "D3DTSS_TCI_CAMERASPACENORMAL",
+ "D3DTSS_TCI_CAMERASPACEPOSITION",
+ "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
+])
+
+D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
+ "D3DTOP_DISABLE",
+ "D3DTOP_SELECTARG1",
+ "D3DTOP_SELECTARG2",
+ "D3DTOP_MODULATE",
+ "D3DTOP_MODULATE2X",
+ "D3DTOP_MODULATE4X",
+ "D3DTOP_ADD",
+ "D3DTOP_ADDSIGNED",
+ "D3DTOP_ADDSIGNED2X",
+ "D3DTOP_SUBTRACT",
+ "D3DTOP_ADDSMOOTH",
+ "D3DTOP_BLENDDIFFUSEALPHA",
+ "D3DTOP_BLENDTEXTUREALPHA",
+ "D3DTOP_BLENDFACTORALPHA",
+ "D3DTOP_BLENDTEXTUREALPHAPM",
+ "D3DTOP_BLENDCURRENTALPHA",
+ "D3DTOP_PREMODULATE",
+ "D3DTOP_MODULATEALPHA_ADDCOLOR",
+ "D3DTOP_MODULATECOLOR_ADDALPHA",
+ "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
+ "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
+ "D3DTOP_BUMPENVMAP",
+ "D3DTOP_BUMPENVMAPLUMINANCE",
+ "D3DTOP_DOTPRODUCT3",
+])
+
+D3DTA = Flags(DWORD, [
+ "D3DTA_SELECTMASK",
+ "D3DTA_DIFFUSE",
+ "D3DTA_CURRENT",
+ "D3DTA_TEXTURE",
+ "D3DTA_TFACTOR",
+ "D3DTA_SPECULAR",
+ "D3DTA_COMPLEMENT",
+ "D3DTA_ALPHAREPLICATE",
+])
+
+D3DTEXTUREMAGFILTER = Enum("D3DTEXTUREMAGFILTER", [
+ "D3DTFG_POINT",
+ "D3DTFG_LINEAR",
+ "D3DTFG_FLATCUBIC",
+ "D3DTFG_GAUSSIANCUBIC",
+ "D3DTFG_ANISOTROPIC",
+ "D3DTFG_FORCE_DWORD",
+])
+
+D3DTEXTUREMINFILTER = Enum("D3DTEXTUREMINFILTER", [
+ "D3DTFN_POINT",
+ "D3DTFN_LINEAR",
+ "D3DTFN_ANISOTROPIC",
+ "D3DTFN_FORCE_DWORD",
+])
+
+D3DTEXTUREMIPFILTER = Enum("D3DTEXTUREMIPFILTER", [
+ "D3DTFP_NONE",
+ "D3DTFP_POINT",
+ "D3DTFP_LINEAR",
+ "D3DTFP_FORCE_DWORD",
+])
+
+D3DTRIFLAG = Flags(DWORD, [
+ "D3DTRIFLAG_START",
+ "D3DTRIFLAG_STARTFLAT(len)",
+ "D3DTRIFLAG_ODD",
+ "D3DTRIFLAG_EVEN",
+ "D3DTRIFLAG_EDGEENABLETRIANGLE",
+ "D3DTRIFLAG_EDGEENABLE1",
+ "D3DTRIFLAG_EDGEENABLE2",
+ "D3DTRIFLAG_EDGEENABLE3",
+])
+
+D3DTRIANGLE = Struct("D3DTRIANGLE", [
+ (WORD, "v1"),
+ (WORD, "v2"),
+ (WORD, "v3"),
+ (WORD, "wFlags"),
+])
+
+D3DLINE = Struct("D3DLINE", [
+ (WORD, "v1"),
+ (WORD, "v2"),
+])
+
+D3DSPAN = Struct("D3DSPAN", [
+ (WORD, "wCount"),
+ (WORD, "wFirst"),
+])
+
+D3DPOINT = Struct("D3DPOINT", [
+ (WORD, "wCount"),
+ (WORD, "wFirst"),
+])
+
+D3DBRANCH = Struct("D3DBRANCH", [
+ (DWORD, "dwMask"),
+ (DWORD, "dwValue"),
+ (BOOL, "bNegate"),
+ (DWORD, "dwOffset"),
+])
+
+D3DSTATUS = Struct("D3DSTATUS", [
+ (DWORD, "dwFlags"),
+ (DWORD, "dwStatus"),
+ (D3DRECT, "drExtent"),
+])
+
+D3DSETSTATUS = Flags(DWORD, [
+ "D3DSETSTATUS_STATUS",
+ "D3DSETSTATUS_EXTENTS",
+ "D3DSETSTATUS_ALL",
+])
+
+D3DCLIPSTATUS = Struct("D3DCLIPSTATUS", [
+ (DWORD, "dwFlags"),
+ (DWORD, "dwStatus"),
+ (Float, "minx"),
+ (Float, "maxx"),
+ (Float, "miny"),
+ (Float, "maxy"),
+ (Float, "minz"),
+ (Float, "maxz"),
+])
+LPD3DCLIPSTATUS = Pointer(D3DCLIPSTATUS)
+
+D3DCLIPSTATUS = Flags(DWORD, [
+ "D3DCLIPSTATUS_STATUS",
+ "D3DCLIPSTATUS_EXTENTS2",
+ "D3DCLIPSTATUS_EXTENTS3",
+])
+
+D3DSTATS = Struct("D3DSTATS", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwTrianglesDrawn"),
+ (DWORD, "dwLinesDrawn"),
+ (DWORD, "dwPointsDrawn"),
+ (DWORD, "dwSpansDrawn"),
+ (DWORD, "dwVerticesProcessed"),
+])
+LPD3DSTATS = Pointer(D3DSTATS)
+
+D3DEXECUTE = Flags(DWORD, [
+ "D3DEXECUTE_CLIPPED",
+ "D3DEXECUTE_UNCLIPPED",
+])
+
+D3DEXECUTEDATA = Struct("D3DEXECUTEDATA", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwVertexOffset"),
+ (DWORD, "dwVertexCount"),
+ (DWORD, "dwInstructionOffset"),
+ (DWORD, "dwInstructionLength"),
+ (DWORD, "dwHVertexOffset"),
+ (D3DSTATUS, "dsStatus"),
+])
+LPD3DEXECUTEDATA = Pointer(D3DEXECUTEDATA)
+
+D3DPAL = Flags(DWORD, [
+ "D3DPAL_FREE",
+ "D3DPAL_READONLY",
+ "D3DPAL_RESERVED",
+])
+
+D3DVERTEXBUFFERDESC = Struct("D3DVERTEXBUFFERDESC", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwFVF"),
+ (DWORD, "dwNumVertices"),
+])
+LPD3DVERTEXBUFFERDESC = Pointer(D3DVERTEXBUFFERDESC)
+
+D3DVBCAPS = Flags(DWORD, [
+ "D3DVBCAPS_SYSTEMMEMORY",
+ "D3DVBCAPS_WRITEONLY",
+ "D3DVBCAPS_OPTIMIZED",
+ "D3DVBCAPS_DONOTCLIP",
+])
+
+D3DVOP = Flags(DWORD, [
+ "D3DVOP_LIGHT",
+ "D3DVOP_TRANSFORM",
+ "D3DVOP_CLIP",
+ "D3DVOP_EXTENTS",
+])
+
+D3DPV = Flags(DWORD, [
+ "D3DPV_DONOTCOPYDATA",
+])
+
+D3DFVF = Flags(DWORD, [
+ "D3DFVF_RESERVED0",
+ "D3DFVF_POSITION_MASK",
+ "D3DFVF_XYZ",
+ "D3DFVF_XYZRHW",
+ "D3DFVF_XYZB1",
+ "D3DFVF_XYZB2",
+ "D3DFVF_XYZB3",
+ "D3DFVF_XYZB4",
+ "D3DFVF_XYZB5",
+ "D3DFVF_NORMAL",
+ "D3DFVF_RESERVED1",
+ "D3DFVF_DIFFUSE",
+ "D3DFVF_SPECULAR",
+ "D3DFVF_TEXCOUNT_MASK",
+ "D3DFVF_TEXCOUNT_SHIFT",
+ "D3DFVF_TEX0",
+ "D3DFVF_TEX1",
+ "D3DFVF_TEX2",
+ "D3DFVF_TEX3",
+ "D3DFVF_TEX4",
+ "D3DFVF_TEX5",
+ "D3DFVF_TEX6",
+ "D3DFVF_TEX7",
+ "D3DFVF_TEX8",
+ "D3DFVF_RESERVED2",
+ "D3DFVF_RESERVED1",
+ "D3DFVF_VERTEX",
+ "D3DFVF_LVERTEX",
+ "D3DFVF_TLVERTEX",
+ "D3DFVF_TEXCOORDSIZE1(0)",
+ "D3DFVF_TEXCOORDSIZE1(1)",
+ "D3DFVF_TEXCOORDSIZE2(0)",
+ "D3DFVF_TEXCOORDSIZE2(1)",
+ "D3DFVF_TEXCOORDSIZE3(0)",
+ "D3DFVF_TEXCOORDSIZE3(1)",
+ "D3DFVF_TEXCOORDSIZE4(0)",
+ "D3DFVF_TEXCOORDSIZE4(1)",
+])
+
+D3DDP_PTRSTRIDE = Struct("D3DDP_PTRSTRIDE", [
+ (LPVOID, "lpvData"),
+ (DWORD, "dwStride"),
+])
+
+D3DDRAWPRIMITIVESTRIDEDDATA = Struct("D3DDRAWPRIMITIVESTRIDEDDATA", [
+ (D3DDP_PTRSTRIDE, "position"),
+ (D3DDP_PTRSTRIDE, "normal"),
+ (D3DDP_PTRSTRIDE, "diffuse"),
+ (D3DDP_PTRSTRIDE, "specular"),
+ (D3DDP_PTRSTRIDE, "textureCoords[D3DDP_MAXTEXCOORD]"),
+])
+LPD3DDRAWPRIMITIVESTRIDEDDATA = Pointer(D3DDRAWPRIMITIVESTRIDEDDATA)
+
+D3DVIS = Flags(DWORD, [
+ "D3DVIS_INSIDE_FRUSTUM",
+ "D3DVIS_INTERSECT_FRUSTUM",
+ "D3DVIS_OUTSIDE_FRUSTUM",
+ "D3DVIS_INSIDE_LEFT",
+ "D3DVIS_INTERSECT_LEFT",
+ "D3DVIS_OUTSIDE_LEFT",
+ "D3DVIS_INSIDE_RIGHT",
+ "D3DVIS_INTERSECT_RIGHT",
+ "D3DVIS_OUTSIDE_RIGHT",
+ "D3DVIS_INSIDE_TOP",
+ "D3DVIS_INTERSECT_TOP",
+ "D3DVIS_OUTSIDE_TOP",
+ "D3DVIS_INSIDE_BOTTOM",
+ "D3DVIS_INTERSECT_BOTTOM",
+ "D3DVIS_OUTSIDE_BOTTOM",
+ "D3DVIS_INSIDE_NEAR",
+ "D3DVIS_INTERSECT_NEAR",
+ "D3DVIS_OUTSIDE_NEAR",
+ "D3DVIS_INSIDE_FAR",
+ "D3DVIS_INTERSECT_FAR",
+ "D3DVIS_OUTSIDE_FAR",
+ "D3DVIS_MASK_FRUSTUM",
+ "D3DVIS_MASK_LEFT",
+ "D3DVIS_MASK_RIGHT",
+ "D3DVIS_MASK_TOP",
+ "D3DVIS_MASK_BOTTOM",
+ "D3DVIS_MASK_NEAR",
+ "D3DVIS_MASK_FAR",
+])
+
+D3DDEVINFOID = Flags(DWORD, [
+ "D3DDEVINFOID_TEXTUREMANAGER",
+ "D3DDEVINFOID_D3DTEXTUREMANAGER",
+ "D3DDEVINFOID_TEXTURING",
+])
+
+D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
+ "D3DSBT_ALL",
+ "D3DSBT_PIXELSTATE",
+ "D3DSBT_VERTEXSTATE",
+ "D3DSBT_FORCE_DWORD",
+])
+
+D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
+ "D3DVBLEND_DISABLE",
+ "D3DVBLEND_1WEIGHT",
+ "D3DVBLEND_2WEIGHTS",
+ "D3DVBLEND_3WEIGHTS",
+])
+
+D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
+ "D3DTTFF_DISABLE",
+ "D3DTTFF_COUNT1",
+ "D3DTTFF_COUNT2",
+ "D3DTTFF_COUNT3",
+ "D3DTTFF_COUNT4",
+ "D3DTTFF_PROJECTED",
+ "D3DTTFF_FORCE_DWORD",
+])
--- /dev/null
+EXPORTS
+ DirectDrawCreate
+ DirectDrawCreateClipper
+ DirectDrawCreateEx
+ DirectDrawEnumerateA
+ DirectDrawEnumerateW
+ DirectDrawEnumerateExA
+ DirectDrawEnumerateExW
--- /dev/null
+#############################################################################
+#
+# Copyright 2008 Tungsten Graphics, Inc.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#############################################################################
+
+"""ddraw.h"""
+
+from windows import *
+
+IDirectDraw = Interface("IDirectDraw", IUnknown)
+IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
+IDirectDraw4 = Interface("IDirectDraw4", IUnknown)
+IDirectDraw7 = Interface("IDirectDraw7", IUnknown)
+IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown)
+IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown)
+IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown)
+IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown)
+IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown)
+IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown)
+IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
+IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
+IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
+
+LPDIRECTDRAW = Pointer(IDirectDraw)
+LPDIRECTDRAW2 = Pointer(IDirectDraw2)
+LPDIRECTDRAW4 = Pointer(IDirectDraw4)
+LPDIRECTDRAW7 = Pointer(IDirectDraw7)
+LPDIRECTDRAWSURFACE = Pointer(IDirectDrawSurface)
+LPDIRECTDRAWSURFACE2 = Pointer(IDirectDrawSurface2)
+LPDIRECTDRAWSURFACE3 = Pointer(IDirectDrawSurface3)
+LPDIRECTDRAWSURFACE4 = Pointer(IDirectDrawSurface4)
+LPDIRECTDRAWSURFACE7 = Pointer(IDirectDrawSurface7)
+LPDIRECTDRAWPALETTE = Pointer(IDirectDrawPalette)
+LPDIRECTDRAWCLIPPER = Pointer(IDirectDrawClipper)
+LPDIRECTDRAWCOLORCONTROL = Pointer(IDirectDrawColorControl)
+LPDIRECTDRAWGAMMACONTROL = Pointer(IDirectDrawGammaControl)
+
+DDARGB = Struct("DDARGB", [
+ (BYTE, "blue"),
+ (BYTE, "green"),
+ (BYTE, "red"),
+ (BYTE, "alpha"),
+])
+
+LPDDARGB = Pointer(DDARGB)
+
+DDRGBA = Struct("DDRGBA", [
+ (BYTE, "red"),
+ (BYTE, "green"),
+ (BYTE, "blue"),
+ (BYTE, "alpha"),
+])
+LPDDRGBA = Pointer(DDRGBA)
+
+DDCOLORKEY = Struct("DDCOLORKEY", [
+ (DWORD, "dwColorSpaceLowValue"),
+ (DWORD, "dwColorSpaceHighValue"),
+])
+LPDDCOLORKEY = Pointer(DDCOLORKEY)
+
+DDBLTFX = Struct("DDBLTFX", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwDDFX"),
+ (DWORD, "dwROP"),
+ (DWORD, "dwDDROP"),
+ (DWORD, "dwRotationAngle"),
+ (DWORD, "dwZBufferOpCode"),
+ (DWORD, "dwZBufferLow"),
+ (DWORD, "dwZBufferHigh"),
+ (DWORD, "dwZBufferBaseDest"),
+ (DWORD, "dwZDestConstBitDepth"),
+ (DWORD, "dwZDestConst"),
+ (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
+ (DWORD, "dwZSrcConstBitDepth"),
+ (DWORD, "dwZSrcConst"),
+ (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
+ (DWORD, "dwAlphaEdgeBlendBitDepth"),
+ (DWORD, "dwAlphaEdgeBlend"),
+ (DWORD, "dwReserved"),
+ (DWORD, "dwAlphaDestConstBitDepth"),
+ (DWORD, "dwAlphaDestConst"),
+ (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
+ (DWORD, "dwAlphaSrcConstBitDepth"),
+ (DWORD, "dwAlphaSrcConst"),
+ (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
+ (DWORD, "dwFillColor"),
+ (DWORD, "dwFillDepth"),
+ (DWORD, "dwFillPixel"),
+ (LPDIRECTDRAWSURFACE, "lpDDSPattern"),
+ (DDCOLORKEY, "ddckDestColorkey"),
+ (DDCOLORKEY, "ddckSrcColorkey"),
+])
+LPDDBLTFX = Pointer(DDBLTFX)
+
+DDSCAPS = Struct("DDSCAPS", [
+ (DWORD, "dwCaps"),
+])
+LPDDSCAPS = Pointer(DDSCAPS)
+
+DDOSCAPS = Struct("DDOSCAPS", [
+ (DWORD, "dwCaps"),
+])
+LPDDOSCAPS = Pointer(DDOSCAPS)
+
+DDSCAPSEX = Struct("DDSCAPSEX", [
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCaps3"),
+ (DWORD, "dwCaps4"),
+])
+
+DDSCAPS2 = Struct("DDSCAPS2", [
+ (DWORD, "dwCaps"),
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCaps3"),
+ (DWORD, "dwCaps4"),
+])
+LPDDSCAPS2 = Pointer(DDSCAPS2)
+
+DDCAPS_DX1 = Struct("DDCAPS_DX1", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCKeyCaps"),
+ (DWORD, "dwFXCaps"),
+ (DWORD, "dwFXAlphaCaps"),
+ (DWORD, "dwPalCaps"),
+ (DWORD, "dwSVCaps"),
+ (DWORD, "dwAlphaBltConstBitDepths"),
+ (DWORD, "dwAlphaBltPixelBitDepths"),
+ (DWORD, "dwAlphaBltSurfaceBitDepths"),
+ (DWORD, "dwAlphaOverlayConstBitDepths"),
+ (DWORD, "dwAlphaOverlayPixelBitDepths"),
+ (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
+ (DWORD, "dwZBufferBitDepths"),
+ (DWORD, "dwVidMemTotal"),
+ (DWORD, "dwVidMemFree"),
+ (DWORD, "dwMaxVisibleOverlays"),
+ (DWORD, "dwCurrVisibleOverlays"),
+ (DWORD, "dwNumFourCCCodes"),
+ (DWORD, "dwAlignBoundarySrc"),
+ (DWORD, "dwAlignSizeSrc"),
+ (DWORD, "dwAlignBoundaryDest"),
+ (DWORD, "dwAlignSizeDest"),
+ (DWORD, "dwAlignStrideAlign"),
+ (DWORD, "dwRops[DD_ROP_SPACE]"),
+ (DDSCAPS, "ddsCaps"),
+ (DWORD, "dwMinOverlayStretch"),
+ (DWORD, "dwMaxOverlayStretch"),
+ (DWORD, "dwMinLiveVideoStretch"),
+ (DWORD, "dwMaxLiveVideoStretch"),
+ (DWORD, "dwMinHwCodecStretch"),
+ (DWORD, "dwMaxHwCodecStretch"),
+ (DWORD, "dwReserved1"),
+ (DWORD, "dwReserved2"),
+ (DWORD, "dwReserved3"),
+])
+LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
+
+DDCAPS_DX3 = Struct("DDCAPS_DX3", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCKeyCaps"),
+ (DWORD, "dwFXCaps"),
+ (DWORD, "dwFXAlphaCaps"),
+ (DWORD, "dwPalCaps"),
+ (DWORD, "dwSVCaps"),
+ (DWORD, "dwAlphaBltConstBitDepths"),
+ (DWORD, "dwAlphaBltPixelBitDepths"),
+ (DWORD, "dwAlphaBltSurfaceBitDepths"),
+ (DWORD, "dwAlphaOverlayConstBitDepths"),
+ (DWORD, "dwAlphaOverlayPixelBitDepths"),
+ (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
+ (DWORD, "dwZBufferBitDepths"),
+ (DWORD, "dwVidMemTotal"),
+ (DWORD, "dwVidMemFree"),
+ (DWORD, "dwMaxVisibleOverlays"),
+ (DWORD, "dwCurrVisibleOverlays"),
+ (DWORD, "dwNumFourCCCodes"),
+ (DWORD, "dwAlignBoundarySrc"),
+ (DWORD, "dwAlignSizeSrc"),
+ (DWORD, "dwAlignBoundaryDest"),
+ (DWORD, "dwAlignSizeDest"),
+ (DWORD, "dwAlignStrideAlign"),
+ (DWORD, "dwRops[DD_ROP_SPACE]"),
+ (DDSCAPS, "ddsCaps"),
+ (DWORD, "dwMinOverlayStretch"),
+ (DWORD, "dwMaxOverlayStretch"),
+ (DWORD, "dwMinLiveVideoStretch"),
+ (DWORD, "dwMaxLiveVideoStretch"),
+ (DWORD, "dwMinHwCodecStretch"),
+ (DWORD, "dwMaxHwCodecStretch"),
+ (DWORD, "dwReserved1"),
+ (DWORD, "dwReserved2"),
+ (DWORD, "dwReserved3"),
+ (DWORD, "dwSVBCaps"),
+ (DWORD, "dwSVBCKeyCaps"),
+ (DWORD, "dwSVBFXCaps"),
+ (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwVSBCaps"),
+ (DWORD, "dwVSBCKeyCaps"),
+ (DWORD, "dwVSBFXCaps"),
+ (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwSSBCaps"),
+ (DWORD, "dwSSBCKeyCaps"),
+ (DWORD, "dwSSBFXCaps"),
+ (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwReserved4"),
+ (DWORD, "dwReserved5"),
+ (DWORD, "dwReserved6"),
+])
+LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
+
+DDCAPS_DX5 = Struct("DDCAPS_DX5", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCKeyCaps"),
+ (DWORD, "dwFXCaps"),
+ (DWORD, "dwFXAlphaCaps"),
+ (DWORD, "dwPalCaps"),
+ (DWORD, "dwSVCaps"),
+ (DWORD, "dwAlphaBltConstBitDepths"),
+ (DWORD, "dwAlphaBltPixelBitDepths"),
+ (DWORD, "dwAlphaBltSurfaceBitDepths"),
+ (DWORD, "dwAlphaOverlayConstBitDepths"),
+ (DWORD, "dwAlphaOverlayPixelBitDepths"),
+ (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
+ (DWORD, "dwZBufferBitDepths"),
+ (DWORD, "dwVidMemTotal"),
+ (DWORD, "dwVidMemFree"),
+ (DWORD, "dwMaxVisibleOverlays"),
+ (DWORD, "dwCurrVisibleOverlays"),
+ (DWORD, "dwNumFourCCCodes"),
+ (DWORD, "dwAlignBoundarySrc"),
+ (DWORD, "dwAlignSizeSrc"),
+ (DWORD, "dwAlignBoundaryDest"),
+ (DWORD, "dwAlignSizeDest"),
+ (DWORD, "dwAlignStrideAlign"),
+ (DWORD, "dwRops[DD_ROP_SPACE]"),
+ (DDSCAPS, "ddsCaps"),
+ (DWORD, "dwMinOverlayStretch"),
+ (DWORD, "dwMaxOverlayStretch"),
+ (DWORD, "dwMinLiveVideoStretch"),
+ (DWORD, "dwMaxLiveVideoStretch"),
+ (DWORD, "dwMinHwCodecStretch"),
+ (DWORD, "dwMaxHwCodecStretch"),
+ (DWORD, "dwReserved1"),
+ (DWORD, "dwReserved2"),
+ (DWORD, "dwReserved3"),
+ (DWORD, "dwSVBCaps"),
+ (DWORD, "dwSVBCKeyCaps"),
+ (DWORD, "dwSVBFXCaps"),
+ (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwVSBCaps"),
+ (DWORD, "dwVSBCKeyCaps"),
+ (DWORD, "dwVSBFXCaps"),
+ (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwSSBCaps"),
+ (DWORD, "dwSSBCKeyCaps"),
+ (DWORD, "dwSSBFXCaps"),
+ (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwMaxVideoPorts"),
+ (DWORD, "dwCurrVideoPorts"),
+ (DWORD, "dwSVBCaps2"),
+ (DWORD, "dwNLVBCaps"),
+ (DWORD, "dwNLVBCaps2"),
+ (DWORD, "dwNLVBCKeyCaps"),
+ (DWORD, "dwNLVBFXCaps"),
+ (DWORD, "dwNLVBRops[DD_ROP_SPACE]"),
+])
+LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
+
+DDCAPS_DX6 = Struct("DDCAPS_DX6", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCKeyCaps"),
+ (DWORD, "dwFXCaps"),
+ (DWORD, "dwFXAlphaCaps"),
+ (DWORD, "dwPalCaps"),
+ (DWORD, "dwSVCaps"),
+ (DWORD, "dwAlphaBltConstBitDepths"),
+ (DWORD, "dwAlphaBltPixelBitDepths"),
+ (DWORD, "dwAlphaBltSurfaceBitDepths"),
+ (DWORD, "dwAlphaOverlayConstBitDepths"),
+ (DWORD, "dwAlphaOverlayPixelBitDepths"),
+ (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
+ (DWORD, "dwZBufferBitDepths"),
+ (DWORD, "dwVidMemTotal"),
+ (DWORD, "dwVidMemFree"),
+ (DWORD, "dwMaxVisibleOverlays"),
+ (DWORD, "dwCurrVisibleOverlays"),
+ (DWORD, "dwNumFourCCCodes"),
+ (DWORD, "dwAlignBoundarySrc"),
+ (DWORD, "dwAlignSizeSrc"),
+ (DWORD, "dwAlignBoundaryDest"),
+ (DWORD, "dwAlignSizeDest"),
+ (DWORD, "dwAlignStrideAlign"),
+ (DWORD, "dwRops[DD_ROP_SPACE]"),
+ (DDSCAPS, "ddsOldCaps"),
+ (DWORD, "dwMinOverlayStretch"),
+ (DWORD, "dwMaxOverlayStretch"),
+ (DWORD, "dwMinLiveVideoStretch"),
+ (DWORD, "dwMaxLiveVideoStretch"),
+ (DWORD, "dwMinHwCodecStretch"),
+ (DWORD, "dwMaxHwCodecStretch"),
+ (DWORD, "dwReserved1"),
+ (DWORD, "dwReserved2"),
+ (DWORD, "dwReserved3"),
+ (DWORD, "dwSVBCaps"),
+ (DWORD, "dwSVBCKeyCaps"),
+ (DWORD, "dwSVBFXCaps"),
+ (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwVSBCaps"),
+ (DWORD, "dwVSBCKeyCaps"),
+ (DWORD, "dwVSBFXCaps"),
+ (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwSSBCaps"),
+ (DWORD, "dwSSBCKeyCaps"),
+ (DWORD, "dwSSBFXCaps"),
+ (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwMaxVideoPorts"),
+ (DWORD, "dwCurrVideoPorts"),
+ (DWORD, "dwSVBCaps2"),
+ (DWORD, "dwNLVBCaps"),
+ (DWORD, "dwNLVBCaps2"),
+ (DWORD, "dwNLVBCKeyCaps"),
+ (DWORD, "dwNLVBFXCaps"),
+ (DWORD, "dwNLVBRops[DD_ROP_SPACE]"),
+ (DDSCAPS2, "ddsCaps"),
+])
+LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
+
+DDCAPS_DX7 = Struct("DDCAPS_DX7", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwCaps"),
+ (DWORD, "dwCaps2"),
+ (DWORD, "dwCKeyCaps"),
+ (DWORD, "dwFXCaps"),
+ (DWORD, "dwFXAlphaCaps"),
+ (DWORD, "dwPalCaps"),
+ (DWORD, "dwSVCaps"),
+ (DWORD, "dwAlphaBltConstBitDepths"),
+ (DWORD, "dwAlphaBltPixelBitDepths"),
+ (DWORD, "dwAlphaBltSurfaceBitDepths"),
+ (DWORD, "dwAlphaOverlayConstBitDepths"),
+ (DWORD, "dwAlphaOverlayPixelBitDepths"),
+ (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
+ (DWORD, "dwZBufferBitDepths"),
+ (DWORD, "dwVidMemTotal"),
+ (DWORD, "dwVidMemFree"),
+ (DWORD, "dwMaxVisibleOverlays"),
+ (DWORD, "dwCurrVisibleOverlays"),
+ (DWORD, "dwNumFourCCCodes"),
+ (DWORD, "dwAlignBoundarySrc"),
+ (DWORD, "dwAlignSizeSrc"),
+ (DWORD, "dwAlignBoundaryDest"),
+ (DWORD, "dwAlignSizeDest"),
+ (DWORD, "dwAlignStrideAlign"),
+ (DWORD, "dwRops[DD_ROP_SPACE]"),
+ (DDSCAPS, "ddsOldCaps"),
+ (DWORD, "dwMinOverlayStretch"),
+ (DWORD, "dwMaxOverlayStretch"),
+ (DWORD, "dwMinLiveVideoStretch"),
+ (DWORD, "dwMaxLiveVideoStretch"),
+ (DWORD, "dwMinHwCodecStretch"),
+ (DWORD, "dwMaxHwCodecStretch"),
+ (DWORD, "dwReserved1"),
+ (DWORD, "dwReserved2"),
+ (DWORD, "dwReserved3"),
+ (DWORD, "dwSVBCaps"),
+ (DWORD, "dwSVBCKeyCaps"),
+ (DWORD, "dwSVBFXCaps"),
+ (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwVSBCaps"),
+ (DWORD, "dwVSBCKeyCaps"),
+ (DWORD, "dwVSBFXCaps"),
+ (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwSSBCaps"),
+ (DWORD, "dwSSBCKeyCaps"),
+ (DWORD, "dwSSBFXCaps"),
+ (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
+ (DWORD, "dwMaxVideoPorts"),
+ (DWORD, "dwCurrVideoPorts"),
+ (DWORD, "dwSVBCaps2"),
+ (DWORD, "dwNLVBCaps"),
+ (DWORD, "dwNLVBCaps2"),
+ (DWORD, "dwNLVBCKeyCaps"),
+ (DWORD, "dwNLVBFXCaps"),
+ (DWORD, "dwNLVBRops[DD_ROP_SPACE]"),
+ (DDSCAPS2, "ddsCaps"),
+])
+LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
+DDCAPS = DDCAPS_DX7
+LPDDCAPS = Pointer(DDCAPS)
+
+DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (DWORD, "dwFourCC"),
+ (DWORD, "dwRGBBitCount"),
+ (DWORD, "dwYUVBitCount"),
+ (DWORD, "dwZBufferBitDepth"),
+ (DWORD, "dwAlphaBitDepth"),
+ (DWORD, "dwLuminanceBitCount"),
+ (DWORD, "dwBumpBitCount"),
+ (DWORD, "dwPrivateFormatBitCount"),
+ (DWORD, "dwRBitMask"),
+ (DWORD, "dwYBitMask"),
+ (DWORD, "dwStencilBitDepth"),
+ (DWORD, "dwLuminanceBitMask"),
+ (DWORD, "dwBumpDuBitMask"),
+ (DWORD, "dwOperations"),
+ (DWORD, "dwGBitMask"),
+ (DWORD, "dwUBitMask"),
+ (DWORD, "dwZBitMask"),
+ (DWORD, "dwBumpDvBitMask"),
+ (WORD, "MultiSampleCaps.wFlipMSTypes"),
+ (WORD, "MultiSampleCaps.wBltMSTypes"),
+ (DWORD, "dwBBitMask"),
+ (DWORD, "dwVBitMask"),
+ (DWORD, "dwStencilBitMask"),
+ (DWORD, "dwBumpLuminanceBitMask"),
+ (DWORD, "dwRGBAlphaBitMask"),
+ (DWORD, "dwYUVAlphaBitMask"),
+ (DWORD, "dwLuminanceAlphaBitMask"),
+ (DWORD, "dwRGBZBitMask"),
+ (DWORD, "dwYUVZBitMask"),
+])
+LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
+
+DDOVERLAYFX = Struct("DDOVERLAYFX", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwAlphaEdgeBlendBitDepth"),
+ (DWORD, "dwAlphaEdgeBlend"),
+ (DWORD, "dwReserved"),
+ (DWORD, "dwAlphaDestConstBitDepth"),
+ (DWORD, "dwAlphaDestConst"),
+ (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
+ (DWORD, "dwAlphaSrcConstBitDepth"),
+ (DWORD, "dwAlphaSrcConst"),
+ (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
+ (DDCOLORKEY, "dckDestColorkey"),
+ (DDCOLORKEY, "dckSrcColorkey"),
+ (DWORD, "dwDDFX"),
+ (DWORD, "dwFlags"),
+])
+LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
+
+DDBLTBATCH = Struct("DDBLTBATCH", [
+ (LPRECT, "lprDest"),
+ (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
+ (LPRECT, "lprSrc"),
+ (DWORD, "dwFlags"),
+ (LPDDBLTFX, "lpDDBltFx"),
+])
+LPDDBLTBATCH = Pointer(DDBLTBATCH)
+
+DDGAMMARAMP = Struct("DDGAMMARAMP", [
+ (WORD, "red[256]"),
+ (WORD, "green[256]"),
+ (WORD, "blue[256]"),
+])
+LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
+
+DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
+ (String, "szDriver"),
+ (String, "szDescription"),
+ (LARGE_INTEGER, "liDriverVersion"),
+ (DWORD, "dwVendorId"),
+ (DWORD, "dwDeviceId"),
+ (DWORD, "dwSubSysId"),
+ (DWORD, "dwRevision"),
+ (GUID, "guidDeviceIdentifier"),
+])
+LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
+
+DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
+ (String, "szDriver[MAX_DDDEVICEID_STRING]"),
+ (String, "szDescription[MAX_DDDEVICEID_STRING]"),
+ (LARGE_INTEGER, "liDriverVersion"),
+ (DWORD, "dwVendorId"),
+ (DWORD, "dwDeviceId"),
+ (DWORD, "dwSubSysId"),
+ (DWORD, "dwRevision"),
+ (GUID, "guidDeviceIdentifier"),
+ (DWORD, "dwWHQLLevel"),
+])
+LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
+
+LPCLIPPERCALLBACK = Pointer(Function("DWORD", "CLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")]))
+LPSURFACESTREAMINGCALLBACK = Pointer(Function("DWORD", "SURFACESTREAMINGCALLBACK", [DWORD]))
+
+DDSURFACEDESC = Struct("DDSURFACEDESC", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (DWORD, "dwHeight"),
+ (DWORD, "dwWidth"),
+ (LONG, "lPitch"),
+ (DWORD, "dwLinearSize"),
+ (DWORD, "dwBackBufferCount"),
+ (DWORD, "dwMipMapCount"),
+ (DWORD, "dwZBufferBitDepth"),
+ (DWORD, "dwRefreshRate"),
+ (DWORD, "dwAlphaBitDepth"),
+ (DWORD, "dwReserved"),
+ (LPVOID, "lpSurface"),
+ (DDCOLORKEY, "ddckCKDestOverlay"),
+ (DDCOLORKEY, "ddckCKDestBlt"),
+ (DDCOLORKEY, "ddckCKSrcOverlay"),
+ (DDCOLORKEY, "ddckCKSrcBlt"),
+ (DDPIXELFORMAT, "ddpfPixelFormat"),
+ (DDSCAPS, "ddsCaps"),
+])
+LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
+
+DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (DWORD, "dwHeight"),
+ (DWORD, "dwWidth"),
+ (LONG, "lPitch"),
+ (DWORD, "dwLinearSize"),
+ (DWORD, "dwBackBufferCount"),
+ (DWORD, "dwDepth"),
+ (DWORD, "dwMipMapCount"),
+ (DWORD, "dwRefreshRate"),
+ (DWORD, "dwSrcVBHandle"),
+ (DWORD, "dwAlphaBitDepth"),
+ (DWORD, "dwReserved"),
+ (LPVOID, "lpSurface"),
+ (DDCOLORKEY, "ddckCKDestOverlay"),
+ (DWORD, "dwEmptyFaceColor"),
+ (DDCOLORKEY, "ddckCKDestBlt"),
+ (DDCOLORKEY, "ddckCKSrcOverlay"),
+ (DDCOLORKEY, "ddckCKSrcBlt"),
+ (DDPIXELFORMAT, "ddpfPixelFormat"),
+ (DWORD, "dwFVF"),
+ (DDSCAPS2, "ddsCaps"),
+ (DWORD, "dwTextureStage"),
+])
+LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
+
+DDSD = Flags(DWORD, [
+ "DDSD_CAPS",
+ "DDSD_HEIGHT",
+ "DDSD_WIDTH",
+ "DDSD_PITCH",
+ "DDSD_BACKBUFFERCOUNT",
+ "DDSD_ZBUFFERBITDEPTH",
+ "DDSD_ALPHABITDEPTH",
+ "DDSD_LPSURFACE",
+ "DDSD_PIXELFORMAT",
+ "DDSD_CKDESTOVERLAY",
+ "DDSD_CKDESTBLT",
+ "DDSD_CKSRCOVERLAY",
+ "DDSD_CKSRCBLT",
+ "DDSD_MIPMAPCOUNT",
+ "DDSD_REFRESHRATE",
+ "DDSD_LINEARSIZE",
+ "DDSD_TEXTURESTAGE",
+ "DDSD_FVF",
+ "DDSD_SRCVBHANDLE",
+ "DDSD_DEPTH",
+ "DDSD_ALL",
+])
+
+DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (DDSCAPS2, "ddSCaps"),
+ (DDOSCAPS, "ddOSCaps"),
+ (GUID, "guid"),
+ (DWORD, "dwCompressionRatio"),
+])
+
+DDSD = Flags(DWORD, [
+ "DDOSD_GUID",
+ "DDOSD_COMPRESSION_RATIO",
+ "DDOSD_SCAPS",
+ "DDOSD_OSCAPS",
+ "DDOSD_ALL",
+])
+
+DDOSDCAPS = Flags(DWORD, [
+ "DDOSDCAPS_OPTCOMPRESSED",
+ "DDOSDCAPS_OPTREORDERED",
+ "DDOSDCAPS_MONOLITHICMIPMAP",
+ "DDOSDCAPS_VALIDSCAPS",
+ "DDOSDCAPS_VALIDOSCAPS",
+])
+
+DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
+ (DWORD, "dwSize"),
+ (DWORD, "dwFlags"),
+ (LONG, "lBrightness"),
+ (LONG, "lContrast"),
+ (LONG, "lHue"),
+ (LONG, "lSaturation"),
+ (LONG, "lSharpness"),
+ (LONG, "lGamma"),
+ (LONG, "lColorEnable"),
+ (DWORD, "dwReserved1"),
+])
+LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
+
+DDCOLOR = Flags(DWORD, [
+ "DDCOLOR_BRIGHTNESS",
+ "DDCOLOR_CONTRAST",
+ "DDCOLOR_HUE",
+ "DDCOLOR_SATURATION",
+ "DDCOLOR_SHARPNESS",
+ "DDCOLOR_GAMMA",
+ "DDCOLOR_COLORENABLE",
+])
+
+DDSCAPS = Flags(DWORD, [
+ "DDSCAPS_RESERVED1",
+ "DDSCAPS_ALPHA",
+ "DDSCAPS_BACKBUFFER",
+ "DDSCAPS_COMPLEX",
+ "DDSCAPS_FLIP",
+ "DDSCAPS_FRONTBUFFER",
+ "DDSCAPS_OFFSCREENPLAIN",
+ "DDSCAPS_OVERLAY",
+ "DDSCAPS_PALETTE",
+ "DDSCAPS_PRIMARYSURFACE",
+ "DDSCAPS_RESERVED3",
+ "DDSCAPS_PRIMARYSURFACELEFT",
+ "DDSCAPS_SYSTEMMEMORY",
+ "DDSCAPS_TEXTURE",
+ "DDSCAPS_3DDEVICE",
+ "DDSCAPS_VIDEOMEMORY",
+ "DDSCAPS_VISIBLE",
+ "DDSCAPS_WRITEONLY",
+ "DDSCAPS_ZBUFFER",
+ "DDSCAPS_OWNDC",
+ "DDSCAPS_LIVEVIDEO",
+ "DDSCAPS_HWCODEC",
+ "DDSCAPS_MODEX",
+ "DDSCAPS_MIPMAP",
+ "DDSCAPS_RESERVED2",
+ "DDSCAPS_ALLOCONLOAD",
+ "DDSCAPS_VIDEOPORT",
+ "DDSCAPS_LOCALVIDMEM",
+ "DDSCAPS_NONLOCALVIDMEM",
+ "DDSCAPS_STANDARDVGAMODE",
+ "DDSCAPS_OPTIMIZED",
+])
+DDCAPS2 = Flags(DWORD, [
+ "DDSCAPS2_RESERVED4",
+ "DDSCAPS2_HARDWAREDEINTERLACE",
+ "DDSCAPS2_HINTDYNAMIC",
+ "DDSCAPS2_HINTSTATIC",
+ "DDSCAPS2_TEXTUREMANAGE",
+ "DDSCAPS2_RESERVED1",
+ "DDSCAPS2_RESERVED2",
+ "DDSCAPS2_OPAQUE",
+ "DDSCAPS2_HINTANTIALIASING",
+ "DDSCAPS2_CUBEMAP",
+ "DDSCAPS2_CUBEMAP_ALLFACES",
+ "DDSCAPS2_CUBEMAP_POSITIVEX",
+ "DDSCAPS2_CUBEMAP_NEGATIVEX",
+ "DDSCAPS2_CUBEMAP_POSITIVEY",
+ "DDSCAPS2_CUBEMAP_NEGATIVEY",
+ "DDSCAPS2_CUBEMAP_POSITIVEZ",
+ "DDSCAPS2_CUBEMAP_NEGATIVEZ",
+ "DDSCAPS2_MIPMAPSUBLEVEL",
+ "DDSCAPS2_D3DTEXTUREMANAGE",
+ "DDSCAPS2_DONOTPERSIST",
+ "DDSCAPS2_STEREOSURFACELEFT",
+ "DDSCAPS2_VOLUME",
+ "DDSCAPS2_NOTUSERLOCKABLE",
+ "DDSCAPS2_POINTS",
+ "DDSCAPS2_RTPATCHES",
+ "DDSCAPS2_NPATCHES",
+ "DDSCAPS2_RESERVED3",
+ "DDSCAPS2_DISCARDBACKBUFFER",
+ "DDSCAPS2_ENABLEALPHACHANNEL",
+ "DDSCAPS2_EXTENDEDFORMATPRIMARY",
+ "DDSCAPS2_ADDITIONALPRIMARY",
+])
+DDSCAPS3 = Flags(DWORD, [
+ "DDSCAPS3_MULTISAMPLE_MASK",
+ "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
+ "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
+ "DDSCAPS3_RESERVED1",
+ "DDSCAPS3_RESERVED2",
+ "DDSCAPS3_LIGHTWEIGHTMIPMAP",
+ "DDSCAPS3_AUTOGENMIPMAP",
+ "DDSCAPS3_DMAP",
+ "DDSCAPS3_CREATESHAREDRESOURCE",
+ "DDSCAPS3_READONLYRESOURCE",
+ "DDSCAPS3_OPENSHAREDRESOURCE",
+])
+
+DDCAPS = Flags(DWORD, [
+ "DDCAPS_3D",
+ "DDCAPS_ALIGNBOUNDARYDEST",
+ "DDCAPS_ALIGNSIZEDEST",
+ "DDCAPS_ALIGNBOUNDARYSRC",
+ "DDCAPS_ALIGNSIZESRC",
+ "DDCAPS_ALIGNSTRIDE",
+ "DDCAPS_BLT",
+ "DDCAPS_BLTQUEUE",
+ "DDCAPS_BLTFOURCC",
+ "DDCAPS_BLTSTRETCH",
+ "DDCAPS_GDI",
+ "DDCAPS_OVERLAY",
+ "DDCAPS_OVERLAYCANTCLIP",
+ "DDCAPS_OVERLAYFOURCC",
+ "DDCAPS_OVERLAYSTRETCH",
+ "DDCAPS_PALETTE",
+ "DDCAPS_PALETTEVSYNC",
+ "DDCAPS_READSCANLINE",
+ "DDCAPS_RESERVED1",
+ "DDCAPS_VBI",
+ "DDCAPS_ZBLTS",
+ "DDCAPS_ZOVERLAYS",
+ "DDCAPS_COLORKEY",
+ "DDCAPS_ALPHA",
+ "DDCAPS_COLORKEYHWASSIST",
+ "DDCAPS_NOHARDWARE",
+ "DDCAPS_BLTCOLORFILL",
+ "DDCAPS_BANKSWITCHED",
+ "DDCAPS_BLTDEPTHFILL",
+ "DDCAPS_CANCLIP",
+ "DDCAPS_CANCLIPSTRETCHED",
+ "DDCAPS_CANBLTSYSMEM",
+])
+
+DDCAPS2 = Flags(DWORD, [
+ "DDCAPS2_CERTIFIED",
+ "DDCAPS2_NO2DDURING3DSCENE",
+ "DDCAPS2_VIDEOPORT",
+ "DDCAPS2_AUTOFLIPOVERLAY",
+ "DDCAPS2_CANBOBINTERLEAVED",
+ "DDCAPS2_CANBOBNONINTERLEAVED",
+ "DDCAPS2_COLORCONTROLOVERLAY",
+ "DDCAPS2_COLORCONTROLPRIMARY",
+ "DDCAPS2_CANDROPZ16BIT",
+ "DDCAPS2_NONLOCALVIDMEM",
+ "DDCAPS2_NONLOCALVIDMEMCAPS",
+ "DDCAPS2_NOPAGELOCKREQUIRED",
+ "DDCAPS2_WIDESURFACES",
+ "DDCAPS2_CANFLIPODDEVEN",
+ "DDCAPS2_CANBOBHARDWARE",
+ "DDCAPS2_COPYFOURCC",
+ "DDCAPS2_PRIMARYGAMMA",
+ "DDCAPS2_CANRENDERWINDOWED",
+ "DDCAPS2_CANCALIBRATEGAMMA",
+ "DDCAPS2_FLIPINTERVAL",
+ "DDCAPS2_FLIPNOVSYNC",
+ "DDCAPS2_CANMANAGETEXTURE",
+ "DDCAPS2_TEXMANINNONLOCALVIDMEM",
+ "DDCAPS2_STEREO",
+ "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
+ "DDCAPS2_RESERVED1",
+ "DDCAPS2_CANMANAGERESOURCE",
+ "DDCAPS2_DYNAMICTEXTURES",
+ "DDCAPS2_CANAUTOGENMIPMAP",
+ "DDCAPS2_CANSHARERESOURCE",
+])
+
+DDFXALPHACAPS = Flags(DWORD, [
+ "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
+ "DDFXALPHACAPS_BLTALPHAPIXELS",
+ "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
+ "DDFXALPHACAPS_BLTALPHASURFACES",
+ "DDFXALPHACAPS_BLTALPHASURFACESNEG",
+ "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
+ "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
+ "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
+ "DDFXALPHACAPS_OVERLAYALPHASURFACES",
+ "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
+])
+
+DDFXCAPS = Flags(DWORD, [
+ "DDFXCAPS_BLTARITHSTRETCHY",
+ "DDFXCAPS_BLTARITHSTRETCHYN",
+ "DDFXCAPS_BLTMIRRORLEFTRIGHT",
+ "DDFXCAPS_BLTMIRRORUPDOWN",
+ "DDFXCAPS_BLTROTATION",
+ "DDFXCAPS_BLTROTATION90",
+ "DDFXCAPS_BLTSHRINKX",
+ "DDFXCAPS_BLTSHRINKXN",
+ "DDFXCAPS_BLTSHRINKY",
+ "DDFXCAPS_BLTSHRINKYN",
+ "DDFXCAPS_BLTSTRETCHX",
+ "DDFXCAPS_BLTSTRETCHXN",
+ "DDFXCAPS_BLTSTRETCHY",
+ "DDFXCAPS_BLTSTRETCHYN",
+ "DDFXCAPS_OVERLAYARITHSTRETCHY",
+ "DDFXCAPS_OVERLAYARITHSTRETCHYN",
+ "DDFXCAPS_OVERLAYSHRINKX",
+ "DDFXCAPS_OVERLAYSHRINKXN",
+ "DDFXCAPS_OVERLAYSHRINKY",
+ "DDFXCAPS_OVERLAYSHRINKYN",
+ "DDFXCAPS_OVERLAYSTRETCHX",
+ "DDFXCAPS_OVERLAYSTRETCHXN",
+ "DDFXCAPS_OVERLAYSTRETCHY",
+ "DDFXCAPS_OVERLAYSTRETCHYN",
+ "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
+ "DDFXCAPS_OVERLAYMIRRORUPDOWN",
+ "DDFXCAPS_OVERLAYDEINTERLACE",
+ "DDFXCAPS_BLTALPHA",
+ "DDFXCAPS_BLTFILTER",
+ "DDFXCAPS_OVERLAYALPHA",
+ "DDFXCAPS_OVERLAYFILTER",
+])
+
+DDSVCAPS = Flags(DWORD, [
+ "DDSVCAPS_RESERVED1",
+ "DDSVCAPS_RESERVED2",
+ "DDSVCAPS_RESERVED3",
+ "DDSVCAPS_RESERVED4",
+ "DDSVCAPS_STEREOSEQUENTIAL",
+])
+
+DDPCAPS = Flags(DWORD, [
+ "DDPCAPS_4BIT",
+ "DDPCAPS_8BITENTRIES",
+ "DDPCAPS_8BIT",
+ "DDPCAPS_INITIALIZE",
+ "DDPCAPS_PRIMARYSURFACE",
+ "DDPCAPS_PRIMARYSURFACELEFT",
+ "DDPCAPS_ALLOW256",
+ "DDPCAPS_VSYNC",
+ "DDPCAPS_1BIT",
+ "DDPCAPS_2BIT",
+ "DDPCAPS_ALPHA",
+])
+
+DDSPD = Flags(DWORD, [
+ "DDSPD_IUNKNOWNPOINTER",
+ "DDSPD_VOLATILE",
+])
+
+DDBD = Flags(DWORD, [
+ "DDBD_1",
+ "DDBD_2",
+ "DDBD_4",
+ "DDBD_8",
+ "DDBD_16",
+ "DDBD_24",
+ "DDBD_32",
+])
+
+DDCKEY = Flags(DWORD, [
+ "DDCKEY_COLORSPACE",
+ "DDCKEY_DESTBLT",
+ "DDCKEY_DESTOVERLAY",
+ "DDCKEY_SRCBLT",
+ "DDCKEY_SRCOVERLAY",
+])
+
+DDCKEYCAPS = Flags(DWORD, [
+ "DDCKEYCAPS_DESTBLT",
+ "DDCKEYCAPS_DESTBLTCLRSPACE",
+ "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
+ "DDCKEYCAPS_DESTBLTYUV",
+ "DDCKEYCAPS_DESTOVERLAY",
+ "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
+ "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
+ "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
+ "DDCKEYCAPS_DESTOVERLAYYUV",
+ "DDCKEYCAPS_SRCBLT",
+ "DDCKEYCAPS_SRCBLTCLRSPACE",
+ "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
+ "DDCKEYCAPS_SRCBLTYUV",
+ "DDCKEYCAPS_SRCOVERLAY",
+ "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
+ "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
+ "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
+ "DDCKEYCAPS_SRCOVERLAYYUV",
+ "DDCKEYCAPS_NOCOSTOVERLAY",
+])
+
+DDPF = Flags(DWORD, [
+ "DDPF_ALPHAPIXELS",
+ "DDPF_ALPHA",
+ "DDPF_FOURCC",
+ "DDPF_PALETTEINDEXED4",
+ "DDPF_PALETTEINDEXEDTO8",
+ "DDPF_PALETTEINDEXED8",
+ "DDPF_RGB",
+ "DDPF_COMPRESSED",
+ "DDPF_RGBTOYUV",
+ "DDPF_YUV",
+ "DDPF_ZBUFFER",
+ "DDPF_PALETTEINDEXED1",
+ "DDPF_PALETTEINDEXED2",
+ "DDPF_ZPIXELS",
+ "DDPF_STENCILBUFFER",
+ "DDPF_ALPHAPREMULT",
+ "DDPF_LUMINANCE",
+ "DDPF_BUMPLUMINANCE",
+ "DDPF_BUMPDUDV",
+])
+
+DDENUMSURFACES = Flags(DWORD, [
+ "DDENUMSURFACES_ALL",
+ "DDENUMSURFACES_MATCH",
+ "DDENUMSURFACES_NOMATCH",
+ "DDENUMSURFACES_CANBECREATED",
+ "DDENUMSURFACES_DOESEXIST",
+])
+
+DDSDM = Flags(DWORD, [
+ "DDSDM_STANDARDVGAMODE",
+])
+
+DDEDM = Flags(DWORD, [
+ "DDEDM_REFRESHRATES",
+ "DDEDM_STANDARDVGAMODES",
+])
+
+DDSCL = Flags(DWORD, [
+ "DDSCL_FULLSCREEN",
+ "DDSCL_ALLOWREBOOT",
+ "DDSCL_NOWINDOWCHANGES",
+ "DDSCL_NORMAL",
+ "DDSCL_EXCLUSIVE",
+ "DDSCL_ALLOWMODEX",
+ "DDSCL_SETFOCUSWINDOW",
+ "DDSCL_SETDEVICEWINDOW",
+ "DDSCL_CREATEDEVICEWINDOW",
+ "DDSCL_MULTITHREADED",
+ "DDSCL_FPUSETUP",
+ "DDSCL_FPUPRESERVE",
+])
+
+DDBLT = Flags(DWORD, [
+ "DDBLT_ALPHADEST",
+ "DDBLT_ALPHADESTCONSTOVERRIDE",
+ "DDBLT_ALPHADESTNEG",
+ "DDBLT_ALPHADESTSURFACEOVERRIDE",
+ "DDBLT_ALPHAEDGEBLEND",
+ "DDBLT_ALPHASRC",
+ "DDBLT_ALPHASRCCONSTOVERRIDE",
+ "DDBLT_ALPHASRCNEG",
+ "DDBLT_ALPHASRCSURFACEOVERRIDE",
+ "DDBLT_ASYNC",
+ "DDBLT_COLORFILL",
+ "DDBLT_DDFX",
+ "DDBLT_DDROPS",
+ "DDBLT_KEYDEST",
+ "DDBLT_KEYDESTOVERRIDE",
+ "DDBLT_KEYSRC",
+ "DDBLT_KEYSRCOVERRIDE",
+ "DDBLT_ROP",
+ "DDBLT_ROTATIONANGLE",
+ "DDBLT_ZBUFFER",
+ "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
+ "DDBLT_ZBUFFERDESTOVERRIDE",
+ "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
+ "DDBLT_ZBUFFERSRCOVERRIDE",
+ "DDBLT_WAIT",
+ "DDBLT_DEPTHFILL",
+ "DDBLT_DONOTWAIT",
+ "DDBLT_PRESENTATION",
+ "DDBLT_LAST_PRESENTATION",
+ "DDBLT_EXTENDED_FLAGS",
+ "DDBLT_EXTENDED_LINEAR_CONTENT",
+])
+
+DDBLTFAST = Flags(DWORD, [
+ "DDBLTFAST_NOCOLORKEY",
+ "DDBLTFAST_SRCCOLORKEY",
+ "DDBLTFAST_DESTCOLORKEY",
+ "DDBLTFAST_WAIT",
+ "DDBLTFAST_DONOTWAIT",
+])
+
+DDFLIP = Flags(DWORD, [
+ "DDFLIP_WAIT",
+ "DDFLIP_EVEN",
+ "DDFLIP_ODD",
+ "DDFLIP_NOVSYNC",
+ "DDFLIP_INTERVAL2",
+ "DDFLIP_INTERVAL3",
+ "DDFLIP_INTERVAL4",
+ "DDFLIP_STEREO",
+ "DDFLIP_DONOTWAIT",
+])
+
+DDOVER = Flags(DWORD, [
+ "DDOVER_ALPHADEST",
+ "DDOVER_ALPHADESTCONSTOVERRIDE",
+ "DDOVER_ALPHADESTNEG",
+ "DDOVER_ALPHADESTSURFACEOVERRIDE",
+ "DDOVER_ALPHAEDGEBLEND",
+ "DDOVER_ALPHASRC",
+ "DDOVER_ALPHASRCCONSTOVERRIDE",
+ "DDOVER_ALPHASRCNEG",
+ "DDOVER_ALPHASRCSURFACEOVERRIDE",
+ "DDOVER_HIDE",
+ "DDOVER_KEYDEST",
+ "DDOVER_KEYDESTOVERRIDE",
+ "DDOVER_KEYSRC",
+ "DDOVER_KEYSRCOVERRIDE",
+ "DDOVER_SHOW",
+ "DDOVER_ADDDIRTYRECT",
+ "DDOVER_REFRESHDIRTYRECTS",
+ "DDOVER_REFRESHALL",
+ "DDOVER_DDFX",
+ "DDOVER_AUTOFLIP",
+ "DDOVER_BOB",
+ "DDOVER_OVERRIDEBOBWEAVE",
+ "DDOVER_INTERLEAVED",
+ "DDOVER_BOBHARDWARE",
+ "DDOVER_ARGBSCALEFACTORS",
+ "DDOVER_DEGRADEARGBSCALING",
+])
+
+DDSETSURFACEDESC = Flags(DWORD, [
+ #"DDSETSURFACEDESC_RECREATEDC",
+ #"DDSETSURFACEDESC_PRESERVEDC",
+])
+
+DDLOCK = Flags(DWORD, [
+ "DDLOCK_SURFACEMEMORYPTR",
+ "DDLOCK_WAIT",
+ "DDLOCK_EVENT",
+ "DDLOCK_READONLY",
+ "DDLOCK_WRITEONLY",
+ "DDLOCK_NOSYSLOCK",
+ "DDLOCK_NOOVERWRITE",
+ "DDLOCK_DISCARDCONTENTS",
+ "DDLOCK_OKTOSWAP",
+ "DDLOCK_DONOTWAIT",
+ "DDLOCK_HASVOLUMETEXTUREBOXRECT",
+ "DDLOCK_NODIRTYUPDATE",
+])
+
+DDBLTFX = Flags(DWORD, [
+ "DDBLTFX_ARITHSTRETCHY",
+ "DDBLTFX_MIRRORLEFTRIGHT",
+ "DDBLTFX_MIRRORUPDOWN",
+ "DDBLTFX_NOTEARING",
+ "DDBLTFX_ROTATE180",
+ "DDBLTFX_ROTATE270",
+ "DDBLTFX_ROTATE90",
+ "DDBLTFX_ZBUFFERRANGE",
+ "DDBLTFX_ZBUFFERBASEDEST",
+])
+
+DDOVERFX = Flags(DWORD, [
+ "DDOVERFX_ARITHSTRETCHY",
+ "DDOVERFX_MIRRORLEFTRIGHT",
+ "DDOVERFX_MIRRORUPDOWN",
+ "DDOVERFX_DEINTERLACE",
+])
+
+DDWAITVB = Flags(DWORD, [
+ "DDWAITVB_BLOCKBEGIN",
+ "DDWAITVB_BLOCKBEGINEVENT",
+ "DDWAITVB_BLOCKEND",
+])
+
+DDGFS = Flags(DWORD, [
+ "DDGFS_CANFLIP",
+ "DDGFS_ISFLIPDONE",
+])
+
+DDGBS = Flags(DWORD, [
+ "DDGBS_CANBLT",
+ "DDGBS_ISBLTDONE",
+])
+
+DDENUMOVERLAYZ = Flags(DWORD, [
+ "DDENUMOVERLAYZ_BACKTOFRONT",
+ "DDENUMOVERLAYZ_FRONTTOBACK",
+])
+
+DDOVERZ = Flags(DWORD, [
+ "DDOVERZ_SENDTOFRONT",
+ "DDOVERZ_SENDTOBACK",
+ "DDOVERZ_MOVEFORWARD",
+ "DDOVERZ_MOVEBACKWARD",
+ "DDOVERZ_INSERTINFRONTOF",
+ "DDOVERZ_INSERTINBACKOF",
+])
+
+DDSGR = Flags(DWORD, [
+ "DDSGR_CALIBRATE",
+])
+
+DDSMT = Flags(DWORD, [
+ "DDSMT_ISTESTREQUIRED",
+])
+
+DDEM = Flags(DWORD, [
+ "DDEM_MODEPASSED",
+ "DDEM_MODEFAILED",
+])
+
+HRESULT = Enum("HRESULT", [
+ "DD_OK",
+ "DD_FALSE",
+ "DDERR_ALREADYINITIALIZED",
+ "DDERR_CANNOTATTACHSURFACE",
+ "DDERR_CANNOTDETACHSURFACE",
+ "DDERR_CURRENTLYNOTAVAIL",
+ "DDERR_EXCEPTION",
+ "DDERR_GENERIC",
+ "DDERR_HEIGHTALIGN",
+ "DDERR_INCOMPATIBLEPRIMARY",
+ "DDERR_INVALIDCAPS",
+ "DDERR_INVALIDCLIPLIST",
+ "DDERR_INVALIDMODE",
+ "DDERR_INVALIDOBJECT",
+ "DDERR_INVALIDPARAMS",
+ "DDERR_INVALIDPIXELFORMAT",
+ "DDERR_INVALIDRECT",
+ "DDERR_LOCKEDSURFACES",
+ "DDERR_NO3D",
+ "DDERR_NOALPHAHW",
+ "DDERR_NOSTEREOHARDWARE",
+ "DDERR_NOSURFACELEFT",
+ "DDERR_NOCLIPLIST",
+ "DDERR_NOCOLORCONVHW",
+ "DDERR_NOCOOPERATIVELEVELSET",
+ "DDERR_NOCOLORKEY",
+ "DDERR_NOCOLORKEYHW",
+ "DDERR_NODIRECTDRAWSUPPORT",
+ "DDERR_NOEXCLUSIVEMODE",
+ "DDERR_NOFLIPHW",
+ "DDERR_NOGDI",
+ "DDERR_NOMIRRORHW",
+ "DDERR_NOTFOUND",
+ "DDERR_NOOVERLAYHW",
+ "DDERR_OVERLAPPINGRECTS",
+ "DDERR_NORASTEROPHW",
+ "DDERR_NOROTATIONHW",
+ "DDERR_NOSTRETCHHW",
+ "DDERR_NOT4BITCOLOR",
+ "DDERR_NOT4BITCOLORINDEX",
+ "DDERR_NOT8BITCOLOR",
+ "DDERR_NOTEXTUREHW",
+ "DDERR_NOVSYNCHW",
+ "DDERR_NOZBUFFERHW",
+ "DDERR_NOZOVERLAYHW",
+ "DDERR_OUTOFCAPS",
+ "DDERR_OUTOFMEMORY",
+ "DDERR_OUTOFVIDEOMEMORY",
+ "DDERR_OVERLAYCANTCLIP",
+ "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
+ "DDERR_PALETTEBUSY",
+ "DDERR_COLORKEYNOTSET",
+ "DDERR_SURFACEALREADYATTACHED",
+ "DDERR_SURFACEALREADYDEPENDENT",
+ "DDERR_SURFACEBUSY",
+ "DDERR_CANTLOCKSURFACE",
+ "DDERR_SURFACEISOBSCURED",
+ "DDERR_SURFACELOST",
+ "DDERR_SURFACENOTATTACHED",
+ "DDERR_TOOBIGHEIGHT",
+ "DDERR_TOOBIGSIZE",
+ "DDERR_TOOBIGWIDTH",
+ "DDERR_UNSUPPORTED",
+ "DDERR_UNSUPPORTEDFORMAT",
+ "DDERR_UNSUPPORTEDMASK",
+ "DDERR_INVALIDSTREAM",
+ "DDERR_VERTICALBLANKINPROGRESS",
+ "DDERR_WASSTILLDRAWING",
+ "DDERR_DDSCAPSCOMPLEXREQUIRED",
+ "DDERR_XALIGN",
+ "DDERR_INVALIDDIRECTDRAWGUID",
+ "DDERR_DIRECTDRAWALREADYCREATED",
+ "DDERR_NODIRECTDRAWHW",
+ "DDERR_PRIMARYSURFACEALREADYEXISTS",
+ "DDERR_NOEMULATION",
+ "DDERR_REGIONTOOSMALL",
+ "DDERR_CLIPPERISUSINGHWND",
+ "DDERR_NOCLIPPERATTACHED",
+ "DDERR_NOHWND",
+ "DDERR_HWNDSUBCLASSED",
+ "DDERR_HWNDALREADYSET",
+ "DDERR_NOPALETTEATTACHED",
+ "DDERR_NOPALETTEHW",
+ "DDERR_BLTFASTCANTCLIP",
+ "DDERR_NOBLTHW",
+ "DDERR_NODDROPSHW",
+ "DDERR_OVERLAYNOTVISIBLE",
+ "DDERR_NOOVERLAYDEST",
+ "DDERR_INVALIDPOSITION",
+ "DDERR_NOTAOVERLAYSURFACE",
+ "DDERR_EXCLUSIVEMODEALREADYSET",
+ "DDERR_NOTFLIPPABLE",
+ "DDERR_CANTDUPLICATE",
+ "DDERR_NOTLOCKED",
+ "DDERR_CANTCREATEDC",
+ "DDERR_NODC",
+ "DDERR_WRONGMODE",
+ "DDERR_IMPLICITLYCREATED",
+ "DDERR_NOTPALETTIZED",
+ "DDERR_UNSUPPORTEDMODE",
+ "DDERR_NOMIPMAPHW",
+ "DDERR_INVALIDSURFACETYPE",
+ "DDERR_NOOPTIMIZEHW",
+ "DDERR_NOTLOADED",
+ "DDERR_NOFOCUSWINDOW",
+ "DDERR_NOTONMIPMAPSUBLEVEL",
+ "DDERR_DCALREADYCREATED",
+ "DDERR_NONONLOCALVIDMEM",
+ "DDERR_CANTPAGELOCK",
+ "DDERR_CANTPAGEUNLOCK",
+ "DDERR_NOTPAGELOCKED",
+ "DDERR_MOREDATA",
+ "DDERR_EXPIRED",
+ "DDERR_TESTFINISHED",
+ "DDERR_NEWMODE",
+ "DDERR_D3DNOTINITIALIZED",
+ "DDERR_VIDEONOTACTIVE",
+ "DDERR_NOMONITORINFORMATION",
+ "DDERR_NODRIVERSUPPORT",
+ "DDERR_DEVICEDOESNTOWNSURFACE",
+ "DDERR_NOTINITIALIZED",
+])
+
+LPDDENUMMODESCALLBACK = Pointer(Function(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID]))
+LPDDENUMMODESCALLBACK2 = Pointer(Function(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID]))
+LPDDENUMSURFACESCALLBACK = Pointer(Function(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID]))
+LPDDENUMSURFACESCALLBACK2 = Pointer(Function(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID]))
+LPDDENUMSURFACESCALLBACK7 = Pointer(Function(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID]))
+
+IDirectDraw.methods += [
+ Method(HRESULT, "Compact", []),
+ Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown) ]),
+ Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE) ]),
+ Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ]),
+ Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ]),
+ Method(HRESULT, "FlipToGDISurface", []),
+ Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
+ Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC]),
+ Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
+ Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE) ]),
+ Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
+ Method(HRESULT, "GetScanLine", [LPDWORD]),
+ Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
+ Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+ Method(HRESULT, "RestoreDisplayMode", []),
+ Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
+ Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD]),
+ Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+]
+
+IDirectDraw2.methods += [
+ Method(HRESULT, "Compact", []),
+ Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown) ]),
+ Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE) ]),
+ Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ]),
+ Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ]),
+ Method(HRESULT, "FlipToGDISurface", []),
+ Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
+ Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC]),
+ Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
+ Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE) ]),
+ Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
+ Method(HRESULT, "GetScanLine", [LPDWORD]),
+ Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
+ Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+ Method(HRESULT, "RestoreDisplayMode", []),
+ Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
+ Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
+ Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+ Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS, LPDWORD, LPDWORD]),
+]
+
+IDirectDraw4.methods += [
+ Method(HRESULT, "Compact", []),
+ Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE4) , Pointer(IUnknown) ]),
+ Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE4, Pointer(LPDIRECTDRAWSURFACE4) ]),
+ Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ]),
+ Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ]),
+ Method(HRESULT, "FlipToGDISurface", []),
+ Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
+ Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC2]),
+ Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
+ Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE4) ]),
+ Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
+ Method(HRESULT, "GetScanLine", [LPDWORD]),
+ Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
+ Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+ Method(HRESULT, "RestoreDisplayMode", []),
+ Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
+ Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
+ Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+ Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
+ Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE4)]),
+ Method(HRESULT, "RestoreAllSurfaces", []),
+ Method(HRESULT, "TestCooperativeLevel", []),
+ Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER, DWORD ]),
+]
+
+IDirectDraw7.methods += [
+ Method(HRESULT, "Compact", []),
+ Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
+ Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE7) , Pointer(IUnknown) ]),
+ Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE7, Pointer(LPDIRECTDRAWSURFACE7) ]),
+ Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ]),
+ Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ]),
+ Method(HRESULT, "FlipToGDISurface", []),
+ Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
+ Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC2]),
+ Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
+ Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE7) ]),
+ Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
+ Method(HRESULT, "GetScanLine", [LPDWORD]),
+ Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
+ Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+ Method(HRESULT, "RestoreDisplayMode", []),
+ Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
+ Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
+ Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+ Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
+ Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE7)]),
+ Method(HRESULT, "RestoreAllSurfaces", []),
+ Method(HRESULT, "TestCooperativeLevel", []),
+ Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER2, DWORD ]),
+ Method(HRESULT, "StartModeTest", [LPSIZE, DWORD, DWORD ]),
+ Method(HRESULT, "EvaluateMode", [DWORD, Pointer(DWORD) ]),
+]
+
+IDirectDrawPalette.methods += [
+ Method(HRESULT, "GetCaps", [LPDWORD]),
+ Method(HRESULT, "GetEntries", [DWORD,DWORD,DWORD,LPPALETTEENTRY]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD, LPPALETTEENTRY]),
+ Method(HRESULT, "SetEntries", [DWORD,DWORD,DWORD,LPPALETTEENTRY]),
+]
+
+IDirectDrawClipper.methods += [
+ Method(HRESULT, "GetClipList", [LPRECT, LPRGNDATA, LPDWORD]),
+ Method(HRESULT, "GetHWnd", [Pointer(HWND) ]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD]),
+ Method(HRESULT, "IsClipListChanged", [Pointer(BOOL) ]),
+ Method(HRESULT, "SetClipList", [LPRGNDATA,DWORD]),
+ Method(HRESULT, "SetHWnd", [DWORD, HWND ]),
+]
+
+
+IDirectDrawSurface.methods += [
+ Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE]),
+ Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
+ Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX]),
+ Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+ Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD]),
+ Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE]),
+ Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
+ Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
+ Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE, DWORD]),
+ Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE) ]),
+ Method(HRESULT, "GetBltStatus", [DWORD]),
+ Method(HRESULT, "GetCaps", [LPDDSCAPS]),
+ Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+ Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+ Method(HRESULT, "GetFlipStatus", [DWORD]),
+ Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
+ Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+ Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
+ Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
+ Method(HRESULT, "IsLost", []),
+ Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
+ Method(HRESULT, "ReleaseDC", [HDC]),
+ Method(HRESULT, "Restore", []),
+ Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
+ Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+ Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
+ Method(HRESULT, "Unlock", [LPVOID]),
+ Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX]),
+ Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
+ Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE]),
+]
+
+IDirectDrawSurface2.methods += [
+ Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE2]),
+ Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
+ Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX]),
+ Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+ Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD]),
+ Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE2]),
+ Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
+ Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
+ Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE2, DWORD]),
+ Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE2) ]),
+ Method(HRESULT, "GetBltStatus", [DWORD]),
+ Method(HRESULT, "GetCaps", [LPDDSCAPS]),
+ Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+ Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+ Method(HRESULT, "GetFlipStatus", [DWORD]),
+ Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
+ Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+ Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
+ Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
+ Method(HRESULT, "IsLost", []),
+ Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
+ Method(HRESULT, "ReleaseDC", [HDC]),
+ Method(HRESULT, "Restore", []),
+ Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
+ Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+ Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
+ Method(HRESULT, "Unlock", [LPVOID]),
+ Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX]),
+ Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
+ Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE2]),
+ Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+ Method(HRESULT, "PageLock", [DWORD]),
+ Method(HRESULT, "PageUnlock", [DWORD]),
+]
+
+IDirectDrawSurface3.methods += [
+ Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE3]),
+ Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
+ Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX]),
+ Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+ Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD]),
+ Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE3]),
+ Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
+ Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
+ Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE3, DWORD]),
+ Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE3) ]),
+ Method(HRESULT, "GetBltStatus", [DWORD]),
+ Method(HRESULT, "GetCaps", [LPDDSCAPS]),
+ Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+ Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+ Method(HRESULT, "GetFlipStatus", [DWORD]),
+ Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
+ Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+ Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
+ Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
+ Method(HRESULT, "IsLost", []),
+ Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
+ Method(HRESULT, "ReleaseDC", [HDC]),
+ Method(HRESULT, "Restore", []),
+ Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
+ Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+ Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
+ Method(HRESULT, "Unlock", [LPVOID]),
+ Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX]),
+ Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
+ Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE3]),
+ Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+ Method(HRESULT, "PageLock", [DWORD]),
+ Method(HRESULT, "PageUnlock", [DWORD]),
+ Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC, DWORD]),
+]
+
+IDirectDrawSurface4.methods += [
+ Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE4]),
+ Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
+ Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX]),
+ Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+ Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD]),
+ Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE4]),
+ Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK2]),
+ Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2]),
+ Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE4, DWORD]),
+ Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE4) ]),
+ Method(HRESULT, "GetBltStatus", [DWORD]),
+ Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
+ Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+ Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+ Method(HRESULT, "GetFlipStatus", [DWORD]),
+ Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
+ Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+ Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
+ Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
+ Method(HRESULT, "IsLost", []),
+ Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE]),
+ Method(HRESULT, "ReleaseDC", [HDC]),
+ Method(HRESULT, "Restore", []),
+ Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
+ Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+ Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
+ Method(HRESULT, "Unlock", [LPRECT]),
+ Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX]),
+ Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
+ Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE4]),
+ Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+ Method(HRESULT, "PageLock", [DWORD]),
+ Method(HRESULT, "PageUnlock", [DWORD]),
+ Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
+ Method(HRESULT, "SetPrivateData", [REFGUID, LPVOID, DWORD, DWORD]),
+ Method(HRESULT, "GetPrivateData", [REFGUID, LPVOID, LPDWORD]),
+ Method(HRESULT, "FreePrivateData", [REFGUID]),
+ Method(HRESULT, "GetUniquenessValue", [LPDWORD]),
+ Method(HRESULT, "ChangeUniquenessValue", []),
+]
+
+IDirectDrawSurface7.methods += [
+ Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE7]),
+ Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
+ Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX]),
+ Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+ Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD]),
+ Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE7]),
+ Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK7]),
+ Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7]),
+ Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE7, DWORD]),
+ Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE7) ]),
+ Method(HRESULT, "GetBltStatus", [DWORD]),
+ Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
+ Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+ Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+ Method(HRESULT, "GetFlipStatus", [DWORD]),
+ Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
+ Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+ Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
+ Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
+ Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
+ Method(HRESULT, "IsLost", []),
+ Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE]),
+ Method(HRESULT, "ReleaseDC", [HDC]),
+ Method(HRESULT, "Restore", []),
+ Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
+ Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
+ Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+ Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
+ Method(HRESULT, "Unlock", [LPRECT]),
+ Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX]),
+ Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
+ Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE7]),
+ Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+ Method(HRESULT, "PageLock", [DWORD]),
+ Method(HRESULT, "PageUnlock", [DWORD]),
+ Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
+ Method(HRESULT, "SetPrivateData", [REFGUID, LPVOID, DWORD, DWORD]),
+ Method(HRESULT, "GetPrivateData", [REFGUID, LPVOID, LPDWORD]),
+ Method(HRESULT, "FreePrivateData", [REFGUID]),
+ Method(HRESULT, "GetUniquenessValue", [LPDWORD]),
+ Method(HRESULT, "ChangeUniquenessValue", []),
+ Method(HRESULT, "SetPriority", [DWORD]),
+ Method(HRESULT, "GetPriority", [LPDWORD]),
+ Method(HRESULT, "SetLOD", [DWORD]),
+ Method(HRESULT, "GetLOD", [LPDWORD]),
+]
+
+IDirectDrawColorControl.methods += [
+ Method(HRESULT, "GetColorControls", [LPDDCOLORCONTROL]),
+ Method(HRESULT, "SetColorControls", [LPDDCOLORCONTROL]),
+]
+
+IDirectDrawGammaControl.methods += [
+ Method(HRESULT, "GetGammaRamp", [DWORD, LPDDGAMMARAMP]),
+ Method(HRESULT, "SetGammaRamp", [DWORD, LPDDGAMMARAMP]),
+]
+
+#LPDDENUMCALLBACKA = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID]))
+#LPDDENUMCALLBACKW = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID]))
+#LPDDENUMCALLBACKEXA = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR]))
+#LPDDENUMCALLBACKEXW = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR]))
+LPDDENUMCALLBACKA = Alias("LPDDENUMCALLBACKA", Pointer(Void))
+LPDDENUMCALLBACKW = Alias("LPDDENUMCALLBACKW", Pointer(Void))
+LPDDENUMCALLBACKEXA = Alias("LPDDENUMCALLBACKEXA", Pointer(Void))
+LPDDENUMCALLBACKEXW = Alias("LPDDENUMCALLBACKEXW", Pointer(Void))
+
+DDENUM = Flags(DWORD, [
+ "DDENUM_ATTACHEDSECONDARYDEVICES",
+ "DDENUM_DETACHEDSECONDARYDEVICES",
+ "DDENUM_NONDISPLAYDEVICES",
+])
+
+DDCREATE = Flags(DWORD, [
+ "DDCREATE_HARDWAREONLY",
+ "DDCREATE_EMULATIONONLY",
+])
+
+ddraw = Dll("ddraw")
+ddraw.functions += [
+ Function(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")]),
+ Function(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
+ Function(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
+ Function(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
+ Function(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), (OutPointer(LPDIRECTDRAW), "lplpDD"), (Pointer(IUnknown), "pUnkOuter")]),
+ Function(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), (OutPointer(LPVOID), "lplpDD"), (REFIID, "iid"), (Pointer(IUnknown), "pUnkOuter")]),
+ Function(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), (OutPointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
+]
+
+if __name__ == '__main__':
+ print '#include <windows.h>'
+ print '#include <tchar.h>'
+ print '#include <ddraw.h>'
+ print
+ print '#include "log.hpp"'
+ print
+ wrap()