}
}
+static void
+fini_xkb(struct display *display)
+{
+ xkb_free_keymap(display->xkb);
+}
+
static int
init_egl(struct display *d)
{
return 0;
}
+static void
+fini_egl(struct display *display)
+{
+#ifdef HAVE_CAIRO_EGL
+ cairo_device_destroy(display->argb_device);
+ cairo_device_destroy(display->rgb_device);
+#endif
+
+ eglMakeCurrent(display->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
+ EGL_NO_CONTEXT);
+
+ eglTerminate(display->dpy);
+ eglReleaseThread();
+}
+
static int
event_mask_update(uint32_t mask, void *data)
{
}
void
+display_destroy(struct display *display)
+{
+ fini_xkb(display);
+ fini_egl(display);
+
+ wl_display_flush(display->display);
+ wl_display_destroy(display->display);
+ free(display);
+}
+
+void
display_set_user_data(struct display *display, void *data)
{
display->user_data = data;
display_create(int *argc, char **argv[], const GOptionEntry *option_entries);
void
+display_destroy(struct display *display);
+
+void
display_set_user_data(struct display *display, void *data);
void *