После трёх месяцев упорной работы состоялся выпуск 0.15 библиотеки векторной графики ThorVG, написанной на языке C++ (стандарт C++14) и распространяемой по лицензии MIT. Библиотека используется для рендеринга векторной графики в таких проектах, как Tizen OS, Godot Engine, LVGL и плееров dotLottie.
Thor Vector Graphics (ThorVG) – это лёгкая и портативная библиотека с открытым исходным кодом, предназначенная для визуализации векторных сцен и анимаций, включая форматы SVG Tiny 1.2, Lottie и собственный формат TVG (SVG, сжатый алгоритмом LZW).
Библиотекой предоставляются удобные API для импорта, создания и отображения векторной графики, а также для её экспорта в различные графические форматы, что делает её универсальной для использования в различных программных платформах и приложениях для визуализации графического контента:
#include "Example.h"
using namespace std;
void exportGif()
{
auto animation = tvg::Animation::gen();
auto picture = animation->picture();
if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/lottie/walker.json"))) return;
picture->size(800, 800);
auto saver = tvg::Saver::gen();
if (!tvgexam::verify(saver->save(std::move(animation), "./test.gif"))) return;
saver->sync();
cout << "Successfully exported to test.gif." << endl;
}
int main(int argc, char **argv)
{
if (tvgexam::verify(tvg::Initializer::init(0))) {
exportGif();
tvg::Initializer::term();
}
return 0;
}
С библиотекой также поставляются утилиты lottie2gif
, svg2png
и svg2tvg
.
Новая версия содержит ряд значительных улучшений:
- значительно улучшена производительность, функциональность и стабильность движка WebGPU;
- примерно трёхкратный прирост производительности рендеринга штрихов;
- повышена производительность маскирования и различных методов наложения;
- значительно снижена нагрузка на память GPU;
- добавлена поддержка обрезки контура и управление видимыми областями экрана;
- значительно улучшена реализация анимаций Lottie;
- самым большим дополнением в ThorVG является поддержка слоев в анимациях Lottie;
- добавлены интерактивные возможности в анимациях Lottie;
- улучшена анимация текста;
- улучшен алгоритм вычисления контрольных точек кривых Безье со смещением;
- добавлена возможность применять различные эффекты постобработки к сцене;
- добавлена поддержка составных глифов текста;
- в движке OpenGL улучшена производительность композиций;
- добавлены новые стабильные и экспериментальные API;
- исправлено множество ошибок.