From 44b410f080c4820cea682c4d1278152d2767595c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 29 Apr 2014 14:50:04 +0300 Subject: Bar data item and row changing optimizations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No longer reset the entire render item array if single item or row changes, significantly speeding up these operations. Task-number: QTRD-2190 Change-Id: I44b8abd384003e252e4bfc34af5d73ac1dee34bf Reviewed-by: Tomi Korpipää Reviewed-by: Mika Salmela --- src/datavisualization/engine/bars3drenderer_p.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/datavisualization/engine/bars3drenderer_p.h') diff --git a/src/datavisualization/engine/bars3drenderer_p.h b/src/datavisualization/engine/bars3drenderer_p.h index ca0e690e..ddea546e 100644 --- a/src/datavisualization/engine/bars3drenderer_p.h +++ b/src/datavisualization/engine/bars3drenderer_p.h @@ -108,6 +108,7 @@ private: bool m_keepSeriesUniform; bool m_haveUniformColorSeries; bool m_haveGradientSeries; + float m_zeroPosition; public: explicit Bars3DRenderer(Bars3DController *controller); @@ -116,6 +117,8 @@ public: void updateData(); void updateSeries(const QList &seriesList); SeriesRenderCache *createNewCache(QAbstract3DSeries *series); + void updateRows(const QVector &rows); + void updateItems(const QVector &points); void updateScene(Q3DScene *scene); void render(GLuint defaultFboHandle = 0); @@ -169,6 +172,9 @@ private: QPoint selectionColorToArrayPosition(const QVector4D &selectionColor); QBar3DSeries *selectionColorToSeries(const QVector4D &selectionColor); + inline void updateRenderRow(const QBarDataRow *dataRow, BarRenderItemRow &renderRow); + inline void updateRenderItem(const QBarDataItem &dataItem, BarRenderItem &renderItem); + Q_DISABLE_COPY(Bars3DRenderer) friend class BarRenderItem; -- cgit v1.2.3