962 lines
35 KiB
Diff
962 lines
35 KiB
Diff
From 0e266c2461defa50a51bda4eab1b1c08d37f698d Mon Sep 17 00:00:00 2001
|
|
From: Martell Malone <martellmalone@gmail.com>
|
|
Date: Mon, 16 Feb 2015 23:10:00 +0000
|
|
Subject: [PATCH 3/6] dxgi: Add missing dxgi 1.2 structs and interfaces
|
|
|
|
---
|
|
mingw-w64-headers/direct-x/include/dxgi1_2.h | 744 +++++++++++++++++++++++++
|
|
mingw-w64-headers/direct-x/include/dxgi1_2.idl | 151 +++++
|
|
2 files changed, 895 insertions(+)
|
|
|
|
diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h
|
|
index de3f359..3af09c7 100644
|
|
--- a/mingw-w64-headers/direct-x/include/dxgi1_2.h
|
|
+++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h
|
|
@@ -17,6 +17,16 @@
|
|
|
|
/* Forward declarations */
|
|
|
|
+#ifndef __IDXGIDisplayControl_FWD_DEFINED__
|
|
+#define __IDXGIDisplayControl_FWD_DEFINED__
|
|
+typedef interface IDXGIDisplayControl IDXGIDisplayControl;
|
|
+#endif
|
|
+
|
|
+#ifndef __IDXGIOutputDuplication_FWD_DEFINED__
|
|
+#define __IDXGIOutputDuplication_FWD_DEFINED__
|
|
+typedef interface IDXGIOutputDuplication IDXGIOutputDuplication;
|
|
+#endif
|
|
+
|
|
#ifndef __IDXGIDevice2_FWD_DEFINED__
|
|
#define __IDXGIDevice2_FWD_DEFINED__
|
|
typedef interface IDXGIDevice2 IDXGIDevice2;
|
|
@@ -37,6 +47,11 @@ typedef interface IDXGIFactory2 IDXGIFactory2;
|
|
typedef interface IDXGIAdapter2 IDXGIAdapter2;
|
|
#endif
|
|
|
|
+#ifndef __IDXGIOutput1_FWD_DEFINED__
|
|
+#define __IDXGIOutput1_FWD_DEFINED__
|
|
+typedef interface IDXGIOutput1 IDXGIOutput1;
|
|
+#endif
|
|
+
|
|
/* Headers for imported files */
|
|
|
|
#include <dxgi.h>
|
|
@@ -45,6 +60,423 @@ typedef interface IDXGIAdapter2 IDXGIAdapter2;
|
|
extern "C" {
|
|
#endif
|
|
|
|
+/*****************************************************************************
|
|
+ * IDXGIDisplayControl interface
|
|
+ */
|
|
+#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__
|
|
+#define __IDXGIDisplayControl_INTERFACE_DEFINED__
|
|
+
|
|
+DEFINE_GUID(IID_IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c);
|
|
+#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
+MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c")
|
|
+IDXGIDisplayControl : public IUnknown
|
|
+{
|
|
+ virtual WINBOOL STDMETHODCALLTYPE IsStereoEnabled(
|
|
+ ) = 0;
|
|
+
|
|
+ virtual void STDMETHODCALLTYPE SetStereoEnabled(
|
|
+ WINBOOL enabled) = 0;
|
|
+
|
|
+};
|
|
+#ifdef __CRT_UUID_DECL
|
|
+__CRT_UUID_DECL(IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c)
|
|
+#endif
|
|
+#else
|
|
+typedef struct IDXGIDisplayControlVtbl {
|
|
+ BEGIN_INTERFACE
|
|
+
|
|
+ /*** IUnknown methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
|
+ IDXGIDisplayControl* This,
|
|
+ REFIID riid,
|
|
+ void **ppvObject);
|
|
+
|
|
+ ULONG (STDMETHODCALLTYPE *AddRef)(
|
|
+ IDXGIDisplayControl* This);
|
|
+
|
|
+ ULONG (STDMETHODCALLTYPE *Release)(
|
|
+ IDXGIDisplayControl* This);
|
|
+
|
|
+ /*** IDXGIDisplayControl methods ***/
|
|
+ WINBOOL (STDMETHODCALLTYPE *IsStereoEnabled)(
|
|
+ IDXGIDisplayControl* This);
|
|
+
|
|
+ void (STDMETHODCALLTYPE *SetStereoEnabled)(
|
|
+ IDXGIDisplayControl* This,
|
|
+ WINBOOL enabled);
|
|
+
|
|
+ END_INTERFACE
|
|
+} IDXGIDisplayControlVtbl;
|
|
+interface IDXGIDisplayControl {
|
|
+ CONST_VTBL IDXGIDisplayControlVtbl* lpVtbl;
|
|
+};
|
|
+
|
|
+#ifdef COBJMACROS
|
|
+#ifndef WIDL_C_INLINE_WRAPPERS
|
|
+/*** IUnknown methods ***/
|
|
+#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
+#define IDXGIDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
+#define IDXGIDisplayControl_Release(This) (This)->lpVtbl->Release(This)
|
|
+/*** IDXGIDisplayControl methods ***/
|
|
+#define IDXGIDisplayControl_IsStereoEnabled(This) (This)->lpVtbl->IsStereoEnabled(This)
|
|
+#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) (This)->lpVtbl->SetStereoEnabled(This,enabled)
|
|
+#else
|
|
+/*** IUnknown methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIDisplayControl_QueryInterface(IDXGIDisplayControl* This,REFIID riid,void **ppvObject) {
|
|
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
+}
|
|
+static FORCEINLINE ULONG IDXGIDisplayControl_AddRef(IDXGIDisplayControl* This) {
|
|
+ return This->lpVtbl->AddRef(This);
|
|
+}
|
|
+static FORCEINLINE ULONG IDXGIDisplayControl_Release(IDXGIDisplayControl* This) {
|
|
+ return This->lpVtbl->Release(This);
|
|
+}
|
|
+/*** IDXGIDisplayControl methods ***/
|
|
+static FORCEINLINE WINBOOL IDXGIDisplayControl_IsStereoEnabled(IDXGIDisplayControl* This) {
|
|
+ return This->lpVtbl->IsStereoEnabled(This);
|
|
+}
|
|
+static FORCEINLINE void IDXGIDisplayControl_SetStereoEnabled(IDXGIDisplayControl* This,WINBOOL enabled) {
|
|
+ This->lpVtbl->SetStereoEnabled(This,enabled);
|
|
+}
|
|
+#endif
|
|
+#endif
|
|
+
|
|
+#endif
|
|
+
|
|
+WINBOOL STDMETHODCALLTYPE IDXGIDisplayControl_IsStereoEnabled_Proxy(
|
|
+ IDXGIDisplayControl* This);
|
|
+void __RPC_STUB IDXGIDisplayControl_IsStereoEnabled_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+void STDMETHODCALLTYPE IDXGIDisplayControl_SetStereoEnabled_Proxy(
|
|
+ IDXGIDisplayControl* This,
|
|
+ WINBOOL enabled);
|
|
+void __RPC_STUB IDXGIDisplayControl_SetStereoEnabled_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+
|
|
+#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */
|
|
+
|
|
+typedef struct DXGI_OUTDUPL_MOVE_RECT {
|
|
+ POINT SourcePoint;
|
|
+ RECT DestinationRect;
|
|
+} DXGI_OUTDUPL_MOVE_RECT;
|
|
+typedef struct DXGI_OUTDUPL_DESC {
|
|
+ DXGI_MODE_DESC ModeDesc;
|
|
+ DXGI_MODE_ROTATION Rotation;
|
|
+ WINBOOL DesktopImageInSystemMemory;
|
|
+} DXGI_OUTDUPL_DESC;
|
|
+typedef struct DXGI_OUTDUPL_POINTER_POSITION {
|
|
+ POINT Position;
|
|
+ WINBOOL Visible;
|
|
+} DXGI_OUTDUPL_POINTER_POSITION;
|
|
+typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4
|
|
+} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
|
|
+typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
|
|
+ UINT Type;
|
|
+ UINT Width;
|
|
+ UINT Height;
|
|
+ UINT Pitch;
|
|
+ POINT HotSpot;
|
|
+} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
|
|
+typedef struct DXGI_OUTDUPL_FRAME_INFO {
|
|
+ LARGE_INTEGER LastPresentTime;
|
|
+ LARGE_INTEGER LastMouseUpdateTime;
|
|
+ UINT AccumulatedFrames;
|
|
+ WINBOOL RectsCoalesced;
|
|
+ WINBOOL ProtectedContentMaskedOut;
|
|
+ DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
|
|
+ UINT TotalMetadataBufferSize;
|
|
+ UINT PointerShapeBufferSize;
|
|
+} DXGI_OUTDUPL_FRAME_INFO;
|
|
+/*****************************************************************************
|
|
+ * IDXGIOutputDuplication interface
|
|
+ */
|
|
+#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__
|
|
+#define __IDXGIOutputDuplication_INTERFACE_DEFINED__
|
|
+
|
|
+DEFINE_GUID(IID_IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c);
|
|
+#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
+MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c")
|
|
+IDXGIOutputDuplication : public IDXGIObject
|
|
+{
|
|
+ virtual void STDMETHODCALLTYPE GetDesc(
|
|
+ DXGI_OUTDUPL_DESC *desc) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame(
|
|
+ UINT timeout,
|
|
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
|
|
+ IDXGIResource **resource) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects(
|
|
+ UINT dirty_size,
|
|
+ RECT *buffer,
|
|
+ UINT *buffer_size) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects(
|
|
+ UINT move_size,
|
|
+ DXGI_OUTDUPL_MOVE_RECT *rect,
|
|
+ UINT *rect_size) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape(
|
|
+ UINT shape_size,
|
|
+ void *buffer,
|
|
+ UINT *buffer_size,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface(
|
|
+ DXGI_MAPPED_RECT *rect) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface(
|
|
+ ) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE ReleaseFrame(
|
|
+ ) = 0;
|
|
+
|
|
+};
|
|
+#ifdef __CRT_UUID_DECL
|
|
+__CRT_UUID_DECL(IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c)
|
|
+#endif
|
|
+#else
|
|
+typedef struct IDXGIOutputDuplicationVtbl {
|
|
+ BEGIN_INTERFACE
|
|
+
|
|
+ /*** IUnknown methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ REFIID riid,
|
|
+ void **ppvObject);
|
|
+
|
|
+ ULONG (STDMETHODCALLTYPE *AddRef)(
|
|
+ IDXGIOutputDuplication* This);
|
|
+
|
|
+ ULONG (STDMETHODCALLTYPE *Release)(
|
|
+ IDXGIOutputDuplication* This);
|
|
+
|
|
+ /*** IDXGIObject methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ REFGUID guid,
|
|
+ UINT data_size,
|
|
+ const void *data);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ REFGUID guid,
|
|
+ const IUnknown *object);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ REFGUID guid,
|
|
+ UINT *data_size,
|
|
+ void *data);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ REFIID riid,
|
|
+ void **parent);
|
|
+
|
|
+ /*** IDXGIOutputDuplication methods ***/
|
|
+ void (STDMETHODCALLTYPE *GetDesc)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ DXGI_OUTDUPL_DESC *desc);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *AcquireNextFrame)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT timeout,
|
|
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
|
|
+ IDXGIResource **resource);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetFrameDirtyRects)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT dirty_size,
|
|
+ RECT *buffer,
|
|
+ UINT *buffer_size);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetFrameMoveRects)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT move_size,
|
|
+ DXGI_OUTDUPL_MOVE_RECT *rect,
|
|
+ UINT *rect_size);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetFramePointerShape)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT shape_size,
|
|
+ void *buffer,
|
|
+ UINT *buffer_size,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *MapDesktopSurface)(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ DXGI_MAPPED_RECT *rect);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *UnMapDesktopSurface)(
|
|
+ IDXGIOutputDuplication* This);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *ReleaseFrame)(
|
|
+ IDXGIOutputDuplication* This);
|
|
+
|
|
+ END_INTERFACE
|
|
+} IDXGIOutputDuplicationVtbl;
|
|
+interface IDXGIOutputDuplication {
|
|
+ CONST_VTBL IDXGIOutputDuplicationVtbl* lpVtbl;
|
|
+};
|
|
+
|
|
+#ifdef COBJMACROS
|
|
+#ifndef WIDL_C_INLINE_WRAPPERS
|
|
+/*** IUnknown methods ***/
|
|
+#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
+#define IDXGIOutputDuplication_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
+#define IDXGIOutputDuplication_Release(This) (This)->lpVtbl->Release(This)
|
|
+/*** IDXGIObject methods ***/
|
|
+#define IDXGIOutputDuplication_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
|
|
+#define IDXGIOutputDuplication_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
|
|
+#define IDXGIOutputDuplication_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
|
|
+#define IDXGIOutputDuplication_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
|
|
+/*** IDXGIOutputDuplication methods ***/
|
|
+#define IDXGIOutputDuplication_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
|
|
+#define IDXGIOutputDuplication_AcquireNextFrame(This,timeout,frame_info,resource) (This)->lpVtbl->AcquireNextFrame(This,timeout,frame_info,resource)
|
|
+#define IDXGIOutputDuplication_GetFrameDirtyRects(This,dirty_size,buffer,buffer_size) (This)->lpVtbl->GetFrameDirtyRects(This,dirty_size,buffer,buffer_size)
|
|
+#define IDXGIOutputDuplication_GetFrameMoveRects(This,move_size,rect,rect_size) (This)->lpVtbl->GetFrameMoveRects(This,move_size,rect,rect_size)
|
|
+#define IDXGIOutputDuplication_GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info) (This)->lpVtbl->GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info)
|
|
+#define IDXGIOutputDuplication_MapDesktopSurface(This,rect) (This)->lpVtbl->MapDesktopSurface(This,rect)
|
|
+#define IDXGIOutputDuplication_UnMapDesktopSurface(This) (This)->lpVtbl->UnMapDesktopSurface(This)
|
|
+#define IDXGIOutputDuplication_ReleaseFrame(This) (This)->lpVtbl->ReleaseFrame(This)
|
|
+#else
|
|
+/*** IUnknown methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_QueryInterface(IDXGIOutputDuplication* This,REFIID riid,void **ppvObject) {
|
|
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
+}
|
|
+static FORCEINLINE ULONG IDXGIOutputDuplication_AddRef(IDXGIOutputDuplication* This) {
|
|
+ return This->lpVtbl->AddRef(This);
|
|
+}
|
|
+static FORCEINLINE ULONG IDXGIOutputDuplication_Release(IDXGIOutputDuplication* This) {
|
|
+ return This->lpVtbl->Release(This);
|
|
+}
|
|
+/*** IDXGIObject methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT data_size,const void *data) {
|
|
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateDataInterface(IDXGIOutputDuplication* This,REFGUID guid,const IUnknown *object) {
|
|
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT *data_size,void *data) {
|
|
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetParent(IDXGIOutputDuplication* This,REFIID riid,void **parent) {
|
|
+ return This->lpVtbl->GetParent(This,riid,parent);
|
|
+}
|
|
+/*** IDXGIOutputDuplication methods ***/
|
|
+static FORCEINLINE void IDXGIOutputDuplication_GetDesc(IDXGIOutputDuplication* This,DXGI_OUTDUPL_DESC *desc) {
|
|
+ This->lpVtbl->GetDesc(This,desc);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_AcquireNextFrame(IDXGIOutputDuplication* This,UINT timeout,DXGI_OUTDUPL_FRAME_INFO *frame_info,IDXGIResource **resource) {
|
|
+ return This->lpVtbl->AcquireNextFrame(This,timeout,frame_info,resource);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameDirtyRects(IDXGIOutputDuplication* This,UINT dirty_size,RECT *buffer,UINT *buffer_size) {
|
|
+ return This->lpVtbl->GetFrameDirtyRects(This,dirty_size,buffer,buffer_size);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameMoveRects(IDXGIOutputDuplication* This,UINT move_size,DXGI_OUTDUPL_MOVE_RECT *rect,UINT *rect_size) {
|
|
+ return This->lpVtbl->GetFrameMoveRects(This,move_size,rect,rect_size);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFramePointerShape(IDXGIOutputDuplication* This,UINT shape_size,void *buffer,UINT *buffer_size,DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info) {
|
|
+ return This->lpVtbl->GetFramePointerShape(This,shape_size,buffer,buffer_size,shape_info);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_MapDesktopSurface(IDXGIOutputDuplication* This,DXGI_MAPPED_RECT *rect) {
|
|
+ return This->lpVtbl->MapDesktopSurface(This,rect);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_UnMapDesktopSurface(IDXGIOutputDuplication* This) {
|
|
+ return This->lpVtbl->UnMapDesktopSurface(This);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutputDuplication_ReleaseFrame(IDXGIOutputDuplication* This) {
|
|
+ return This->lpVtbl->ReleaseFrame(This);
|
|
+}
|
|
+#endif
|
|
+#endif
|
|
+
|
|
+#endif
|
|
+
|
|
+void STDMETHODCALLTYPE IDXGIOutputDuplication_GetDesc_Proxy(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ DXGI_OUTDUPL_DESC *desc);
|
|
+void __RPC_STUB IDXGIOutputDuplication_GetDesc_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_AcquireNextFrame_Proxy(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT timeout,
|
|
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
|
|
+ IDXGIResource **resource);
|
|
+void __RPC_STUB IDXGIOutputDuplication_AcquireNextFrame_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameDirtyRects_Proxy(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT dirty_size,
|
|
+ RECT *buffer,
|
|
+ UINT *buffer_size);
|
|
+void __RPC_STUB IDXGIOutputDuplication_GetFrameDirtyRects_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameMoveRects_Proxy(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT move_size,
|
|
+ DXGI_OUTDUPL_MOVE_RECT *rect,
|
|
+ UINT *rect_size);
|
|
+void __RPC_STUB IDXGIOutputDuplication_GetFrameMoveRects_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFramePointerShape_Proxy(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ UINT shape_size,
|
|
+ void *buffer,
|
|
+ UINT *buffer_size,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info);
|
|
+void __RPC_STUB IDXGIOutputDuplication_GetFramePointerShape_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_MapDesktopSurface_Proxy(
|
|
+ IDXGIOutputDuplication* This,
|
|
+ DXGI_MAPPED_RECT *rect);
|
|
+void __RPC_STUB IDXGIOutputDuplication_MapDesktopSurface_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_UnMapDesktopSurface_Proxy(
|
|
+ IDXGIOutputDuplication* This);
|
|
+void __RPC_STUB IDXGIOutputDuplication_UnMapDesktopSurface_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_ReleaseFrame_Proxy(
|
|
+ IDXGIOutputDuplication* This);
|
|
+void __RPC_STUB IDXGIOutputDuplication_ReleaseFrame_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+
|
|
+#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */
|
|
+
|
|
typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
|
|
DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
|
|
DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2,
|
|
@@ -1385,6 +1817,318 @@ void __RPC_STUB IDXGIAdapter2_GetDesc2_Stub(
|
|
|
|
#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */
|
|
|
|
+typedef struct DXGI_MODE_DESC1 {
|
|
+ UINT Width;
|
|
+ UINT Height;
|
|
+ DXGI_RATIONAL RefreshRate;
|
|
+ DXGI_FORMAT Format;
|
|
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
|
|
+ DXGI_MODE_SCALING Scaling;
|
|
+ WINBOOL Stereo;
|
|
+} DXGI_MODE_DESC1;
|
|
+/*****************************************************************************
|
|
+ * IDXGIOutput1 interface
|
|
+ */
|
|
+#ifndef __IDXGIOutput1_INTERFACE_DEFINED__
|
|
+#define __IDXGIOutput1_INTERFACE_DEFINED__
|
|
+
|
|
+DEFINE_GUID(IID_IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc);
|
|
+#if defined(__cplusplus) && !defined(CINTERFACE)
|
|
+MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc")
|
|
+IDXGIOutput1 : public IDXGIOutput
|
|
+{
|
|
+ virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1(
|
|
+ DXGI_FORMAT format,
|
|
+ UINT flags,
|
|
+ UINT *mode_count,
|
|
+ DXGI_MODE_DESC1 *desc) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1(
|
|
+ const DXGI_MODE_DESC1 *mode,
|
|
+ DXGI_MODE_DESC1 *closest_match,
|
|
+ IUnknown *device) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1(
|
|
+ IDXGIResource *resource) = 0;
|
|
+
|
|
+ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput(
|
|
+ IUnknown *device,
|
|
+ IDXGIOutputDuplication **output) = 0;
|
|
+
|
|
+};
|
|
+#ifdef __CRT_UUID_DECL
|
|
+__CRT_UUID_DECL(IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc)
|
|
+#endif
|
|
+#else
|
|
+typedef struct IDXGIOutput1Vtbl {
|
|
+ BEGIN_INTERFACE
|
|
+
|
|
+ /*** IUnknown methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
|
+ IDXGIOutput1* This,
|
|
+ REFIID riid,
|
|
+ void **ppvObject);
|
|
+
|
|
+ ULONG (STDMETHODCALLTYPE *AddRef)(
|
|
+ IDXGIOutput1* This);
|
|
+
|
|
+ ULONG (STDMETHODCALLTYPE *Release)(
|
|
+ IDXGIOutput1* This);
|
|
+
|
|
+ /*** IDXGIObject methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
|
|
+ IDXGIOutput1* This,
|
|
+ REFGUID guid,
|
|
+ UINT data_size,
|
|
+ const void *data);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
|
|
+ IDXGIOutput1* This,
|
|
+ REFGUID guid,
|
|
+ const IUnknown *object);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
|
|
+ IDXGIOutput1* This,
|
|
+ REFGUID guid,
|
|
+ UINT *data_size,
|
|
+ void *data);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
|
|
+ IDXGIOutput1* This,
|
|
+ REFIID riid,
|
|
+ void **parent);
|
|
+
|
|
+ /*** IDXGIOutput methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_OUTPUT_DESC *desc);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_FORMAT format,
|
|
+ UINT flags,
|
|
+ UINT *mode_count,
|
|
+ DXGI_MODE_DESC *desc);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
|
|
+ IDXGIOutput1* This,
|
|
+ const DXGI_MODE_DESC *mode,
|
|
+ DXGI_MODE_DESC *closest_match,
|
|
+ IUnknown *device);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
|
|
+ IDXGIOutput1* This);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
|
|
+ IDXGIOutput1* This,
|
|
+ IUnknown *device,
|
|
+ WINBOOL exclusive);
|
|
+
|
|
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
|
|
+ IDXGIOutput1* This);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
|
|
+ IDXGIOutput1* This,
|
|
+ const DXGI_GAMMA_CONTROL *gamma_control);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_GAMMA_CONTROL *gamma_control);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
|
|
+ IDXGIOutput1* This,
|
|
+ IDXGISurface *surface);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
|
|
+ IDXGIOutput1* This,
|
|
+ IDXGISurface *surface);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_FRAME_STATISTICS *stats);
|
|
+
|
|
+ /*** IDXGIOutput1 methods ***/
|
|
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_FORMAT format,
|
|
+ UINT flags,
|
|
+ UINT *mode_count,
|
|
+ DXGI_MODE_DESC1 *desc);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
|
|
+ IDXGIOutput1* This,
|
|
+ const DXGI_MODE_DESC1 *mode,
|
|
+ DXGI_MODE_DESC1 *closest_match,
|
|
+ IUnknown *device);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
|
|
+ IDXGIOutput1* This,
|
|
+ IDXGIResource *resource);
|
|
+
|
|
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
|
|
+ IDXGIOutput1* This,
|
|
+ IUnknown *device,
|
|
+ IDXGIOutputDuplication **output);
|
|
+
|
|
+ END_INTERFACE
|
|
+} IDXGIOutput1Vtbl;
|
|
+interface IDXGIOutput1 {
|
|
+ CONST_VTBL IDXGIOutput1Vtbl* lpVtbl;
|
|
+};
|
|
+
|
|
+#ifdef COBJMACROS
|
|
+#ifndef WIDL_C_INLINE_WRAPPERS
|
|
+/*** IUnknown methods ***/
|
|
+#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
|
+#define IDXGIOutput1_AddRef(This) (This)->lpVtbl->AddRef(This)
|
|
+#define IDXGIOutput1_Release(This) (This)->lpVtbl->Release(This)
|
|
+/*** IDXGIObject methods ***/
|
|
+#define IDXGIOutput1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
|
|
+#define IDXGIOutput1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
|
|
+#define IDXGIOutput1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
|
|
+#define IDXGIOutput1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
|
|
+/*** IDXGIOutput methods ***/
|
|
+#define IDXGIOutput1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
|
|
+#define IDXGIOutput1_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
|
|
+#define IDXGIOutput1_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
|
|
+#define IDXGIOutput1_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
|
|
+#define IDXGIOutput1_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
|
|
+#define IDXGIOutput1_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
|
|
+#define IDXGIOutput1_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
|
|
+#define IDXGIOutput1_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
|
|
+#define IDXGIOutput1_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
|
|
+#define IDXGIOutput1_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
|
|
+#define IDXGIOutput1_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
|
|
+#define IDXGIOutput1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
|
|
+/*** IDXGIOutput1 methods ***/
|
|
+#define IDXGIOutput1_GetDisplayModeList1(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList1(This,format,flags,mode_count,desc)
|
|
+#define IDXGIOutput1_FindClosestMatchingMode1(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode,closest_match,device)
|
|
+#define IDXGIOutput1_GetDisplaySurfaceData1(This,resource) (This)->lpVtbl->GetDisplaySurfaceData1(This,resource)
|
|
+#define IDXGIOutput1_DuplicateOutput(This,device,output) (This)->lpVtbl->DuplicateOutput(This,device,output)
|
|
+#else
|
|
+/*** IUnknown methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_QueryInterface(IDXGIOutput1* This,REFIID riid,void **ppvObject) {
|
|
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
|
+}
|
|
+static FORCEINLINE ULONG IDXGIOutput1_AddRef(IDXGIOutput1* This) {
|
|
+ return This->lpVtbl->AddRef(This);
|
|
+}
|
|
+static FORCEINLINE ULONG IDXGIOutput1_Release(IDXGIOutput1* This) {
|
|
+ return This->lpVtbl->Release(This);
|
|
+}
|
|
+/*** IDXGIObject methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT data_size,const void *data) {
|
|
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateDataInterface(IDXGIOutput1* This,REFGUID guid,const IUnknown *object) {
|
|
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT *data_size,void *data) {
|
|
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetParent(IDXGIOutput1* This,REFIID riid,void **parent) {
|
|
+ return This->lpVtbl->GetParent(This,riid,parent);
|
|
+}
|
|
+/*** IDXGIOutput methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetDesc(IDXGIOutput1* This,DXGI_OUTPUT_DESC *desc) {
|
|
+ return This->lpVtbl->GetDesc(This,desc);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
|
|
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode(IDXGIOutput1* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
|
|
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_WaitForVBlank(IDXGIOutput1* This) {
|
|
+ return This->lpVtbl->WaitForVBlank(This);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_TakeOwnership(IDXGIOutput1* This,IUnknown *device,WINBOOL exclusive) {
|
|
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
|
|
+}
|
|
+static FORCEINLINE void IDXGIOutput1_ReleaseOwnership(IDXGIOutput1* This) {
|
|
+ This->lpVtbl->ReleaseOwnership(This);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControlCapabilities(IDXGIOutput1* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
|
|
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_SetGammaControl(IDXGIOutput1* This,const DXGI_GAMMA_CONTROL *gamma_control) {
|
|
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControl(IDXGIOutput1* This,DXGI_GAMMA_CONTROL *gamma_control) {
|
|
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_SetDisplaySurface(IDXGIOutput1* This,IDXGISurface *surface) {
|
|
+ return This->lpVtbl->SetDisplaySurface(This,surface);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData(IDXGIOutput1* This,IDXGISurface *surface) {
|
|
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetFrameStatistics(IDXGIOutput1* This,DXGI_FRAME_STATISTICS *stats) {
|
|
+ return This->lpVtbl->GetFrameStatistics(This,stats);
|
|
+}
|
|
+/*** IDXGIOutput1 methods ***/
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList1(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC1 *desc) {
|
|
+ return This->lpVtbl->GetDisplayModeList1(This,format,flags,mode_count,desc);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode1(IDXGIOutput1* This,const DXGI_MODE_DESC1 *mode,DXGI_MODE_DESC1 *closest_match,IUnknown *device) {
|
|
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode,closest_match,device);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData1(IDXGIOutput1* This,IDXGIResource *resource) {
|
|
+ return This->lpVtbl->GetDisplaySurfaceData1(This,resource);
|
|
+}
|
|
+static FORCEINLINE HRESULT IDXGIOutput1_DuplicateOutput(IDXGIOutput1* This,IUnknown *device,IDXGIOutputDuplication **output) {
|
|
+ return This->lpVtbl->DuplicateOutput(This,device,output);
|
|
+}
|
|
+#endif
|
|
+#endif
|
|
+
|
|
+#endif
|
|
+
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplayModeList1_Proxy(
|
|
+ IDXGIOutput1* This,
|
|
+ DXGI_FORMAT format,
|
|
+ UINT flags,
|
|
+ UINT *mode_count,
|
|
+ DXGI_MODE_DESC1 *desc);
|
|
+void __RPC_STUB IDXGIOutput1_GetDisplayModeList1_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_FindClosestMatchingMode1_Proxy(
|
|
+ IDXGIOutput1* This,
|
|
+ const DXGI_MODE_DESC1 *mode,
|
|
+ DXGI_MODE_DESC1 *closest_match,
|
|
+ IUnknown *device);
|
|
+void __RPC_STUB IDXGIOutput1_FindClosestMatchingMode1_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplaySurfaceData1_Proxy(
|
|
+ IDXGIOutput1* This,
|
|
+ IDXGIResource *resource);
|
|
+void __RPC_STUB IDXGIOutput1_GetDisplaySurfaceData1_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_DuplicateOutput_Proxy(
|
|
+ IDXGIOutput1* This,
|
|
+ IUnknown *device,
|
|
+ IDXGIOutputDuplication **output);
|
|
+void __RPC_STUB IDXGIOutput1_DuplicateOutput_Stub(
|
|
+ IRpcStubBuffer* This,
|
|
+ IRpcChannelBuffer* pRpcChannelBuffer,
|
|
+ PRPC_MESSAGE pRpcMessage,
|
|
+ DWORD* pdwStubPhase);
|
|
+
|
|
+#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */
|
|
+
|
|
/* Begin additional prototypes for all interfaces */
|
|
|
|
|
|
diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl
|
|
index 92f9c0e..838521e 100644
|
|
--- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl
|
|
+++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl
|
|
@@ -1,5 +1,6 @@
|
|
/*
|
|
* Copyright 2014 Jacek Caban for CodeWeavers
|
|
+ * 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
|
|
@@ -18,6 +19,114 @@
|
|
|
|
import "dxgi.idl";
|
|
|
|
+[
|
|
+ object,
|
|
+ uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c),
|
|
+ local,
|
|
+ pointer_default(unique)
|
|
+]
|
|
+interface IDXGIDisplayControl : IUnknown
|
|
+{
|
|
+ BOOL IsStereoEnabled();
|
|
+
|
|
+ void SetStereoEnabled(
|
|
+ BOOL enabled
|
|
+ );
|
|
+}
|
|
+
|
|
+typedef struct DXGI_OUTDUPL_MOVE_RECT
|
|
+{
|
|
+ POINT SourcePoint;
|
|
+ RECT DestinationRect;
|
|
+} DXGI_OUTDUPL_MOVE_RECT;
|
|
+
|
|
+typedef struct DXGI_OUTDUPL_DESC
|
|
+{
|
|
+ DXGI_MODE_DESC ModeDesc;
|
|
+ DXGI_MODE_ROTATION Rotation;
|
|
+ BOOL DesktopImageInSystemMemory;
|
|
+} DXGI_OUTDUPL_DESC;
|
|
+
|
|
+typedef struct DXGI_OUTDUPL_POINTER_POSITION
|
|
+{
|
|
+ POINT Position;
|
|
+ BOOL Visible;
|
|
+} DXGI_OUTDUPL_POINTER_POSITION;
|
|
+
|
|
+typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE
|
|
+{
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2,
|
|
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4
|
|
+} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
|
|
+
|
|
+typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO
|
|
+{
|
|
+ UINT Type;
|
|
+ UINT Width;
|
|
+ UINT Height;
|
|
+ UINT Pitch;
|
|
+ POINT HotSpot;
|
|
+} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
|
|
+
|
|
+typedef struct DXGI_OUTDUPL_FRAME_INFO
|
|
+{
|
|
+ LARGE_INTEGER LastPresentTime;
|
|
+ LARGE_INTEGER LastMouseUpdateTime;
|
|
+ UINT AccumulatedFrames;
|
|
+ BOOL RectsCoalesced;
|
|
+ BOOL ProtectedContentMaskedOut;
|
|
+ DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
|
|
+ UINT TotalMetadataBufferSize;
|
|
+ UINT PointerShapeBufferSize;
|
|
+} DXGI_OUTDUPL_FRAME_INFO;
|
|
+
|
|
+[
|
|
+ object,
|
|
+ uuid(191cfac3-a341-470d-b26e-a864f428319c),
|
|
+ local,
|
|
+ pointer_default(unique)
|
|
+]
|
|
+interface IDXGIOutputDuplication : IDXGIObject
|
|
+{
|
|
+ void GetDesc(
|
|
+ [out] DXGI_OUTDUPL_DESC *desc
|
|
+ );
|
|
+
|
|
+ HRESULT AcquireNextFrame(
|
|
+ [in] UINT timeout,
|
|
+ [out] DXGI_OUTDUPL_FRAME_INFO *frame_info,
|
|
+ [out] IDXGIResource **resource
|
|
+ );
|
|
+
|
|
+ HRESULT GetFrameDirtyRects(
|
|
+ [in] UINT dirty_size,
|
|
+ [out] RECT *buffer,
|
|
+ [out] UINT *buffer_size
|
|
+ );
|
|
+
|
|
+ HRESULT GetFrameMoveRects(
|
|
+ [in] UINT move_size,
|
|
+ [out] DXGI_OUTDUPL_MOVE_RECT *rect,
|
|
+ [out] UINT *rect_size
|
|
+ );
|
|
+
|
|
+ HRESULT GetFramePointerShape(
|
|
+ [in] UINT shape_size,
|
|
+ [out] void *buffer,
|
|
+ [out] UINT *buffer_size,
|
|
+ [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *shape_info
|
|
+ );
|
|
+
|
|
+ HRESULT MapDesktopSurface(
|
|
+ [out] DXGI_MAPPED_RECT *rect
|
|
+ );
|
|
+
|
|
+ HRESULT UnMapDesktopSurface();
|
|
+
|
|
+ HRESULT ReleaseFrame();
|
|
+}
|
|
+
|
|
typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
|
|
DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
|
|
DXGI_OFFER_RESOURCE_PRIORITY_NORMAL,
|
|
@@ -232,3 +341,45 @@ interface IDXGIAdapter2 : IDXGIAdapter1
|
|
{
|
|
HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc);
|
|
}
|
|
+
|
|
+typedef struct DXGI_MODE_DESC1
|
|
+{
|
|
+ UINT Width;
|
|
+ UINT Height;
|
|
+ DXGI_RATIONAL RefreshRate;
|
|
+ DXGI_FORMAT Format;
|
|
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
|
|
+ DXGI_MODE_SCALING Scaling;
|
|
+ BOOL Stereo;
|
|
+} DXGI_MODE_DESC1;
|
|
+
|
|
+[
|
|
+ object,
|
|
+ uuid(00cddea8-939b-4b83-a340-a685226666cc),
|
|
+ local,
|
|
+ pointer_default(unique)
|
|
+]
|
|
+interface IDXGIOutput1 : IDXGIOutput
|
|
+{
|
|
+ HRESULT GetDisplayModeList1(
|
|
+ [in] DXGI_FORMAT format,
|
|
+ [in] UINT flags,
|
|
+ [in, out] UINT *mode_count,
|
|
+ [out] DXGI_MODE_DESC1 *desc
|
|
+ );
|
|
+
|
|
+ HRESULT FindClosestMatchingMode1(
|
|
+ [in] const DXGI_MODE_DESC1 *mode,
|
|
+ [out] DXGI_MODE_DESC1 *closest_match,
|
|
+ [in] IUnknown *device
|
|
+ );
|
|
+
|
|
+ HRESULT GetDisplaySurfaceData1(
|
|
+ [in] IDXGIResource *resource
|
|
+ );
|
|
+
|
|
+ HRESULT DuplicateOutput(
|
|
+ [in] IUnknown *device,
|
|
+ [out] IDXGIOutputDuplication **output
|
|
+ );
|
|
+}
|
|
--
|
|
2.4.5
|
|
|