summaryrefslogtreecommitdiffstats
path: root/thirdparty/thorvg/src/renderer/tvgPicture.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/thorvg/src/renderer/tvgPicture.h')
-rw-r--r--thirdparty/thorvg/src/renderer/tvgPicture.h8
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;