summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software/TextureEncoder.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2016-05-18 08:21:02 +1200
committerStenzek <stenzek@gmail.com>2018-04-29 17:56:51 +1000
commitfc96479f122d3b2fdd9a5191c67ebce811ff569d (patch)
treeeff66e79fb109110349a0aea3e571e9584c30d73 /Source/Core/VideoBackends/Software/TextureEncoder.cpp
parent0cd46f4d21ff86fddd7d9a67a2921ac0299209b3 (diff)
VideoSoftware: Implement xfb copy filter (Deflickering/Brightness)
Diffstat (limited to 'Source/Core/VideoBackends/Software/TextureEncoder.cpp')
-rw-r--r--Source/Core/VideoBackends/Software/TextureEncoder.cpp6
1 files changed, 5 insertions, 1 deletions
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<float, 4> 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
{