فهرست منبع

libobs: Fix SDR async video on non-SDR targets

Bug was seen when projecting SDR video capture on WCG displays.
jpark37 2 سال پیش
والد
کامیت
792f8473ee
1فایلهای تغییر یافته به همراه2 افزوده شده و 1 حذف شده
  1. 2 1
      libobs/obs-source.c

+ 2 - 1
libobs/obs-source.c

@@ -2478,6 +2478,8 @@ static inline void obs_source_render_async_video(obs_source_t *source)
 		bool nonlinear_alpha = false;
 		switch (source_space) {
 		case GS_CS_SRGB:
+			linear_srgb = linear_srgb ||
+				      (current_space != GS_CS_SRGB);
 			nonlinear_alpha = linear_srgb &&
 					  !source->async_linear_alpha;
 			switch (current_space) {
@@ -2492,7 +2494,6 @@ static inline void obs_source_render_async_video(obs_source_t *source)
 					nonlinear_alpha
 						? "DrawNonlinearAlphaMultiply"
 						: "DrawMultiply";
-				linear_srgb = true;
 				multiplier =
 					obs_get_video_sdr_white_level() / 80.0f;
 			}