diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-11-17 08:48:46 +0100 |
---|---|---|
committer | Andy Nichols <andy.nichols@theqtcompany.com> | 2015-11-24 14:59:06 +0000 |
commit | 42d7dac9b7f7fbf8aaad123431e973aedf0f34b2 (patch) | |
tree | 742203bed8134b3d8b9f0dcc1d7e255460733449 /src/render/geometry | |
parent | 347771bb8e2ce9dbdd4e329a2079f17f25a0c190 (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.cpp | 18 | ||||
-rw-r--r-- | src/render/geometry/geometryrenderermanager_p.h | 6 |
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 |