ttf-рдкрд╛рд░реНрд╕рд░ реж.рел - TrueType рдлрдиреНрдЯрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдкреБрд╕реНрддрдХрд╛рд▓рдп

ttf-рдкрд╛рд░реНрд╕рд░ TrueType/OpenType рдлрдиреНрдЯрд╣рд░реВ рдкрд╛рд░реНрд╕рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛред
рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЪрд░ рдлрдиреНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдЫ
(рдЪрд░ рдлрдиреНрдЯрд╣рд░реВ) рд░ C API, рдЬрд╕рдХреЛ рдлрд▓рд╕реНрд╡рд░реВрдк рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╡рд┐рджреНрдпрд╛рдорд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВред

рд╣рд╛рд▓ рд╕рдореНрдо, рдпрджрд┐ TrueType рдлрдиреНрдЯрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ рднрдиреЗ, рддреНрдпрд╣рд╛рдБ рджреБрдИрд╡рдЯрд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдерд┐рдП: FreeType рд░ stb_truetypeред рдкрд╣рд┐рд▓реЛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕рдВрдпреЛрдЬрди рд╣реЛ, рджреЛрд╕реНрд░реЛрд▓реЗ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдПрдХрджрдо рд╕рд╛рдиреЛ рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

ttf-рдкрд╛рд░реНрд╕рд░ рдмреАрдЪрдорд╛ рдХрддреИ рдЫред рдпрд╕рд▓реЗ рд╕рдмреИ рд╕рдорд╛рди TrueType рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ (TrueType рдврд╛рдБрдЪрд╛рдорд╛ рдзреЗрд░реИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЗрдирд░реА рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреНрдЫрдиреН) FreeType рдХреЛ рд░реВрдкрдорд╛, рддрд░ рдЖрдлреИрд▓реЗ рдЧреНрд▓рд┐рдлрд╣рд░реВ рдХреЛрд░реНрджреИрдиред

рдПрдХреИ рд╕рдордпрдорд╛, ttf-рдкрд╛рд░реНрд╕рд░рд▓реЗ рдЕрдиреНрдп рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ:

  1. ttf-parser рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА Rust рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫред FreeType рд░ stb_truetype C рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫред
  2. ttf-рдкрд╛рд░реНрд╕рд░ рдорд╛рддреНрд░ рдореЗрдореЛрд░реА-рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛред рдЕрдирд┐рдпрдорд┐рдд рдореЗрдореЛрд░реА рдкрдвреНрди рд╕рдореНрднрд╡ рдЫреИрдиред FreeType рдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдирд┐рд░рдиреНрддрд░ рдлрд┐рдХреНрд╕ рдЧрд░рд┐рдБрджреИ рдЫ, рд░ stb_truetype, рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдордирдорд╛рдиреА рдлрдиреНрдЯрд╣рд░реВ рдкрдвреНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред
  3. ttf-рдкрд╛рд░реНрд╕рд░ рдорд╛рддреНрд░ рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛред рд╕рдмреИ рдкрд╛рд░реНрд╕рд┐рдЩ рд╡рд┐рдзрд┐рд╣рд░реВ рд╕реНрдерд┐рд░ рдЫрдиреНред рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рдЪрд░ рдлрдиреНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрджреИрдЫ, рддрд░ рдпреЛ рдкреНрд░рдХрд╛рд░реНрдп рдкреБрди: рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдиреЗ рд╣реЛред FreeType рдореВрд▓рддрдГ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЫред stb_truetype - reentrant (рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдзреЗрд░реИ рдордзреНрдпреЗ рдПрдХ рд╣реЛрдЗрди)ред
  4. ttf-рдкрд╛рд░реНрд╕рд░ рдорд╛рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рдЬрд╕рд▓реЗ рд╣рд┐рдк рдЖрд╡рдВрдЯрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╛рд░реНрд╕рд┐рдЩрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рд░ OOM рд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  5. рд╕рд╛рдереИ, рд▓рдЧрднрдЧ рд╕рдмреИ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдиреНрдЫ (рд╕реНрдерд┐рд░ рд╕рд╣рд┐рдд)ред
  6. рд╕рдмреИрднрдиреНрджрд╛ рдирд░рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рдЕрдкрд╡рд╛рдж рдлрд╛рд▓реНрди рд╕рдХреНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, C API рдорд╛, рдЕрдкрд╡рд╛рджрд╣рд░реВ рд╕рдорд╛рддрд┐рдиреЗрдЫрдиреН рд░ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫ, рддрд░ рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреЗрдЫреИрдиред

рд░ рд╕рдмреИ рд╕реБрд░рдХреНрд╖рд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВрдХреЛ рдмрд╛рд╡рдЬреБрдж, ttf-рдкрд╛рд░реНрд╕рд░ рдкрдирд┐ рдЫрд┐рдЯреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, CFF2 рдХреЛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ FreeType рднрдиреНрджрд╛ 3.5 рдЧреБрдгрд╛ рдЫрд┐рдЯреЛ рдЫред рдкрд╛рд░реНрд╕рд┐рдЩ glyf, рдпрд╕ рдмреАрдЪрдорд╛, stb_truetype рдорд╛ рднрдиреНрджрд╛ 10% рдврд┐рд▓реЛ рдЫ, рддрд░ рдпреЛ рддрдереНрдпрдХреЛ рдХрд╛рд░рдг рд╣реЛ рдХрд┐ рдпрд╕рд▓реЗ рдЪрд░ рдлрдиреНрдЯрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рдЬрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рднрдгреНрдбрд╛рд░рдг рдЖрд╡рд╢реНрдпрдХ рдЫред рдЬрд╛рдирдХрд╛рд░реАред рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдорд╛ рдкрдвреНрдиреБрд╣реЛрд╕реН.

рд╕реНрд░реЛрдд: linux.org.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди