aboutsummaryrefslogtreecommitdiff
path: root/include/backend
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-09-29 10:12:58 -0400
committerGitHub <noreply@github.com>2017-09-29 10:12:58 -0400
commit285a109d416c9bcdc0c47dfb1b9ce4e474cd34dd (patch)
tree76277fbcbd76b5a376d9ba49b21be614b3327b42 /include/backend
parent6479fb27be364ef6ee7c5289c18d015ec3d8c2f3 (diff)
parent1b18b0a27d285270c12e57781738c48377d5529b (diff)
Merge pull request #164 from ascent12/x11-backend
X11 backend
Diffstat (limited to 'include/backend')
-rw-r--r--include/backend/x11.h56
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