Po třech měsících usilovné práce byl vydán 0.15 knihovny vektorové grafiky ThorVG, napsané v jazyce C++ (standard C++14) a šířené pod licencí MIT. Knihovna se používá pro renderování vektorové grafiky v projektech jako jsou Tizen OS, Godot Engine, LVGL a přehrávačích dotLottie.
Thor Vector Graphics (ThorVG) – je to lehká a přenosná knihovna s otevřeným zdrojovým kódem, určená pro vizualizaci vektorových scén a animací, včetně formátů SVG Tiny 1.2, Lottie a vlastního formátu TVG (SVG, komprimovaný algoritmem LZW).
Knihovna poskytuje uživatelsky přívětivá API pro import, vytváření a zobrazování vektorové grafiky, stejně jako pro její export do různých grafických formátů, což ji činí univerzální pro použití v různých softwarových platformách a aplikacích pro vizualizaci grafického obsahu:
#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; }
Knihovna také obsahuje nástroje lottie2gif, svg2png a svg2tvg.
Nová verze obsahuje řadu významných vylepšení:
- výrazně zlepšena výkonnost, funkčnost a stabilita enginu WebGPU;
- přibližně trojnásobný nárůst výkonu při renderování čar;
- zvýšena výkonnost maskování a různých metod překrytí;
- výrazně snížena zátěž na paměť GPU;
- přidána podpora ořezávání kontur a řízení viditelných oblastí obrazovky;
- výrazně vylepšena implementace animací Lottie;
- největším dodatkem v ThorVG je podpora vrstev v animacích Lottie;
- přidány interaktivní možnosti v animacích Lottie;
- zlepšena animace textu;
- vylepšen algoritmus pro výpočet kontrolních bodů křivek Bézier s posunem;
- přidána možnost aplikovat různé efekty postprocessing na scénu;
- přidána podpora složených glifů textu;
- ve enginu OpenGL zlepšena výkonnost kompozic;
- přidány nové stabilní a experimentální API;
- opraveno velké množství chyb.
Zdroj: linux.org.ru
