Po troch mesiacoch intenzívnej práce bola vydaná verzia 0.15 knižnice vektorovej grafiky ThorVG, napísanej v jazyku C++ (štandard C++14) a distribuovanej pod licenciou MIT. Knižnica sa využíva na renderovanie vektorovej grafiky v takých projektoch, ako sú Tizen OS, Godot Engine, LVGL a prehrávačov dotLottie.
Thor Vector Graphics (ThorVG) – je to ľahká a prenosná knižnica s otvoreným zdrojovým kódom, určená na vizualizáciu vektorových scén a animácií, vrátane formátov SVG Tiny 1.2, Lottie a vlastný formát TVG (SVG, komprimovaný algoritmom LZW).
Knižnica poskytuje pohodlné API na import, vytváranie a zobrazovanie vektorovej grafiky, ako aj na jej export do rôznych grafických formátov, čo ju robí univerzálnou pre použitie na rôznych softvér platformách a aplikáciách na vizualizáciu 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; }
S knižnicou sa tiež dodávajú utility lottie2gif, svg2png a svg2tvg.
Nová verzia obsahuje množstvo významných vylepšení:
- výrazne sa zlepšila výkonnosť, funkčnosť a stabilita enginu WebGPU;
- približne trojnásobný nárast výkonu renderovania čiar;
- zvýšila sa výkonnosť maskovania a rôznych metód prekrytia;
- výrazne sa znížila záťaž na pamäť GPU;
- bola pridaná podpora orezávania kontúr a riadenie viditeľných oblastí obrazovky;
- výrazne sa vylepšila implementácia animácií Lottie;
- najväčším doplnkom v ThorVG je podpora vrstiev v animáciách Lottie;
- boli pridané interaktívne možnosti v animáciách Lottie;
- bola vylepšená animácia textu;
- vylepšený algoritmus výpočtu kontrolných bodov kriviek Bézier so posunom;
- bola pridaná možnosť aplikovať rôzne efekty post-processing na scénu;
- bola pridaná podpora zložených glifov textu;
- v engine OpenGL sa zlepšila výkonnosť kompozícií;
- boli pridané nové stabilné a experimentálne API;
- opravených bolo množstvo chýb.
Zdroj: linux.org.ru
