diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/backend/x11.h | 56 | ||||
-rw-r--r-- | include/wlr/backend/x11.h | 13 | ||||
-rw-r--r-- | include/wlr/egl.h | 2 |
3 files changed, 70 insertions, 1 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 diff --git a/include/wlr/backend/x11.h b/include/wlr/backend/x11.h new file mode 100644 index 00000000..3901649b --- /dev/null +++ b/include/wlr/backend/x11.h @@ -0,0 +1,13 @@ +#ifndef WLR_BACKEND_X11_H +#define WLR_BACKEND_X11_H + +#include <stdbool.h> +#include <wayland-server.h> +#include <wlr/backend.h> + +struct wlr_backend *wlr_x11_backend_create(struct wl_display *display, + const char *x11_display); + +bool wlr_backend_is_x11(struct wlr_backend *backend); + +#endif diff --git a/include/wlr/egl.h b/include/wlr/egl.h index b37317a5..25329175 100644 --- a/include/wlr/egl.h +++ b/include/wlr/egl.h @@ -30,7 +30,7 @@ struct wlr_egl { * Initializes an egl context for the given platform and remote display. * Will attempt to load all possibly required api functions. */ -bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, void *display); +bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, EGLint visual_id, void *display); /** * Frees all related egl resources, makes the context not-current and |