From 68a3ad3cd8e29fbf05d9fb8fcac473d551ae0bab Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 15:14:03 +0100 Subject: [PATCH 1/5] disable integration test ( fails with Qt5 Ubuntu ) --- .github/workflows/cmake.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 84656396..5662b48d 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -431,22 +431,22 @@ jobs: killall iotdashboard killall Xvfb - - name: Configure ( CMake Integration Test ) - shell: bash - run: | - mkdir qskinny_build_test - cmake \ - -S qskinny_source/examples/iotdashboard_smoketest \ - -B qskinny_build_test \ - -G "${{ matrix.config.generators }}" \ - -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny - - - name: Build ( CMake Integration Test ) - shell: bash - run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + #- name: Configure ( CMake Integration Test ) + # shell: bash + # run: | + # mkdir qskinny_build_test + # cmake \ + # -S qskinny_source/examples/iotdashboard_smoketest \ + # -B qskinny_build_test \ + # -G "${{ matrix.config.generators }}" \ + # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny +# + #- name: Build ( CMake Integration Test ) + # shell: bash + # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash From 3b60780cb67e25efa57771a33cc179a616b0c591 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 15:25:59 +0100 Subject: [PATCH 2/5] Revert "disable integration test ( fails with Qt5 Ubuntu )" This reverts commit 68a3ad3cd8e29fbf05d9fb8fcac473d551ae0bab. --- .github/workflows/cmake.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 5662b48d..84656396 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -431,22 +431,22 @@ jobs: killall iotdashboard killall Xvfb - #- name: Configure ( CMake Integration Test ) - # shell: bash - # run: | - # mkdir qskinny_build_test - # cmake \ - # -S qskinny_source/examples/iotdashboard_smoketest \ - # -B qskinny_build_test \ - # -G "${{ matrix.config.generators }}" \ - # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny -# - #- name: Build ( CMake Integration Test ) - # shell: bash - # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + - name: Configure ( CMake Integration Test ) + shell: bash + run: | + mkdir qskinny_build_test + cmake \ + -S qskinny_source/examples/iotdashboard_smoketest \ + -B qskinny_build_test \ + -G "${{ matrix.config.generators }}" \ + -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny + + - name: Build ( CMake Integration Test ) + shell: bash + run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash From 69090a6079f4d80ef9bd0ce8e07bbb0eeecbd36d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 15:26:58 +0100 Subject: [PATCH 3/5] disable Ninja multi config --- .github/workflows/cmake.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 84656396..005be2b5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -104,7 +104,8 @@ jobs: cc: "gcc", cxx: "g++", archiver: "7z a", - generators: "Ninja Multi-Config", + # generators: "Ninja Multi-Config", + generators: "Ninja", env: { DISPLAY: ":1" }, cmake: { From 67f0df44afce35bbed688dd52320ee0ab17f98f6 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 27 Dec 2023 08:47:57 +0100 Subject: [PATCH 4/5] Qt 6.7 incompatibilities fixed --- src/common/QskMetaFunction.hpp | 19 ++++++++++--------- src/nodes/QskPlainTextRenderer.cpp | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/common/QskMetaFunction.hpp b/src/common/QskMetaFunction.hpp index e8905ab5..26af0860 100644 --- a/src/common/QskMetaFunction.hpp +++ b/src/common/QskMetaFunction.hpp @@ -47,11 +47,8 @@ class QskMetaFunction::FunctionCall : public QtPrivate::QSlotObjectBase namespace QskMetaFunctionCall { - using FunctionCall = QskMetaFunction::FunctionCall; - using namespace QtPrivate; - template< typename Function, typename Args, typename R > - class StaticFunctionCall : public FunctionCall + class StaticFunctionCall : public QskMetaFunction::FunctionCall { using MetaCall = StaticFunctionCall< Function, Args, R >; @@ -74,7 +71,7 @@ namespace QskMetaFunctionCall } case Call: { - typedef FunctionPointer< Function > FuncType; + using FuncType = QtPrivate::FunctionPointer< Function >; FuncType::template call< Args, R >( static_cast< MetaCall* >( functionCall )->m_function, object, args ); @@ -100,7 +97,7 @@ namespace QskMetaFunctionCall }; template< typename Function, typename Args, typename R > - class MemberFunctionCall : public FunctionCall + class MemberFunctionCall : public QskMetaFunction::FunctionCall { using MetaCall = MemberFunctionCall< Function, Args, R >; @@ -123,7 +120,7 @@ namespace QskMetaFunctionCall } case Call: { - typedef FunctionPointer< Function > FuncType; + using FuncType = QtPrivate::FunctionPointer< Function >; FuncType::template call< Args, R >( static_cast< MetaCall* >( functionCall )->m_function, @@ -144,7 +141,7 @@ namespace QskMetaFunctionCall }; template< typename Function, int N, typename Args, typename R > - class FunctorFunctionCall : public FunctionCall + class FunctorFunctionCall : public QskMetaFunction::FunctionCall { using MetaCall = FunctorFunctionCall< Function, N, Args, R >; @@ -167,7 +164,11 @@ namespace QskMetaFunctionCall } case Call: { - typedef Functor< Function, N > FuncType; +#if QT_VERSION < QT_VERSION_CHECK( 6, 7, 0 ) + using FuncType = QtPrivate::Functor< Function, N >; +#else + using FuncType = QtPrivate::Callable< Function, Args >; +#endif FuncType::template call< Args, R >( static_cast< MetaCall* >( functionCall )->m_function, object, args ); diff --git a/src/nodes/QskPlainTextRenderer.cpp b/src/nodes/QskPlainTextRenderer.cpp index 7b5d5a43..77d13684 100644 --- a/src/nodes/QskPlainTextRenderer.cpp +++ b/src/nodes/QskPlainTextRenderer.cpp @@ -127,16 +127,26 @@ static void qskRenderText( if ( glyphNode == nullptr ) { const bool preferNativeGlyphNode = false; // QskTextOptions? - -#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) constexpr int renderQuality = -1; // QQuickText::DefaultRenderTypeQuality + +#if QT_VERSION >= QT_VERSION_CHECK( 6, 7, 0 ) + const auto renderType = preferNativeGlyphNode + ? QSGTextNode::QtRendering : QSGTextNode::NativeRendering; + glyphNode = sgContext->createGlyphNode( + renderContext, renderType, renderQuality ); +#elif QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) glyphNode = sgContext->createGlyphNode( renderContext, preferNativeGlyphNode, renderQuality ); #else + Q_UNUSED( renderQuality ); glyphNode = sgContext->createGlyphNode( renderContext, preferNativeGlyphNode ); #endif + +#if QT_VERSION < QT_VERSION_CHECK( 6, 7, 0 ) glyphNode->setOwnerElement( item ); +#endif + glyphNode->setFlags( QSGNode::OwnedByParent | GlyphFlag ); } From ff10fc6fc13edcb6151a5ebc8b031bc75ebe7960 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 27 Dec 2023 08:51:12 +0100 Subject: [PATCH 5/5] missing initialization added --- src/nodes/QskSceneTexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index e4d78d78..0b733b74 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -75,7 +75,7 @@ namespace QskSceneTexture* m_texture = nullptr; #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) - QOpenGLFramebufferObject* m_fbo; + QOpenGLFramebufferObject* m_fbo = nullptr; #endif #if QT_VERSION < QT_VERSION_CHECK( 6, 4, 0 )