From eb39426b08a77563fbbe8e74320a3799663b8c47 Mon Sep 17 00:00:00 2001 From: Maxim Solovyov Date: Fri, 2 Feb 2024 23:55:29 +0300 Subject: [PATCH] backend: gl: inherit image's inner properties in the gl_image_decouple function Image decouple should keep all the image properies from the source image, so shader must be copied. And there are also some internal properties what should be inherited but wasn't. In particular this prevents images from losing their shaders when alpha is applied. Fixes #1174 --- src/backend/gl/gl_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/gl/gl_common.c b/src/backend/gl/gl_common.c index 73bfea94..de1ff73a 100644 --- a/src/backend/gl/gl_common.c +++ b/src/backend/gl/gl_common.c @@ -1013,9 +1013,11 @@ static inline void gl_image_decouple(backend_t *base, struct backend_image *img) auto new_tex = ccalloc(1, struct gl_texture); new_tex->texture = gl_new_texture(GL_TEXTURE_2D); - new_tex->y_inverted = true; + new_tex->y_inverted = inner->y_inverted; + new_tex->has_alpha = inner->has_alpha; new_tex->height = inner->height; new_tex->width = inner->width; + new_tex->shader = inner->shader; new_tex->refcount = 1; new_tex->user_data = gd->decouple_texture_user_data(base, inner->user_data);