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;
|
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) {
|
enum device_status gl_device_status(backend_t *base) {
|
||||||
auto gd = (struct gl_data *)base;
|
auto gd = (struct gl_data *)base;
|
||||||
if (!gd->has_robustness) {
|
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);
|
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_create_window_shader(backend_t *backend_data, const char *source);
|
||||||
void gl_destroy_window_shader(backend_t *backend_data, void *shader);
|
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.
|
* @brief Render a region with texture data.
|
||||||
|
|
|
@ -534,7 +534,7 @@ struct backend_operations glx_ops = {
|
||||||
.release_image = gl_release_image,
|
.release_image = gl_release_image,
|
||||||
.compose = gl_compose,
|
.compose = gl_compose,
|
||||||
.image_op = gl_image_op,
|
.image_op = gl_image_op,
|
||||||
.set_image_property = default_set_image_property,
|
.set_image_property = gl_set_image_property,
|
||||||
.clone_image = default_clone_image,
|
.clone_image = default_clone_image,
|
||||||
.blur = gl_blur,
|
.blur = gl_blur,
|
||||||
.is_image_transparent = default_is_image_transparent,
|
.is_image_transparent = default_is_image_transparent,
|
||||||
|
|
Loading…
Reference in New Issue