diff --git a/src/lib/tvgPaint.cpp b/src/lib/tvgPaint.cpp index 8ba8976a..6d2b26d0 100644 --- a/src/lib/tvgPaint.cpp +++ b/src/lib/tvgPaint.cpp @@ -132,7 +132,7 @@ bool Paint::Impl::scale(float factor) if (rTransform) { if (mathEqual(factor, rTransform->scale)) return true; } else { - if (mathZero(factor)) return true; + if (mathEqual(factor, 1.0f)) return true; rTransform = new RenderTransform(); } rTransform->scale = factor; diff --git a/src/lib/tvgPaint.h b/src/lib/tvgPaint.h index c0404c8b..f7719a7b 100644 --- a/src/lib/tvgPaint.h +++ b/src/lib/tvgPaint.h @@ -24,7 +24,7 @@ #define _TVG_PAINT_H_ #include "tvgRender.h" - +#include "tvgMath.h" namespace tvg { @@ -100,6 +100,7 @@ namespace tvg bool transform(const Matrix& m) { if (!rTransform) { + if (mathIdentity(&m)) return true; rTransform = new RenderTransform(); if (!rTransform) return false; } diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index 70a9ed87..1cbaa2aa 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -746,7 +746,7 @@ static unique_ptr _useBuildHelper(const SvgNode* node, const Box& vBox, c finalScene = std::move(root); } } else { - if (!mathIdentity((const Matrix*)(&mUseTransform))) scene->transform(mUseTransform); + scene->transform(mUseTransform); finalScene = std::move(scene); }