aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2022-08-04 13:35:04 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-04 22:59:29 +0000
commit1a0473217723433800843204592068fdf20d1761 (patch)
treec47beee78eaad3e4144925f6c6070d881bf49161
parent33819b625c4e1ac2690ef2fc027ff0c1386062df (diff)
Enable internally to access the RT and related in QSGRenderNode
A QSGRenderNode in a subscene that is under a layer.enabled: true Item is rendered to a texture, i.e. a render target different from the main (the window/swapchain) one. It also involves using different a different renderpass object. QSGRendererInterface allows to query window-level stuff, so e.g. the main render target, but that is not useful here. The QSGRenderNode subclass needs a way to access these things. Start with just another private member var., this enables Quick 3D to implement its Inline render mode correctly. This can be turned into an API on QSGRenderNode later. Task-number: QTBUG-105354 Change-Id: Iba97ded98b08a23b671f3729d8bab35fad1fd0e8 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 7702fe3cf9efa8e14a0da0f1a34d72ad0f839b3f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp2
-rw-r--r--src/quick/scenegraph/coreapi/qsgrendernode_p.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index 5fda0e461c..df7575a33e 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -3904,6 +3904,8 @@ bool Renderer::prepareRhiRenderNode(Batch *batch, PreparedRenderBatch *renderBat
opacity = opacity->parent();
}
+ rd->m_rt = renderTarget();
+
e->renderNode->prepare();
renderBatch->batch = batch;
diff --git a/src/quick/scenegraph/coreapi/qsgrendernode_p.h b/src/quick/scenegraph/coreapi/qsgrendernode_p.h
index f2925ad017..1db166eafc 100644
--- a/src/quick/scenegraph/coreapi/qsgrendernode_p.h
+++ b/src/quick/scenegraph/coreapi/qsgrendernode_p.h
@@ -16,8 +16,8 @@
//
#include <QtQuick/private/qtquickglobal_p.h>
-#include <QtQuick/qsgnode.h>
#include <QtQuick/qsgrendernode.h>
+#include <QtQuick/private/qsgrenderer_p.h>
QT_BEGIN_NAMESPACE
@@ -31,6 +31,7 @@ public:
const QMatrix4x4 *m_matrix;
const QSGClipNode *m_clip_list;
qreal m_opacity;
+ QSGRenderTarget m_rt;
};
QT_END_NAMESPACE