[vlc-devel] [PATCH 4/6] contrib: d3d11: add dxgi1.5 to support HDR10 metadata
Steve Lhomme
robux4 at videolabs.io
Thu Mar 30 11:20:01 CEST 2017
--
replaces https://patches.videolan.org/patch/16201/
- actually add the dxgi1_5.idl file...
---
contrib/src/d3d11/dxgi1_5.idl | 51 +++++++++++++++++++++++++++++++++++++++++++
contrib/src/d3d11/rules.mak | 10 ++++++++-
2 files changed, 60 insertions(+), 1 deletion(-)
create mode 100644 contrib/src/d3d11/dxgi1_5.idl
diff --git a/contrib/src/d3d11/dxgi1_5.idl b/contrib/src/d3d11/dxgi1_5.idl
new file mode 100644
index 0000000000..67a0868402
--- /dev/null
+++ b/contrib/src/d3d11/dxgi1_5.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2017 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_4.idl";
+
+typedef enum DXGI_HDR_METADATA_TYPE
+{
+ DXGI_HDR_METADATA_TYPE_NONE = 0x00,
+ DXGI_HDR_METADATA_TYPE_HDR10 = 0x01,
+} DXGI_HDR_METADATA_TYPE;
+
+typedef struct DXGI_HDR_METADATA_HDR10
+{
+ UINT16 RedPrimary[2];
+ UINT16 GreenPrimary[2];
+ UINT16 BluePrimary[2];
+ UINT16 WhitePoint[2];
+ UINT MaxMasteringLuminance;
+ UINT MinMasteringLuminance;
+ UINT16 MaxContentLightLevel;
+ UINT16 MaxFrameAverageLightLevel;
+} DXGI_HDR_METADATA_HDR10;
+
+[
+ object,
+ local,
+ uuid(3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb)
+]
+interface IDXGISwapChain4 : IDXGISwapChain3
+{
+ HRESULT SetHDRMetaData(
+ [in] DXGI_HDR_METADATA_TYPE Type,
+ [in] UINT Size,
+ [in] void* pMetaData
+ );
+};
diff --git a/contrib/src/d3d11/rules.mak b/contrib/src/d3d11/rules.mak
index f27bbbe5b6..fffc59fb95 100644
--- a/contrib/src/d3d11/rules.mak
+++ b/contrib/src/d3d11/rules.mak
@@ -19,6 +19,7 @@ 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
+DST_DXGI15_H = $(PREFIX)/include/dxgi1_5.h
ifdef HAVE_WIN32
@@ -71,6 +72,10 @@ $(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 $@ $<
+$(DST_DXGI15_H): $(SRC)/d3d11/dxgi1_5.idl $(DST_DXGI14_H)
+ mkdir -p -- "$(PREFIX)/include/"
+ $(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(IDL_INC_PATH) -h -o $@ $<
+
.dxgitype: $(DST_DXGITYPE_H)
touch $@
@@ -83,5 +88,8 @@ $(DST_DXGI14_H): $(SRC)/d3d11/dxgi1_4.idl $(DST_DXGI13_H)
.dxgi14: .dxgi13 $(DST_DXGI14_H)
touch $@
-.d3d11: $(DST_D3D11_H) $(DST_DXGIDEBUG_H) .dxgi14
+.dxgi15: .dxgi14 $(DST_DXGI15_H)
+ touch $@
+
+.d3d11: $(DST_D3D11_H) $(DST_DXGIDEBUG_H) .dxgi15
touch $@
--
2.11.1
More information about the vlc-devel
mailing list