From 947077f32932caf3d19558662693ae18ba5c63ea Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Sun, 17 Jul 2022 14:24:18 +0100 Subject: [PATCH] backend: add custom shader image property Signed-off-by: Yuxuan Shui --- src/backend/backend.c | 4 ++++ src/backend/backend.h | 3 +++ src/backend/backend_common.c | 1 + 3 files changed, 8 insertions(+) diff --git a/src/backend/backend.c b/src/backend/backend.c index 293a86b..a1fb282 100644 --- a/src/backend/backend.c +++ b/src/backend/backend.c @@ -383,6 +383,10 @@ void paint_all_new(session_t *ps, struct managed_win *t, bool ignore_damage) { ps->backend_data, IMAGE_PROPERTY_BORDER_WIDTH, w->win_image, &border_width); } + + ps->backend_data->ops->set_image_property( + ps->backend_data, IMAGE_PROPERTY_CUSTOM_SHADER, w->win_image, + w->fg_shader ? (void *)w->fg_shader->backend_shader : NULL); } if (w->opacity * MAX_ALPHA < 1) { diff --git a/src/backend/backend.h b/src/backend/backend.h index 62d0f87..ff60ae1 100644 --- a/src/backend/backend.h +++ b/src/backend/backend.h @@ -70,6 +70,9 @@ enum image_properties { // Border width // 1 int, default: 0 IMAGE_PROPERTY_BORDER_WIDTH, + // Custom shader for this window. + // 1 pointer to shader struct, default: NULL + IMAGE_PROPERTY_CUSTOM_SHADER, }; enum image_operations { diff --git a/src/backend/backend_common.c b/src/backend/backend_common.c index 5bd75e2..165a9dd 100644 --- a/src/backend/backend_common.c +++ b/src/backend/backend_common.c @@ -452,6 +452,7 @@ bool default_set_image_property(backend_t *base attr_unused, enum image_properti case IMAGE_PROPERTY_CORNER_RADIUS: tex->corner_radius = dargs[0]; break; case IMAGE_PROPERTY_MAX_BRIGHTNESS: tex->max_brightness = dargs[0]; break; case IMAGE_PROPERTY_BORDER_WIDTH: tex->border_width = *(int *)arg; break; + case IMAGE_PROPERTY_CUSTOM_SHADER: break; } return true;