FreeType 2.5 рдХреА рдЕрджреГрд╢реНрдп рд░рд┐рд▓реАрдЬрд╝ - рдлрд╝реЙрдиреНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╕рдлрд▓рддрд╛

рдЫрд╡рд┐ рдлреНрд░реАрдЯрд╛рдЗрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрдВрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ X11 рдореЗрдВ рдлреЛрдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓рдВрдмреЗ рд╕рдордп рддрдХ, рдлрд╝реЙрдиреНрдЯ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрд╛рдЗрдЯ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░реВ рдЯрд╛рдЗрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╣реА рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдлреНрд░реАрдЯрд╛рдЗрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдХрдиреАрдХ рдРрдкреНрдкрд▓ рдкреЗрдЯреЗрдВрдЯ рдХреЗ рддрд╣рдд рдЧрд┐рд░ рдЧрдИ рдереАред рдкреЗрдЯреЗрдВрдЯ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлреНрд░реА рдЯрд╛рдЗрдк рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрд╕рдВрдЧрдд рдСрдЯреЛ-рд╣рд┐рдВрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдордИ 2010 рдореЗрдВ, рдкреЗрдЯреЗрдВрдЯ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 2.4.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдлреНрд░реА рдЯрд╛рдЗрдк рдлрд╝реЙрдиреНрдЯ рдмрд╛рдЗрдЯ рдХреЛрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣реА рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред

рдЬреНрдпрд╛рджрд╛ рд╣реИред 2012 рдХреЗ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдзрди рдЙрдЧрд╛рд╣рдиреЗ рд╡рд╛рд▓реЗ рдЕрднрд┐рдпрд╛рди рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рдереА ред рдФрд░ рдЬреВрди 2013 рдореЗрдВ рдзрди рдЙрдЧрд╛рд╣реА рдЕрднрд┐рдпрд╛рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ , рдЬрд┐рд╕рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ 20 рд╣рдЬрд╛рд░ рдбреЙрд▓рд░ рдорд┐рд▓реЗред рдЗрд╕ рдмреАрдЪ, рдПрдбреЛрдм (рдЬреЛ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкреЗрдЯреЗрдВрдЯ рдХреЗ рд╕рд╛рде рддрдХрдиреАрдХреА рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдмрд╛рдзрд╛ рдерд╛!) тАЛтАЛрдФрд░ Google рдиреЗ рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдХрдИ рд╕реБрдзрд╛рд░ рдХрд┐рдП, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдпрд╛рджрдЧрд╛рд░ рд╣рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ред рдХрдИ рдЕрдиреНрдп рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдЗрд╕рдиреЗ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ - рдлреНрд░реАрдЯрд╛рдЗрдк 2.5 ред

рд░рд┐рд▓реАрдЬ рдХреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ
2.4.2 рдФрд░ 2.5 рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди

I. рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧ рдлрд┐рдХреНрд╕

- рдХреИрд╢ рдкреНрд░рдмрдВрдзрдХ рдлрд╝рдВрдХреНрд╢рди `FTC_Manager_ResetтАЩ рдлреНрд▓рд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдХреИрд╢ред

рджреНрд╡рд┐рддреАрдпред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди

- Behadad Esfahbod (Google рдХреА рдУрд░ рд╕реЗ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛
рд░рдВрдЧ рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдореИрдк (рдЬреИрд╕реЗред рд░рдВрдЧ рдЗрдореЛрдЬреА)ред

рдПрдХ рдирдпрд╛ рд▓реЛрдб рдлреНрд▓реИрдЧ, FT_LOAD_COLOR, рдлреНрд░реА рдЯрд╛рдЗрдк рд▓реЛрдб рдХрд▓рд░ рдмрдирд╛рддрд╛ рд╣реИ
рдЗрд╕ рдбреНрд░рд╛рдлреНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рдж рдПрдореНрдмреЗрдбреЗрдб-рдмрд┐рдЯрдореИрдк

color-emoji.googlecode.com/git/specification/v1.html

рдЬреЛ рджреЛ рдирдП SFNT рдЯреЗрдмрд▓, `CBDT 'рдФрд░` CBLC' (рдирд╛рдо рдФрд░) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдХреНрд░рдорд╢рдГ `EBDTтАЩ рдФрд░ after EBLC тАЩрдХреЗ рдмрд╛рдж рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рдЧрдИ)ред рд░рдВрдЧ
рдмрд┐рдЯрдореИрдкреНрд╕ рдХреЛ рдирдП FT_PIXEL_MODE_BGRA рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
BGRA рдкреВрд░реНрд╡-рдЧреБрдгрд╛ sRGB рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд░ PNG рд╕рдкреЛрд░реНрдЯ рд╣реИ
рдЙрдкрд▓рдмреНрдз, рдкреАрдПрдирдЬреА рд░рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЙрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд░рдВрдЧ рдмрд┐рдЯрдореИрдкреНрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ
рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдкреВрдЫрд╛ред

- рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреБрд░рд╛рдирд╛ рдлреНрд░реА рдЯрд╛рдЗрдк рд╕реАрдПрдлрдПрдл
рдЗрдВрдЬрди рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИред рдпрд╣ рд╕рд╢рд░реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд┐рдиреНрдпрд╛рд╕ рдореИрдХреНрд░реЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд
CFF_CONFIG_OPTION_OLD_ENGINEред

- рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдХреНрд░реЛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдХреЛрдб
FT_CONFIG_OPTION_OLD_INTERNALS рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рд╣реИрдВ
рдЕрдкреНрд░рдЪрд▓рд┐рддред

рддреГрддреАрдпред рд╡рд┐рд╡рд┐рдз

- рд╕рдВрдкрддреНрддрд┐ рдПрдкреАрдЖрдИ (`FT_Property_Get 'рдФрд░` FT_Property_Set') рд╣реИ
рдЕрдм рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдкрд╡рд╛рдж, рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдСрдЯреЛ-рд╣рд┐рдВрдЯрд░ рд╣реИрдВ
рдЧреБрдг `рдЧреНрд▓рд┐рдлрд╝-рдЯреВ-рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдореИрдктАЩ рдФрд░ `рдлрд╝реЙрд▓рдмреИрдХ-рд╕реНрдХреНрд░рд┐рдкреНрдЯтАЩ рдЬреЛ рд╣реИрдВ
рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрдиред

- 'ftview' рдХреЛ рд░рдВрдЧреАрди рдПрдореНрдмреЗрдбреЗрдб рдмрд┐рдЯрдореИрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рдпрд╣
рдХреБрдВрдЬреА 'c' рдХреЗ рд╕рд╛рде рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЫреЛрдЯреЗ рдХреИрд╢ рдЯреЙрдЧрд▓
рдЕрдм рдХреБрдВрдЬреА `K 'рд╣реИред

- рдЯреНрд░реВ рдЯрд╛рдЗрдк рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЕрдм рд╕рдВрднрд╡ рд╣реИ
hinting рдЗрдВрдЬрди рдирдП `рджреБрднрд╛рд╖рд┐рдпрд╛-рд╕рдВрд╕реНрдХрд░рдг 'рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
`truetype 'рдореЙрдбреНрдпреВрд▓: рд╕рдВрд╕реНрдХрд░рдг 35 рдФрд░ 38 (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рд╣реИрдВ
рд╕рдорд░реНрдерд┐рдд, рдЬреЛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЕрдХреНрд╖рдо рдФрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрдд рд╣реИ
рдХреНрд░рдорд╢рдГ рдЙрдк-рдкрд┐рдВрдб рд╕рдВрдХреЗрдд, рд╕рдорд░реНрдердиред

`рдлрд╝реБрдЯрд╡реНрдпреВ` рдФрд░` рдПрдлрдбреАрдЯреАрдПрдл` рджреЛрдиреЛрдВ рдореЗрдВ, рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛
рд╕рдВрд╕реНрдХрд░рдг рдХреБрдВрдЬреА 'рдПрдЪ' рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред `Ftbench 'рдбреЗрдореЛ рдореЗрдВ
рдХрд╛рд░реНрдпрдХреНрд░рдо, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк `-H 'рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЧреИрд░-рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдгред

- 'ttdebug' рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ,
рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк `-HтАЩ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
рдЗрдВрдЬрдиред

- рдЯреНрд░реВ рдЯрд╛рдЗрдк рд╕рдмрдкрд┐рдХреНрд╕рд▓ рд╣рд┐рдВрдЯрд┐рдВрдЧ рдлрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдФрд░ рджреМрд░ред

- 'рдПрдкрд┐рдиреЗрдо' рдЯреВрд▓ рдЕрдм NetWare рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдпрд╛рдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

- рдирдП рд╕реАрдПрдлрдПрдл рдЗрдВрдЬрди рдХрд╛ 64 рдмрд┐рдЯ рд╕рдВрдХрд▓рди рдмрдЧреНрдЧреА рдерд╛ред

- рдореЗрдореЛрд░реА-рддрдВрдЧ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдордЬрдмреВрддреА рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдзрд╛рд░ред

1ред
рдЫрд╡рд┐

2ред
рдЫрд╡рд┐
FreeType рд▓рд╛рдЗрдЯ рдСрдЯреЛ рд╕рдВрдХреЗрдд (рд╕рдмрд╕реЗ рдЖрдо рд╕реЗрдЯрд┐рдВрдЧ) рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреЗ CFF Rasterizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЫрд╡рд┐
FreeType Adobe CFF Rasterizer (рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ CFF Rasterizer) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд░рд┐рдПрдХреНрдЯреЛрд╕ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬреАрддрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореБрдлреНрдд рдореЗрдВ рдПрдХ рдЙрдиреНрдирдд рдлрд╝реЙрдиреНрдЯ рдЗрдВрдЬрди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИред

Source: https://habr.com/ru/post/In192882/


All Articles