diff --git a/qt6/src/CMakeLists.txt b/qt6/src/CMakeLists.txt index 4314b72..a7ecaf1 100644 --- a/qt6/src/CMakeLists.txt +++ b/qt6/src/CMakeLists.txt @@ -25,6 +25,7 @@ dtk_extend_target(${PLUGIN_NAME} EnableCov ${ENABLE_COV}) qt_add_translations(${LIB_NAME} TS_FILES ${TS_FILES} QM_FILES_OUTPUT_VARIABLE QM_FILES + IMMEDIATE_CALL ) set_target_properties(${LIB_NAME} PROPERTIES diff --git a/src/private/dbackdropnode.cpp b/src/private/dbackdropnode.cpp index 91c398a..1ed0ad8 100644 --- a/src/private/dbackdropnode.cpp +++ b/src/private/dbackdropnode.cpp @@ -320,8 +320,8 @@ public: renderer->setDevicePixelRatio(base->devicePixelRatio()); renderer->setDeviceRect(base->deviceRect()); renderer->setViewportRect(base->viewportRect()); - renderer->setProjectionMatrix(base->projectionMatrix()); - renderer->setProjectionMatrixWithNativeNDC(base->projectionMatrixWithNativeNDC()); + renderer->setProjectionMatrix(base->projectionMatrix(0)); + renderer->setProjectionMatrixWithNativeNDC(base->projectionMatrixWithNativeNDC(0)); } else { renderer->setDevicePixelRatio(1.0); renderer->setDeviceRect(QRect(QPoint(0, 0), pixelSize)); @@ -336,8 +336,8 @@ public: } if (Q_UNLIKELY(!matrix.isIdentity())) { - renderer->setProjectionMatrix(renderer->projectionMatrix() * matrix); - renderer->setProjectionMatrixWithNativeNDC(renderer->projectionMatrixWithNativeNDC() * matrix); + renderer->setProjectionMatrix(renderer->projectionMatrix(0) * matrix); + renderer->setProjectionMatrixWithNativeNDC(renderer->projectionMatrixWithNativeNDC(0) * matrix); } renderer->setRootNode(rootNode); diff --git a/src/private/dmaskeffectnode.cpp b/src/private/dmaskeffectnode.cpp index c4db07d..da1e4ce 100644 --- a/src/private/dmaskeffectnode.cpp +++ b/src/private/dmaskeffectnode.cpp @@ -35,7 +35,7 @@ protected: class OpaqueTextureMaterialShader : public QSGOpaqueTextureMaterialRhiShader { public: - OpaqueTextureMaterialShader(); + OpaqueTextureMaterialShader(int viewCount); bool updateUniformData(RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override; @@ -48,7 +48,7 @@ public: class TextureMaterialShader : public OpaqueTextureMaterialShader { public: - TextureMaterialShader(); + TextureMaterialShader(int viewCount); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *oldEffect) override; @@ -61,7 +61,8 @@ protected: #endif }; -OpaqueTextureMaterialShader::OpaqueTextureMaterialShader() +OpaqueTextureMaterialShader::OpaqueTextureMaterialShader(int viewCount) + : QSGOpaqueTextureMaterialRhiShader(viewCount) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #if QT_CONFIG(opengl) @@ -236,8 +237,8 @@ bool OpaqueTextureMaterialShader::updateGraphicsPipelineState(RenderState &state } #endif -TextureMaterialShader::TextureMaterialShader() - : OpaqueTextureMaterialShader() +TextureMaterialShader::TextureMaterialShader(int viewCount) + : OpaqueTextureMaterialShader(viewCount) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // TODO qt6 #if QT_CONFIG(opengl) @@ -529,7 +530,7 @@ QSGMaterialShader *TextureMaterial::createShader() const QSGMaterialShader *TextureMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const { Q_UNUSED(renderMode) - return new TextureMaterialShader; + return new TextureMaterialShader(viewCount()); } #endif @@ -553,7 +554,7 @@ QSGMaterialShader *OpaqueTextureMaterial::createShader() const QSGMaterialShader *OpaqueTextureMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const { Q_UNUSED(renderMode) - return new OpaqueTextureMaterialShader; + return new OpaqueTextureMaterialShader(viewCount()); } #endif diff --git a/src/private/drectanglenode.cpp b/src/private/drectanglenode.cpp index efeeab6..b961588 100644 --- a/src/private/drectanglenode.cpp +++ b/src/private/drectanglenode.cpp @@ -72,7 +72,8 @@ void CornerColorShader::initialize() m_idQtOpacity = program->uniformLocation("qt_Opacity"); } #else -CornerColorShader::CornerColorShader() +CornerColorShader::CornerColorShader(int viewCount) + : QSGOpaqueTextureMaterialRhiShader(viewCount) { setShaderFileName(QSGMaterialShader::VertexStage, QStringLiteral(":/dtk/declarative/shaders_ng/cornerscolorshader.vert.qsb")); setShaderFileName(QSGMaterialShader::FragmentStage, QStringLiteral(":/dtk/declarative/shaders_ng/cornerscolorshader.frag.qsb")); @@ -128,7 +129,7 @@ QSGMaterialShader *CornerColorMaterial::createShader() const QSGMaterialShader *CornerColorMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const { Q_UNUSED(renderMode) - return new CornerColorShader; + return new CornerColorShader(viewCount()); } #endif diff --git a/src/private/drectanglenode_p.h b/src/private/drectanglenode_p.h index aee5a7c..7962154 100644 --- a/src/private/drectanglenode_p.h +++ b/src/private/drectanglenode_p.h @@ -37,7 +37,7 @@ private: class CornerColorShader : public QSGOpaqueTextureMaterialRhiShader { public: - CornerColorShader(); + CornerColorShader(int viewCount); bool updateUniformData(RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial); }; #endif