Po trzech miesiącach ciężkiej pracy ukazało się 0.15 biblioteki grafiki wektorowej ThorVG, napisanej w języku C++ (standard C++14) i rozpowszechnianej na licencji MIT. Biblioteka służy do renderowania grafiki wektorowej w projektach takich jak Tizen OS, Silnik Godota, LVGL i gracze kropkaLottie.
Grafika wektorowa Thora (ThorVG) to lekka i przenośna biblioteka typu open source przeznaczona do renderowania scen wektorowych i animacji, w tym formatów SVG Mały 1.2, Lottie oraz natywny format TVG (SVG, skompresowany za pomocą LZW).
Biblioteka zapewnia wygodne API do importowania, tworzenia i wyświetlania grafiki wektorowej, a także do eksportowania jej do różnych formatów graficznych, co czyni go uniwersalnym do stosowania na różnych platformach programowych i aplikacjach do wizualizacji treści graficznych:
#include „Przykład.h” przy użyciu przestrzeni nazw std; void eksportGif() { automatyczna animacja = tvg::Animation::gen(); auto obraz = animacja->obraz(); if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/lottie/walker.json"))) return; obraz->rozmiar(800, 800); automatyczny wygaszacz = tvg::Saver::gen(); if (!tvgexam::verify(saver->save(std::move(animation), "./test.gif"))) return; wygaszacz->synchronizacja(); cout << "Pomyślnie wyeksportowano do test.gif." <<koniec; } int main(int argc, char **argv) { if (tvgexam::verify(tvg::Initializer::init(0))) { eksportGif(); tvg::Inicjator::termin(); } zwróć 0; }
Biblioteka zawiera również narzędzia lottie2gif, svg2png i svg2tvg.
Nowa wersja zawiera szereg istotnych ulepszeń:
- znacznie poprawiona wydajność, funkcjonalność i stabilność silnika WebGPU;
- około trzykrotny wzrost wydajności renderowania obrysów;
- Poprawiona wydajność maskowania i różnych metod nakładania;
- znacznie zmniejszone obciążenie pamięci GPU;
- dodano obsługę przycinania konturów i zarządzania widocznymi obszarami ekranu;
- Implementacja animacji Lottie została znacząco poprawiona;
- Największym dodatkiem do ThorVG jest obsługa warstw w animacjach Lottie;
- dodano funkcje interaktywne do animacji Lottie;
- ulepszona animacja tekstu;
- ulepszony algorytm obliczania punktów kontrolnych krzywych Beziera z przesunięciem;
- dodano możliwość zastosowania do sceny różnych efektów postprocessingu;
- dodano obsługę glifów tekstu złożonego;
- poprawiono wydajność kompozycji w silniku OpenGL;
- dodano nowe stabilne i eksperymentalne API;
- naprawiono wiele błędów.
Źródło: linux.org.ru
