diff options
Diffstat (limited to 'examples/wayland')
38 files changed, 1001 insertions, 14 deletions
diff --git a/examples/wayland/.prev_CMakeLists.txt b/examples/wayland/.prev_CMakeLists.txt new file mode 100644 index 000000000..435734b7c --- /dev/null +++ b/examples/wayland/.prev_CMakeLists.txt @@ -0,0 +1,24 @@ +# Generated from wayland.pro. + +if(QT_FEATURE_opengl) + add_subdirectory(qwindow-compositor) + add_subdirectory(minimal-cpp) +endif() +if(TARGET Qt::Quick) + add_subdirectory(minimal-qml) + add_subdirectory(spanning-screens) + add_subdirectory(pure-qml) + add_subdirectory(multi-output) + add_subdirectory(multi-screen) + add_subdirectory(overview-compositor) + add_subdirectory(ivi-compositor) + add_subdirectory(server-side-decoration) + add_subdirectory(hwlayer-compositor) +endif() +if(TARGET Qt::Quick AND TARGET Qt::WaylandClient) + add_subdirectory(custom-extension) +endif() +if(QT_FEATURE_opengl AND TARGET Qt::Quick AND TARGET Qt::WaylandClient) + add_subdirectory(server-buffer) + add_subdirectory(texture-sharing) +endif() diff --git a/examples/wayland/CMakeLists.txt b/examples/wayland/CMakeLists.txt new file mode 100644 index 000000000..9470d3a1d --- /dev/null +++ b/examples/wayland/CMakeLists.txt @@ -0,0 +1,26 @@ +# Generated from wayland.pro. + +if(QT_FEATURE_wayland_server) # special case +if(QT_FEATURE_opengl) + add_subdirectory(qwindow-compositor) + add_subdirectory(minimal-cpp) +endif() +if(TARGET Qt::Quick) + add_subdirectory(minimal-qml) + add_subdirectory(spanning-screens) + add_subdirectory(pure-qml) + add_subdirectory(multi-output) + add_subdirectory(multi-screen) + add_subdirectory(overview-compositor) + add_subdirectory(ivi-compositor) + add_subdirectory(server-side-decoration) + add_subdirectory(hwlayer-compositor) +endif() +if(TARGET Qt::Quick AND TARGET Qt::WaylandClient) + add_subdirectory(custom-extension) +endif() +if(QT_FEATURE_opengl AND TARGET Qt::Quick AND TARGET Qt::WaylandClient) + add_subdirectory(server-buffer) + add_subdirectory(texture-sharing) +endif() +endif() # special case diff --git a/examples/wayland/custom-extension/CMakeLists.txt b/examples/wayland/custom-extension/CMakeLists.txt new file mode 100644 index 000000000..408a9174e --- /dev/null +++ b/examples/wayland/custom-extension/CMakeLists.txt @@ -0,0 +1,5 @@ +# Generated from custom-extension.pro. + +add_subdirectory(qml-client) +add_subdirectory(compositor) +add_subdirectory(cpp-client) diff --git a/examples/wayland/custom-extension/compositor/CMakeLists.txt b/examples/wayland/custom-extension/compositor/CMakeLists.txt new file mode 100644 index 000000000..6727e6ad4 --- /dev/null +++ b/examples/wayland/custom-extension/compositor/CMakeLists.txt @@ -0,0 +1,54 @@ +# Generated from compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(custom-extension-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/custom-extension/compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(custom-extension-compositor + customextension.cpp customextension.h + main.cpp +) + +qt6_generate_wayland_protocol_server_sources(custom-extension-compositor + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../protocol/custom.xml +) +target_link_libraries(custom-extension-compositor PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::WaylandCompositor +) + + +# Resources: +set(compositor_resource_files + "images/background.png" + "qml/Screen.qml" + "qml/main.qml" +) + +qt6_add_resources(custom-extension-compositor "compositor" + PREFIX + "/" + FILES + ${compositor_resource_files} +) + +install(TARGETS custom-extension-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/custom-extension/compositor/compositor.pro b/examples/wayland/custom-extension/compositor/compositor.pro index 751b5ca3d..6152e0a38 100644 --- a/examples/wayland/custom-extension/compositor/compositor.pro +++ b/examples/wayland/custom-extension/compositor/compositor.pro @@ -18,7 +18,7 @@ WAYLANDSERVERSOURCES += \ RESOURCES += compositor.qrc -TARGET = custom-compositor +TARGET = custom-extension-compositor HEADERS += \ customextension.h diff --git a/examples/wayland/custom-extension/cpp-client/CMakeLists.txt b/examples/wayland/custom-extension/cpp-client/CMakeLists.txt new file mode 100644 index 000000000..ffdc34b70 --- /dev/null +++ b/examples/wayland/custom-extension/cpp-client/CMakeLists.txt @@ -0,0 +1,38 @@ +# Generated from cpp-client.pro. + +cmake_minimum_required(VERSION 3.14) +project(custom-extension-cpp-client LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/custom-extension/cpp-client") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WaylandClient) + +add_qt_gui_executable(custom-extension-cpp-client + ../client-common/customextension.cpp ../client-common/customextension.h + main.cpp +) + +qt6_generate_wayland_protocol_client_sources(custom-extension-cpp-client + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../protocol/custom.xml +) +target_link_libraries(custom-extension-cpp-client PUBLIC + Qt::Core + Qt::Gui + Qt::GuiPrivate + Qt::WaylandClient +) + +install(TARGETS custom-extension-cpp-client + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/custom-extension/cpp-client/cpp-client.pro b/examples/wayland/custom-extension/cpp-client/cpp-client.pro index 388a09bfa..6b178514e 100644 --- a/examples/wayland/custom-extension/cpp-client/cpp-client.pro +++ b/examples/wayland/custom-extension/cpp-client/cpp-client.pro @@ -9,5 +9,7 @@ SOURCES += main.cpp \ HEADERS += \ ../client-common/customextension.h +TARGET = custom-extension-cpp-client + target.path = $$[QT_INSTALL_EXAMPLES]/wayland/custom-extension/cpp-client INSTALLS += target diff --git a/examples/wayland/custom-extension/qml-client/CMakeLists.txt b/examples/wayland/custom-extension/qml-client/CMakeLists.txt new file mode 100644 index 000000000..9ce56593b --- /dev/null +++ b/examples/wayland/custom-extension/qml-client/CMakeLists.txt @@ -0,0 +1,55 @@ +# Generated from qml-client.pro. + +cmake_minimum_required(VERSION 3.14) +project(custom-extension-qml-client LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/custom-extension/qml-client") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS Quick) +find_package(Qt6 COMPONENTS WaylandClient) + +add_qt_gui_executable(custom-extension-qml-client + ../client-common/customextension.cpp ../client-common/customextension.h + main.cpp +) + +qt6_generate_wayland_protocol_client_sources(custom-extension-qml-client + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../protocol/custom.xml +) +target_link_libraries(custom-extension-qml-client PUBLIC + Qt::Core + Qt::Gui + Qt::GuiPrivate + Qt::Qml + Qt::Quick + Qt::WaylandClient +) + + +# Resources: +set(qml_resource_files + "main.qml" +) + +qt6_add_resources(custom-extension-qml-client "qml" + PREFIX + "/" + FILES + ${qml_resource_files} +) + +install(TARGETS custom-extension-qml-client + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/custom-extension/qml-client/qml-client.pro b/examples/wayland/custom-extension/qml-client/qml-client.pro index a8fa420af..bad4af2db 100644 --- a/examples/wayland/custom-extension/qml-client/qml-client.pro +++ b/examples/wayland/custom-extension/qml-client/qml-client.pro @@ -10,6 +10,8 @@ SOURCES += main.cpp \ HEADERS += \ ../client-common/customextension.h +TARGET = custom-extension-qml-client + RESOURCES += qml.qrc target.path = $$[QT_INSTALL_EXAMPLES]/wayland/custom-extension/qml-client diff --git a/examples/wayland/hwlayer-compositor/CMakeLists.txt b/examples/wayland/hwlayer-compositor/CMakeLists.txt new file mode 100644 index 000000000..5d2d61e91 --- /dev/null +++ b/examples/wayland/hwlayer-compositor/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from hwlayer-compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(hwlayer-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/hwlayer-compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(hwlayer-compositor + main.cpp +) +target_link_libraries(hwlayer-compositor PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(hwlayer-compositor_resource_files + "main.qml" +) + +qt6_add_resources(hwlayer-compositor "hwlayer-compositor" + PREFIX + "/" + FILES + ${hwlayer-compositor_resource_files} +) + +install(TARGETS hwlayer-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/ivi-compositor/CMakeLists.txt b/examples/wayland/ivi-compositor/CMakeLists.txt new file mode 100644 index 000000000..31555531c --- /dev/null +++ b/examples/wayland/ivi-compositor/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from ivi-compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(ivi-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/ivi-compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(ivi-compositor + main.cpp +) +target_link_libraries(ivi-compositor PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(ivi-compositor_resource_files + "main.qml" +) + +qt6_add_resources(ivi-compositor "ivi-compositor" + PREFIX + "/" + FILES + ${ivi-compositor_resource_files} +) + +install(TARGETS ivi-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/minimal-cpp/.prev_CMakeLists.txt b/examples/wayland/minimal-cpp/.prev_CMakeLists.txt new file mode 100644 index 000000000..a278fce0c --- /dev/null +++ b/examples/wayland/minimal-cpp/.prev_CMakeLists.txt @@ -0,0 +1,39 @@ +# Generated from minimal-cpp.pro. + +cmake_minimum_required(VERSION 3.14) +project(minimal-cpp LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/minimal-cpp") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(minimal-cpp + compositor.cpp compositor.h + main.cpp + window.cpp window.h +) +target_include_directories(minimal-cpp PUBLIC + ../../include +) + +target_link_libraries(minimal-cpp PUBLIC + # Remove: L + ../../lib + Qt::Core + Qt::Gui + Qt::WaylandCompositor +) + +install(TARGETS minimal-cpp + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/minimal-cpp/CMakeLists.txt b/examples/wayland/minimal-cpp/CMakeLists.txt new file mode 100644 index 000000000..a812865b9 --- /dev/null +++ b/examples/wayland/minimal-cpp/CMakeLists.txt @@ -0,0 +1,39 @@ +# Generated from minimal-cpp.pro. + +cmake_minimum_required(VERSION 3.14) +project(minimal-cpp LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/minimal-cpp") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(minimal-cpp + compositor.cpp compositor.h + main.cpp + window.cpp window.h +) +target_include_directories(minimal-cpp PUBLIC + ../../include +) + +target_link_libraries(minimal-cpp PUBLIC + # Remove: L + #../../lib # special case + Qt::Core + Qt::Gui + Qt::WaylandCompositor +) + +install(TARGETS minimal-cpp + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/minimal-qml/CMakeLists.txt b/examples/wayland/minimal-qml/CMakeLists.txt new file mode 100644 index 000000000..fd8c4c68b --- /dev/null +++ b/examples/wayland/minimal-qml/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from minimal-qml.pro. + +cmake_minimum_required(VERSION 3.14) +project(minimal-qml LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/minimal-qml") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(minimal-qml + main.cpp +) +target_link_libraries(minimal-qml PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(minimal-qml_resource_files + "main.qml" +) + +qt6_add_resources(minimal-qml "minimal-qml" + PREFIX + "/" + FILES + ${minimal-qml_resource_files} +) + +install(TARGETS minimal-qml + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/minimal-qml/main.qml b/examples/wayland/minimal-qml/main.qml index 63ed9da5f..61cb6c9ef 100644 --- a/examples/wayland/minimal-qml/main.qml +++ b/examples/wayland/minimal-qml/main.qml @@ -67,7 +67,6 @@ WaylandCompositor { // resize/move, and forwarding of mouse and keyboard // events to the client process. ShellSurfaceItem { - autoCreatePopupItems: true shellSurface: modelData onSurfaceDestroyed: shellSurfaces.remove(index) } diff --git a/examples/wayland/multi-output/CMakeLists.txt b/examples/wayland/multi-output/CMakeLists.txt new file mode 100644 index 000000000..5e3f5b45f --- /dev/null +++ b/examples/wayland/multi-output/CMakeLists.txt @@ -0,0 +1,48 @@ +# Generated from multi-output.pro. + +cmake_minimum_required(VERSION 3.14) +project(multi-output LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/multi-output") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(multi-output + main.cpp +) +target_link_libraries(multi-output PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(multi-output_resource_files + "images/background.jpg" + "qml/GridScreen.qml" + "qml/ShellChrome.qml" + "qml/ShellScreen.qml" + "qml/main.qml" +) + +qt6_add_resources(multi-output "multi-output" + PREFIX + "/" + FILES + ${multi-output_resource_files} +) + +install(TARGETS multi-output + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/multi-output/qml/GridScreen.qml b/examples/wayland/multi-output/qml/GridScreen.qml index a59cb8fb4..252d66b12 100644 --- a/examples/wayland/multi-output/qml/GridScreen.qml +++ b/examples/wayland/multi-output/qml/GridScreen.qml @@ -82,7 +82,6 @@ WaylandOutput { surface: gridSurface width: gridView.cellWidth height: gridView.cellHeight - sizeFollowsSurface: false inputEventsEnabled: false allowDiscardFrontBuffer: true MouseArea { diff --git a/examples/wayland/multi-screen/CMakeLists.txt b/examples/wayland/multi-screen/CMakeLists.txt new file mode 100644 index 000000000..ce38ddf66 --- /dev/null +++ b/examples/wayland/multi-screen/CMakeLists.txt @@ -0,0 +1,46 @@ +# Generated from multi-screen.pro. + +cmake_minimum_required(VERSION 3.14) +project(multi-screen LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/multi-screen") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(multi-screen + main.cpp +) +target_link_libraries(multi-screen PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(multi-screen_resource_files + "qml/Chrome.qml" + "qml/Screen.qml" + "qml/main.qml" +) + +qt6_add_resources(multi-screen "multi-screen" + PREFIX + "/" + FILES + ${multi-screen_resource_files} +) + +install(TARGETS multi-screen + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/multi-screen/qml/Chrome.qml b/examples/wayland/multi-screen/qml/Chrome.qml index 52f449468..99141ad25 100644 --- a/examples/wayland/multi-screen/qml/Chrome.qml +++ b/examples/wayland/multi-screen/qml/Chrome.qml @@ -63,7 +63,6 @@ Item { ShellSurfaceItem { id: surfaceItem - autoCreatePopupItems: true onSurfaceDestroyed: chrome.destroy(); } diff --git a/examples/wayland/overview-compositor/CMakeLists.txt b/examples/wayland/overview-compositor/CMakeLists.txt new file mode 100644 index 000000000..8e32b730c --- /dev/null +++ b/examples/wayland/overview-compositor/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from overview-compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(overview-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/overview-compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(overview-compositor + main.cpp +) +target_link_libraries(overview-compositor PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(overview-compositor_resource_files + "main.qml" +) + +qt6_add_resources(overview-compositor "overview-compositor" + PREFIX + "/" + FILES + ${overview-compositor_resource_files} +) + +install(TARGETS overview-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/overview-compositor/main.qml b/examples/wayland/overview-compositor/main.qml index d0482a90e..3785a7ed0 100644 --- a/examples/wayland/overview-compositor/main.qml +++ b/examples/wayland/overview-compositor/main.qml @@ -99,8 +99,6 @@ WaylandCompositor { ShellSurfaceItem { anchors.fill: parent shellSurface: xdgSurface - autoCreatePopupItems: true - sizeFollowsSurface: false onSurfaceDestroyed: toplevels.remove(index) } MouseArea { diff --git a/examples/wayland/pure-qml/CMakeLists.txt b/examples/wayland/pure-qml/CMakeLists.txt new file mode 100644 index 000000000..af504bfbe --- /dev/null +++ b/examples/wayland/pure-qml/CMakeLists.txt @@ -0,0 +1,48 @@ +# Generated from pure-qml.pro. + +cmake_minimum_required(VERSION 3.14) +project(pure-qml LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/pure-qml") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(pure-qml + main.cpp +) +target_link_libraries(pure-qml PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(pure-qml_resource_files + "images/background.jpg" + "qml/Chrome.qml" + "qml/Keyboard.qml" + "qml/Screen.qml" + "qml/main.qml" +) + +qt6_add_resources(pure-qml "pure-qml" + PREFIX + "/" + FILES + ${pure-qml_resource_files} +) + +install(TARGETS pure-qml + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/pure-qml/qml/Chrome.qml b/examples/wayland/pure-qml/qml/Chrome.qml index a63ee705c..6e3270961 100644 --- a/examples/wayland/pure-qml/qml/Chrome.qml +++ b/examples/wayland/pure-qml/qml/Chrome.qml @@ -58,9 +58,6 @@ ShellSurfaceItem { signal destroyAnimationFinished - // If the client asks to show popups on this surface, automatically create child ShellSurfaceItems - autoCreatePopupItems: true - onSurfaceDestroyed: { bufferLocked = true; destroyAnimation.start(); diff --git a/examples/wayland/qwindow-compositor/.prev_CMakeLists.txt b/examples/wayland/qwindow-compositor/.prev_CMakeLists.txt new file mode 100644 index 000000000..048ea184f --- /dev/null +++ b/examples/wayland/qwindow-compositor/.prev_CMakeLists.txt @@ -0,0 +1,55 @@ +# Generated from qwindow-compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(qwindow-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/qwindow-compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(qwindow-compositor + compositor.cpp compositor.h + main.cpp + window.cpp window.h +) +target_include_directories(qwindow-compositor PUBLIC + ../../include +) + +target_link_libraries(qwindow-compositor PUBLIC + # Remove: L + ../../lib + Qt::Core + Qt::Gui + Qt::WaylandCompositor +) + + +# Resources: +set_source_files_properties("../pure-qml/images/background.jpg" + PROPERTIES QT_RESOURCE_ALIAS "background.jpg" +) +set(qwindow-compositor_resource_files + "../pure-qml/images/background.jpg" +) + +qt6_add_resources(qwindow-compositor "qwindow-compositor" + PREFIX + "/" + FILES + ${qwindow-compositor_resource_files} +) + +install(TARGETS qwindow-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/qwindow-compositor/CMakeLists.txt b/examples/wayland/qwindow-compositor/CMakeLists.txt new file mode 100644 index 000000000..1d1201bae --- /dev/null +++ b/examples/wayland/qwindow-compositor/CMakeLists.txt @@ -0,0 +1,55 @@ +# Generated from qwindow-compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(qwindow-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/qwindow-compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(qwindow-compositor + compositor.cpp compositor.h + main.cpp + window.cpp window.h +) +target_include_directories(qwindow-compositor PUBLIC + ../../include +) + +target_link_libraries(qwindow-compositor PUBLIC + # Remove: L + #../../lib # special case + Qt::Core + Qt::Gui + Qt::WaylandCompositor +) + + +# Resources: +set_source_files_properties("../pure-qml/images/background.jpg" + PROPERTIES QT_RESOURCE_ALIAS "background.jpg" +) +set(qwindow-compositor_resource_files + "../pure-qml/images/background.jpg" +) + +qt6_add_resources(qwindow-compositor "qwindow-compositor" + PREFIX + "/" + FILES + ${qwindow-compositor_resource_files} +) + +install(TARGETS qwindow-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/server-buffer/CMakeLists.txt b/examples/wayland/server-buffer/CMakeLists.txt new file mode 100644 index 000000000..ad4115116 --- /dev/null +++ b/examples/wayland/server-buffer/CMakeLists.txt @@ -0,0 +1,4 @@ +# Generated from server-buffer.pro. + +add_subdirectory(cpp-client) +add_subdirectory(compositor) diff --git a/examples/wayland/server-buffer/compositor/CMakeLists.txt b/examples/wayland/server-buffer/compositor/CMakeLists.txt new file mode 100644 index 000000000..932f4be08 --- /dev/null +++ b/examples/wayland/server-buffer/compositor/CMakeLists.txt @@ -0,0 +1,54 @@ +# Generated from compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/server-buffer/compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(compositor + main.cpp + sharebufferextension.cpp sharebufferextension.h +) + +qt6_generate_wayland_protocol_server_sources(compositor + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../share-buffer.xml +) +target_link_libraries(compositor PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::WaylandCompositorPrivate +) + + +# Resources: +set(compositor_resource_files + "images/Siberischer_tiger_de_edit02.jpg" + "images/background.png" + "qml/main.qml" +) + +qt6_add_resources(compositor "compositor" + PREFIX + "/" + FILES + ${compositor_resource_files} +) + +install(TARGETS compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/server-buffer/cpp-client/CMakeLists.txt b/examples/wayland/server-buffer/cpp-client/CMakeLists.txt new file mode 100644 index 000000000..2f33057fe --- /dev/null +++ b/examples/wayland/server-buffer/cpp-client/CMakeLists.txt @@ -0,0 +1,40 @@ +# Generated from cpp-client.pro. + +cmake_minimum_required(VERSION 3.14) +project(server-buffer-cpp-client LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/server-buffer/cpp-client") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WaylandClient) +find_package(Qt6 COMPONENTS OpenGL) + +add_qt_gui_executable(server-buffer-cpp-client + main.cpp + sharebufferextension.cpp sharebufferextension.h +) + +qt6_generate_wayland_protocol_client_sources(server-buffer-cpp-client + FILES + ${CMAKE_CURRENT_SOURCE_DIR}/../share-buffer.xml +) +target_link_libraries(server-buffer-cpp-client PUBLIC + Qt::Core + Qt::Gui + Qt::GuiPrivate + Qt::OpenGL + Qt::WaylandClientPrivate +) + +install(TARGETS server-buffer-cpp-client + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/server-buffer/cpp-client/cpp-client.pro b/examples/wayland/server-buffer/cpp-client/cpp-client.pro index 7f785f983..6ac551323 100644 --- a/examples/wayland/server-buffer/cpp-client/cpp-client.pro +++ b/examples/wayland/server-buffer/cpp-client/cpp-client.pro @@ -1,4 +1,4 @@ -QT += waylandclient-private gui-private +QT += waylandclient-private gui-private opengl CONFIG += wayland-scanner WAYLANDCLIENTSOURCES += ../share-buffer.xml @@ -9,5 +9,7 @@ SOURCES += main.cpp \ HEADERS += \ sharebufferextension.h +TARGET = server-buffer-cpp-client + target.path = $$[QT_INSTALL_EXAMPLES]/wayland/server-buffer/cpp-client INSTALLS += target diff --git a/examples/wayland/server-side-decoration/CMakeLists.txt b/examples/wayland/server-side-decoration/CMakeLists.txt new file mode 100644 index 000000000..299404aba --- /dev/null +++ b/examples/wayland/server-side-decoration/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from server-side-decoration.pro. + +cmake_minimum_required(VERSION 3.14) +project(server-side-decoration LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/server-side-decoration") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(server-side-decoration + main.cpp +) +target_link_libraries(server-side-decoration PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(server-side-decoration_resource_files + "main.qml" +) + +qt6_add_resources(server-side-decoration "server-side-decoration" + PREFIX + "/" + FILES + ${server-side-decoration_resource_files} +) + +install(TARGETS server-side-decoration + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/server-side-decoration/main.qml b/examples/wayland/server-side-decoration/main.qml index 5847ce411..4639ddcfd 100644 --- a/examples/wayland/server-side-decoration/main.qml +++ b/examples/wayland/server-side-decoration/main.qml @@ -96,7 +96,6 @@ WaylandCompositor { ShellSurfaceItem { id: shellSurfaceItem moveItem: parent - autoCreatePopupItems: true shellSurface: modelData onSurfaceDestroyed: shellSurfaces.remove(index) } diff --git a/examples/wayland/spanning-screens/CMakeLists.txt b/examples/wayland/spanning-screens/CMakeLists.txt new file mode 100644 index 000000000..510d7aec0 --- /dev/null +++ b/examples/wayland/spanning-screens/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from spanning-screens.pro. + +cmake_minimum_required(VERSION 3.14) +project(spanning-screens LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/spanning-screens") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) + +add_qt_gui_executable(spanning-screens + main.cpp +) +target_link_libraries(spanning-screens PUBLIC + Qt::Core + Qt::Gui + Qt::Qml +) + + +# Resources: +set(spanning-screens_resource_files + "main.qml" +) + +qt6_add_resources(spanning-screens "spanning-screens" + PREFIX + "/" + FILES + ${spanning-screens_resource_files} +) + +install(TARGETS spanning-screens + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/spanning-screens/main.qml b/examples/wayland/spanning-screens/main.qml index ab57306bb..a5abc9b01 100644 --- a/examples/wayland/spanning-screens/main.qml +++ b/examples/wayland/spanning-screens/main.qml @@ -100,7 +100,6 @@ WaylandCompositor { Component { id: chromeComponent ShellSurfaceItem { - autoCreatePopupItems: true onSurfaceDestroyed: destroy() } } diff --git a/examples/wayland/texture-sharing/CMakeLists.txt b/examples/wayland/texture-sharing/CMakeLists.txt new file mode 100644 index 000000000..bf6a7cbf9 --- /dev/null +++ b/examples/wayland/texture-sharing/CMakeLists.txt @@ -0,0 +1,4 @@ +# Generated from texture-sharing.pro. + +add_subdirectory(qml-client) +add_subdirectory(custom-compositor) diff --git a/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt b/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt new file mode 100644 index 000000000..a6127f584 --- /dev/null +++ b/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt @@ -0,0 +1,50 @@ +# Generated from custom-compositor.pro. + +cmake_minimum_required(VERSION 3.14) +project(texture-sharing-custom-compositor LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/texture-sharing/custom-compositor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Qml) +find_package(Qt6 COMPONENTS WaylandCompositor) + +add_qt_gui_executable(texture-sharing-custom-compositor + main.cpp +) +target_link_libraries(texture-sharing-custom-compositor PUBLIC + Qt::Core + Qt::Gui + Qt::Qml + Qt::WaylandCompositorPrivate +) + + +# Resources: +set(compositor_resource_files + "images/background.png" + "images/car.ktx" + "images/qt4.astc" + "images/qt_logo.png" + "qml/main.qml" +) + +qt6_add_resources(texture-sharing-custom-compositor "compositor" + PREFIX + "/" + FILES + ${compositor_resource_files} +) + +install(TARGETS texture-sharing-custom-compositor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro b/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro index e80e9e153..c8497970e 100644 --- a/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro +++ b/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro @@ -12,7 +12,7 @@ OTHER_FILES = \ RESOURCES += compositor.qrc -TARGET = custom-compositor +TARGET = texture-sharing-custom-compositor target.path = $$[QT_INSTALL_EXAMPLES]/wayland/texture-sharing/custom-compositor INSTALLS += target diff --git a/examples/wayland/texture-sharing/custom-compositor/qml/main.qml b/examples/wayland/texture-sharing/custom-compositor/qml/main.qml index 16a412fcd..6a0b90c88 100644 --- a/examples/wayland/texture-sharing/custom-compositor/qml/main.qml +++ b/examples/wayland/texture-sharing/custom-compositor/qml/main.qml @@ -95,7 +95,6 @@ WaylandCompositor { Repeater { model: shellSurfaces ShellSurfaceItem { - autoCreatePopupItems: true shellSurface: modelData onSurfaceDestroyed: shellSurfaces.remove(index) } diff --git a/examples/wayland/texture-sharing/qml-client/CMakeLists.txt b/examples/wayland/texture-sharing/qml-client/CMakeLists.txt new file mode 100644 index 000000000..ec2e02ee4 --- /dev/null +++ b/examples/wayland/texture-sharing/qml-client/CMakeLists.txt @@ -0,0 +1,44 @@ +# Generated from qml-client.pro. + +cmake_minimum_required(VERSION 3.14) +project(qml-client LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples/wayland/texture-sharing/qml-client") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Quick) + +add_qt_gui_executable(qml-client + main.cpp +) +target_link_libraries(qml-client PUBLIC + Qt::Core + Qt::Gui + Qt::Quick +) + + +# Resources: +set(qml-client_resource_files + "main.qml" +) + +qt6_add_resources(qml-client "qml-client" + PREFIX + "/" + FILES + ${qml-client_resource_files} +) + +install(TARGETS qml-client + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) |