ThorVG  v0.10
Saverfinal

A class for exporting a paint object into a specified file, from which to recover the paint data later. More...

Public Member Functions

Result save (std::unique_ptr< Paint > paint, const std::string &path, bool compress=true) noexcept
 Exports the given paint data to the given path. More...
 
Result sync () noexcept
 Guarantees that the saving task is finished. More...
 

Static Public Member Functions

static std::unique_ptr< Savergen () noexcept
 Creates a new Saver object. More...
 

Detailed Description

A class for exporting a paint object into a specified file, from which to recover the paint data later.

ThorVG provides a feature for exporting & importing paint data. The Saver role is to export the paint data to a file. It's useful when you need to save the composed scene or image from a paint object and recreate it later.

The file format is decided by the extension name(i.e. "*.tvg") while the supported formats depend on the TVG packaging environment. If it doesn't support the file format, the save() method returns the Result::NonSuppport result.

Once you export a paint to the file successfully, you can recreate it using the Picture class.

See also
Picture::load()
Since
0.5

Member Function Documentation

◆ gen()

static std::unique_ptr<Saver> gen ( )
staticnoexcept

Creates a new Saver object.

Returns
A new Saver object.
Since
0.5

◆ save()

Result save ( std::unique_ptr< Paint paint,
const std::string &  path,
bool  compress = true 
)
noexcept

Exports the given paint data to the given path.

If the saver module supports any compression mechanism, it will optimize the data size. This might affect the encoding/decoding time in some cases. You can turn off the compression if you wish to optimize for speed.

Parameters
[in]paintThe paint to be saved with all its associated properties.
[in]pathA path to the file, in which the paint data is to be saved.
[in]compressIf true then compress data if possible.
Return values
Result::SuccessWhen succeed.
Result::InsufficientConditionIf currently saving other resources.
Result::NonSupportWhen trying to save a file with an unknown extension or in an unsupported format.
Result::MemoryCorruptionAn internal error.
Result::UnknownIn case an empty paint is to be saved.
Note
Saving can be asynchronous if the assigned thread number is greater than zero. To guarantee the saving is done, call sync() afterwards.
See also
Saver::sync()
Since
0.5

◆ sync()

Result sync ( )
noexcept

Guarantees that the saving task is finished.

The behavior of the Saver works on a sync/async basis, depending on the threading setting of the Initializer. Thus, if you wish to have a benefit of it, you must call sync() after the save() in the proper delayed time. Otherwise, you can call sync() immediately.

Return values
Result::Successwhen succeed.
Result::InsufficientConditionotherwise.
Note
The asynchronous tasking is dependent on the Saver module implementation.
See also
Saver::save()
Since
0.5