diff options
author | JiDe Zhang <zhangjide@uniontech.com> | 2021-05-28 16:12:55 +0800 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2022-04-19 17:39:07 +0200 |
commit | 43f705c3c01a7b78b94ea1db655c715ab2a54939 (patch) | |
tree | bde830a04a8e265072d088383f74ecc5c8919c07 /src/quick/scenegraph/qsgcontext.cpp | |
parent | 514e292d3ded029791779c422f45dcf5cbe57a1d (diff) |
Support to custom the render target on the software renderer
Add QQuickRenderTarget::fromPaintDevice, aollow to get a
QQuickRendererTarget from the QPaintDevice object.
[ChangeLog][QtQuick] Added QQuickRenderTarget::fromPaintDevice,
Allowed to set the render target of QQuickWindow on the software
renderer.
Task-number: QTBUG-94075
Change-Id: I4946c25d2a6315cd8f9c12a7ac7ac4cf71d95361
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/quick/scenegraph/qsgcontext.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgcontext.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp index a5e0e5e035..7a1027b806 100644 --- a/src/quick/scenegraph/qsgcontext.cpp +++ b/src/quick/scenegraph/qsgcontext.cpp @@ -39,6 +39,7 @@ #include <QtQuick/private/qsgcontext_p.h> #include <QtQuick/private/qsgtexture_p.h> +#include <QtQuick/private/qsgrenderer_p.h> #include <QtQuick/private/qquickpixmapcache_p.h> #include <QtQuick/private/qsgadaptationlayer_p.h> @@ -370,12 +371,12 @@ void QSGRenderContext::prepareSync(qreal devicePixelRatio, Q_UNUSED(config); } -void QSGRenderContext::beginNextFrame(QSGRenderer *renderer, +void QSGRenderContext::beginNextFrame(QSGRenderer *renderer, const QSGRenderTarget &renderTarget, RenderPassCallback mainPassRecordingStart, RenderPassCallback mainPassRecordingEnd, void *callbackUserData) { - Q_UNUSED(renderer); + renderer->setRenderTarget(renderTarget); Q_UNUSED(mainPassRecordingStart); Q_UNUSED(mainPassRecordingEnd); Q_UNUSED(callbackUserData); @@ -386,15 +387,13 @@ void QSGRenderContext::endNextFrame(QSGRenderer *renderer) Q_UNUSED(renderer); } -void QSGRenderContext::beginNextRhiFrame(QSGRenderer *renderer, - QRhiRenderTarget *rt, QRhiRenderPassDescriptor *rp, QRhiCommandBuffer *cb, +void QSGRenderContext::beginNextRhiFrame(QSGRenderer *renderer, const QSGRenderTarget &renderTarget, + QRhiCommandBuffer *cb, RenderPassCallback mainPassRecordingStart, RenderPassCallback mainPassRecordingEnd, void *callbackUserData) { - Q_UNUSED(renderer); - Q_UNUSED(rt); - Q_UNUSED(rp); + renderer->setRenderTarget(renderTarget); Q_UNUSED(cb); Q_UNUSED(mainPassRecordingStart); Q_UNUSED(mainPassRecordingEnd); |