[vlc-devel] [PATCH] contrib:d3d9: add the necessary headers to use IDirect3D9ExOverlayExtension

Steve Lhomme robux4 at videolabs.io
Mon Apr 18 12:57:34 CEST 2016


---
 contrib/src/d3d9/SHA512SUMS     |  2 ++
 contrib/src/d3d9/d3d9.patch     | 45 +++++++++++++++++++++++++++++++++++++++++
 contrib/src/d3d9/d3d9caps.patch | 17 ++++++++++++++++
 contrib/src/d3d9/rules.mak      | 42 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 106 insertions(+)
 create mode 100644 contrib/src/d3d9/SHA512SUMS
 create mode 100644 contrib/src/d3d9/d3d9.patch
 create mode 100644 contrib/src/d3d9/d3d9caps.patch
 create mode 100644 contrib/src/d3d9/rules.mak

diff --git a/contrib/src/d3d9/SHA512SUMS b/contrib/src/d3d9/SHA512SUMS
new file mode 100644
index 0000000..d5090c8
--- /dev/null
+++ b/contrib/src/d3d9/SHA512SUMS
@@ -0,0 +1,2 @@
+81ee35501f7657dee19bc24f94af15a34a61b84fd0855a4ff91ab95b0e16ec163594e64accde1acdd289a07b8cd9c0cd640cbcbc87b11bebd92e4db841da80aa  d3d9caps.h
+42cfe1b2234065e4ce712f806370d0acbdf9bb4e4dd74859f21fd7e7428eabca9b5607c03aba57d3994d0946722d1837a454891a2e7f8242d353f29bb6a80d55  d3d9.h
diff --git a/contrib/src/d3d9/d3d9.patch b/contrib/src/d3d9/d3d9.patch
new file mode 100644
index 0000000..f062424
--- /dev/null
+++ b/contrib/src/d3d9/d3d9.patch
@@ -0,0 +1,45 @@
+--- include/d3d9.h	2016-04-17 11:41:20.676521300 +0300
++++ include/d3d9.h.new	2016-04-17 12:12:13.637219200 +0300
+@@ -2185,6 +2185,42 @@ __CRT_UUID_DECL(IDirect3DDevice9Ex,
+ #define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c)                     (p)->GetDisplayModeEx(a,b,c)
+ #endif
+ 
++/*****************************************************************************
++ * IDirect3D9ExOverlayExtension interface
++ */
++#define INTERFACE IDirect3D9ExOverlayExtension
++DECLARE_INTERFACE_(IDirect3D9ExOverlayExtension,IUnknown)
++{
++    /*** IUnknown methods ***/
++    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
++    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
++    STDMETHOD_(ULONG,Release)(THIS) PURE;
++    /*** IDirect3D9ExOverlayExtension methods ***/
++    STDMETHOD(CheckDeviceOverlayType)(THIS_ UINT Adapter, D3DDEVTYPE DevType, UINT OverlayWidth, UINT OverlayHeight,
++            D3DFORMAT OverlayFormat, D3DDISPLAYMODEEX* pDisplayMode, D3DDISPLAYROTATION DisplayRotation, D3DOVERLAYCAPS* pOverlayCaps) PURE;
++};
++#undef INTERFACE
++
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3D9ExOverlayExtension,                   0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x8, 0x8c, 0xd, 0xf8);
++#endif
++
++#if !defined(__cplusplus) || defined(CINTERFACE)
++/*** IUnknown methods ***/
++#define IDirect3D9ExOverlayExtension_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
++#define IDirect3D9ExOverlayExtension_AddRef(p) (p)->lpVtbl->AddRef(p)
++#define IDirect3D9ExOverlayExtension_Release(p) (p)->lpVtbl->Release(p)
++/*** IDirect3D9ExOverlayExtension ***/
++#define IDirect3D9ExOverlayExtension_CheckDeviceOverlayType(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CheckDeviceOverlayType(p,a,b,c,d,e,f,g,h)
++#else
++/*** IUnknown methods ***/
++#define IDirect3D9ExOverlayExtension_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
++#define IDirect3D9ExOverlayExtension_AddRef(p) (p)->AddRef()
++#define IDirect3D9ExOverlayExtension_Release(p) (p)->Release()
++/*** IDirect3D9ExOverlayExtension ***/
++#define IDirect3D9ExOverlayExtension_CheckDeviceOverlayType(p,a,b,c,d,e,f,g,h) (p)->CheckDeviceOverlayType(a,b,c,d,e,f,g,h)
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif  /* defined(__cplusplus) */
diff --git a/contrib/src/d3d9/d3d9caps.patch b/contrib/src/d3d9/d3d9caps.patch
new file mode 100644
index 0000000..b32aabb
--- /dev/null
+++ b/contrib/src/d3d9/d3d9caps.patch
@@ -0,0 +1,17 @@
+--- include/d3d9caps.h	2016-04-17 11:41:20.681535900 +0300
++++ include/d3d9caps.h.old	2016-04-17 11:49:14.065736000 +0300
+@@ -399,6 +399,14 @@ typedef struct _D3DCAPS9 {
+ 
+ } D3DCAPS9;
+ 
++typedef struct _D3DOVERLAYCAPS {
++  UINT                Caps;
++  UINT                MaxOverlayDisplayWidth;
++  UINT                MaxOverlayDisplayHeight;
++
++} D3DOVERLAYCAPS;
++
++
+ #ifdef __i386__
+ #include <poppack.h>
+ #endif
diff --git a/contrib/src/d3d9/rules.mak b/contrib/src/d3d9/rules.mak
new file mode 100644
index 0000000..9da2591
--- /dev/null
+++ b/contrib/src/d3d9/rules.mak
@@ -0,0 +1,42 @@
+# generate Direct3D9 temporary include
+
+ifdef HAVE_CROSS_COMPILE
+IDL_INC_PATH = /usr/include/wine/windows/
+else
+#ugly way to get the default location of standard idl files
+IDL_INC_PATH = /`echo $(MSYSTEM) | tr A-Z a-z`/$(BUILD)/include
+endif
+
+D3D9CAPS_COMMIT_ID := 477108e5706e73421634436c21cb76e1795b3609
+D3D9_H_ID := 477108e5706e73421634436c21cb76e1795b3609
+D3D9CAPS_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D9CAPS_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d9caps.h?format=raw
+D3D9_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D9CAPS_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d9.h?format=raw
+DST_D3D9CAPS_H = $(PREFIX)/include/d3d9caps.h
+DST_D3D9_H = $(PREFIX)/include/d3d9.h
+
+
+ifdef HAVE_WIN32
+PKGS += d3d9
+endif
+
+$(TARBALLS)/d3d9caps.h:
+	$(call download,$(D3D9CAPS_H_URL))
+
+$(TARBALLS)/d3d9.h:
+	$(call download,$(D3D9_H_URL))
+
+.sum-d3d9: $(TARBALLS)/d3d9caps.h $(TARBALLS)/d3d9.h
+
+$(DST_D3D9CAPS_H): $(TARBALLS)/d3d9caps.h
+	mkdir -p -- "$(PREFIX)/include/"
+	cp $(TARBALLS)/d3d9caps.h $@ && cd "$(PREFIX)/include/" && patch -fp1 < ../$(SRC)/d3d9/d3d9caps.patch
+
+$(DST_D3D9_H): $(TARBALLS)/d3d9.h
+	mkdir -p -- "$(PREFIX)/include/"
+	cp $(TARBALLS)/d3d9.h $@ && cd "$(PREFIX)/include/" && patch -fp1 < ../$(SRC)/d3d9/d3d9.patch
+
+.d3d9caps: $(DST_D3D9CAPS_H)
+	touch $@
+    
+.d3d9: $(DST_D3D9_H) $(DST_D3D9CAPS_H)
+	touch $@
-- 
2.7.0



More information about the vlc-devel mailing list