Documentation for <wlr/backend.h>

Back to index

Table of contents

struct wlr_backend

struct wlr_backend {
	const struct wlr_backend_impl *impl;
	struct {
		/** Raised when destroyed */
		struct wl_signal destroy;
		/** Raised when new inputs are added, passed the struct wlr_input_device */
		struct wl_signal new_input;
		/** Raised when new outputs are added, passed the struct wlr_output */
		struct wl_signal new_output;
	} events;

A backend provides a set of input and output devices.


struct wlr_backend *wlr_backend_autocreate(​struct wl_event_loop *loop, struct wlr_session **session_ptr);

Automatically initializes the most suitable backend given the environment. Will always return a multi-backend. The backend is created but not started. Returns NULL on failure.

If session_ptr is not NULL, it's populated with the session which has been created with the backend, if any.

The multi-backend will be destroyed if one of the primary underlying backends is destroyed (e.g. if the primary DRM device is unplugged).


void wlr_backend_destroy(​struct wlr_backend *backend);

Destroy the backend and clean up all of its resources. Normally called automatically when the struct wl_display is destroyed.


int wlr_backend_get_drm_fd(​struct wlr_backend *backend);

Returns the DRM node file descriptor used by the backend's underlying platform. Can be used by consumers for additional rendering operations. The consumer must not close the file descriptor since the backend continues to have ownership of it.


bool wlr_backend_start(​struct wlr_backend *backend);