mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-14 08:22:25 -04:00
render, render/vulkan: add wlr_buffer_pass_options.luminances
Allows callers to customized the target luminances.
This commit is contained in:
parent
7b91939d9e
commit
de52bc70b9
3 changed files with 14 additions and 1 deletions
|
|
@ -407,6 +407,9 @@ struct wlr_vk_render_pass {
|
|||
bool has_primaries;
|
||||
struct wlr_color_primaries primaries;
|
||||
|
||||
bool has_luminances;
|
||||
struct wlr_color_luminances luminances;
|
||||
|
||||
struct wlr_drm_syncobj_timeline *signal_timeline;
|
||||
uint64_t signal_point;
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ struct wlr_buffer_pass_options {
|
|||
struct wlr_color_transform *color_transform;
|
||||
/** Primaries describing the color volume of the destination buffer */
|
||||
const struct wlr_color_primaries *primaries;
|
||||
/** Luminances for the destination buffer */
|
||||
const struct wlr_color_luminances *luminances;
|
||||
|
||||
/* Signal a timeline synchronization point when the render pass completes.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -251,7 +251,11 @@ static bool render_pass_submit(struct wlr_render_pass *wlr_pass) {
|
|||
struct wlr_color_luminances srgb_lum, dst_lum;
|
||||
wlr_color_transfer_function_get_default_luminance(
|
||||
WLR_COLOR_TRANSFER_FUNCTION_SRGB, &srgb_lum);
|
||||
wlr_color_transfer_function_get_default_luminance(tf, &dst_lum);
|
||||
if (pass->has_luminances) {
|
||||
dst_lum = pass->luminances;
|
||||
} else {
|
||||
wlr_color_transfer_function_get_default_luminance(tf, &dst_lum);
|
||||
}
|
||||
frag_pcr_data.luminance_multiplier = get_luminance_multiplier(&srgb_lum, &dst_lum);
|
||||
}
|
||||
bind_pipeline(pass, pipeline);
|
||||
|
|
@ -1221,6 +1225,10 @@ struct wlr_vk_render_pass *vulkan_begin_render_pass(struct wlr_vk_renderer *rend
|
|||
pass->has_primaries = true;
|
||||
pass->primaries = *options->primaries;
|
||||
}
|
||||
if (options != NULL && options->luminances != NULL) {
|
||||
pass->has_luminances = true;
|
||||
pass->luminances = *options->luminances;
|
||||
}
|
||||
|
||||
rect_union_init(&pass->updated_region);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue