Loading libs/hwui/RenderProperties.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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); } } Loading libs/hwui/utils/MathUtils.h +11 −0 Original line number Original line Diff line number Diff line Loading @@ -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: Loading @@ -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); } } Loading Loading
libs/hwui/RenderProperties.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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); } } Loading
libs/hwui/utils/MathUtils.h +11 −0 Original line number Original line Diff line number Diff line Loading @@ -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: Loading @@ -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); } } Loading