summaryrefslogtreecommitdiffstats
path: root/src/render/geometry
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-11-17 08:48:46 +0100
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-11-24 14:59:06 +0000
commit42d7dac9b7f7fbf8aaad123431e973aedf0f34b2 (patch)
tree742203bed8134b3d8b9f0dcc1d7e255460733449 /src/render/geometry
parent347771bb8e2ce9dbdd4e329a2079f17f25a0c190 (diff)
GeometryRendererManager: contains vector of instances requiring a triangle data reload
Change-Id: Ie9da997a8c9a8fc064814fd8310e1e9923fbf6d0 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/render/geometry')
-rw-r--r--src/render/geometry/geometryrenderermanager.cpp18
-rw-r--r--src/render/geometry/geometryrenderermanager_p.h6
2 files changed, 24 insertions, 0 deletions
diff --git a/src/render/geometry/geometryrenderermanager.cpp b/src/render/geometry/geometryrenderermanager.cpp
index 8592ee75c..b39a0269f 100644
--- a/src/render/geometry/geometryrenderermanager.cpp
+++ b/src/render/geometry/geometryrenderermanager.cpp
@@ -62,6 +62,24 @@ QVector<Qt3DCore::QNodeId> GeometryRendererManager::dirtyGeometryRenderers()
return vector;
}
+void GeometryRendererManager::requestTriangleDataRefreshForGeometryRenderer(const Qt3DCore::QNodeId geometryRenderer)
+{
+ if (!m_geometryRenderersRequiringTriangleRefresh.contains(geometryRenderer))
+ m_geometryRenderersRequiringTriangleRefresh.push_back(geometryRenderer);
+}
+
+bool GeometryRendererManager::isGeometryRendererScheduledForTriangleDataRefresh(const Qt3DCore::QNodeId geometryRenderer)
+{
+ return m_geometryRenderersRequiringTriangleRefresh.contains(geometryRenderer);
+}
+
+QVector<Qt3DCore::QNodeId> GeometryRendererManager::geometryRenderersRequiringTriangleDataRefresh()
+{
+ QVector<Qt3DCore::QNodeId> vector(m_geometryRenderersRequiringTriangleRefresh);
+ m_geometryRenderersRequiringTriangleRefresh.clear();
+ return vector;
+}
+
} // namespace Render
} // namespace Qt3DRender
diff --git a/src/render/geometry/geometryrenderermanager_p.h b/src/render/geometry/geometryrenderermanager_p.h
index 1c3afe68c..769f4ad63 100644
--- a/src/render/geometry/geometryrenderermanager_p.h
+++ b/src/render/geometry/geometryrenderermanager_p.h
@@ -72,8 +72,14 @@ public:
void addDirtyGeometryRenderer(const Qt3DCore::QNodeId &bufferId);
QVector<Qt3DCore::QNodeId> dirtyGeometryRenderers();
+ void requestTriangleDataRefreshForGeometryRenderer(const Qt3DCore::QNodeId geometryRenderer);
+ bool isGeometryRendererScheduledForTriangleDataRefresh(const Qt3DCore::QNodeId geometryRenderer);
+ QVector<Qt3DCore::QNodeId> geometryRenderersRequiringTriangleDataRefresh();
+
+
private:
QVector<Qt3DCore::QNodeId> m_dirtyGeometryRenderers;
+ QVector<Qt3DCore::QNodeId> m_geometryRenderersRequiringTriangleRefresh;
};
} // namespace Render