È stata rilasciata una nuova e significativa versione della libreria per la rasterizzazione SVG — resvg.
Principali modifiche:
- Completamente nuova implementazione del rendering del testo:
- Quasi tutta la pipeline, dal carattere alla curva di Bézier, è ora implementata in Rust:
corrispondenza dei font (font matching and fallback), parsing di TrueType, layout dei glifi secondo le regole SVG (SVG text layout).
L'eccezione è lo shaping (text shaping), per cui viene utilizzato
HarfBuzz. - Il testo sarà ora convertito in curve di Bézier prima del rendering.
Ciò significa che il backend di rendering non è più obbligato a supportare il testo. - Supporto del testo bidirezionale (BIDI reordering). Esempio.
- Supporto per textPath. Esempio 1, esempio 2.
- Supporto per writing-mode (testo verticale). Esempio.
- Supporto corretto per word-spacing e letter-spacing. Esempio.
- Quasi tutta la pipeline, dal carattere alla curva di Bézier, è ora implementata in Rust:
- Nuovo backend sperimentale — Raqote (un ringraziamento speciale a jrmuizel).
Raqote è una libreria grafica 2D scritta in Rust.
È attualmente in fase iniziale di sviluppo, ma le sue capacità sono già sufficienti per
essere utilizzata in resvg.
Il suo principale vantaggio è che ora resvg può essere compilato con esattamente una dipendenza non Rust — HarfBuzz. - Supporto per shape-rendering, text-rendering e image-rendering.
- Accelerato il rendering delle immagini raster.
- Il numero totale di test ha raggiunto 1112.
Il numero di test superati con successo da Inkscape e librsvg è diminuito del 75%. - Numerosi piccoli aggiornamenti e miglioramenti.
Risultati dei test. Tabella comparativa.
Fonte: linux.org.ru
