diff --git a/src/vrend_blitter.c b/src/vrend_blitter.c index 8bfc791..86c2061 100644 --- a/src/vrend_blitter.c +++ b/src/vrend_blitter.c @@ -600,6 +600,9 @@ void vrend_renderer_blit_gl(struct vrend_context *ctx, glBindTexture(src_res->target, src_res->id); + if (vrend_format_is_emulated_alpha(info->src.format)) + glTexParameteri(src_res->target, GL_TEXTURE_SWIZZLE_R, GL_ALPHA); + glTexParameteri(src_res->target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(src_res->target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(src_res->target, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c index cc758ea..da7cbed 100644 --- a/src/vrend_renderer.c +++ b/src/vrend_renderer.c @@ -5498,7 +5498,8 @@ static void vrend_renderer_blit_int(struct vrend_context *ctx, if (info->src.box.depth != info->dst.box.depth) use_gl = true; - if (vrend_format_is_emulated_alpha(info->dst.format)) + if (vrend_format_is_emulated_alpha(info->dst.format) || + vrend_format_is_emulated_alpha(info->src.format)) use_gl = true; if (use_gl) {