From cd3f69ef1a354e16f2bffdf29206f41f7dff95b7 Mon Sep 17 00:00:00 2001 From: Jeff Muizelaar Date: Mon, 11 Mar 2013 15:56:30 -0400 Subject: [PATCH] Add some missing DXGI and D3D11.1 api MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: José Fonseca --- retrace/CMakeLists.txt | 1 + specs/d3d11_1.py | 9 +++---- specs/dxgi.py | 6 +++++ specs/dxgi1_2.py | 52 +++++++++++++++++++++++++++++++++++++++++ specs/winapi.py | 5 ++++ wrappers/CMakeLists.txt | 1 + 6 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 specs/dxgi1_2.py diff --git a/retrace/CMakeLists.txt b/retrace/CMakeLists.txt index 225ca45..57d5d12 100644 --- a/retrace/CMakeLists.txt +++ b/retrace/CMakeLists.txt @@ -231,6 +231,7 @@ if (WIN32) ${CMAKE_SOURCE_DIR}/specs/d3d10misc.py ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py + ${CMAKE_SOURCE_DIR}/specs/dxgi1_2.py ${CMAKE_SOURCE_DIR}/specs/dxgi.py ${CMAKE_SOURCE_DIR}/specs/dxgitype.py ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py diff --git a/specs/d3d11_1.py b/specs/d3d11_1.py index 5681191..d163d8f 100644 --- a/specs/d3d11_1.py +++ b/specs/d3d11_1.py @@ -30,6 +30,8 @@ from winapi import * from d3d11sdklayers import * from d3d11 import * +import dxgi1_2 + D3D_FEATURE_LEVEL.values += [ "D3D_FEATURE_LEVEL_11_1", ] @@ -134,6 +136,7 @@ ID3D11DeviceContext1.methods += [ StdMethod(Void, "UpdateSubresource1", [(ObjPointer(ID3D11Resource), "pDstResource"), (UINT, "DstSubresource"), (Pointer(Const(D3D11_BOX)), "pDstBox"), (Blob(Const(Void), "_calcSubresourceSize(pDstResource, DstSubresource, pDstBox, SrcRowPitch, SrcDepthPitch)"), "pSrcData"), (UINT, "SrcRowPitch"), (UINT, "SrcDepthPitch"), (D3D11_COPY_FLAGS, "CopyFlags")]), StdMethod(Void, "DiscardResource", [(ObjPointer(ID3D11Resource), "pResource")]), StdMethod(Void, "DiscardView", [(ObjPointer(ID3D11View), "pResourceView")]), + StdMethod(Void, "DiscardView1", [(ObjPointer(ID3D11View), "pResourceView"), (Array(Const(D3D11_RECT), "NumRects"), "pRect"), (UINT, "NumRects")]), StdMethod(Void, "VSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]), StdMethod(Void, "HSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]), StdMethod(Void, "DSSetConstantBuffers1", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(ObjPointer(ID3D11Buffer)), "NumBuffers"), "ppConstantBuffers"), (Array(Const(UINT), "NumBuffers"), "pFirstConstant"), (Array(Const(UINT), "NumBuffers"), "pNumConstants")]), @@ -151,12 +154,6 @@ ID3D11DeviceContext1.methods += [ ] -DXGI_SHARED_RESOURCE_FLAG = Flags(DWORD, [ - "DXGI_SHARED_RESOURCE_READ", - "DXGI_SHARED_RESOURCE_WRITE", -]) - - ID3D11Device1.methods += [ StdMethod(Void, "GetImmediateContext1", [Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppImmediateContext")]), StdMethod(HRESULT, "CreateDeferredContext1", [(UINT, "ContextFlags"), Out(Pointer(ObjPointer(ID3D11DeviceContext1)), "ppDeferredContext")]), diff --git a/specs/dxgi.py b/specs/dxgi.py index ca05368..b114bf5 100644 --- a/specs/dxgi.py +++ b/specs/dxgi.py @@ -155,6 +155,12 @@ IDXGIResource.methods += [ StdMethod(HRESULT, "GetEvictionPriority", [Out(Pointer(DXGI_RESOURCE_PRIORITY), "pEvictionPriority")], sideeffects=False), ] +DXGI_SHARED_RESOURCE_FLAG = Flags(DWORD, [ + "DXGI_SHARED_RESOURCE_READ", + "DXGI_SHARED_RESOURCE_WRITE", +]) + + IDXGIKeyedMutex.methods += [ StdMethod(HRESULT, "AcquireSync", [(UINT64, "Key"), (DWORD, "dwMilliseconds")]), StdMethod(HRESULT, "ReleaseSync", [(UINT64, "Key")]), diff --git a/specs/dxgi1_2.py b/specs/dxgi1_2.py new file mode 100644 index 0000000..0e4d58d --- /dev/null +++ b/specs/dxgi1_2.py @@ -0,0 +1,52 @@ +########################################################################## +# +# Copyright 2013 Jeff Muizelaar +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from dxgi import * + + +IDXGIResource1 = Interface("IDXGIResource1", IDXGIResource) +IDXGISurface2 = Interface("IDXGISurface2", IDXGISurface1) + + +DXGI_SHARED_RESOURCE_FLAG = Flags(DWORD, [ + "DXGI_SHARED_RESOURCE_READ", + "DXGI_SHARED_RESOURCE_WRITE", +]) + + +IDXGIResource1.methods += [ + StdMethod(HRESULT, "CreateSharedHandle", [(Pointer(Const(SECURITY_ATTRIBUTES)), "pAttributes"), (DXGI_SHARED_RESOURCE_FLAG, "dwAccess"), (LPCWSTR, "lpName"), Out(Pointer(HANDLE), "pHandle")]), + StdMethod(HRESULT, "CreateSubresourceSurface", [(UINT, "index"), Out(Pointer(ObjPointer(IDXGISurface2)), "ppSurface")]), +] + + +IDXGISurface2.methods += [ + StdMethod(HRESULT, "GetResource", [(REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppParentResource"), Out(Pointer(UINT), "pSubresourceIndex")]), +] + +dxgi.addInterfaces([ + IDXGIResource1, +]) diff --git a/specs/winapi.py b/specs/winapi.py index 4436c6d..be50155 100644 --- a/specs/winapi.py +++ b/specs/winapi.py @@ -178,6 +178,11 @@ LOGFONTW = Struct("LOGFONTW", [ (WString, "lfFaceName"), ]) +SECURITY_ATTRIBUTES = Struct("SECURITY_ATTRIBUTES", [ + (DWORD, "nLength"), + (LPVOID, "lpSecurityDescriptor"), + (BOOL, "bInheritHandle"), +]) # http://msdn.microsoft.com/en-us/library/ff485842.aspx # http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381.aspx diff --git a/wrappers/CMakeLists.txt b/wrappers/CMakeLists.txt index 6c33ead..6b76e58 100644 --- a/wrappers/CMakeLists.txt +++ b/wrappers/CMakeLists.txt @@ -174,6 +174,7 @@ if (WIN32) ${CMAKE_SOURCE_DIR}/specs/d3d10misc.py ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py + ${CMAKE_SOURCE_DIR}/specs/dxgi1_2.py ${CMAKE_SOURCE_DIR}/specs/dxgi.py ${CMAKE_SOURCE_DIR}/specs/dxgitype.py ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py -- 2.43.0