summaryrefslogtreecommitdiffstats
path: root/src/render/jobs
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2017-06-06 09:05:13 +0200
committerPaul Lemire <paul.lemire@kdab.com>2018-03-19 13:06:16 +0000
commit4c3f6cb3d396d45d0a463c1222bb4185b9a015ab (patch)
tree5698e4515eeb2d17fda101b8c8a140cb424a34dd /src/render/jobs
parent013be08f1b5b5884922ea5723c6dc34e27179ac7 (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.cpp12
-rw-r--r--src/render/jobs/sendrendercapturejob_p.h7
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;