259 lines
8.9 KiB
Diff
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
|
|
|