destroy_sprites(d);
- ec->renderer->destroy(ec);
-
weston_compositor_shutdown(ec);
if (d->gbm)
udev_input_destroy(&compositor->input);
- compositor->base.renderer->destroy(&compositor->base);
-
/* Destroy the output. */
weston_compositor_shutdown(&compositor->base);
{
struct headless_compositor *c = (struct headless_compositor *) ec;
- ec->renderer->destroy(ec);
-
weston_seat_release(&c->fake_seat);
weston_compositor_shutdown(ec);
static void
rdp_destroy(struct weston_compositor *ec)
{
- ec->renderer->destroy(ec);
weston_compositor_shutdown(ec);
free(ec);
udev_input_destroy(&compositor->input);
- compositor->base.renderer->destroy(&compositor->base);
-
/* destroys outputs, too */
weston_compositor_shutdown(&compositor->base);
{
struct wayland_compositor *c = (struct wayland_compositor *) ec;
- ec->renderer->destroy(ec);
-
weston_compositor_shutdown(ec);
if (c->parent.shm)
wl_event_source_remove(compositor->xcb_source);
x11_input_destroy(compositor);
- ec->renderer->destroy(ec);
-
weston_compositor_shutdown(ec); /* destroys outputs, too */
XCloseDisplay(compositor->dpy);
wl_list_for_each_safe(output, next, &ec->output_list, link)
output->destroy(output);
+ if (ec->renderer)
+ ec->renderer->destroy(ec);
+
weston_binding_list_destroy_all(&ec->key_binding_list);
weston_binding_list_destroy_all(&ec->button_binding_list);
weston_binding_list_destroy_all(&ec->touch_binding_list);