diff options
-rw-r--r-- | libs/hwui/ShadowTessellator.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libs/hwui/ShadowTessellator.cpp b/libs/hwui/ShadowTessellator.cpp index 93d4b317f03b..c1b0f7ff2365 100644 --- a/libs/hwui/ShadowTessellator.cpp +++ b/libs/hwui/ShadowTessellator.cpp @@ -20,6 +20,7 @@ #include <math.h> #include <utils/Log.h> #include <utils/Trace.h> +#include <utils/MathUtils.h> #include "AmbientShadow.h" #include "Caches.h" @@ -264,6 +265,8 @@ int ShadowTessellator::getExtraVertexNumber(const Vector2& vector1, // acos( ) --- [0, M_PI] // floor(...) --- [0, EXTRA_VERTEX_PER_PI] float dotProduct = vector1.dot(vector2); + // make sure that dotProduct value is in acsof input range [-1, 1] + dotProduct = MathUtils::clamp(dotProduct, -1.0f, 1.0f); // TODO: Use look up table for the dotProduct to extraVerticesNumber // computation, if needed. float angle = acosf(dotProduct); |