summaryrefslogtreecommitdiffstats
path: root/thirdparty/thorvg/src/common/tvgMath.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/thorvg/src/common/tvgMath.cpp')
-rw-r--r--thirdparty/thorvg/src/common/tvgMath.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/thirdparty/thorvg/src/common/tvgMath.cpp b/thirdparty/thorvg/src/common/tvgMath.cpp
index 0254cce9b8..c03b54e5f8 100644
--- a/thirdparty/thorvg/src/common/tvgMath.cpp
+++ b/thirdparty/thorvg/src/common/tvgMath.cpp
@@ -43,9 +43,8 @@ bool mathInverse(const Matrix* m, Matrix* out)
m->e12 * (m->e21 * m->e33 - m->e23 * m->e31) +
m->e13 * (m->e21 * m->e32 - m->e22 * m->e31);
- if (mathZero(det)) return false;
-
- auto invDet = 1 / det;
+ auto invDet = 1.0f / det;
+ if (std::isinf(invDet)) return false;
out->e11 = (m->e22 * m->e33 - m->e32 * m->e23) * invDet;
out->e12 = (m->e13 * m->e32 - m->e12 * m->e33) * invDet;
@@ -137,7 +136,6 @@ Point operator*(const Point& pt, const Matrix& m)
uint8_t mathLerp(const uint8_t &start, const uint8_t &end, float t)
{
auto result = static_cast<int>(start + (end - start) * t);
- if (result > 255) result = 255;
- else if (result < 0) result = 0;
+ mathClamp(result, 0, 255);
return static_cast<uint8_t>(result);
}