summaryrefslogtreecommitdiffstats
path: root/thirdparty/thorvg/src/renderer/tvgSaver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/thorvg/src/renderer/tvgSaver.cpp')
-rw-r--r--thirdparty/thorvg/src/renderer/tvgSaver.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/thirdparty/thorvg/src/renderer/tvgSaver.cpp b/thirdparty/thorvg/src/renderer/tvgSaver.cpp
index 038d1ad097..11eb24d437 100644
--- a/thirdparty/thorvg/src/renderer/tvgSaver.cpp
+++ b/thirdparty/thorvg/src/renderer/tvgSaver.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 - 2023 the ThorVG project. All rights reserved.
+ * Copyright (c) 2021 - 2024 the ThorVG project. All rights reserved.
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -37,9 +37,12 @@
struct Saver::Impl
{
SaveModule* saveModule = nullptr;
+ Paint* bg = nullptr;
+
~Impl()
{
delete(saveModule);
+ delete(bg);
}
};
@@ -139,7 +142,16 @@ Result Saver::save(std::unique_ptr<Paint> paint, const string& path, bool compre
}
-Result Saver::save(std::unique_ptr<Animation> animation, const string& path, uint32_t quality, uint32_t fps) noexcept
+Result Saver::background(unique_ptr<Paint> paint) noexcept
+{
+ delete(pImpl->bg);
+ pImpl->bg = paint.release();
+
+ return Result::Success;
+}
+
+
+Result Saver::save(unique_ptr<Animation> animation, const string& path, uint32_t quality, uint32_t fps) noexcept
{
auto a = animation.release();
if (!a) return Result::MemoryCorruption;
@@ -156,7 +168,7 @@ Result Saver::save(std::unique_ptr<Animation> animation, const string& path, uin
}
if (auto saveModule = _find(path)) {
- if (saveModule->save(a, path, quality, fps)) {
+ if (saveModule->save(a, pImpl->bg, path, quality, fps)) {
pImpl->saveModule = saveModule;
return Result::Success;
} else {