wlr_scene: Introduce wlr_scene_set_gamma_control_manager_v1

This commit is contained in:
Alexander Orzechowski 2024-08-14 13:18:56 -04:00
parent 23202e192c
commit 515275ee72
2 changed files with 107 additions and 1 deletions

View file

@ -42,6 +42,7 @@ struct wlr_scene_output_layout;
struct wlr_presentation;
struct wlr_linux_dmabuf_v1;
struct wlr_gamma_control_manager_v1;
struct wlr_output_state;
typedef bool (*wlr_scene_buffer_point_accepts_input_func_t)(
@ -100,10 +101,13 @@ struct wlr_scene {
// May be NULL
struct wlr_linux_dmabuf_v1 *linux_dmabuf_v1;
struct wlr_gamma_control_manager_v1 *gamma_control_manager_v1;
// private state
struct wl_listener linux_dmabuf_v1_destroy;
struct wl_listener gamma_control_manager_v1_destroy;
struct wl_listener gamma_control_manager_v1_set_gamma;
enum wlr_scene_debug_damage_option debug_damage_option;
bool direct_scanout;
@ -220,6 +224,9 @@ struct wlr_scene_output {
uint8_t index;
bool prev_scanout;
bool gamma_lut_changed;
struct wlr_gamma_control_v1 *gamma_lut;
struct wl_listener output_commit;
struct wl_listener output_damage;
struct wl_listener output_needs_frame;
@ -326,6 +333,14 @@ struct wlr_scene *wlr_scene_create(void);
void wlr_scene_set_linux_dmabuf_v1(struct wlr_scene *scene,
struct wlr_linux_dmabuf_v1 *linux_dmabuf_v1);
/**
* Handles gamma_control_v1 for all outputs in the scene.
*
* Asserts that a struct wlr_gamma_control_manager_v1 hasn't already been set
* for the scene.
*/
void wlr_scene_set_gamma_control_manager_v1(struct wlr_scene *scene,
struct wlr_gamma_control_manager_v1 *gamma_control);
/**
* Add a node displaying nothing but its children.