commit-timing-v1: add scene implementation

Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
This commit is contained in:
Sergio Gómez 2025-11-26 10:35:20 -05:00
parent e57244c1ba
commit 52b6316e9c
3 changed files with 94 additions and 0 deletions

View file

@ -104,12 +104,17 @@ struct wlr_scene {
struct wlr_linux_dmabuf_v1 *linux_dmabuf_v1;
struct wlr_gamma_control_manager_v1 *gamma_control_manager_v1;
struct wlr_color_manager_v1 *color_manager_v1;
struct wlr_commit_timing_manager_v1 *commit_timing_manager_v1;
struct wl_list commit_timers; // wlr_commit_timer_v1.scene_link
struct {
struct wl_listener linux_dmabuf_v1_destroy;
struct wl_listener gamma_control_manager_v1_destroy;
struct wl_listener gamma_control_manager_v1_set_gamma;
struct wl_listener color_manager_v1_destroy;
struct wl_listener commit_timing_manager_v1_destroy;
struct wl_listener commit_timing_manager_v1_new_timer;
struct wl_listener commit_timer_v1_destroy;
enum wlr_scene_debug_damage_option debug_damage_option;
bool direct_scanout;
@ -383,6 +388,12 @@ void wlr_scene_set_gamma_control_manager_v1(struct wlr_scene *scene,
*/
void wlr_scene_set_color_manager_v1(struct wlr_scene *scene, struct wlr_color_manager_v1 *manager);
/**
* Handles commit_timing_manager_v1 for all surfaces and their primary outputs in the scene.
*/
void wlr_scene_set_commit_timing_manager_v1(struct wlr_scene *scene,
struct wlr_commit_timing_manager_v1 *timing_manager);
/**
* Add a node displaying nothing but its children.
*/