Merge "Sanitize display list properties" into jb-dev
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 93b065d..0ba4078 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -170,9 +170,10 @@
     }
 
     void setAlpha(float alpha) {
+        alpha = fminf(1.0f, fmaxf(0.0f, alpha));
         if (alpha != mAlpha) {
             mAlpha = alpha;
-            mMultipliedAlpha = (int)(255 * alpha);
+            mMultipliedAlpha = (int) (255 * alpha);
         }
     }
 
@@ -184,7 +185,7 @@
         if (translationX != mTranslationX) {
             mTranslationX = translationX;
             mMatrixDirty = true;
-            if (ALMOST_EQUAL(mTranslationX, 0) && ALMOST_EQUAL(mTranslationY, 0)) {
+            if (mTranslationX == 0.0f && mTranslationY == 0.0f) {
                 mMatrixFlags &= ~TRANSLATION;
             } else {
                 mMatrixFlags |= TRANSLATION;
@@ -196,7 +197,7 @@
         if (translationY != mTranslationY) {
             mTranslationY = translationY;
             mMatrixDirty = true;
-            if (ALMOST_EQUAL(mTranslationX, 0) && ALMOST_EQUAL(mTranslationY, 0)) {
+            if (mTranslationX == 0.0f && mTranslationY == 0.0f) {
                 mMatrixFlags &= ~TRANSLATION;
             } else {
                 mMatrixFlags |= TRANSLATION;
@@ -208,7 +209,7 @@
         if (rotation != mRotation) {
             mRotation = rotation;
             mMatrixDirty = true;
-            if (ALMOST_EQUAL(mRotation, 0)) {
+            if (mRotation == 0.0f) {
                 mMatrixFlags &= ~ROTATION;
             } else {
                 mMatrixFlags |= ROTATION;
@@ -220,7 +221,7 @@
         if (rotationX != mRotationX) {
             mRotationX = rotationX;
             mMatrixDirty = true;
-            if (ALMOST_EQUAL(mRotationX, 0) && ALMOST_EQUAL(mRotationY, 0)) {
+            if (mRotationX == 0.0f && mRotationY == 0.0f) {
                 mMatrixFlags &= ~ROTATION_3D;
             } else {
                 mMatrixFlags |= ROTATION_3D;
@@ -232,7 +233,7 @@
         if (rotationY != mRotationY) {
             mRotationY = rotationY;
             mMatrixDirty = true;
-            if (ALMOST_EQUAL(mRotationX, 0) && ALMOST_EQUAL(mRotationY, 0)) {
+            if (mRotationX == 0.0f && mRotationY == 0.0f) {
                 mMatrixFlags &= ~ROTATION_3D;
             } else {
                 mMatrixFlags |= ROTATION_3D;
@@ -244,7 +245,7 @@
         if (scaleX != mScaleX) {
             mScaleX = scaleX;
             mMatrixDirty = true;
-            if (ALMOST_EQUAL(mScaleX, 1) && ALMOST_EQUAL(mScaleY, 1)) {
+            if (mScaleX == 1.0f && mScaleY == 1.0f) {
                 mMatrixFlags &= ~SCALE;
             } else {
                 mMatrixFlags |= SCALE;
@@ -267,7 +268,7 @@
     void setPivotX(float pivotX) {
         mPivotX = pivotX;
         mMatrixDirty = true;
-        if (ALMOST_EQUAL(mPivotX, 0) && ALMOST_EQUAL(mPivotY, 0)) {
+        if (mPivotX == 0.0f && mPivotY == 0.0f) {
             mMatrixFlags &= ~PIVOT;
         } else {
             mMatrixFlags |= PIVOT;
@@ -278,7 +279,7 @@
     void setPivotY(float pivotY) {
         mPivotY = pivotY;
         mMatrixDirty = true;
-        if (ALMOST_EQUAL(mPivotX, 0) && ALMOST_EQUAL(mPivotY, 0)) {
+        if (mPivotX == 0.0f && mPivotY == 0.0f) {
             mMatrixFlags &= ~PIVOT;
         } else {
             mMatrixFlags |= PIVOT;
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index ab324ff..bf136ad 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -90,7 +90,7 @@
     virtual int saveLayerAlpha(float left, float top, float right, float bottom,
             int alpha, int flags);
 
-    virtual void setAlpha(float alpha) {
+    void setAlpha(float alpha) {
         mSnapshot->alpha = alpha;
     }
 
diff --git a/libs/hwui/utils/Compare.h b/libs/hwui/utils/Compare.h
index f079a7b..fdd9acf 100644
--- a/libs/hwui/utils/Compare.h
+++ b/libs/hwui/utils/Compare.h
@@ -19,10 +19,6 @@
 
 #include <cmath>
 
-#define EPSILON 0.00001f
-
-#define ALMOST_EQUAL(u, v) (fabs((u) - (v)) < EPSILON)
-
 /**
  * Compare floats.
  */