From 8cf28ceafd4fe5dc2cd97113a12e10d2a7da1801 Mon Sep 17 00:00:00 2001 From: jpark37 Date: Fri, 21 May 2021 23:00:02 -0700 Subject: [PATCH] libobs: Straight alpha blend for filtered inputs This is necessary if the source contains overlapping draws. --- libobs/obs-source.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 5ab10067e..508c57d8b 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -3739,8 +3739,9 @@ bool obs_source_process_filter_begin(obs_source_t *filter, if (gs_texrender_begin(filter->filter_texrender, cx, cy)) { gs_blend_state_push(); - gs_blend_function_separate(GS_BLEND_SRCALPHA, GS_BLEND_ZERO, - GS_BLEND_ONE, GS_BLEND_ZERO); + gs_blend_function_separate(GS_BLEND_SRCALPHA, + GS_BLEND_INVSRCALPHA, GS_BLEND_ONE, + GS_BLEND_INVSRCALPHA); bool custom_draw = (parent_flags & OBS_SOURCE_CUSTOM_DRAW) != 0; bool async = (parent_flags & OBS_SOURCE_ASYNC) != 0;