diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2022-08-04 13:35:04 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-08-04 22:59:29 +0000 |
commit | 1a0473217723433800843204592068fdf20d1761 (patch) | |
tree | c47beee78eaad3e4144925f6c6070d881bf49161 | |
parent | 33819b625c4e1ac2690ef2fc027ff0c1386062df (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.cpp | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgrendernode_p.h | 3 |
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 |