Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c06ebe4 authored by Alan Viverette's avatar Alan Viverette Committed by Dan Stoza
Browse files

Adjust display inversion matrix to account for luminance

Bug: 20346301
Change-Id: I10633705f2bfddbdeec063f9489a4f8679b9e8ee
(cherry picked from commit 64375180)
parent 815d9bb1
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -41,11 +41,17 @@ class DisplayAdjustmentUtils {
             0,      0,      0, 1
    };

    /** Matrix and offset used for value-only display inversion. */
    /**
     * Matrix and offset used for luminance inversion. Represents a transform
     * from RGB to YIQ color space, rotation around the Y axis by 180 degrees,
     * transform back to RGB color space, and subtraction from 1. The last row
     * represents a non-multiplied addition, see surfaceflinger's ProgramCache
     * for full implementation details.
     */
    private static final float[] INVERSION_MATRIX_VALUE_ONLY = new float[] {
           0, -.5f, -.5f, 0,
        -.5f,    0, -.5f, 0,
        -.5f, -.5f,    0, 0,
        0.402f, -0.598f, -0.599f, 0,
       -1.174f, -0.174f, -1.175f, 0,
       -0.228f, -0.228f,  0.772f, 0,
             1,       1,       1, 1
    };