From c6df5fd69a6417a2a668733bf4af9a799865f8c6 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 26 Dec 2021 14:53:15 +0200 Subject: [PATCH] genesys: Enable gamma setting when contrast or brightness is adjusted Brightness and contrast adjustments are handled via gamma tables and thus gamma functionality is required for these settings to have any effect. Previously if the device has a sensor with identity gamma (gamma = {1, 1, 1}), then gamma tables were turned off, consequently brightness and contrast settings had no effect. The underlying issue was identified by Gunnar Hjalmarsson and STK. --- backend/genesys/low.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/genesys/low.cpp b/backend/genesys/low.cpp index ddd2c88f6..5e3b4c491 100644 --- a/backend/genesys/low.cpp +++ b/backend/genesys/low.cpp @@ -638,11 +638,16 @@ bool should_enable_gamma(const ScanSession& session, const Genesys_Sensor& senso if ((session.params.flags & ScanFlag::DISABLE_GAMMA) != ScanFlag::NONE) { return false; } + if (session.params.depth == 16) { + return false; + } + if (session.params.brightness_adjustment != 0 || session.params.contrast_adjustment != 0) { + return true; + } + if (sensor.gamma[0] == 1.0f || sensor.gamma[1] == 1.0f || sensor.gamma[2] == 1.0f) { return false; } - if (session.params.depth == 16) - return false; return true; }