diff options
author | Mika Salmela <mika.salmela@theqtcompany.com> | 2014-11-21 14:33:28 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@theqtcompany.com> | 2014-11-21 14:36:44 +0200 |
commit | 6939d7e10ab289abb5cbe8051ee1660fadcb34e7 (patch) | |
tree | bcf5ca4fd4a4db9ca150042017d8f2710596ba74 | |
parent | cf47756e17fe0a0ecffbe167cd66272668e2f3f2 (diff) |
Fix crash when adding a texture on QML
When texture was attached on the qmlsurface example, the smoothUVs was
called before the actual model mesh was created.
Change-Id: I5a62b06291232df54ce08d586d8794b332a4eece
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
-rw-r--r-- | src/datavisualization/utils/surfaceobject.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/datavisualization/utils/surfaceobject.cpp b/src/datavisualization/utils/surfaceobject.cpp index 6f9ace19..b3aa7126 100644 --- a/src/datavisualization/utils/surfaceobject.cpp +++ b/src/datavisualization/utils/surfaceobject.cpp @@ -325,12 +325,14 @@ void SurfaceObject::smoothUVs(const QSurfaceDataArray &dataArray, } } - glBindBuffer(GL_ARRAY_BUFFER, m_uvTextureBuffer); - glBufferData(GL_ARRAY_BUFFER, uvs.size() * sizeof(QVector2D), - &uvs.at(0), GL_STATIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); + if (uvs.size() > 0) { + glBindBuffer(GL_ARRAY_BUFFER, m_uvTextureBuffer); + glBufferData(GL_ARRAY_BUFFER, uvs.size() * sizeof(QVector2D), + &uvs.at(0), GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); - m_returnTextureBuffer = true; + m_returnTextureBuffer = true; + } } void SurfaceObject::updateSmoothRow(const QSurfaceDataArray &dataArray, int rowIndex, bool polar) |