mingw-w64: Update runtime to latest from git
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
From 58ff03526ba9a0e5ebe2e318b54fdbe993d5abbd Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Pavlov <alexpux@gmail.com>
|
||||
Date: Thu, 14 Sep 2017 11:13:45 +0300
|
||||
Subject: [PATCH 1/3] Allow to use bessel and complex functions without
|
||||
undefining
|
||||
|
||||
---
|
||||
mingw-w64-headers/crt/math.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
|
||||
index 658abc80..7d5a26da 100644
|
||||
--- a/mingw-w64-headers/crt/math.h
|
||||
+++ b/mingw-w64-headers/crt/math.h
|
||||
@@ -263,7 +263,7 @@ extern "C" {
|
||||
#define EDOM 33
|
||||
#define ERANGE 34
|
||||
|
||||
-#ifndef __STRICT_ANSI__
|
||||
+#if !defined(__STRICT_ANSI__) || defined(_POSIX_C_SOURCE) || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
|
||||
#ifndef _COMPLEX_DEFINED
|
||||
#define _COMPLEX_DEFINED
|
||||
--
|
||||
2.14.1
|
||||
|
||||
3402
mingw-w64-crt-git/0002-DirectX-9-fixes-for-VLC.patch
Normal file
3402
mingw-w64-crt-git/0002-DirectX-9-fixes-for-VLC.patch
Normal file
File diff suppressed because it is too large
Load Diff
4818
mingw-w64-crt-git/0003-DirectX-11-fixes-for-VLC.patch
Normal file
4818
mingw-w64-crt-git/0003-DirectX-11-fixes-for-VLC.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,961 +0,0 @@
|
||||
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
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
From 72fea0e0d302849b000e89dd9884661aa80f27dd Mon Sep 17 00:00:00 2001
|
||||
From: Martell Malone <martellmalone@gmail.com>
|
||||
Date: Mon, 16 Feb 2015 23:40:12 +0000
|
||||
Subject: [PATCH 4/6] d3d11: Add missing d3d11 1.1 structs and interfaces
|
||||
|
||||
---
|
||||
mingw-w64-headers/direct-x/include/d3d11_1.h | 5 +++++
|
||||
mingw-w64-headers/direct-x/include/d3d11_1.idl | 6 ++++++
|
||||
2 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/direct-x/include/d3d11_1.h
|
||||
index 51ca735..2460b3d 100644
|
||||
--- a/mingw-w64-headers/direct-x/include/d3d11_1.h
|
||||
+++ b/mingw-w64-headers/direct-x/include/d3d11_1.h
|
||||
@@ -59,6 +59,11 @@ typedef interface ID3D11Device1 ID3D11Device1;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+typedef enum D3D11_COPY_FLAGS {
|
||||
+ D3D11_COPY_NO_OVERWRITE = 0x1,
|
||||
+ D3D11_COPY_DISCARD = 0x2
|
||||
+} D3D11_COPY_FLAGS;
|
||||
+
|
||||
typedef enum D3D11_LOGIC_OP {
|
||||
D3D11_LOGIC_OP_CLEAR = 0,
|
||||
D3D11_LOGIC_OP_SET = 1,
|
||||
diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl
|
||||
index 1a46abf..319d522 100644
|
||||
--- a/mingw-w64-headers/direct-x/include/d3d11_1.idl
|
||||
+++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl
|
||||
@@ -22,6 +22,12 @@ import "dxgi1_2.idl";
|
||||
import "d3dcommon.idl";
|
||||
import "d3d11.idl";
|
||||
|
||||
+typedef enum D3D11_COPY_FLAGS
|
||||
+{
|
||||
+ D3D11_COPY_NO_OVERWRITE = 0x1,
|
||||
+ D3D11_COPY_DISCARD = 0x2,
|
||||
+} D3D11_COPY_FLAGS;
|
||||
+
|
||||
typedef enum D3D11_LOGIC_OP {
|
||||
D3D11_LOGIC_OP_CLEAR = 0,
|
||||
D3D11_LOGIC_OP_SET,
|
||||
--
|
||||
2.4.5
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
From ca451a7a45d4876065edc6755f8aab8095914b04 Mon Sep 17 00:00:00 2001
|
||||
From: Martell Malone <martellmalone@gmail.com>
|
||||
Date: Sat, 21 Nov 2015 18:43:46 -0800
|
||||
Subject: [PATCH] Handle __CTOR_LIST__ internally within mingw-w64
|
||||
|
||||
---
|
||||
mingw-w64-crt/crt/gccmain.c | 19 +++++++++++++------
|
||||
1 file changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/mingw-w64-crt/crt/gccmain.c b/mingw-w64-crt/crt/gccmain.c
|
||||
index fc0e350..ba50691 100644
|
||||
--- a/mingw-w64-crt/crt/gccmain.c
|
||||
+++ b/mingw-w64-crt/crt/gccmain.c
|
||||
@@ -9,8 +9,15 @@
|
||||
#include <setjmp.h>
|
||||
|
||||
typedef void (*func_ptr) (void);
|
||||
-extern func_ptr __CTOR_LIST__[];
|
||||
-extern func_ptr __DTOR_LIST__[];
|
||||
+#define STATIC static
|
||||
+
|
||||
+STATIC func_ptr __MINGW_CTOR_LIST__[1]
|
||||
+ __attribute__ ((__used__, section(".ctors"), aligned(sizeof(func_ptr))))
|
||||
+ = { (func_ptr) (-1) };
|
||||
+
|
||||
+STATIC func_ptr __MINGW_DTOR_LIST__[1]
|
||||
+ __attribute__((section(".dtors"), aligned(sizeof(func_ptr))))
|
||||
+ = { (func_ptr) (-1) };
|
||||
|
||||
void __do_global_dtors (void);
|
||||
void __do_global_ctors (void);
|
||||
@@ -19,7 +26,7 @@ void __main (void);
|
||||
void
|
||||
__do_global_dtors (void)
|
||||
{
|
||||
- static func_ptr *p = __DTOR_LIST__ + 1;
|
||||
+ static func_ptr *p = __MINGW_DTOR_LIST__ + 1;
|
||||
|
||||
while (*p)
|
||||
{
|
||||
@@ -31,17 +38,17 @@ __do_global_dtors (void)
|
||||
void
|
||||
__do_global_ctors (void)
|
||||
{
|
||||
- unsigned long nptrs = (unsigned long) (ptrdiff_t) __CTOR_LIST__[0];
|
||||
+ unsigned long nptrs = (unsigned long) (ptrdiff_t) __MINGW_CTOR_LIST__[0];
|
||||
unsigned long i;
|
||||
|
||||
if (nptrs == (unsigned long) -1)
|
||||
{
|
||||
- for (nptrs = 0; __CTOR_LIST__[nptrs + 1] != 0; nptrs++);
|
||||
+ for (nptrs = 0; __MINGW_CTOR_LIST__[nptrs + 1] != 0; nptrs++);
|
||||
}
|
||||
|
||||
for (i = nptrs; i >= 1; i--)
|
||||
{
|
||||
- __CTOR_LIST__[i] ();
|
||||
+ __MINGW_CTOR_LIST__[i] ();
|
||||
}
|
||||
|
||||
atexit (__do_global_dtors);
|
||||
@@ -4,7 +4,7 @@ _realname=crt
|
||||
pkgbase=mingw-w64-${_realname}-git
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
|
||||
replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn")
|
||||
pkgver=5.0.0.4963.b912d5d1
|
||||
pkgver=5.0.0.4966.1eee2140
|
||||
pkgrel=1
|
||||
pkgdesc='MinGW-w64 CRT for Windows'
|
||||
arch=('any')
|
||||
@@ -19,13 +19,13 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
options=('!strip' 'staticlibs' '!buildflags' '!emptydirs')
|
||||
source=("mingw-w64"::"git+https://git.code.sf.net/p/mingw-w64/mingw-w64"
|
||||
"0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch"
|
||||
"0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch"
|
||||
"0005-handle-ctor_list-internally.patch")
|
||||
0001-Allow-to-use-bessel-and-complex-functions-without-un.patch
|
||||
0002-DirectX-9-fixes-for-VLC.patch
|
||||
0003-DirectX-11-fixes-for-VLC.patch)
|
||||
sha256sums=('SKIP'
|
||||
'677642bbb0df3f1e0467f075f24c720657e9ed912a6e69cbf189352271fc09c1'
|
||||
'c6c996b273ee049a2c0b9570f007d2d76a95ff56abb3b147f156e6a221a561ef'
|
||||
'0eabe00375d4e26fd7e9afa56f6a9da02845fe2c0f900f5e1f829842bff8624a')
|
||||
'd641257f7e1469aff89adc33e57702b75fe9667ca035978f890eae1020b6814c'
|
||||
'2574be1f008e54a435b0c761f887f71e6b56bea3de924150f29f1a981332439a'
|
||||
'24fb10f42df9c26c01561a72e0518592b07c1e6f5ffcdbb46ceb8b1a7e204df9')
|
||||
|
||||
pkgver() {
|
||||
cd "${srcdir}/mingw-w64"
|
||||
@@ -37,8 +37,10 @@ pkgver() {
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/mingw-w64
|
||||
git am --committer-date-is-author-date "${srcdir}"/0003-dxgi-Add-missing-dxgi-1.2-structs-and-interfaces.patch
|
||||
git am --committer-date-is-author-date "${srcdir}"/0004-d3d11-Add-missing-d3d11-1.1-structs-and-interfaces.patch
|
||||
|
||||
git am --committer-date-is-author-date "${srcdir}/0001-Allow-to-use-bessel-and-complex-functions-without-un.patch"
|
||||
git am --committer-date-is-author-date "${srcdir}/0002-DirectX-9-fixes-for-VLC.patch"
|
||||
git am --committer-date-is-author-date "${srcdir}/0003-DirectX-11-fixes-for-VLC.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
@@ -5,7 +5,7 @@ pkgbase=mingw-w64-${_realname}-git
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
|
||||
replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn")
|
||||
pkgdesc="MinGW-w64 headers for Windows"
|
||||
pkgver=5.0.0.4965.a1047045
|
||||
pkgver=5.0.0.4966.1eee2140
|
||||
pkgrel=1
|
||||
arch=('any')
|
||||
url="https://mingw-w64.sourceforge.io/"
|
||||
|
||||
Reference in New Issue
Block a user