diff options
Diffstat (limited to 'include/backend/x11.h')
-rw-r--r-- | include/backend/x11.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/backend/x11.h b/include/backend/x11.h new file mode 100644 index 00000000..b4284b63 --- /dev/null +++ b/include/backend/x11.h @@ -0,0 +1,56 @@ +#ifndef WLR_X11_H +#define WLR_X11_H + +#include <stdbool.h> +#include <xcb/xcb.h> +#include <X11/Xlib-xcb.h> +#include <wayland-server.h> +#include <wlr/egl.h> +#include <wlr/types/wlr_output.h> +#include <wlr/types/wlr_input_device.h> + +struct wlr_x11_backend; + +struct wlr_x11_output { + struct wlr_output wlr_output; + struct wlr_x11_backend *x11; + + xcb_window_t win; + EGLSurface surf; +}; + +struct wlr_x11_atom { + xcb_intern_atom_cookie_t cookie; + xcb_intern_atom_reply_t *reply; +}; + +struct wlr_x11_backend { + struct wlr_backend backend; + struct wl_display *wl_display; + + Display *xlib_conn; + xcb_connection_t *xcb_conn; + xcb_screen_t *screen; + + struct wlr_x11_output output; + + struct wlr_keyboard keyboard; + struct wlr_input_device keyboard_dev; + + struct wlr_pointer pointer; + struct wlr_input_device pointer_dev; + + struct wlr_egl egl; + struct wl_event_source *event_source; + struct wl_event_source *frame_timer; + + struct { + struct wlr_x11_atom wm_protocols; + struct wlr_x11_atom wm_delete_window; + } atoms; + + // The time we last received an event + xcb_timestamp_t time; +}; + +#endif |