[vlc-devel] [PATCH 2/5] d3d11: add dxgi1_4.h generation

Steve Lhomme robux4 at videolabs.io
Sat Apr 16 17:47:32 CEST 2016


for IDXGISwapChain3::CheckColorSpaceSupport() & IDXGISwapChain3::SetColorSpace1()

--
replaces https://patches.videolan.org/patch/12963/
 https://patches.videolan.org/patch/12962/
https://patches.videolan.org/patch/12964/
---
 contrib/src/d3d11/dxgi1_4.idl | 54 +++++++++++++++++++++++++++++++++++++++++++
 contrib/src/d3d11/rules.mak   | 10 +++++++-
 2 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 contrib/src/d3d11/dxgi1_4.idl

diff --git a/contrib/src/d3d11/dxgi1_4.idl b/contrib/src/d3d11/dxgi1_4.idl
new file mode 100644
index 0000000..ec5b3f0
--- /dev/null
+++ b/contrib/src/d3d11/dxgi1_4.idl
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2016 Steve Lhomme
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "dxgi1_3.idl";
+
+[
+    object,
+    local,
+    uuid(94d99bdb-f1f8-4ab0-b236-7da0170edab1)
+]
+interface IDXGISwapChain3 : IDXGISwapChain2
+{
+    UINT GetCurrentBackBufferIndex();
+
+    HRESULT CheckColorSpaceSupport(
+        [in] DXGI_COLOR_SPACE_TYPE ColorSpace,
+        [out] UINT* pColorSpaceSupport
+    );
+
+    HRESULT SetColorSpace1(
+        [in] DXGI_COLOR_SPACE_TYPE ColorSpace
+    );
+
+    HRESULT ResizeBuffers1(
+        [in] UINT BufferCount,
+        [in] UINT Width,
+        [in] UINT Height,
+        [in] DXGI_FORMAT Format,
+        [in] UINT SwapChainFlags,
+        [in] const UINT* pCreationNodeMask,
+        [in] IUnknown* const* ppPresentQueue
+    );
+};
+
+typedef enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG
+{
+    DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT         = 0x01,
+    DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x02,
+} DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG;
diff --git a/contrib/src/d3d11/rules.mak b/contrib/src/d3d11/rules.mak
index 21570ae..ebc2892 100644
--- a/contrib/src/d3d11/rules.mak
+++ b/contrib/src/d3d11/rules.mak
@@ -18,10 +18,11 @@ DST_DXGIDEBUG_H = $(PREFIX)/include/dxgidebug.h
 DST_DXGITYPE_H = $(PREFIX)/include/dxgitype.h
 DST_DXGI12_H = $(PREFIX)/include/dxgi1_2.h
 DST_DXGI13_H = $(PREFIX)/include/dxgi1_3.h
+DST_DXGI14_H = $(PREFIX)/include/dxgi1_4.h
 
 
 ifdef HAVE_WIN32
-PKGS += d3d11 dxgi13 dxgitype
+PKGS += d3d11 dxgi13 dxgi14 dxgitype
 endif
 
 $(TARBALLS)/d3d11.idl:
@@ -66,9 +67,16 @@ $(DST_DXGI13_H): $(SRC)/d3d11/dxgi1_3.idl $(DST_DXGI12_H)
 	mkdir -p -- "$(PREFIX)/include/"
 	$(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(IDL_INC_PATH) -h -o $@ $<
 
+$(DST_DXGI14_H): $(SRC)/d3d11/dxgi1_4.idl $(DST_DXGI13_H)
+	mkdir -p -- "$(PREFIX)/include/"
+	$(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(IDL_INC_PATH) -h -o $@ $<
+
 .dxgi13: $(DST_DXGI13_H)
 	touch $@
 
+.dxgi14: $(DST_DXGI14_H)
+	touch $@
+
 .dxgitype: $(DST_DXGITYPE_H)
 	touch $@
 
-- 
2.7.0



More information about the vlc-devel mailing list