ΠΡΡΠ΅Π» Π½ΠΎΠ²ΡΠΉ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ SVG — resvg.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- ΠΠΎΠ»Π½ΠΎΡΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°:
- ΠΠΎΡΡΠΈ Π²Π΅ΡΡ ΡΡΠ΅ΠΊ ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π΄ΠΎ ΠΊΡΠΈΠ²ΠΎΠΉ ΠΠ΅Π·ΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Rust:
ΠΏΠΎΠ΄Π±ΠΎΡ ΡΡΠΈΡΡΠΎΠ² (font matching and fallback), ΠΏΠ°ΡΡΠΈΠ½Π³ TrueType, ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Π³Π»ΠΈΡΠΎΠ² ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ SVG (SVG text layout).
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΉΠΏΠΈΠ½Π³ (text shaping), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
HarfBuzz. - Π’Π΅ΠΊΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΡΠΈΠ²ΡΠ΅ ΠΠΈΠ·ΡΠ΅ Π΄ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
Π’ΠΎ Π΅ΡΡΡ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ. - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (BIDI reordering). ΠΡΠΈΠΌΠ΅Ρ.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° textPath. ΠΡΠΈΠΌΠ΅Ρ 1, ΠΏΡΠΈΠΌΠ΅Ρ 2.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° writing-mode (Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ). ΠΡΠΈΠΌΠ΅Ρ.
- ΠΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° word-spacing ΠΈ letter-spacing. ΠΡΠΈΠΌΠ΅Ρ.
- ΠΠΎΡΡΠΈ Π²Π΅ΡΡ ΡΡΠ΅ΠΊ ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π΄ΠΎ ΠΊΡΠΈΠ²ΠΎΠΉ ΠΠ΅Π·ΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Rust:
- ΠΠΎΠ²ΡΠΉ, ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ Π±Π΅ΠΊΠ΅Π½Π΄ — Raqote (ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ jrmuizel).
Raqote — ΡΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ 2D Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Rust.
ΠΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΆΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² resvg.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ resvg ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠΎΠ²Π½ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅ Rust Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ — HarfBuzz. - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° shape-rendering, text-rendering ΠΈ image-rendering.
- Π£ΡΠΊΠΎΡΠ΅Π½Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
- ΠΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΎΠ² Π΄ΠΎΡΡΠΈΠ³Π»ΠΎ 1112-Ρ
.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ² Ρ Inkscape ΠΈ librsvg ΡΠΏΠ°Π»ΠΎ Π·Π° 75%. - ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru