summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-05-19 08:39:47 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-05-19 08:44:19 +0300
commita998e49b3455c9e28d2ed85f024f28c69921cfd2 (patch)
treeb97b4cc958a218a1e931b0a96a7a62f235268371 /src/datavisualization/data
parent6368dd9a1d9e51016dcef9c93137526c07adcbeb (diff)
Optimized custom item addition/removal
Task-number: QTRD-3056 Change-Id: I653d8aeec797b76c19d9b542391b79e9370e7501 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r--src/datavisualization/data/customrenderitem_p.h20
-rw-r--r--src/datavisualization/data/qcustom3ditem.cpp10
-rw-r--r--src/datavisualization/data/qcustom3ditem_p.h1
3 files changed, 24 insertions, 7 deletions
diff --git a/src/datavisualization/data/customrenderitem_p.h b/src/datavisualization/data/customrenderitem_p.h
index 3bf8067e..1722163b 100644
--- a/src/datavisualization/data/customrenderitem_p.h
+++ b/src/datavisualization/data/customrenderitem_p.h
@@ -44,17 +44,21 @@ public:
virtual ~CustomRenderItem();
inline void setTexture(GLuint texture) { m_texture = texture; }
- inline GLuint texture() { return m_texture; }
+ inline GLuint texture() const { return m_texture; }
void setMesh(const QString &meshFile);
- inline ObjectHelper *mesh() { return m_object; }
+ inline ObjectHelper *mesh() const { return m_object; }
inline void setScaling(const QVector3D &scaling) { m_scaling = scaling; }
- inline QVector3D scaling() { return m_scaling; }
+ inline QVector3D scaling() const { return m_scaling; }
inline void setBlendNeeded(bool blend) { m_needBlend = blend; }
- inline bool isBlendNeeded() { return m_needBlend; }
+ inline bool isBlendNeeded() const { return m_needBlend; }
inline void setVisible(bool visible) { m_visible = visible; }
- inline bool isVisible() { return m_visible; }
+ inline bool isVisible() const { return m_visible; }
inline void setItemPointer(QCustom3DItem *item) { m_item = item; }
- inline QCustom3DItem *itemPointer() { return m_item; }
+ inline QCustom3DItem *itemPointer() const { return m_item; }
+ inline void setValid(bool valid) { m_valid = valid; }
+ inline bool isValid() const { return m_valid; }
+ inline void setIndex(int index) { m_index = index; }
+ inline int index() const { return m_index; }
private:
GLuint m_texture;
@@ -62,9 +66,11 @@ private:
ObjectHelper *m_object;
bool m_needBlend;
bool m_visible;
+ bool m_valid;
+ int m_index;
QCustom3DItem *m_item;
};
-typedef QVector<CustomRenderItem *> CustomRenderItemArray;
+typedef QHash<QCustom3DItem *, CustomRenderItem *> CustomRenderItemArray;
QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qcustom3ditem.cpp b/src/datavisualization/data/qcustom3ditem.cpp
index ca4cef16..bb6c96eb 100644
--- a/src/datavisualization/data/qcustom3ditem.cpp
+++ b/src/datavisualization/data/qcustom3ditem.cpp
@@ -310,4 +310,14 @@ void QCustom3DItemPrivate::clearTextureImage()
m_textureImage = QImage();
}
+void QCustom3DItemPrivate::resetDirtyBits()
+{
+ m_dirtyBits.textureDirty = false;
+ m_dirtyBits.meshDirty = false;
+ m_dirtyBits.positionDirty = false;
+ m_dirtyBits.scalingDirty = false;
+ m_dirtyBits.rotationDirty = false;
+ m_dirtyBits.visibleDirty = false;
+}
+
QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/data/qcustom3ditem_p.h b/src/datavisualization/data/qcustom3ditem_p.h
index 89f47501..007c9fc4 100644
--- a/src/datavisualization/data/qcustom3ditem_p.h
+++ b/src/datavisualization/data/qcustom3ditem_p.h
@@ -63,6 +63,7 @@ public:
QImage textureImage();
void clearTextureImage();
+ void resetDirtyBits();
public:
QCustom3DItem *q_ptr;