Refine OpenXR backend formatting

This commit is contained in:
2025-06-29 16:30:23 +03:00
parent 9fdb148c89
commit cc1137c011
5 changed files with 247 additions and 57 deletions

View File

@@ -1,60 +1,20 @@
#include <stdlib.h>
#include "openxr_gl.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;
return wlr_openxr_backend_create(nullptr, loop);
}
bool wlr_backend_is_mybackend(struct wlr_backend* backend)
{
return backend->impl == &backend_impl;
return wlr_backend_is_openxr(backend);
}
}