From 1a1028a1e4ca3d0d932141f265d01284e013a76a Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 23 Mar 2020 19:19:20 +0100 Subject: [PATCH] Move legacy rendercontrol example into a subdirectory ...called rendercontrol_opengl under examples/quick/rendercontrol. This example is going to be migrated to support operating with RHI-on-OpenGL later on. Additionally, we can this way introduce more rendercontrol examples in the future, for example to show how to do things with Vulkan, Metal, D3D. Task-number: QTBUG-78595 Change-Id: I7f5243b1f86e62949400107bf12bfa07b17b1031 Reviewed-by: Eirik Aavitsland --- examples/quick/rendercontrol/CMakeLists.txt | 48 +---------------- .../quick/rendercontrol/rendercontrol.pro | 19 ++----- .../rendercontrol_opengl/CMakeLists.txt | 49 ++++++++++++++++++ .../cuberenderer.cpp | 0 .../{ => rendercontrol_opengl}/cuberenderer.h | 0 .../{ => rendercontrol_opengl}/demo.qml | 0 .../doc/images/rendercontrol-example.jpg | Bin .../doc/src/rendercontrol.qdoc | 2 +- .../{ => rendercontrol_opengl}/main.cpp | 0 .../rendercontrol.qrc | 0 .../rendercontrol_opengl.pro | 17 ++++++ .../window_multithreaded.cpp | 0 .../window_multithreaded.h | 0 .../window_singlethreaded.cpp | 0 .../window_singlethreaded.h | 0 15 files changed, 71 insertions(+), 64 deletions(-) create mode 100644 examples/quick/rendercontrol/rendercontrol_opengl/CMakeLists.txt rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/cuberenderer.cpp (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/cuberenderer.h (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/demo.qml (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/doc/images/rendercontrol-example.jpg (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/doc/src/rendercontrol.qdoc (96%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/main.cpp (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/rendercontrol.qrc (100%) create mode 100644 examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pro rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/window_multithreaded.cpp (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/window_multithreaded.h (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/window_singlethreaded.cpp (100%) rename examples/quick/rendercontrol/{ => rendercontrol_opengl}/window_singlethreaded.h (100%) diff --git a/examples/quick/rendercontrol/CMakeLists.txt b/examples/quick/rendercontrol/CMakeLists.txt index 8f1067a7b5..bfcd71de24 100644 --- a/examples/quick/rendercontrol/CMakeLists.txt +++ b/examples/quick/rendercontrol/CMakeLists.txt @@ -1,49 +1,3 @@ # Generated from rendercontrol.pro. -cmake_minimum_required(VERSION 3.14) -project(rendercontrol LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -set(INSTALL_EXAMPLEDIR "examples/quick/rendercontrol") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Quick) -find_package(Qt6 COMPONENTS Qml) - -add_qt_gui_executable(rendercontrol - cuberenderer.cpp cuberenderer.h - main.cpp - window_multithreaded.cpp window_multithreaded.h - window_singlethreaded.cpp window_singlethreaded.h -) -target_link_libraries(rendercontrol PUBLIC - Qt::Core - Qt::Gui - Qt::Qml - Qt::Quick -) - - -# Resources: -set(rendercontrol_resource_files - "demo.qml" -) - -qt6_add_resources(rendercontrol "rendercontrol" - PREFIX - "/rendercontrol" - FILES - ${rendercontrol_resource_files} -) - -install(TARGETS rendercontrol - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) +add_subdirectory(rendercontrol_opengl) diff --git a/examples/quick/rendercontrol/rendercontrol.pro b/examples/quick/rendercontrol/rendercontrol.pro index 3301a773a4..cdb431c8fd 100644 --- a/examples/quick/rendercontrol/rendercontrol.pro +++ b/examples/quick/rendercontrol/rendercontrol.pro @@ -1,17 +1,4 @@ -TEMPLATE = app +TEMPLATE = subdirs -QT += quick qml - -SOURCES += main.cpp \ - window_singlethreaded.cpp \ - window_multithreaded.cpp \ - cuberenderer.cpp - -HEADERS += window_singlethreaded.h \ - window_multithreaded.h \ - cuberenderer.h - -RESOURCES += rendercontrol.qrc - -target.path = $$[QT_INSTALL_EXAMPLES]/quick/rendercontrol -INSTALLS += target +SUBDIRS = \ + rendercontrol_opengl diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/CMakeLists.txt b/examples/quick/rendercontrol/rendercontrol_opengl/CMakeLists.txt new file mode 100644 index 0000000000..fb1c6ecf12 --- /dev/null +++ b/examples/quick/rendercontrol/rendercontrol_opengl/CMakeLists.txt @@ -0,0 +1,49 @@ +# Generated from rendercontrol_opengl.pro. + +cmake_minimum_required(VERSION 3.14) +project(rendercontrol_opengl LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/quick/rendercontrol/rendercontrol_opengl") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Quick) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(rendercontrol_opengl + cuberenderer.cpp cuberenderer.h + main.cpp + window_multithreaded.cpp window_multithreaded.h + window_singlethreaded.cpp window_singlethreaded.h +) +target_link_libraries(rendercontrol_opengl PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::Quick +) + + +# Resources: +set(rendercontrol_resource_files + "demo.qml" +) + +qt6_add_resources(rendercontrol_opengl "rendercontrol" + PREFIX + "/rendercontrol" + FILES + ${rendercontrol_resource_files} +) + +install(TARGETS rendercontrol_opengl + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/quick/rendercontrol/cuberenderer.cpp b/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.cpp similarity index 100% rename from examples/quick/rendercontrol/cuberenderer.cpp rename to examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.cpp diff --git a/examples/quick/rendercontrol/cuberenderer.h b/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.h similarity index 100% rename from examples/quick/rendercontrol/cuberenderer.h rename to examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.h diff --git a/examples/quick/rendercontrol/demo.qml b/examples/quick/rendercontrol/rendercontrol_opengl/demo.qml similarity index 100% rename from examples/quick/rendercontrol/demo.qml rename to examples/quick/rendercontrol/rendercontrol_opengl/demo.qml diff --git a/examples/quick/rendercontrol/doc/images/rendercontrol-example.jpg b/examples/quick/rendercontrol/rendercontrol_opengl/doc/images/rendercontrol-example.jpg similarity index 100% rename from examples/quick/rendercontrol/doc/images/rendercontrol-example.jpg rename to examples/quick/rendercontrol/rendercontrol_opengl/doc/images/rendercontrol-example.jpg diff --git a/examples/quick/rendercontrol/doc/src/rendercontrol.qdoc b/examples/quick/rendercontrol/rendercontrol_opengl/doc/src/rendercontrol.qdoc similarity index 96% rename from examples/quick/rendercontrol/doc/src/rendercontrol.qdoc rename to examples/quick/rendercontrol/rendercontrol_opengl/doc/src/rendercontrol.qdoc index 026a6f5a09..9b6b075a5b 100644 --- a/examples/quick/rendercontrol/doc/src/rendercontrol.qdoc +++ b/examples/quick/rendercontrol/rendercontrol_opengl/doc/src/rendercontrol.qdoc @@ -27,7 +27,7 @@ /*! \title QQuickRenderControl Example - \example rendercontrol + \example rendercontrol/rendercontrol_opengl \brief Shows how to render a Qt Quick scene into a texture that is then used by a non-Quick based OpenGL renderer. \image rendercontrol-example.jpg */ diff --git a/examples/quick/rendercontrol/main.cpp b/examples/quick/rendercontrol/rendercontrol_opengl/main.cpp similarity index 100% rename from examples/quick/rendercontrol/main.cpp rename to examples/quick/rendercontrol/rendercontrol_opengl/main.cpp diff --git a/examples/quick/rendercontrol/rendercontrol.qrc b/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol.qrc similarity index 100% rename from examples/quick/rendercontrol/rendercontrol.qrc rename to examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol.qrc diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pro b/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pro new file mode 100644 index 0000000000..900f5d14dd --- /dev/null +++ b/examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pro @@ -0,0 +1,17 @@ +TEMPLATE = app + +QT += quick qml + +SOURCES += main.cpp \ + window_singlethreaded.cpp \ + window_multithreaded.cpp \ + cuberenderer.cpp + +HEADERS += window_singlethreaded.h \ + window_multithreaded.h \ + cuberenderer.h + +RESOURCES += rendercontrol.qrc + +target.path = $$[QT_INSTALL_EXAMPLES]/quick/rendercontrol/rendercontrol_opengl +INSTALLS += target diff --git a/examples/quick/rendercontrol/window_multithreaded.cpp b/examples/quick/rendercontrol/rendercontrol_opengl/window_multithreaded.cpp similarity index 100% rename from examples/quick/rendercontrol/window_multithreaded.cpp rename to examples/quick/rendercontrol/rendercontrol_opengl/window_multithreaded.cpp diff --git a/examples/quick/rendercontrol/window_multithreaded.h b/examples/quick/rendercontrol/rendercontrol_opengl/window_multithreaded.h similarity index 100% rename from examples/quick/rendercontrol/window_multithreaded.h rename to examples/quick/rendercontrol/rendercontrol_opengl/window_multithreaded.h diff --git a/examples/quick/rendercontrol/window_singlethreaded.cpp b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp similarity index 100% rename from examples/quick/rendercontrol/window_singlethreaded.cpp rename to examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp diff --git a/examples/quick/rendercontrol/window_singlethreaded.h b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.h similarity index 100% rename from examples/quick/rendercontrol/window_singlethreaded.h rename to examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.h