summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/scatter3drenderer.cpp
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2014-06-06 10:19:38 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-06-06 10:23:27 +0300
commite8e5286ff5c5e5ba822e798dc0c1f8270817a562 (patch)
treee92e222e7df5e5ce773756ff1d037088c5a61325 /src/datavisualization/engine/scatter3drenderer.cpp
parent69d19ccc2925e8889e5ba77c416a227970d169cf (diff)
Fix for static optimization crash on android
Added checks if visible items really exists and if buffers are empty. Change-Id: Id29f87924e098c6f8b7b57bc74543ce37787995f Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 26c393bd..dd50188b 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -444,6 +444,12 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
}
QVector3D modelScaler(itemSize, itemSize, itemSize);
+ if (!optimizationDefault
+ && ((drawingPoints && cache->bufferPoints()->indexCount() == 0)
+ || (!drawingPoints && cache->bufferObject()->indexCount() == 0))) {
+ continue;
+ }
+
int loopCount = 1;
if (optimizationDefault)
loopCount = renderArraySize;
@@ -709,6 +715,12 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
#endif
QVector3D modelScaler(itemSize, itemSize, itemSize);
+ if (!optimizationDefault
+ && ((drawingPoints && cache->bufferPoints()->indexCount() == 0)
+ || (!drawingPoints && cache->bufferObject()->indexCount() == 0))) {
+ continue;
+ }
+
// Rebind shader if it has changed
if (drawingPoints != previousDrawingPoints
|| (!drawingPoints &&
@@ -920,7 +932,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
if (!drawingPoints) {
glEnable(GL_POLYGON_OFFSET_FILL);
- glPolygonOffset(-0.5f, 1.0f);
+ glPolygonOffset(-1.0f, 1.0f);
}
#if !defined(QT_OPENGL_ES_2)