From 6939d7e10ab289abb5cbe8051ee1660fadcb34e7 Mon Sep 17 00:00:00 2001 From: Mika Salmela Date: Fri, 21 Nov 2014 14:33:28 +0200 Subject: 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 --- src/datavisualization/utils/surfaceobject.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/datavisualization') 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) -- cgit v1.2.3