const CoglWinsysVtable * _cogl_winsys_egl_kms_get_vtable (void) { static CoglBool vtable_inited = FALSE; static CoglWinsysVtable vtable; if (!vtable_inited) { /* The EGL_KMS winsys is a subclass of the EGL winsys so we start by copying its vtable */ parent_vtable = _cogl_winsys_egl_get_vtable (); vtable = *parent_vtable; vtable.id = COGL_WINSYS_ID_EGL_KMS; vtable.name = "EGL_KMS"; vtable.renderer_connect = _cogl_winsys_renderer_connect; vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; vtable.onscreen_init = _cogl_winsys_onscreen_init; vtable.onscreen_deinit = _cogl_winsys_onscreen_deinit; /* The KMS winsys doesn't support swap region */ vtable.onscreen_swap_region = NULL; vtable.onscreen_swap_buffers = _cogl_winsys_onscreen_swap_buffers; vtable.poll_get_info = _cogl_winsys_poll_get_info; vtable.poll_dispatch = _cogl_winsys_poll_dispatch; vtable_inited = TRUE; } return &vtable; }
const CoglWinsysVtable * _cogl_winsys_egl_kms_get_vtable (void) { static gboolean vtable_inited = FALSE; static CoglWinsysVtable vtable; if (!vtable_inited) { /* The EGL_KMS winsys is a subclass of the EGL winsys so we start by copying its vtable */ vtable = *_cogl_winsys_egl_get_vtable (); vtable.id = COGL_WINSYS_ID_EGL_KMS; vtable.name = "EGL_KMS"; vtable.renderer_connect = _cogl_winsys_renderer_connect; vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; vtable.onscreen_init = _cogl_winsys_onscreen_init; vtable.onscreen_deinit = _cogl_winsys_onscreen_deinit; vtable.onscreen_bind = _cogl_winsys_onscreen_bind; /* The KMS winsys doesn't support swap region */ vtable.onscreen_swap_region = NULL; vtable.onscreen_swap_buffers = _cogl_winsys_onscreen_swap_buffers; vtable.onscreen_update_swap_throttled = _cogl_winsys_onscreen_update_swap_throttled; vtable_inited = TRUE; } return &vtable; }
const CoglWinsysVtable * _cogl_winsys_egl_wayland_get_vtable (void) { static CoglBool vtable_inited = FALSE; static CoglWinsysVtable vtable; if (!vtable_inited) { /* The EGL_WAYLAND winsys is a subclass of the EGL winsys so we start by copying its vtable */ parent_vtable = _cogl_winsys_egl_get_vtable (); vtable = *parent_vtable; vtable.id = COGL_WINSYS_ID_EGL_WAYLAND; vtable.name = "EGL_WAYLAND"; vtable.renderer_connect = _cogl_winsys_renderer_connect; vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; vtable.onscreen_swap_buffers_with_damage = _cogl_winsys_onscreen_swap_buffers_with_damage; vtable.onscreen_set_visibility = _cogl_winsys_onscreen_set_visibility; vtable_inited = TRUE; } return &vtable; }
const CoglWinsysVtable * _cogl_winsys_egl_xlib_get_vtable (void) { static CoglBool vtable_inited = FALSE; static CoglWinsysVtable vtable; if (!vtable_inited) { /* The EGL_X11 winsys is a subclass of the EGL winsys so we start by copying its vtable */ vtable = *_cogl_winsys_egl_get_vtable (); vtable.id = COGL_WINSYS_ID_EGL_XLIB; vtable.name = "EGL_XLIB"; vtable.constraints |= (COGL_RENDERER_CONSTRAINT_USES_X11 | COGL_RENDERER_CONSTRAINT_USES_XLIB); vtable.renderer_connect = _cogl_winsys_renderer_connect; vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; vtable.onscreen_set_visibility = _cogl_winsys_onscreen_set_visibility; vtable.onscreen_set_resizable = _cogl_winsys_onscreen_set_resizable; vtable.onscreen_x11_get_window_xid = _cogl_winsys_onscreen_x11_get_window_xid; vtable.xlib_get_visual_info = _cogl_winsys_xlib_get_visual_info; #ifdef EGL_KHR_image_pixmap /* X11 tfp support... */ /* XXX: instead of having a rather monolithic winsys vtable we could * perhaps look for a way to separate these... */ vtable.texture_pixmap_x11_create = _cogl_winsys_texture_pixmap_x11_create; vtable.texture_pixmap_x11_free = _cogl_winsys_texture_pixmap_x11_free; vtable.texture_pixmap_x11_update = _cogl_winsys_texture_pixmap_x11_update; vtable.texture_pixmap_x11_damage_notify = _cogl_winsys_texture_pixmap_x11_damage_notify; vtable.texture_pixmap_x11_get_texture = _cogl_winsys_texture_pixmap_x11_get_texture; #endif /* EGL_KHR_image_pixmap) */ vtable_inited = TRUE; } return &vtable; }
const CoglWinsysVtable * _cogl_winsys_egl_gdl_get_vtable (void) { static CoglBool vtable_inited = FALSE; static CoglWinsysVtable vtable; if (!vtable_inited) { /* The EGL_GDL winsys is a subclass of the EGL winsys so we start by copying its vtable */ vtable = *_cogl_winsys_egl_get_vtable (); vtable.id = COGL_WINSYS_ID_EGL_GDL; vtable.name = "EGL_GDL"; vtable.renderer_connect = _cogl_winsys_renderer_connect; vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; vtable_inited = TRUE; } return &vtable; }