demo: Fix a bug without GL
authorMatthias Clasen <mclasen@redhat.com>
Fri, 25 Aug 2023 12:37:22 +0000 (08:37 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 19 Sep 2023 19:15:53 +0000 (15:15 -0400)
The gears widget was just not unrealizing properly
when GL is not available. Fix that.

Fixes: #6059
demos/gtk-demo/gtkgears.c

index 0c0ea3398a79a808765335c6ad3b5f89220b60b4..f02b1321f9acc1242fd9b868af410f792e730874 100644 (file)
@@ -840,24 +840,24 @@ gtk_gears_unrealize (GtkWidget *widget)
   GtkGearsPrivate *priv = gtk_gears_get_instance_private ((GtkGears *) widget);
 
   gtk_gl_area_make_current (glarea);
-  if (gtk_gl_area_get_error (glarea) != NULL)
-    return;
-
-  /* Release the resources associated with OpenGL */
-  if (priv->gear_vbo[0] != 0)
-    glDeleteBuffers (1, &(priv->gear_vbo[0]));
+  if (gtk_gl_area_get_error (glarea) == NULL)
+    {
+      /* Release the resources associated with OpenGL */
+      if (priv->gear_vbo[0] != 0)
+        glDeleteBuffers (1, &(priv->gear_vbo[0]));
 
-  if (priv->gear_vbo[1] != 0)
-    glDeleteBuffers (1, &(priv->gear_vbo[1]));
+      if (priv->gear_vbo[1] != 0)
+        glDeleteBuffers (1, &(priv->gear_vbo[1]));
 
-  if (priv->gear_vbo[2] != 0)
-    glDeleteBuffers (1, &(priv->gear_vbo[2]));
+      if (priv->gear_vbo[2] != 0)
+        glDeleteBuffers (1, &(priv->gear_vbo[2]));
 
-  if (priv->vao != 0)
-    glDeleteVertexArrays (1, &priv->vao);
+      if (priv->vao != 0)
+        glDeleteVertexArrays (1, &priv->vao);
 
-  if (priv->program != 0)
-    glDeleteProgram (priv->program);
+      if (priv->program != 0)
+        glDeleteProgram (priv->program);
+    }
 
   priv->ModelViewProjectionMatrix_location = 0;
   priv->NormalMatrix_location = 0;