From d5a5e3215c023c08f74ebed46d58cf224030071f Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 12 Jun 2025 23:03:15 +0900 Subject: [PATCH] renderer: hotfix added exceptional handling --- src/renderer/tvgRender.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/renderer/tvgRender.h b/src/renderer/tvgRender.h index 46bd0e82..f45dae6e 100644 --- a/src/renderer/tvgRender.h +++ b/src/renderer/tvgRender.h @@ -104,7 +104,11 @@ struct RenderRegion static constexpr RenderRegion intersect(const RenderRegion& lhs, const RenderRegion& rhs) { - return {{std::max(lhs.min.x, rhs.min.x), std::max(lhs.min.y, rhs.min.y)}, {std::min(lhs.max.x, rhs.max.x), std::min(lhs.max.y, rhs.max.y)}}; + RenderRegion ret = {{std::max(lhs.min.x, rhs.min.x), std::max(lhs.min.y, rhs.min.y)}, {std::min(lhs.max.x, rhs.max.x), std::min(lhs.max.y, rhs.max.y)}}; + // Not intersected: collapse to zero-area region + if (ret.min.x > ret.max.x) ret.max.x = ret.min.x; + if (ret.min.y > ret.max.y) ret.max.y = ret.min.y; + return ret; } void intersect(const RenderRegion& rhs);