diff options
-rw-r--r-- | backend/backend.c | 7 | ||||
-rw-r--r-- | backend/meson.build | 1 | ||||
-rw-r--r-- | backend/x11/backend.c | 30 | ||||
-rw-r--r-- | include/backend/x11.h | 8 | ||||
-rw-r--r-- | include/wlr/backend/x11.h | 11 |
5 files changed, 54 insertions, 3 deletions
diff --git a/backend/backend.c b/backend/backend.c index 88b9dfbc..21f342ad 100644 --- a/backend/backend.c +++ b/backend/backend.c @@ -10,6 +10,7 @@ #include <wlr/backend/drm.h> #include <wlr/backend/libinput.h> #include <wlr/backend/wayland.h> +#include <wlr/backend/x11.h> #include <wlr/backend/multi.h> #include <wlr/util/log.h> @@ -77,9 +78,9 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display) { } } - if (getenv("DISPLAY")) { - wlr_log(L_ERROR, "X11 backend is not implemented"); // TODO - return NULL; + const char *x11_display = getenv("DISPLAY"); + if (x11_display) { + return wlr_x11_backend_create(x11_display); } // Attempt DRM+libinput diff --git a/backend/meson.build b/backend/meson.build index a3cb7b64..9e3b6fed 100644 --- a/backend/meson.build +++ b/backend/meson.build @@ -22,6 +22,7 @@ backend_files = files( 'wayland/registry.c', 'wayland/wl_seat.c', 'wayland/os-compatibility.c', + 'x11/backend.c', ) if systemd.found() diff --git a/backend/x11/backend.c b/backend/x11/backend.c new file mode 100644 index 00000000..be022a7a --- /dev/null +++ b/backend/x11/backend.c @@ -0,0 +1,30 @@ +#include <stdbool.h> +#include <wlr/backend/interface.h> +#include <wlr/backend/x11.h> +#include <wlr/egl.h> +#include "backend/x11.h" + +struct wlr_backend *wlr_x11_backend_create(const char *display) { + return NULL; +} + +static bool wlr_x11_backend_start(struct wlr_backend *backend) { + return false; +} + +static void wlr_x11_backend_destroy(struct wlr_backend *backend) { +} + +struct wlr_egl *wlr_x11_backend_get_egl(struct wlr_backend *backend) { + return NULL; +} + +static struct wlr_backend_impl backend_impl = { + .start = wlr_x11_backend_start, + .destroy = wlr_x11_backend_destroy, + .get_egl = wlr_x11_backend_get_egl, +}; + +bool wlr_backend_is_x11(struct wlr_backend *backend) { + return backend->impl == &backend_impl; +} diff --git a/include/backend/x11.h b/include/backend/x11.h new file mode 100644 index 00000000..2f319672 --- /dev/null +++ b/include/backend/x11.h @@ -0,0 +1,8 @@ +#ifndef WLR_X11_H +#define WLR_X11_H + +struct wlr_x11_backend { + struct wlr_backend backend; +}; + +#endif diff --git a/include/wlr/backend/x11.h b/include/wlr/backend/x11.h new file mode 100644 index 00000000..28d027c5 --- /dev/null +++ b/include/wlr/backend/x11.h @@ -0,0 +1,11 @@ +#ifndef WLR_BACKEND_X11_H +#define WLR_BACKEND_X11_H + +#include <wlr/backend.h> +#include <stdbool.h> + +struct wlr_backend *wlr_x11_backend_create(const char *display); + +bool wlr_backend_is_x11(struct wlr_backend *backend); + +#endif |