diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-08-27 15:54:05 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-17 08:57:46 +0200 |
commit | 4abc358952a69427617b0683fd76427a14d6faa8 (patch) | |
tree | cc603b1a5e1481e1f1cf0711ea9c68d027bdd904 /thirdparty/thorvg/src/renderer/tvgScene.h | |
parent | f7ad4dca8c9590e34ea3135f0ca84edecc09088b (diff) | |
download | redot-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.h | 28 |
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) |