QQuickCustomParticle: Check for current OpenGL Context before use
authorAndy Nichols <andy.nichols@digia.com>
Tue, 14 Oct 2014 13:31:05 +0000 (15:31 +0200)
committerAndy Nichols <andy.nichols@digia.com>
Tue, 21 Oct 2014 10:11:30 +0000 (12:11 +0200)
QQuickCustomParticle::buildCustomNodes() assumes there is a valid OpenGL
context, but when there is not it will simply crash.  Instead we check
for a valid current OpenGL context first, and return 0 if it is not
availalbe.  This needed for the Qt Quick 2d Renderer.

Change-Id: I6bfcfc8fa9581bfd27015f719fc527c36492eade
Reviewed-by: aavit <eirik.aavitsland@digia.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
src/particles/qquickcustomparticle.cpp

index e03acd6..2ab2417 100644 (file)
@@ -303,6 +303,9 @@ QQuickShaderEffectNode *QQuickCustomParticle::prepareNextFrame(QQuickShaderEffec
 
 QQuickShaderEffectNode* QQuickCustomParticle::buildCustomNodes()
 {
+    if (!QOpenGLContext::currentContext())
+        return 0;
+
     if (QOpenGLContext::currentContext()->isOpenGLES() && m_count * 4 > 0xffff) {
         printf("CustomParticle: Too many particles... \n");
         return 0;