mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-22 15:12:26 +00:00
c97f0eb0f2
This improves the way the output numbers are handled for the headless backend. Instead of using the number of active outputs plus one, the last used number is stored and new outputs will increment it. This fixes the situation where you start with one output, create a second, close the first, and create a third. Without this, both outputs will be HEADLESS-2, which causes an issue since the identifier will also be identical. With this, the last output is HEADLESS-3 and the outputs can be distinguished.
42 lines
892 B
C
42 lines
892 B
C
#ifndef BACKEND_HEADLESS_H
|
|
#define BACKEND_HEADLESS_H
|
|
|
|
#include <wlr/backend/headless.h>
|
|
#include <wlr/backend/interface.h>
|
|
|
|
#define HEADLESS_DEFAULT_REFRESH (60 * 1000) // 60 Hz
|
|
|
|
struct wlr_headless_backend {
|
|
struct wlr_backend backend;
|
|
struct wlr_egl egl;
|
|
struct wlr_renderer *renderer;
|
|
struct wl_display *display;
|
|
struct wl_list outputs;
|
|
size_t last_output_num;
|
|
struct wl_list input_devices;
|
|
struct wl_listener display_destroy;
|
|
bool started;
|
|
};
|
|
|
|
struct wlr_headless_output {
|
|
struct wlr_output wlr_output;
|
|
|
|
struct wlr_headless_backend *backend;
|
|
struct wl_list link;
|
|
|
|
void *egl_surface;
|
|
struct wl_event_source *frame_timer;
|
|
int frame_delay; // ms
|
|
};
|
|
|
|
struct wlr_headless_input_device {
|
|
struct wlr_input_device wlr_input_device;
|
|
|
|
struct wlr_headless_backend *backend;
|
|
};
|
|
|
|
struct wlr_headless_backend *headless_backend_from_backend(
|
|
struct wlr_backend *wlr_backend);
|
|
|
|
#endif
|