Dopo tre mesi di duro lavoro, è stata rilasciata la versione 0.15 della libreria di grafica vettoriale ThorVG, scritta in C++ (standard C++14) e distribuita con licenza MIT. La libreria è utilizzata per il rendering di grafica vettoriale in progetti come Tizen OS, Godot Engine, LVGL e lettori dotLottie.
Thor Vector Graphics (ThorVG) è una libreria leggera e portatile con codice sorgente aperto, progettata per la visualizzazione di scene vettoriali e animazioni, incluso i formati SVG Tiny 1.2, Lottie e il formato proprietario TVG (SVG, compresso con l'algoritmo LZW).
La libreria offre API intuitive per importare, creare e visualizzare grafica vettoriale, così come per esportarla in vari formati grafici, il che la rende versatile per l'uso su diverse piattaforme software e applicazioni per la visualizzazione di contenuti grafici:
#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; }
La libreria include anche gli strumenti lottie2gif, svg2png e svg2tvg.
La nuova versione presenta una serie di miglioramenti significativi:
- notevolmente migliorate le prestazioni, le funzionalità e la stabilità del motore WebGPU;
- circa un aumento di tre volte delle prestazioni di rendering delle linee;
- aumentate le prestazioni nel mascheramento e in vari metodi di sovrapposizione;
- notevolmente ridotto l'utilizzo della memoria GPU;
- aggiunta del supporto per il ritaglio del contorno e la gestione delle aree visibili dello schermo;
- notevolmente migliorata l'implementazione delle animazioni Lottie;
- la più grande aggiunta a ThorVG è il supporto per i layer nelle animazioni Lottie;
- aggiunte funzionalità interattive nelle animazioni Lottie;
- migliorata l'animazione del testo;
- ottimizzato l'algoritmo di calcolo dei punti di controllo delle curve di Bézier con offset;
- aggiunta la possibilità di applicare vari effetti di post-elaborazione alla scena;
- aggiunto il supporto per glifi testuali compositi;
- migliorate le prestazioni delle composizioni nel motore OpenGL;
- aggiunti nuovi API stabili e sperimentali;
- risolti numerosi bug.
Fonte: linux.org.ru
