mac-syphon: Use DrawOpaque as necessary

Treat "Allow Transparency" to mean alpha should be 1.0. Skipping alpha
writes can cause alpha to stay 0.0, which is not desired.
This commit is contained in:
jpark37 2021-06-15 00:39:55 -07:00 committed by Jim
parent b70161bc67
commit 49cfd2426f

View File

@ -1039,17 +1039,12 @@ static void syphon_video_render(void *data, gs_effect_t *effect)
if (!s->tex)
return;
bool disable_blending = !s->allow_transparency;
if (disable_blending) {
gs_enable_blending(false);
gs_enable_color(true, true, true, false);
}
gs_vertexbuffer_flush(s->vertbuffer);
gs_load_vertexbuffer(s->vertbuffer);
gs_load_indexbuffer(NULL);
gs_load_samplerstate(s->sampler, 0);
gs_technique_t *tech = gs_effect_get_technique(s->effect, "Draw");
const char *tech_name = s->allow_transparency ? "Draw" : "DrawOpaque";
gs_technique_t *tech = gs_effect_get_technique(s->effect, tech_name);
gs_effect_set_texture(gs_effect_get_param_by_name(s->effect, "image"),
s->tex);
gs_technique_begin(tech);
@ -1059,11 +1054,6 @@ static void syphon_video_render(void *data, gs_effect_t *effect)
gs_technique_end_pass(tech);
gs_technique_end(tech);
if (disable_blending) {
gs_enable_color(true, true, true, true);
gs_enable_blending(true);
}
}
static uint32_t syphon_get_width(void *data)