diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2017-06-06 09:05:13 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-03-19 13:06:16 +0000 |
commit | 4c3f6cb3d396d45d0a463c1222bb4185b9a015ab (patch) | |
tree | 5698e4515eeb2d17fda101b8c8a140cb424a34dd /src/render/jobs | |
parent | 013be08f1b5b5884922ea5723c6dc34e27179ac7 (diff) |
SendRenderCaptureJob: remove hard dependency to Renderer
This will allow it to be reused by the various renderers
Change-Id: I5707496a40b91077a363734cc72af820ec5ca8c4
Task-number: QTBUG-61151
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render/jobs')
-rw-r--r-- | src/render/jobs/sendrendercapturejob.cpp | 12 | ||||
-rw-r--r-- | src/render/jobs/sendrendercapturejob_p.h | 7 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/render/jobs/sendrendercapturejob.cpp b/src/render/jobs/sendrendercapturejob.cpp index 6dd9387e0..5e1faaebd 100644 --- a/src/render/jobs/sendrendercapturejob.cpp +++ b/src/render/jobs/sendrendercapturejob.cpp @@ -47,9 +47,8 @@ namespace Qt3DRender { namespace Render { -SendRenderCaptureJob::SendRenderCaptureJob(Renderer *renderer) +SendRenderCaptureJob::SendRenderCaptureJob() : Qt3DCore::QAspectJob() - , m_renderer(renderer) { SET_JOB_RUN_STAT_TYPE(this, JobTypes::SendRenderCapture, 0); } @@ -59,6 +58,11 @@ SendRenderCaptureJob::~SendRenderCaptureJob() } +void SendRenderCaptureJob::setPendingCaptureRequests(const QVector<Qt3DCore::QNodeId> &requests) +{ + m_pendingCaptures = requests; +} + void SendRenderCaptureJob::setManagers(NodeManagers *managers) { m_managers = managers; @@ -66,12 +70,12 @@ void SendRenderCaptureJob::setManagers(NodeManagers *managers) void SendRenderCaptureJob::run() { - const auto pendingCaptures = m_renderer->takePendingRenderCaptureSendRequests(); - for (Qt3DCore::QNodeId id : pendingCaptures) { + for (const Qt3DCore::QNodeId id : qAsConst(m_pendingCaptures)) { auto *node = static_cast<Qt3DRender::Render::RenderCapture *> (m_managers->frameGraphManager()->lookupNode(id)); node->sendRenderCaptures(); } + m_pendingCaptures.clear(); } } // Render diff --git a/src/render/jobs/sendrendercapturejob_p.h b/src/render/jobs/sendrendercapturejob_p.h index 4ca54b483..53b111ba6 100644 --- a/src/render/jobs/sendrendercapturejob_p.h +++ b/src/render/jobs/sendrendercapturejob_p.h @@ -50,6 +50,7 @@ // #include <Qt3DCore/qaspectjob.h> +#include <Qt3DCore/qnodeid.h> #include <Qt3DRender/qt3drender_global.h> #include <Qt3DRender/private/qt3drender_global_p.h> @@ -61,21 +62,21 @@ namespace Render { class NodeManagers; class Entity; -class Renderer; class QT3DRENDERSHARED_PRIVATE_EXPORT SendRenderCaptureJob : public Qt3DCore::QAspectJob { public: - explicit SendRenderCaptureJob(Renderer *renderer); + SendRenderCaptureJob(); ~SendRenderCaptureJob(); + void setPendingCaptureRequests(const QVector<Qt3DCore::QNodeId> &requests); void setManagers(NodeManagers *managers); void run() final; private: - Renderer *m_renderer; NodeManagers *m_managers; + QVector<Qt3DCore::QNodeId> m_pendingCaptures; }; typedef QSharedPointer<SendRenderCaptureJob> SendRenderCaptureJobPtr; |