summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/utils/scatterpointbufferhelper.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-06-06 10:24:20 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-06-06 10:24:20 +0300
commitee94aedb7447ddf7a779f7188fd1cd2ae44d675e (patch)
treee92e222e7df5e5ce773756ff1d037088c5a61325 /src/datavisualization/utils/scatterpointbufferhelper.cpp
parent05364a4204a5ec4c16156ebcad12dd8944c48155 (diff)
parente8e5286ff5c5e5ba822e798dc0c1f8270817a562 (diff)
Merge remote-tracking branch 'origin/develop'
Diffstat (limited to 'src/datavisualization/utils/scatterpointbufferhelper.cpp')
-rw-r--r--src/datavisualization/utils/scatterpointbufferhelper.cpp28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/datavisualization/utils/scatterpointbufferhelper.cpp b/src/datavisualization/utils/scatterpointbufferhelper.cpp
index 0f290aeb..b14d84ad 100644
--- a/src/datavisualization/utils/scatterpointbufferhelper.cpp
+++ b/src/datavisualization/utils/scatterpointbufferhelper.cpp
@@ -20,7 +20,6 @@
QT_BEGIN_NAMESPACE_DATAVISUALIZATION
-const GLfloat itemScaler = 3.0f;
const QVector3D hiddenPos(-1000.0f, -1000.0f, -1000.0f);
ScatterPointBufferHelper::ScatterPointBufferHelper()
@@ -82,6 +81,7 @@ void ScatterPointBufferHelper::load(ScatterSeriesRenderCache *cache)
ScatterRenderItemArray &renderArray = cache->renderArray();
const int renderArraySize = renderArray.size();
+ m_indexCount = 0;
if (m_meshDataLoaded) {
// Delete old data
@@ -89,25 +89,31 @@ void ScatterPointBufferHelper::load(ScatterSeriesRenderCache *cache)
m_bufferedPoints.clear();
}
+ bool itemsVisible = false;
m_bufferedPoints.resize(renderArraySize);
for (int i = 0; i < renderArraySize; i++) {
ScatterRenderItem &item = renderArray[i];
- if (!item.isVisible())
+ if (!item.isVisible()) {
m_bufferedPoints[i] = hiddenPos;
- else
+ } else {
+ itemsVisible = true;
m_bufferedPoints[i] = item.translation();
+ }
}
- m_indexCount = renderArraySize;
+ if (itemsVisible)
+ m_indexCount = renderArraySize;
- glGenBuffers(1, &m_pointbuffer);
- glBindBuffer(GL_ARRAY_BUFFER, m_pointbuffer);
- glBufferData(GL_ARRAY_BUFFER, m_bufferedPoints.size() * sizeof(QVector3D),
- &m_bufferedPoints.at(0),
- GL_DYNAMIC_DRAW);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
+ if (m_indexCount > 0) {
+ glGenBuffers(1, &m_pointbuffer);
+ glBindBuffer(GL_ARRAY_BUFFER, m_pointbuffer);
+ glBufferData(GL_ARRAY_BUFFER, m_bufferedPoints.size() * sizeof(QVector3D),
+ &m_bufferedPoints.at(0),
+ GL_DYNAMIC_DRAW);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
- m_meshDataLoaded = true;
+ m_meshDataLoaded = true;
+ }
}
QT_END_NAMESPACE_DATAVISUALIZATION