Wydano nową, znaczącą wersję biblioteki do rastrowania SVG — resvg.
Główne zmiany:
- Całkowicie nowa implementacja rysowania tekstu:
- Prawie cały stos od symbolu do krzywej Béziera jest teraz zaimplementowany w Rust:
dopasowywanie czcionek (font matching and fallback), analiza TrueType, układ klastrów glifów zgodnie z zasadami SVG (układ tekstu SVG).
Wyjątkiem jest kształtowanie tekstu (text shaping), do którego używany jest
HarfBuzz. - Tekst będzie teraz konwertowany na krzywe Béziera przed renderowaniem.
To znaczy, że backend rysowania nie musi już obsługiwać tekstu. - Wsparcie dla tekstu dwukierunkowego (BIDI reordering). Przykład.
- Wsparcie dla textPath. Przykład 1, przykład 2.
- Wsparcie dla writing-mode (tekst pionowy). Przykład.
- Poprawne wsparcie dla word-spacing i letter-spacing. Przykład.
- Prawie cały stos od symbolu do krzywej Béziera jest teraz zaimplementowany w Rust:
- Nowy, eksperymentalny backend — Raqote (szczególne podziękowanie dla jrmuizel).
Raqote to graficzna biblioteka 2D napisana w Rust.
Jest w początkowej fazie rozwoju, a mimo to jej możliwości są już wystarczające do
użycia w resvg.
Jej główną zaletą jest to, że resvg można teraz zbudować prawie z jedną zależnością nie-Rust — HarfBuzz. - Wsparcie dla shape-rendering, text-rendering i image-rendering.
- Przyspieszono renderowanie obrazów rastrowych.
- Całkowita liczba testów osiągnęła 1112.
Liczba pomyślnie zaliczonych testów w Inkscape i librsvg spadła poniżej 75%. - Wiele drobnych poprawek i usprawnień.
Wyniki testowania. Tabela porównawcza.
Źródło: linux.org.ru
