diff --git a/src/lib/tvgPaint.cpp b/src/lib/tvgPaint.cpp index 2dbcadd7..1c90bed2 100644 --- a/src/lib/tvgPaint.cpp +++ b/src/lib/tvgPaint.cpp @@ -77,6 +77,9 @@ static bool _clipPathFastTrack(Paint* cmpTarget, const RenderTransform* pTransfo y2 = y2 * pTransform->m.e22 + pTransform->m.e23; } + if (x1 < 0.0f) x1 = 0.0f; + if (y1 < 0.0f) y1 = 0.0f; + viewport.x = static_cast(x1); viewport.y = static_cast(y1); viewport.w = static_cast(roundf(x2 - x1 + 0.5f)); diff --git a/src/lib/tvgPictureImpl.h b/src/lib/tvgPictureImpl.h index dbb8916f..19642c12 100644 --- a/src/lib/tvgPictureImpl.h +++ b/src/lib/tvgPictureImpl.h @@ -95,7 +95,7 @@ struct Picture::Impl if (auto p = loader->paint()) { paint = p.release(); loader->close(); - if (w != loader->w && h != loader->h) { + if (w != loader->w || h != loader->h) { loader->resize(paint, w, h); resizing = false; } diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index f41b6486..d237fe97 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -523,7 +523,7 @@ unique_ptr svgSceneBuild(SvgNode* node, float vx, float vy, float vw, flo auto docNode = _sceneBuildHelper(node, vx, vy, vw, vh); auto viewBoxClip = Shape::gen(); - viewBoxClip->appendRect(vx, vy ,vw, vh, 0, 0); + viewBoxClip->appendRect(vx, vy, vw, vh, 0, 0); viewBoxClip->fill(0, 0, 0, 255); auto compositeLayer = Scene::gen();