mirror of https://github.com/yshui/picom.git
backend: gl: handle custom shader image property
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
c95152e83e
commit
eeabf5807e
|
@ -1994,6 +1994,18 @@ bool gl_image_op(backend_t *base, enum image_operations op, void *image_data,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool gl_set_image_property(backend_t *backend_data, enum image_properties prop,
|
||||
void *image_data, void *args) {
|
||||
if (prop != IMAGE_PROPERTY_CUSTOM_SHADER) {
|
||||
return default_set_image_property(backend_data, prop, image_data, args);
|
||||
}
|
||||
|
||||
struct backend_image *img = image_data;
|
||||
auto inner = (struct gl_texture *)img->inner;
|
||||
inner->shader = args;
|
||||
return true;
|
||||
}
|
||||
|
||||
enum device_status gl_device_status(backend_t *base) {
|
||||
auto gd = (struct gl_data *)base;
|
||||
if (!gd->has_robustness) {
|
||||
|
|
|
@ -110,6 +110,8 @@ GLuint gl_create_program(const GLuint *const shaders, int nshaders);
|
|||
GLuint gl_create_program_from_str(const char *vert_shader_str, const char *frag_shader_str);
|
||||
void *gl_create_window_shader(backend_t *backend_data, const char *source);
|
||||
void gl_destroy_window_shader(backend_t *backend_data, void *shader);
|
||||
bool gl_set_image_property(backend_t *backend_data, enum image_properties prop,
|
||||
void *image_data, void *args);
|
||||
|
||||
/**
|
||||
* @brief Render a region with texture data.
|
||||
|
|
|
@ -534,7 +534,7 @@ struct backend_operations glx_ops = {
|
|||
.release_image = gl_release_image,
|
||||
.compose = gl_compose,
|
||||
.image_op = gl_image_op,
|
||||
.set_image_property = default_set_image_property,
|
||||
.set_image_property = gl_set_image_property,
|
||||
.clone_image = default_clone_image,
|
||||
.blur = gl_blur,
|
||||
.is_image_transparent = default_is_image_transparent,
|
||||
|
|
Loading…
Reference in New Issue