From fc96479f122d3b2fdd9a5191c67ebce811ff569d Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 18 May 2016 08:21:02 +1200 Subject: VideoSoftware: Implement xfb copy filter (Deflickering/Brightness) --- Source/Core/VideoBackends/Software/TextureEncoder.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Source/Core/VideoBackends/Software/TextureEncoder.cpp') diff --git a/Source/Core/VideoBackends/Software/TextureEncoder.cpp b/Source/Core/VideoBackends/Software/TextureEncoder.cpp index 751b148e18..5308dca705 100644 --- a/Source/Core/VideoBackends/Software/TextureEncoder.cpp +++ b/Source/Core/VideoBackends/Software/TextureEncoder.cpp @@ -1473,7 +1473,11 @@ void Encode(u8* dst, const EFBCopyParams& params, u32 native_width, u32 bytes_pe { if (params.copy_format == EFBCopyFormat::XFB) { - EfbInterface::EncodeXFB(dst, native_width, src_rect, params.y_scale); + static constexpr std::array gamma_LUT = {1.0f, 1.7f, 2.2f, 1.0f}; + EfbInterface::EncodeXFB(dst, native_width, src_rect, params.y_scale, + !!bpmem.triggerEFBCopy.clamp_top, !!bpmem.triggerEFBCopy.clamp_bottom, + gamma_LUT[bpmem.triggerEFBCopy.gamma], + bpmem.copyfilter.GetCoefficients()); } else { -- cgit v1.2.3