summaryrefslogtreecommitdiffstats
path: root/thirdparty/thorvg/src/renderer/tvgScene.h
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-08-27 15:54:05 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-09-17 08:57:46 +0200
commit4abc358952a69427617b0683fd76427a14d6faa8 (patch)
treecc603b1a5e1481e1f1cf0711ea9c68d027bdd904 /thirdparty/thorvg/src/renderer/tvgScene.h
parentf7ad4dca8c9590e34ea3135f0ca84edecc09088b (diff)
downloadredot-engine-4abc358952a69427617b0683fd76427a14d6faa8.tar.gz
thorvg: Update to 0.14.7
Fixes #95861. (cherry picked from commit f16d4af3422ba167e211bcffa9186d6d88a4f228)
Diffstat (limited to 'thirdparty/thorvg/src/renderer/tvgScene.h')
-rw-r--r--thirdparty/thorvg/src/renderer/tvgScene.h28
1 files changed, 10 insertions, 18 deletions
diff --git a/thirdparty/thorvg/src/renderer/tvgScene.h b/thirdparty/thorvg/src/renderer/tvgScene.h
index 8b1981edfa..cb6d179326 100644
--- a/thirdparty/thorvg/src/renderer/tvgScene.h
+++ b/thirdparty/thorvg/src/renderer/tvgScene.h
@@ -101,7 +101,7 @@ struct Scene::Impl
return true;
}
- RenderData update(RenderMethod* renderer, const RenderTransform* transform, Array<RenderData>& clips, uint8_t opacity, RenderUpdateFlag flag, bool clipper)
+ RenderData update(RenderMethod* renderer, const Matrix& transform, Array<RenderData>& clips, uint8_t opacity, RenderUpdateFlag flag, TVG_UNUSED bool clipper)
{
if ((needComp = needComposition(opacity))) {
/* Overriding opacity value. If this scene is half-translucent,
@@ -109,20 +109,10 @@ struct Scene::Impl
this->opacity = opacity;
opacity = 255;
}
-
- if (clipper) {
- Array<RenderData> rds(paints.size());
- for (auto paint : paints) {
- rds.push(paint->pImpl->update(renderer, transform, clips, opacity, flag, true));
- }
- rd = renderer->prepare(rds, rd, transform, clips, opacity, flag);
- return rd;
- } else {
- for (auto paint : paints) {
- paint->pImpl->update(renderer, transform, clips, opacity, flag, false);
- }
- return nullptr;
+ for (auto paint : paints) {
+ paint->pImpl->update(renderer, transform, clips, opacity, flag, false);
}
+ return nullptr;
}
bool render(RenderMethod* renderer)
@@ -198,10 +188,12 @@ struct Scene::Impl
return true;
}
- Paint* duplicate()
+ Paint* duplicate(Paint* ret)
{
- auto ret = Scene::gen().release();
- auto dup = ret->pImpl;
+ if (ret) TVGERR("RENDERER", "TODO: duplicate()");
+
+ auto scene = Scene::gen().release();
+ auto dup = scene->pImpl;
for (auto paint : paints) {
auto cdup = paint->duplicate();
@@ -209,7 +201,7 @@ struct Scene::Impl
dup->paints.push_back(cdup);
}
- return ret;
+ return scene;
}
void clear(bool free)