[vlc-devel] [PATCH v2 00/12] Video integration within Qt interface for Windows

Pierre Lamot pierre at videolabs.io
Thu May 14 14:05:19 CEST 2020


Since V1

- Direct composition support is disabled when dcomp.h is missing or broken

- DirectCompositon Visual is stored in vout_window.handle whereas the device is
  stored in vout_window.display

- dll import from ANGLE api is disabled only when statically linking with qt

- d3d11 CreateSwapchain is now split in CreateSwapchainHwnd and
  CreateSwapchainDComp

- use of an union in d3d11 module to diferentiate dcomp from hwnd

- minor bug fixes

branch is available at https://code.videolan.org/chub/vlc/-/tree/dcomp/11

Pierre Lamot (12):
  d3d11: allow rendering video to DirectComposition surfaces
  qml: rename rootWindow to mainInterface
  qml: use the top window to filter global key events rather than the
    embed widget
  qt: remove dependency from mainUI in the toolbar editor
  qt: move vout window report functions to the Video surface provider
  qt: add compositor interface
  qt: provide a dummy compositor
  contrib: allow static linking of ANGLE on Windows
  qt: add DirectCompositor compositor
  qt: move qml initialisation out of the main interface
  qt: remove qml instantiation and video embedding from the
    main_interface
  qml: fullscreen button should ask videofullscreen

 configure.ac                                  |  13 +
 ...C-to-allow-static-linking-on-Windows.patch |  48 ++
 contrib/src/qt/rules.mak                      |   1 +
 include/vlc_vout_window.h                     |   3 +
 modules/gui/qt/Makefile.am                    |  44 +-
 .../gui/qt/dialogs/toolbar/toolbareditor.cpp  |  32 +-
 modules/gui/qt/maininterface/compositor.cpp   |  47 ++
 modules/gui/qt/maininterface/compositor.hpp   |  52 ++
 .../gui/qt/maininterface/compositor_dcomp.cpp | 294 ++++++++
 .../gui/qt/maininterface/compositor_dcomp.hpp |  82 ++
 .../compositor_dcomp_error.hpp}               |  59 +-
 .../compositor_dcomp_uisurface.cpp            | 698 ++++++++++++++++++
 .../compositor_dcomp_uisurface.hpp            | 182 +++++
 .../gui/qt/maininterface/compositor_dummy.cpp |  61 ++
 .../compositor_dummy.hpp}                     |  44 +-
 .../gui/qt/maininterface/main_interface.cpp   | 331 ++-------
 .../gui/qt/maininterface/main_interface.hpp   |  56 +-
 .../qt/maininterface/main_interface_win32.cpp |   2 +-
 modules/gui/qt/maininterface/mainui.cpp       | 249 +++++++
 modules/gui/qt/maininterface/mainui.hpp       |  76 ++
 .../qt/maininterface/qml/BannerSources.qml    |   2 +-
 .../qt/maininterface/qml/MainInterface.qml    |   4 +-
 .../videosurface.cpp                          | 141 +++-
 .../videosurface.hpp                          |  43 +-
 .../gui/qt/medialibrary/qml/MainDisplay.qml   |   8 +-
 modules/gui/qt/menus/qml/PopupMenu.qml        |   2 +-
 modules/gui/qt/menus/qml/ViewMenu.qml         |  16 +-
 modules/gui/qt/player/qml/ControlBar.qml      |   6 +-
 modules/gui/qt/player/qml/ControlButtons.qml  |  11 +-
 modules/gui/qt/player/qml/MiniPlayer.qml      |   4 +-
 modules/gui/qt/player/qml/Player.qml          |  22 +-
 modules/gui/qt/player/qml/TopBar.qml          |   2 +-
 modules/gui/qt/qt.cpp                         |  38 +-
 modules/gui/qt/qt.hpp                         |   4 +
 modules/gui/qt/voutwindow/qvoutwindow.cpp     |  98 ---
 modules/gui/qt/voutwindow/qvoutwindow.hpp     |  42 --
 modules/video_output/Makefile.am              |   3 +
 modules/video_output/win32/d3d11_swapchain.c  | 120 ++-
 modules/video_output/win32/d3d11_swapchain.h  |   5 +-
 modules/video_output/win32/dcomp_wrapper.cpp  |  35 +
 modules/video_output/win32/dcomp_wrapper.h    |  35 +
 modules/video_output/win32/direct3d11.c       |  15 +-
 42 files changed, 2382 insertions(+), 648 deletions(-)
 create mode 100644 contrib/src/qt/0009-Add-KHRONOS_STATIC-to-allow-static-linking-on-Windows.patch
 create mode 100644 modules/gui/qt/maininterface/compositor.cpp
 create mode 100644 modules/gui/qt/maininterface/compositor.hpp
 create mode 100644 modules/gui/qt/maininterface/compositor_dcomp.cpp
 create mode 100644 modules/gui/qt/maininterface/compositor_dcomp.hpp
 rename modules/gui/qt/{voutwindow/qvoutwindowdummy.cpp => maininterface/compositor_dcomp_error.hpp} (50%)
 create mode 100644 modules/gui/qt/maininterface/compositor_dcomp_uisurface.cpp
 create mode 100644 modules/gui/qt/maininterface/compositor_dcomp_uisurface.hpp
 create mode 100644 modules/gui/qt/maininterface/compositor_dummy.cpp
 rename modules/gui/qt/{voutwindow/qvoutwindowdummy.hpp => maininterface/compositor_dummy.hpp} (52%)
 create mode 100644 modules/gui/qt/maininterface/mainui.cpp
 create mode 100644 modules/gui/qt/maininterface/mainui.hpp
 rename modules/gui/qt/{voutwindow => maininterface}/videosurface.cpp (58%)
 rename modules/gui/qt/{voutwindow => maininterface}/videosurface.hpp (78%)
 delete mode 100644 modules/gui/qt/voutwindow/qvoutwindow.cpp
 delete mode 100644 modules/gui/qt/voutwindow/qvoutwindow.hpp
 create mode 100644 modules/video_output/win32/dcomp_wrapper.cpp
 create mode 100644 modules/video_output/win32/dcomp_wrapper.h

-- 
2.25.1



More information about the vlc-devel mailing list