summaryrefslogtreecommitdiffstats
path: root/src/chartsqml2/declarativerendernode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/chartsqml2/declarativerendernode.cpp')
-rw-r--r--src/chartsqml2/declarativerendernode.cpp48
1 files changed, 25 insertions, 23 deletions
diff --git a/src/chartsqml2/declarativerendernode.cpp b/src/chartsqml2/declarativerendernode.cpp
index c11f6b00..71d582cc 100644
--- a/src/chartsqml2/declarativerendernode.cpp
+++ b/src/chartsqml2/declarativerendernode.cpp
@@ -232,31 +232,33 @@ void DeclarativeRenderNode::renderGL()
QOpenGLBuffer *vbo = m_seriesBufferMap.value(i.key());
GLXYSeriesData *data = i.value();
- m_program->setUniformValue(m_colorUniformLoc, data->color);
- m_program->setUniformValue(m_minUniformLoc, data->min);
- m_program->setUniformValue(m_deltaUniformLoc, data->delta);
- m_program->setUniformValue(m_matrixUniformLoc, data->matrix);
-
- if (!vbo) {
- vbo = new QOpenGLBuffer;
- m_seriesBufferMap.insert(i.key(), vbo);
- vbo->create();
- }
- vbo->bind();
- if (data->dirty) {
- vbo->allocate(data->array.constData(), data->array.count() * sizeof(GLfloat));
- data->dirty = false;
- }
+ if (data->visible) {
+ m_program->setUniformValue(m_colorUniformLoc, data->color);
+ m_program->setUniformValue(m_minUniformLoc, data->min);
+ m_program->setUniformValue(m_deltaUniformLoc, data->delta);
+ m_program->setUniformValue(m_matrixUniformLoc, data->matrix);
+
+ if (!vbo) {
+ vbo = new QOpenGLBuffer;
+ m_seriesBufferMap.insert(i.key(), vbo);
+ vbo->create();
+ }
+ vbo->bind();
+ if (data->dirty) {
+ vbo->allocate(data->array.constData(), data->array.count() * sizeof(GLfloat));
+ data->dirty = false;
+ }
- glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
- if (data->type == QAbstractSeries::SeriesTypeLine) {
- glLineWidth(data->width);
- glDrawArrays(GL_LINE_STRIP, 0, data->array.size() / 2);
- } else { // Scatter
- m_program->setUniformValue(m_pointSizeUniformLoc, data->width);
- glDrawArrays(GL_POINTS, 0, data->array.size() / 2);
+ glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
+ if (data->type == QAbstractSeries::SeriesTypeLine) {
+ glLineWidth(data->width);
+ glDrawArrays(GL_LINE_STRIP, 0, data->array.size() / 2);
+ } else { // Scatter
+ m_program->setUniformValue(m_pointSizeUniformLoc, data->width);
+ glDrawArrays(GL_POINTS, 0, data->array.size() / 2);
+ }
+ vbo->release();
}
- vbo->release();
}
#ifdef QDEBUG_TRACE_GL_FPS