backend: add custom shader image property

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
Yuxuan Shui
2022-07-17 14:24:18 +01:00
parent f5b40ba10e
commit 947077f329
3 changed files with 8 additions and 0 deletions

View File

@@ -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) {

View File

@@ -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 {

View File

@@ -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;