From e7df83145792213bd14376b1027cca5a6cc8dbdc Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Thu, 25 Jun 2026 23:58:26 +0800 Subject: [PATCH] hdr color_transform test --- src/action/monitor.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/action/monitor.h b/src/action/monitor.h index 434fb159..1d0cabd3 100644 --- a/src/action/monitor.h +++ b/src/action/monitor.h @@ -1,3 +1,10 @@ +enum color_profile { + COLOR_PROFILE_DEFAULT, // default is Transform with NULL color_transform + COLOR_PROFILE_TRANSFORM, // use color_transform from output_config + COLOR_PROFILE_TRANSFORM_WITH_DEVICE_PRIMARIES, // create transform from + // wlr_output +}; + bool mango_scene_output_commit(struct wlr_scene_output *scene_output, struct wlr_output_state *state) { struct wlr_output *wlr_output = scene_output->output; @@ -6,11 +13,15 @@ bool mango_scene_output_commit(struct wlr_scene_output *scene_output, bool frame_allow_tearing = check_tearing_frame_allow(m); + struct wlr_scene_output_state_options opts = { + .color_transform = COLOR_PROFILE_DEFAULT, + }; + if (!wlr_scene_output_needs_frame(scene_output)) return true; // 构建状态,将场景的 Buffer 附着到 state 上 - if (!wlr_scene_output_build_state(scene_output, state, NULL)) + if (!wlr_scene_output_build_state(scene_output, state, &opts)) return false; if (frame_allow_tearing) {