Files
MINGW-packages/mingw-w64-headers-git/0002-dxgi-Add-interface-for-IDXGISurface1.patch
2015-02-17 19:32:16 +03:00

259 lines
8.9 KiB
Diff

From f9592e22e65a0e6c1d0c390534618e5bb946c2a2 Mon Sep 17 00:00:00 2001
From: Martell Malone <martellmalone@gmail.com>
Date: Mon, 16 Feb 2015 19:56:22 +0000
Subject: [PATCH 2/5] dxgi: Add interface for IDXGISurface1
---
mingw-w64-headers/direct-x/include/dxgi.h | 191 ++++++++++++++++++++++++++++
mingw-w64-headers/direct-x/include/dxgi.idl | 19 +++
2 files changed, 210 insertions(+)
diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h
index a8a99ed..edfae00 100644
--- a/mingw-w64-headers/direct-x/include/dxgi.h
+++ b/mingw-w64-headers/direct-x/include/dxgi.h
@@ -42,6 +42,11 @@ typedef interface IDXGIKeyedMutex IDXGIKeyedMutex;
typedef interface IDXGISurface IDXGISurface;
#endif
+#ifndef __IDXGISurface1_FWD_DEFINED__
+#define __IDXGISurface1_FWD_DEFINED__
+typedef interface IDXGISurface1 IDXGISurface1;
+#endif
+
#ifndef __IDXGIOutput_FWD_DEFINED__
#define __IDXGIOutput_FWD_DEFINED__
typedef interface IDXGIOutput IDXGIOutput;
@@ -1018,6 +1023,192 @@ void __RPC_STUB IDXGISurface_Unmap_Stub(
#endif /* __IDXGISurface_INTERFACE_DEFINED__ */
/*****************************************************************************
+ * IDXGISurface1 interface
+ */
+#ifndef __IDXGISurface1_INTERFACE_DEFINED__
+#define __IDXGISurface1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4ae63092-6327-4c1b-80ae-bfe12ea32b86")
+IDXGISurface1 : public IDXGISurface
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDC(
+ WINBOOL Discard,
+ HDC *dc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseDC(
+ RECT *rect) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86)
+#endif
+#else
+typedef struct IDXGISurface1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISurface1* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISurface1* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISurface1* This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISurface1* This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISurface1* This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISurface1* This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISurface1* This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISurface1* This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISurface methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISurface1* This,
+ DXGI_SURFACE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ IDXGISurface1* This,
+ DXGI_MAPPED_RECT *mapped_rect,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *Unmap)(
+ IDXGISurface1* This);
+
+ /*** IDXGISurface1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDC)(
+ IDXGISurface1* This,
+ WINBOOL Discard,
+ HDC *dc);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseDC)(
+ IDXGISurface1* This,
+ RECT *rect);
+
+ END_INTERFACE
+} IDXGISurface1Vtbl;
+interface IDXGISurface1 {
+ CONST_VTBL IDXGISurface1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISurface1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISurface1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISurface1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISurface1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISurface1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISurface1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISurface1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISurface1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISurface methods ***/
+#define IDXGISurface1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISurface1_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags)
+#define IDXGISurface1_Unmap(This) (This)->lpVtbl->Unmap(This)
+/*** IDXGISurface1 methods ***/
+#define IDXGISurface1_GetDC(This,Discard,dc) (This)->lpVtbl->GetDC(This,Discard,dc)
+#define IDXGISurface1_ReleaseDC(This,rect) (This)->lpVtbl->ReleaseDC(This,rect)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_QueryInterface(IDXGISurface1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISurface1_AddRef(IDXGISurface1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISurface1_Release(IDXGISurface1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_SetPrivateData(IDXGISurface1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface1_SetPrivateDataInterface(IDXGISurface1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISurface1_GetPrivateData(IDXGISurface1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface1_GetParent(IDXGISurface1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_GetDevice(IDXGISurface1* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISurface methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_GetDesc(IDXGISurface1* This,DXGI_SURFACE_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISurface1_Map(IDXGISurface1* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) {
+ return This->lpVtbl->Map(This,mapped_rect,flags);
+}
+static FORCEINLINE HRESULT IDXGISurface1_Unmap(IDXGISurface1* This) {
+ return This->lpVtbl->Unmap(This);
+}
+/*** IDXGISurface1 methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_GetDC(IDXGISurface1* This,WINBOOL Discard,HDC *dc) {
+ return This->lpVtbl->GetDC(This,Discard,dc);
+}
+static FORCEINLINE HRESULT IDXGISurface1_ReleaseDC(IDXGISurface1* This,RECT *rect) {
+ return This->lpVtbl->ReleaseDC(This,rect);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDXGISurface1_GetDC_Proxy(
+ IDXGISurface1* This,
+ WINBOOL Discard,
+ HDC *dc);
+void __RPC_STUB IDXGISurface1_GetDC_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGISurface1_ReleaseDC_Proxy(
+ IDXGISurface1* This,
+ RECT *rect);
+void __RPC_STUB IDXGISurface1_ReleaseDC_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IDXGISurface1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
* IDXGIOutput interface
*/
#ifndef __IDXGIOutput_INTERFACE_DEFINED__
diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl
index bc9538e..330a2c3 100644
--- a/mingw-w64-headers/direct-x/include/dxgi.idl
+++ b/mingw-w64-headers/direct-x/include/dxgi.idl
@@ -1,5 +1,6 @@
/*
* Copyright 2007 Andras Kovacs
+ * Copyright 2015 Martell Malone
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -222,6 +223,24 @@ interface IDXGISurface : IDXGIDeviceSubObject
[
object,
+ uuid(4ae63092-6327-4c1b-80ae-bfe12ea32b86),
+ local,
+ pointer_default(unique)
+]
+interface IDXGISurface1 : IDXGISurface
+{
+ HRESULT GetDC(
+ [in] BOOL Discard,
+ [out] HDC *dc
+ );
+
+ HRESULT ReleaseDC(
+ [in] RECT *rect
+ );
+}
+
+[
+ object,
local,
uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa)
]
--
2.3.0