summaryrefslogtreecommitdiffstats
path: root/src/render/renderers/opengl/renderer/renderviewbuilder_p.h
diff options
context:
space:
mode:
authorJames Turner <zakalawe@mac.com>2018-11-14 13:22:28 +0000
committerJames Turner <james.turner@kdab.com>2019-02-20 09:57:01 +0000
commiteedd6402ecc00b7a8f382573fb63faf615ab4a54 (patch)
tree313438705170bc205db8b7109bbb9f17cd7668bb /src/render/renderers/opengl/renderer/renderviewbuilder_p.h
parentd23bb633574fbfefde8a6b718487a448fb6d936b (diff)
Cache light/renderable/computable vectors
This avoids running these jobs when lights / renderables have not changed in a frame Change-Id: I604180fe3442ab67648c4ba5d9effb8639c68ef7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/renderers/opengl/renderer/renderviewbuilder_p.h')
-rw-r--r--src/render/renderers/opengl/renderer/renderviewbuilder_p.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/render/renderers/opengl/renderer/renderviewbuilder_p.h b/src/render/renderers/opengl/renderer/renderviewbuilder_p.h
index 818313500..e223a5f1e 100644
--- a/src/render/renderers/opengl/renderer/renderviewbuilder_p.h
+++ b/src/render/renderers/opengl/renderer/renderviewbuilder_p.h
@@ -109,6 +109,15 @@ public:
void setMaterialGathererCacheNeedsToBeRebuilt(bool needsToBeRebuilt);
bool materialGathererCacheNeedsToBeRebuilt() const;
+ void setRenderableCacheNeedsToBeRebuilt(bool needsToBeRebuilt);
+ bool renderableCacheNeedsToBeRebuilt() const;
+
+ void setComputableCacheNeedsToBeRebuilt(bool needsToBeRebuilt);
+ bool computableCacheNeedsToBeRebuilt() const;
+
+ void setLightGathererCacheNeedsToBeRebuilt(bool needsToBeRebuilt);
+ bool lightGathererCacheNeedsToBeRebuilt() const;
+
static int optimalJobCount();
static QVector<Entity *> entitiesInSubset(const QVector<Entity *> &entities, const QVector<Entity *> &subset);
@@ -118,6 +127,9 @@ private:
Renderer *m_renderer;
bool m_layerCacheNeedsToBeRebuilt;
bool m_materialGathererCacheNeedsToBeRebuilt;
+ bool m_lightsCacheNeedsToBeRebuilt;
+ bool m_renderableCacheNeedsToBeRebuilt;
+ bool m_computableCacheNeedsToBeRebuilt;
RenderViewInitializerJobPtr m_renderViewJob;
FilterLayerEntityJobPtr m_filterEntityByLayerJob;
@@ -137,6 +149,10 @@ private:
SynchronizerJobPtr m_syncMaterialGathererJob;
FilterProximityDistanceJobPtr m_filterProximityJob;
+ SynchronizerJobPtr m_cacheRenderableEntitiesJob;
+ SynchronizerJobPtr m_cacheComputableEntitiesJob;
+ SynchronizerJobPtr m_cacheLightsJob;
+
static const int m_optimalParallelJobCount;
};