vlc | branch: master | Steve Lhomme <[email protected]> | Tue Mar 26 12:03:24 2019 +0100| [0198a1470903d42c45f9386bc8b786ab07d76d8c] | committer: Steve Lhomme
vout:win32: enable projection gestures per module Only the ones that can handle 360 projection should enable it. We don't need to pass the vout_display_t anymore. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0198a1470903d42c45f9386bc8b786ab07d76d8c --- modules/video_output/win32/common.c | 15 +++++++-------- modules/video_output/win32/common.h | 2 +- modules/video_output/win32/direct3d11.c | 8 ++++++-- modules/video_output/win32/direct3d9.c | 7 +++++-- modules/video_output/win32/glwin32.c | 3 ++- modules/video_output/win32/wingdi.c | 2 +- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/modules/video_output/win32/common.c b/modules/video_output/win32/common.c index 5025d892b3..b436f20def 100644 --- a/modules/video_output/win32/common.c +++ b/modules/video_output/win32/common.c @@ -77,11 +77,16 @@ static bool GetWindowDimensions(void *opaque, UINT *width, UINT *height) } /* */ -int CommonInit(vlc_object_t *obj, vout_display_t *vd, display_win32_area_t *area, vout_display_sys_win32_t *sys) +int CommonInit(vlc_object_t *obj, display_win32_area_t *area, + vout_display_sys_win32_t *sys, bool projection_gestures) { if (unlikely(area->vdcfg.window == NULL)) return VLC_EGENERIC; + area->pf_GetDisplayDimensions = GetWindowDimensions; + area->opaque_dimensions = sys; + + /* */ #if !defined(NDEBUG) && defined(HAVE_DXGIDEBUG_H) sys->dxgidebug_dll = LoadLibrary(TEXT("DXGIDEBUG.DLL")); #endif @@ -92,12 +97,6 @@ int CommonInit(vlc_object_t *obj, vout_display_t *vd, display_win32_area_t *area sys->is_first_placement = true; sys->is_on_top = false; -#if !defined(NDEBUG) && defined(HAVE_DXGIDEBUG_H) - sys->dxgidebug_dll = LoadLibrary(TEXT("DXGIDEBUG.DLL")); -#endif - area->pf_GetDisplayDimensions = GetWindowDimensions; - area->opaque_dimensions = sys; - var_Create(obj, "video-deco", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); /* */ @@ -115,7 +114,7 @@ int CommonInit(vlc_object_t *obj, vout_display_t *vd, display_win32_area_t *area cfg.y = var_InheritInteger(obj, "video-y"); cfg.width = area->vdcfg.display.width; cfg.height = area->vdcfg.display.height; - cfg.is_projected = vd->source.projection_mode != PROJECTION_MODE_RECTANGULAR; + cfg.is_projected = projection_gestures; event_hwnd_t hwnd; if (EventThreadStart(sys->event, &hwnd, &cfg)) diff --git a/modules/video_output/win32/common.h b/modules/video_output/win32/common.h index 88745755b7..552d7a34b1 100644 --- a/modules/video_output/win32/common.h +++ b/modules/video_output/win32/common.h @@ -75,7 +75,7 @@ typedef struct vout_display_sys_win32_t * Prototypes from common.c *****************************************************************************/ #if !VLC_WINSTORE_APP -int CommonInit(vlc_object_t *, vout_display_t *, display_win32_area_t *, vout_display_sys_win32_t *); +int CommonInit(vlc_object_t *, display_win32_area_t *, vout_display_sys_win32_t *, bool projection_gestures); void CommonClean(vlc_object_t *, vout_display_sys_win32_t *); #endif /* !VLC_WINSTORE_APP */ void CommonManage(vout_display_t *, display_win32_area_t *, vout_display_sys_win32_t *); diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index fe8456b43d..4b7decafb2 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -481,8 +481,12 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, #endif InitArea(vd, &sys->area, cfg); #if !VLC_WINSTORE_APP - if (d3d11_ctx == NULL && CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys)) - goto error; + if (d3d11_ctx == NULL) + { + if (CommonInit(VLC_OBJECT(vd), &sys->area, &sys->sys, + vd->source.projection_mode != PROJECTION_MODE_RECTANGULAR)) + goto error; + } #else /* !VLC_WINSTORE_APP */ sys->area.pf_GetDisplayDimensions = GetExtenalSwapchainDimensions; sys->area.opaque_dimensions = sys; diff --git a/modules/video_output/win32/direct3d9.c b/modules/video_output/win32/direct3d9.c index d5e0a4369e..77590d8476 100644 --- a/modules/video_output/win32/direct3d9.c +++ b/modules/video_output/win32/direct3d9.c @@ -1681,8 +1681,11 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, sys->desktop_save.is_on_top = false; InitArea(vd, &sys->area, cfg); - if (d3d9_device == NULL && CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys)) - goto error; + if (d3d9_device == NULL) + { + if (CommonInit(VLC_OBJECT(vd), &sys->area, &sys->sys, false)) + goto error; + } /* */ video_format_t fmt; diff --git a/modules/video_output/win32/glwin32.c b/modules/video_output/win32/glwin32.c index 2a3252134e..053cc36569 100644 --- a/modules/video_output/win32/glwin32.c +++ b/modules/video_output/win32/glwin32.c @@ -123,7 +123,8 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, /* */ InitArea(vd, &sys->area, cfg); - if (CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys)) + if (CommonInit(VLC_OBJECT(vd), &sys->area, &sys->sys, + vd->source.projection_mode != PROJECTION_MODE_RECTANGULAR)) goto error; if (vd->source.projection_mode != PROJECTION_MODE_RECTANGULAR) diff --git a/modules/video_output/win32/wingdi.c b/modules/video_output/win32/wingdi.c index e7da115fe4..46a7885176 100644 --- a/modules/video_output/win32/wingdi.c +++ b/modules/video_output/win32/wingdi.c @@ -118,7 +118,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, return VLC_ENOMEM; InitArea(vd, &sys->area, cfg); - if (CommonInit(VLC_OBJECT(vd), vd, &sys->area, &sys->sys)) + if (CommonInit(VLC_OBJECT(vd), &sys->area, &sys->sys, false)) goto error; /* */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
