ThorVG  v0.5
Public Member Functions | Static Public Member Functions | List of all members
Saver

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 has a role to export it to a file. Basically, this feature is 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, it will return the NonSuppport result by the save() method.

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 slow down in cases, You can turn off the compression if your system whole focus on the 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]compressUse data compression if it's available.
Return values
Result::SuccessWhen succeed.
Result::NonSupportWhen trying to save a file with an unknown extension nor non supported format.
Result::UnknownOthers.
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 will work 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.

Returns
Result::Success when succeed.
Result::InsufficientCondition otherwise.
Note
The asynchronous tasking is depend on the saver module implementation.
See also
Saver::save()
Since
0.5