Después de tres meses de arduo trabajo, se lanzó la versión 0.15 de la biblioteca de gráficos vectoriales ThorVG, escrita en C++ (estándar C++14) y distribuida bajo la licencia MIT. La biblioteca se utiliza para renderizar gráficos vectoriales en proyectos como Tizen OS, Godot Engine, LVGL y reproductores dotLottie.
Thor Vector Graphics (ThorVG) es una biblioteca ligera y portátil de código abierto diseñada para la visualización de escenas vectoriales y animaciones, incluidos los formatos SVG Tiny 1.2, Lottie y su propio formato TVG (SVG, comprimido con el algoritmo LZW).
La biblioteca ofrece API convenientes para importar, crear y mostrar gráficos vectoriales, así como para exportarlos a varios formatos gráficos, lo que la hace versátil para su uso en diversas plataformas de software y aplicaciones de visualización de contenido gráfico:
#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 biblioteca también incluye utilidades lottie2gif, svg2png y svg2tvg.
La nueva versión contiene una serie de mejoras significativas:
- se ha mejorado considerablemente el rendimiento, la funcionalidad y la estabilidad del motor WebGPU;
- incremento de rendimiento de aproximadamente tres veces en el renderizado de trazos;
- se ha mejorado el rendimiento del enmascaramiento y varios métodos de superposición;
- se ha reducido significativamente la carga en la memoria de la GPU;
- se ha agregado soporte para el recorte de contornos y el control de áreas visibles en pantalla;
- se ha mejorado significativamente la implementación de animaciones Lottie;
- el mayor añadido en ThorVG es el soporte para capas en las animaciones Lottie;
- se han añadido capacidades interactivas en las animaciones Lottie;
- se ha mejorado la animación de texto;
- se ha mejorado el algoritmo de cálculo de puntos de control de curvas Bézier con desplazamiento;
- se ha añadido la opción de aplicar diversos efectos de postprocesado a la escena;
- se ha añadido soporte para glifos compuestos de texto;
- se ha mejorado el rendimiento de composiciones en el motor OpenGL;
- se han añadido nuevas API estables y experimentales;
- se han corregido numerosos errores.
Fuente: linux.org.ru
