[vlc-commits] direct3d11: handle the legacy UWP size handling in the local swapchain
Steve Lhomme
git at videolan.org
Wed Jun 5 17:39:23 CEST 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Wed Jun 5 17:19:30 2019 +0200| [3f86473885871e9940b8eca804bad922cd0fd4b1] | committer: Steve Lhomme
direct3d11: handle the legacy UWP size handling in the local swapchain
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3f86473885871e9940b8eca804bad922cd0fd4b1
---
modules/video_output/win32/d3d11_swapchain.c | 21 +++++++++++++++++++++
modules/video_output/win32/direct3d11.c | 20 --------------------
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/modules/video_output/win32/d3d11_swapchain.c b/modules/video_output/win32/d3d11_swapchain.c
index bd4df02897..9d08fbaed6 100644
--- a/modules/video_output/win32/d3d11_swapchain.c
+++ b/modules/video_output/win32/d3d11_swapchain.c
@@ -62,6 +62,9 @@ typedef struct dxgi_color_space {
bool b_full_range;
} dxgi_color_space;
+DEFINE_GUID(GUID_SWAPCHAIN_WIDTH, 0xf1b59347, 0x1643, 0x411a, 0xad, 0x6b, 0xc7, 0x80, 0x17, 0x7a, 0x06, 0xb6);
+DEFINE_GUID(GUID_SWAPCHAIN_HEIGHT, 0x6ea976a0, 0x9d60, 0x4bb7, 0xa5, 0xa9, 0x7d, 0xd1, 0x18, 0x7f, 0xc9, 0xbd);
+
#define DXGI_COLOR_RANGE_FULL 1 /* 0-255 */
#define DXGI_COLOR_RANGE_STUDIO 0 /* 16-235 */
@@ -486,6 +489,24 @@ bool LocalSwapchainStartEndRendering( void *opaque, bool enter, const libvlc_vid
if ( enter )
{
+#if VLC_WINSTORE_APP
+ /* legacy UWP mode, the width/height was set in GUID_SWAPCHAIN_WIDTH/HEIGHT */
+ uint32_t i_width;
+ uint32_t i_height;
+ UINT dataSize = sizeof(i_width);
+ HRESULT hr = IDXGISwapChain_GetPrivateData(display->dxgiswapChain, &GUID_SWAPCHAIN_WIDTH, &dataSize, &i_width);
+ if (SUCCEEDED(hr)) {
+ dataSize = sizeof(i_height);
+ hr = IDXGISwapChain_GetPrivateData(display->dxgiswapChain, &GUID_SWAPCHAIN_HEIGHT, &dataSize, &i_height);
+ if (SUCCEEDED(hr)) {
+ if (i_width != sys->area.vdcfg.display.width || i_height != sys->area.vdcfg.display.height)
+ {
+ vout_display_SetSize(vd, i_width, i_height);
+ }
+ }
+ }
+#endif
+
if ( display->dxgiswapChain4 && p_hdr10 != NULL )
{
DXGI_HDR_METADATA_HDR10 hdr10 = { 0 };
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index 4ed6b73ca7..a7fe0e259d 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -63,9 +63,6 @@
#include "common.h"
#include "../../video_chroma/copy.h"
-DEFINE_GUID(GUID_SWAPCHAIN_WIDTH, 0xf1b59347, 0x1643, 0x411a, 0xad, 0x6b, 0xc7, 0x80, 0x17, 0x7a, 0x06, 0xb6);
-DEFINE_GUID(GUID_SWAPCHAIN_HEIGHT, 0x6ea976a0, 0x9d60, 0x4bb7, 0xa5, 0xa9, 0x7d, 0xd1, 0x18, 0x7f, 0xc9, 0xbd);
-
static int Open(vout_display_t *, const vout_display_cfg_t *,
video_format_t *, vlc_video_context *);
static void Close(vout_display_t *);
@@ -779,23 +776,6 @@ static void Prepare(vout_display_t *vd, picture_t *picture,
vout_display_sys_t *sys = vd->sys;
VLC_UNUSED(date);
-#if VLC_WINSTORE_APP
- /* legacy UWP mode, the width/height was set in GUID_SWAPCHAIN_WIDTH/HEIGHT */
- uint32_t i_width;
- uint32_t i_height;
- UINT dataSize = sizeof(i_width);
- HRESULT hr = IDXGISwapChain_GetPrivateData(sys->internal_swapchain.dxgiswapChain, &GUID_SWAPCHAIN_WIDTH, &dataSize, &i_width);
- if (SUCCEEDED(hr)) {
- dataSize = sizeof(i_height);
- hr = IDXGISwapChain_GetPrivateData(sys->internal_swapchain.dxgiswapChain, &GUID_SWAPCHAIN_HEIGHT, &dataSize, &i_height);
- if (SUCCEEDED(hr)) {
- if (i_width != sys->area.vdcfg.display.width || i_height != sys->area.vdcfg.display.height)
- {
- vout_display_SetSize(vd, i_width, i_height);
- }
- }
- }
-#endif
libvlc_video_direct3d_hdr10_metadata_t hdr10;
if (picture->format.mastering.max_luminance)
More information about the vlc-commits
mailing list