diff options
Diffstat (limited to 'src/render/renderers/opengl/jobs')
-rw-r--r-- | src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp | 8 | ||||
-rw-r--r-- | src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h | 12 |
2 files changed, 13 insertions, 7 deletions
diff --git a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp b/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp index af1d545ed..95c352dbe 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp +++ b/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp @@ -54,6 +54,8 @@ int renderViewInstanceCounter = 0; RenderViewCommandUpdaterJob::RenderViewCommandUpdaterJob() : Qt3DCore::QAspectJob() + , m_offset(0) + , m_count(0) , m_renderView(nullptr) , m_renderer(nullptr) { @@ -66,11 +68,7 @@ void RenderViewCommandUpdaterJob::run() // if a child has a mesh in the view frustum while its parent isn't contained in it. if (!m_renderView->noDraw()) { // Update Render Commands (Uniform Change, Depth Change) - m_renderView->updateRenderCommand(m_renderables); - - // Copy commands out of cached -> ensures we can submit them for rendering - // while cache is rebuilt or modified for next frame - m_commands = m_renderables.commands; + m_renderView->updateRenderCommand(m_renderables, m_offset, m_count); } } diff --git a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h b/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h index 72caef6cf..e6df3f3b3 100644 --- a/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h +++ b/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob_p.h @@ -71,16 +71,24 @@ public: inline void setRenderView(RenderView *rv) Q_DECL_NOTHROW { m_renderView = rv; } inline void setRenderer(Renderer *renderer) Q_DECL_NOTHROW { m_renderer = renderer; } - inline void setRenderables(const EntityRenderCommandData &renderables) Q_DECL_NOTHROW { m_renderables = renderables; } + inline void setRenderables(EntityRenderCommandData *renderables, int offset, int count) Q_DECL_NOTHROW + { + m_offset = offset; + m_count = count; + m_renderables = renderables; + } + EntityRenderCommandData *renderables() const { return m_renderables; } QVector<RenderCommand> &commands() Q_DECL_NOTHROW { return m_commands; } void run() final; private: + int m_offset; + int m_count; RenderView *m_renderView; Renderer *m_renderer; - EntityRenderCommandData m_renderables; + EntityRenderCommandData *m_renderables; QVector<RenderCommand> m_commands; }; |