diff --git a/src/lib/sw_engine/tvgSwMath.cpp b/src/lib/sw_engine/tvgSwMath.cpp index 77c8b8f1..19c23883 100644 --- a/src/lib/sw_engine/tvgSwMath.cpp +++ b/src/lib/sw_engine/tvgSwMath.cpp @@ -458,10 +458,10 @@ bool mathUpdateOutlineBBox(const SwOutline* outline, const SwBBox& clipRegion, S renderRegion.min.y = yMin >> 6; renderRegion.max.y = (yMax + 63) >> 6; - renderRegion.max.x = min(renderRegion.max.x, clipRegion.max.x); - renderRegion.max.y = min(renderRegion.max.y, clipRegion.max.y); - renderRegion.min.x = max(renderRegion.min.x, clipRegion.min.x); - renderRegion.min.y = max(renderRegion.min.y, clipRegion.min.y); + renderRegion.max.x = (renderRegion.max.x < clipRegion.max.x) ? renderRegion.max.x : clipRegion.max.x; + renderRegion.max.y = (renderRegion.max.y < clipRegion.max.y) ? renderRegion.max.y : clipRegion.max.y; + renderRegion.min.x = (renderRegion.min.x > clipRegion.min.x) ? renderRegion.min.x : clipRegion.min.x; + renderRegion.min.y = (renderRegion.min.y > clipRegion.min.y) ? renderRegion.min.y : clipRegion.min.y; //Check valid region if (renderRegion.max.x - renderRegion.min.x < 1 && renderRegion.max.y - renderRegion.min.y < 1) return false; @@ -471,4 +471,4 @@ bool mathUpdateOutlineBBox(const SwOutline* outline, const SwBBox& clipRegion, S renderRegion.max.x <= clipRegion.min.x || renderRegion.max.y <= clipRegion.min.y) return false; return true; -} \ No newline at end of file +} diff --git a/src/lib/tvgRender.h b/src/lib/tvgRender.h index 510420e5..16da972d 100644 --- a/src/lib/tvgRender.h +++ b/src/lib/tvgRender.h @@ -56,10 +56,10 @@ struct RenderRegion { auto x2 = rhs.x + rhs.w; auto y2 = rhs.y + rhs.h; - x = max(x, rhs.x); - y = max(y, rhs.y); - w = min(x1, x2) - x; - h = min(y1, y2) - y; + x = (x > rhs.x) ? x : rhs.x; + y = (y > rhs.y) ? y : rhs.y; + w = ((x1 < x2) ? x1 : x2) - x; + h = ((y1 < y2) ? y1 : y2) - y; } }; diff --git a/src/loaders/svg/tvgSvgPath.cpp b/src/loaders/svg/tvgSvgPath.cpp index 8993314e..08a3a540 100644 --- a/src/loaders/svg/tvgSvgPath.cpp +++ b/src/loaders/svg/tvgSvgPath.cpp @@ -20,6 +20,8 @@ * SOFTWARE. */ #include +#include +#include #include "tvgSvgLoaderCommon.h" #include "tvgSvgPath.h" diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index 3b37f31a..b2be8599 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -20,6 +20,7 @@ * SOFTWARE. */ #include +#include #include "tvgSvgLoaderCommon.h" #include "tvgSvgSceneBuilder.h" #include "tvgSvgPath.h" @@ -427,4 +428,4 @@ unique_ptr svgSceneBuild(SvgNode* node) root = move(docNode); } return root; -} \ No newline at end of file +}