[vlc-commits] contrib:d3d9: add the necessary headers to use IDirect3D9ExOverlayExtension
Steve Lhomme
git at videolan.org
Mon Apr 18 13:43:39 CEST 2016
vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Mon Apr 18 12:57:34 2016 +0200| [5f95051e71b63674f62532b15722f485d0e2b30e] | committer: Jean-Baptiste Kempf
contrib:d3d9: add the necessary headers to use IDirect3D9ExOverlayExtension
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5f95051e71b63674f62532b15722f485d0e2b30e
---
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(+)
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 $@
More information about the vlc-commits
mailing list