Initial commit

Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-06-29 15:57:38 +03:00
commit c93ab29a90
12 changed files with 699 additions and 0 deletions

60
src/wlr/backend.cpp Normal file
View File

@@ -0,0 +1,60 @@
#include <stdlib.h>
extern "C" {
#include <wayland-server-core.h>
#include <wlr/backend/interface.h>
#include <wlr/util/log.h>
}
struct my_backend {
struct wlr_backend base;
// TODO: any backendspecific fields
};
extern "C" {
static bool backend_start(struct wlr_backend* backend)
{
(void)backend;
// TODO: start event loops, create outputs, inputs, etc.
return true;
}
static void backend_destroy(struct wlr_backend* backend)
{
(void)backend;
// TODO: destroy outputs, free everything
}
static int backend_get_drm_fd(struct wlr_backend* backend)
{
(void)backend;
// TODO: return drm FD or -1
return -1;
}
static const struct wlr_backend_impl backend_impl = {
.start = backend_start,
.destroy = backend_destroy,
.get_drm_fd = backend_get_drm_fd,
};
struct wlr_backend* wlr_my_backend_create(
struct wl_event_loop* loop, char const* name)
{
(void)loop;
(void)name;
struct my_backend* b = (struct my_backend*)calloc(1, sizeof(*b));
if (!b) {
return NULL;
}
wlr_backend_init(&b->base, &backend_impl);
// TODO: store loop/name, setup
return &b->base;
}
bool wlr_backend_is_mybackend(struct wlr_backend* backend)
{
return backend->impl == &backend_impl;
}
}