diff options
Diffstat (limited to 'thirdparty/thorvg/src/renderer/tvgPicture.h')
-rw-r--r-- | thirdparty/thorvg/src/renderer/tvgPicture.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/thirdparty/thorvg/src/renderer/tvgPicture.h b/thirdparty/thorvg/src/renderer/tvgPicture.h index 91c16eb44e..bd7021218a 100644 --- a/thirdparty/thorvg/src/renderer/tvgPicture.h +++ b/thirdparty/thorvg/src/renderer/tvgPicture.h @@ -92,18 +92,19 @@ struct Picture::Impl RenderData update(RenderMethod* renderer, const RenderTransform* pTransform, Array<RenderData>& clips, uint8_t opacity, RenderUpdateFlag pFlag, bool clipper) { - auto flag = load(); + auto flag = static_cast<RenderUpdateFlag>(pFlag | load()); if (surface) { + if (flag == RenderUpdateFlag::None) return rd; auto transform = resizeTransform(pTransform); - rd = renderer->prepare(surface, &rm, rd, &transform, clips, opacity, static_cast<RenderUpdateFlag>(pFlag | flag)); + rd = renderer->prepare(surface, &rm, rd, &transform, clips, opacity, flag); } else if (paint) { if (resizing) { loader->resize(paint, w, h); resizing = false; } needComp = needComposition(opacity) ? true : false; - rd = paint->pImpl->update(renderer, pTransform, clips, opacity, static_cast<RenderUpdateFlag>(pFlag | flag), clipper); + rd = paint->pImpl->update(renderer, pTransform, clips, opacity, flag, clipper); } return rd; } @@ -200,6 +201,7 @@ struct Picture::Impl if (loader) { dup->loader = loader; ++dup->loader->sharing; + PP(ret)->renderFlag |= RenderUpdateFlag::Image; } dup->surface = surface; |