From 0256de00029e8f17da0514e14460fb9ff2283433 Mon Sep 17 00:00:00 2001 From: emersion Date: Sun, 17 Dec 2017 18:02:55 +0100 Subject: Add full refresh rate support to custom modes --- include/backend/headless.h | 2 ++ include/wlr/backend/headless.h | 1 + include/wlr/interfaces/wlr_output.h | 6 ++++-- include/wlr/types/wlr_output.h | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/backend/headless.h b/include/backend/headless.h index e4cc85e4..6aaf5f76 100644 --- a/include/backend/headless.h +++ b/include/backend/headless.h @@ -11,6 +11,7 @@ struct wlr_headless_backend { struct wl_display *display; struct wl_list outputs; struct wl_listener display_destroy; + bool started; }; struct wlr_headless_backend_output { @@ -21,6 +22,7 @@ struct wlr_headless_backend_output { void *egl_surface; struct wl_event_source *frame_timer; + int frame_delay; // ms }; #endif diff --git a/include/wlr/backend/headless.h b/include/wlr/backend/headless.h index 475c2f6c..245a65dc 100644 --- a/include/wlr/backend/headless.h +++ b/include/wlr/backend/headless.h @@ -9,5 +9,6 @@ struct wlr_output *wlr_headless_add_output(struct wlr_backend *backend, unsigned int width, unsigned int height); struct wlr_input_device *wlr_headless_add_input(struct wlr_backend *backend, enum wlr_input_device_type type); +bool wlr_backend_is_headless(struct wlr_backend *backend); #endif diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h index 1cfe7568..6d71f9b6 100644 --- a/include/wlr/interfaces/wlr_output.h +++ b/include/wlr/interfaces/wlr_output.h @@ -28,8 +28,10 @@ struct wlr_output_impl { void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend, const struct wlr_output_impl *impl); void wlr_output_free(struct wlr_output *output); -void wlr_output_update_size(struct wlr_output *output, int32_t width, - int32_t height); +void wlr_output_update_mode(struct wlr_output *output, + struct wlr_output_mode *mode); +void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width, + int32_t height, int32_t refresh); struct wl_global *wlr_output_create_global(struct wlr_output *wlr_output, struct wl_display *display); void wlr_output_destroy_global(struct wlr_output *wlr_output); diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index 037fa515..a974a154 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -47,6 +47,7 @@ struct wlr_output { char serial[16]; float scale; int32_t width, height; + int32_t refresh; // mHz int32_t phys_width, phys_height; // mm enum wl_output_subpixel subpixel; enum wl_output_transform transform; -- cgit v1.2.3