From 47abe18e2c93e9dc2d09fe639c8e818aeb90287e Mon Sep 17 00:00:00 2001 From: Devin Bayer Date: Mon, 3 Aug 2020 11:23:42 +0200 Subject: [PATCH] color mgmt: bug fixes --- sway/config/output.c | 5 ++--- sway/desktop/render.c | 5 +++++ sway/ipc-json.c | 5 ++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/sway/config/output.c b/sway/config/output.c index 2c083cb87..ccf423a1a 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -483,9 +483,8 @@ bool apply_output_config(struct output_config *oc, struct sway_output *output) { } if(oc) { - struct wlr_renderer *renderer = wlr_backend_get_renderer(wlr_output->backend); - wlr_color_config_free(renderer->color); - renderer->color = wlr_color_config_copy(oc->color); + wlr_color_config_free(wlr_output->color); + wlr_output->color = wlr_color_config_copy(oc->color); } // Reconfigure all devices, since input config may have been applied before diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 92903fc6c..3354f20df 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -286,6 +286,10 @@ static void render_view_popups(struct sway_view *view, .damage = damage, .alpha = alpha, }; + + // override color config for surface + view->surface->color = view->color; + output_view_for_each_popup(output, view, render_popup_iterator, &data); } @@ -1012,6 +1016,7 @@ void output_render(struct sway_output *output, struct timespec *when, } wlr_renderer_begin(renderer, wlr_output->width, wlr_output->height); + wlr_renderer_color_config(renderer, wlr_output->color); if (!pixman_region32_not_empty(damage)) { // Output isn't damaged but needs buffer swap diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 4daaaa472..412757c5a 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c @@ -309,9 +309,8 @@ static void ipc_json_describe_output(struct sway_output *output, json_object_object_add(object, "max_render_time", json_object_new_int(output->max_render_time)); - struct wlr_renderer *renderer = wlr_backend_get_renderer(wlr_output->backend); - if(renderer->color) { - json_object_object_add(object, "icc_profile", json_object_new_string(renderer->color->icc_profile_path)); + if(wlr_output->color) { + json_object_object_add(object, "icc_profile", json_object_new_string(wlr_output->color->icc_profile_path)); } }