From ae56f2815b0acb563893977baf67caa296ee1f7f Mon Sep 17 00:00:00 2001 From: Raphael Dumusc Date: Mon, 20 Feb 2017 17:44:00 +0100 Subject: [PATCH] Remove dependency on Qt5::Gui private headers for setting global GL shared context --- CMakeLists.txt | 3 +-- deflect/qt/CMakeLists.txt | 5 ----- deflect/qt/QuickRenderer.cpp | 20 +++++++++----------- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b018c23..69addca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ set(DEFLECT_LICENSE BSD) set(DEFLECT_DEB_DEPENDS freeglut3-dev libxi-dev libxmu-dev libjpeg-turbo8-dev libturbojpeg libboost-program-options-dev libboost-test-dev - qtbase5-dev qtbase5-private-dev qtdeclarative5-dev) + qtbase5-dev qtdeclarative5-dev) set(DEFLECT_PORT_DEPENDS boost freeglut qt5) include(Common) @@ -28,7 +28,6 @@ common_find_package(LibJpegTurbo REQUIRED) common_find_package(OpenGL) common_find_package(Qt5Concurrent REQUIRED SYSTEM) common_find_package(Qt5Core REQUIRED) -common_find_package(Qt5Gui COMPONENTS Private) # For Qml WebEngineView if(APPLE) common_find_package(Qt5MacExtras) endif() diff --git a/deflect/qt/CMakeLists.txt b/deflect/qt/CMakeLists.txt index e3a110a..3b4e749 100644 --- a/deflect/qt/CMakeLists.txt +++ b/deflect/qt/CMakeLists.txt @@ -33,8 +33,3 @@ common_library(DeflectQt) if(DEFLECT_QMLSTREAMER_MULTITHREADED) target_compile_definitions(DeflectQt PRIVATE DEFLECTQT_MULTITHREADED) endif() - -if(TARGET Qt5::Gui) - target_include_directories(DeflectQt SYSTEM PRIVATE - "$") -endif() diff --git a/deflect/qt/QuickRenderer.cpp b/deflect/qt/QuickRenderer.cpp index 3d29a4e..65b3a0b 100644 --- a/deflect/qt/QuickRenderer.cpp +++ b/deflect/qt/QuickRenderer.cpp @@ -1,6 +1,7 @@ /*********************************************************************/ -/* Copyright (c) 2016, EPFL/Blue Brain Project */ -/* Daniel.Nachbaur@epfl.ch */ +/* Copyright (c) 2016-2017, EPFL/Blue Brain Project */ +/* Daniel.Nachbaur@epfl.ch */ +/* Raphael Dumusc */ /* All rights reserved. */ /* */ /* Redistribution and use in source and binary forms, with or */ @@ -47,9 +48,12 @@ #include #include -#ifdef DEFLECT_USE_QT5GUI -# include -#endif +// Forward-declare the function defined in to +// remove the need for private headers. This internal API should remain stable +// because it is also used by QtWebengine for the same reason. +QT_BEGIN_NAMESPACE +Q_GUI_EXPORT void qt_gl_set_global_share_context( QOpenGLContext* context ); +QT_END_NAMESPACE namespace deflect { @@ -190,11 +194,7 @@ void QuickRenderer::_createGLContext() // Test if user has setup shared GL contexts (QtWebEngine::initialize). // If so, setup global share context needed by the Qml WebEngineView. if( QCoreApplication::testAttribute( Qt::AA_ShareOpenGLContexts )) -#if DEFLECT_USE_QT5GUI qt_gl_set_global_share_context( _context.get( )); -#else - qWarning() << "DeflectQt was not compiled with WebEngineView support"; -#endif } void QuickRenderer::_initRenderControl() @@ -220,9 +220,7 @@ void QuickRenderer::_onStop() _offscreenSurface.reset(); -#if DEFLECT_USE_QT5GUI qt_gl_set_global_share_context( nullptr ); -#endif _context.reset(); }