g_clear_object (&self->command_queue);
}
- if (self->autorelease_framebuffers->len > 0)
+ if (self->autorelease_framebuffers != NULL &&
+ self->autorelease_framebuffers->len > 0)
{
glDeleteFramebuffers (self->autorelease_framebuffers->len,
(GLuint *)(gpointer)self->autorelease_framebuffers->data);
}
priv->is_realized = TRUE;
+
+ g_object_notify (G_OBJECT (renderer), "realized");
+ if (surface)
+ g_object_notify (G_OBJECT (renderer), "surface");
+
return TRUE;
}
gsk_renderer_unrealize (GskRenderer *renderer)
{
GskRendererPrivate *priv = gsk_renderer_get_instance_private (renderer);
+ gboolean has_surface;
g_return_if_fail (GSK_IS_RENDERER (renderer));
if (!priv->is_realized)
return;
+ has_surface = priv->surface != NULL;
+
GSK_RENDERER_GET_CLASS (renderer)->unrealize (renderer);
+ g_clear_object (&priv->surface);
g_clear_pointer (&priv->prev_node, gsk_render_node_unref);
priv->is_realized = FALSE;
+
+ g_object_notify (G_OBJECT (renderer), "realized");
+ if (has_surface)
+ g_object_notify (G_OBJECT (renderer), "surface");
}
/**