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

Commit 3b52c03f authored by John Reck's avatar John Reck
Browse files

clamp & round alpha

 Bug: 16842521

Change-Id: Ifd93f40b5751746835c9d56bb3c2b5ba700bdccc
parent 65e2685d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -209,7 +209,7 @@ public:
    }
    }


    bool setAlpha(float alpha) {
    bool setAlpha(float alpha) {
        alpha = fminf(1.0f, fmaxf(0.0f, alpha));
        alpha = MathUtils::clampAlpha(alpha);
        return RP_SET(mPrimitiveFields.mAlpha, alpha);
        return RP_SET(mPrimitiveFields.mAlpha, alpha);
    }
    }


+11 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ namespace android {
namespace uirenderer {
namespace uirenderer {


#define NON_ZERO_EPSILON (0.001f)
#define NON_ZERO_EPSILON (0.001f)
#define ALPHA_EPSILON (0.001f)


class MathUtils {
class MathUtils {
public:
public:
@@ -34,6 +35,16 @@ public:
        return value >= NON_ZERO_EPSILON;
        return value >= NON_ZERO_EPSILON;
    }
    }


    inline static float clampAlpha(float alpha) {
        if (alpha <= ALPHA_EPSILON) {
            return 0;
        } else if (alpha >= (1 - ALPHA_EPSILON)) {
            return 1;
        } else {
            return alpha;
        }
    }

    inline static bool areEqual(float valueA, float valueB) {
    inline static bool areEqual(float valueA, float valueB) {
        return isZero(valueA - valueB);
        return isZero(valueA - valueB);
    }
    }