From c3e259f4d29e9bdcb73617ad8e4d71f117b4d289 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 30 Oct 2021 13:28:39 +0800 Subject: +freetype --- ThirdParty/freetype/CMakeLists.txt | 510 - ThirdParty/freetype/ChangeLog | 8954 ++++++---- ThirdParty/freetype/ChangeLog.20 | 2613 --- ThirdParty/freetype/ChangeLog.21 | 9438 ---------- ThirdParty/freetype/ChangeLog.22 | 2837 --- ThirdParty/freetype/ChangeLog.23 | 7948 --------- ThirdParty/freetype/ChangeLog.24 | 6360 ------- ThirdParty/freetype/ChangeLog.25 | 5161 ------ ThirdParty/freetype/ChangeLog.26 | 5711 ------ ThirdParty/freetype/ChangeLog.27 | 2106 --- ThirdParty/freetype/ChangeLog.28 | 3136 ---- ThirdParty/freetype/FTL.TXT | 169 + ThirdParty/freetype/GPLv2.TXT | 340 + ThirdParty/freetype/Jamfile | 223 - ThirdParty/freetype/Jamrules | 71 - ThirdParty/freetype/LICENSE.TXT | 42 + ThirdParty/freetype/Makefile | 34 - ThirdParty/freetype/README | 84 - ThirdParty/freetype/README.git | 50 - ThirdParty/freetype/README.md | 23 + ThirdParty/freetype/autogen.sh | 165 - ThirdParty/freetype/builds/amiga/README | 110 - .../builds/amiga/include/config/ftconfig.h | 55 - .../builds/amiga/include/config/ftmodule.h | 160 - ThirdParty/freetype/builds/amiga/makefile | 293 - ThirdParty/freetype/builds/amiga/makefile.os4 | 297 - ThirdParty/freetype/builds/amiga/smakefile | 299 - .../freetype/builds/amiga/src/base/ftdebug.c | 348 - .../freetype/builds/amiga/src/base/ftsystem.c | 530 - ThirdParty/freetype/builds/ansi/ansi-def.mk | 77 - ThirdParty/freetype/builds/ansi/ansi.mk | 21 - ThirdParty/freetype/builds/atari/ATARI.H | 20 - ThirdParty/freetype/builds/atari/FNames.SIC | 37 - ThirdParty/freetype/builds/atari/FREETYPE.PRJ | 32 - ThirdParty/freetype/builds/atari/README.TXT | 51 - ThirdParty/freetype/builds/atari/deflinejoiner.awk | 181 - .../freetype/builds/atari/gen-purec-patch.sh | 40 - ThirdParty/freetype/builds/beos/beos-def.mk | 79 - ThirdParty/freetype/builds/beos/beos.mk | 19 - ThirdParty/freetype/builds/beos/detect.mk | 41 - .../freetype/builds/cmake/FindHarfBuzz.cmake | 81 - ThirdParty/freetype/builds/cmake/iOS.cmake | 270 - ThirdParty/freetype/builds/cmake/testbuild.sh | 157 - ThirdParty/freetype/builds/compiler/ansi-cc.mk | 80 - ThirdParty/freetype/builds/compiler/bcc-dev.mk | 86 - ThirdParty/freetype/builds/compiler/bcc.mk | 86 - ThirdParty/freetype/builds/compiler/emx.mk | 77 - ThirdParty/freetype/builds/compiler/gcc-dev.mk | 95 - ThirdParty/freetype/builds/compiler/gcc.mk | 77 - ThirdParty/freetype/builds/compiler/intelc.mk | 85 - ThirdParty/freetype/builds/compiler/unix-lcc.mk | 83 - ThirdParty/freetype/builds/compiler/visualage.mk | 76 - ThirdParty/freetype/builds/compiler/visualc.mk | 82 - ThirdParty/freetype/builds/compiler/watcom.mk | 81 - ThirdParty/freetype/builds/compiler/win-lcc.mk | 81 - ThirdParty/freetype/builds/detect.mk | 128 - ThirdParty/freetype/builds/dos/detect.mk | 152 - ThirdParty/freetype/builds/dos/dos-def.mk | 48 - ThirdParty/freetype/builds/dos/dos-emx.mk | 21 - ThirdParty/freetype/builds/dos/dos-gcc.mk | 21 - ThirdParty/freetype/builds/dos/dos-wat.mk | 20 - ThirdParty/freetype/builds/exports.mk | 80 - ThirdParty/freetype/builds/freetype.mk | 392 - ThirdParty/freetype/builds/link_dos.mk | 42 - ThirdParty/freetype/builds/link_std.mk | 42 - .../freetype/builds/mac/FreeType.m68k_cfm.make.txt | 209 - .../freetype/builds/mac/FreeType.m68k_far.make.txt | 208 - .../builds/mac/FreeType.ppc_carbon.make.txt | 212 - .../builds/mac/FreeType.ppc_classic.make.txt | 213 - ThirdParty/freetype/builds/mac/README | 401 - ThirdParty/freetype/builds/mac/ascii2mpw.py | 24 - ThirdParty/freetype/builds/mac/freetype-Info.plist | 36 - ThirdParty/freetype/builds/mac/ftlib.prj.xml | 1194 -- ThirdParty/freetype/builds/mac/ftmac.c | 1543 -- ThirdParty/freetype/builds/modules.mk | 79 - ThirdParty/freetype/builds/os2/detect.mk | 81 - ThirdParty/freetype/builds/os2/os2-def.mk | 48 - ThirdParty/freetype/builds/os2/os2-dev.mk | 30 - ThirdParty/freetype/builds/os2/os2-gcc.mk | 26 - ThirdParty/freetype/builds/symbian/bld.inf | 72 - ThirdParty/freetype/builds/symbian/freetype.mmp | 146 - ThirdParty/freetype/builds/toplevel.mk | 274 - ThirdParty/freetype/builds/unix/aclocal.m4 | 9159 ---------- ThirdParty/freetype/builds/unix/config.guess | 1493 -- ThirdParty/freetype/builds/unix/config.sub | 1795 -- ThirdParty/freetype/builds/unix/configure | 17365 ------------------- ThirdParty/freetype/builds/unix/configure.ac | 1145 -- ThirdParty/freetype/builds/unix/configure.raw | 1145 -- ThirdParty/freetype/builds/unix/detect.mk | 99 - ThirdParty/freetype/builds/unix/freetype-config.in | 211 - ThirdParty/freetype/builds/unix/freetype2.in | 14 - ThirdParty/freetype/builds/unix/freetype2.m4 | 194 - ThirdParty/freetype/builds/unix/ft-munmap.m4 | 32 - ThirdParty/freetype/builds/unix/ftconfig.in | 603 - ThirdParty/freetype/builds/unix/ftsystem.c | 420 - ThirdParty/freetype/builds/unix/install-sh | 501 - ThirdParty/freetype/builds/unix/install.mk | 102 - ThirdParty/freetype/builds/unix/ltmain.sh | 11147 ------------ ThirdParty/freetype/builds/unix/pkg.m4 | 199 - ThirdParty/freetype/builds/unix/unix-cc.in | 121 - ThirdParty/freetype/builds/unix/unix-def.in | 160 - ThirdParty/freetype/builds/unix/unix-dev.mk | 26 - ThirdParty/freetype/builds/unix/unix-lcc.mk | 24 - ThirdParty/freetype/builds/unix/unix.mk | 62 - ThirdParty/freetype/builds/unix/unixddef.mk | 49 - ThirdParty/freetype/builds/vms/ftconfig.h | 557 - ThirdParty/freetype/builds/vms/ftsystem.c | 328 - ThirdParty/freetype/builds/wince/ftdebug.c | 354 - .../freetype/builds/wince/vc2005-ce/freetype.sln | 157 - .../builds/wince/vc2005-ce/freetype.vcproj | 874 - .../freetype/builds/wince/vc2005-ce/index.html | 47 - .../freetype/builds/wince/vc2008-ce/freetype.sln | 157 - .../builds/wince/vc2008-ce/freetype.vcproj | 3508 ---- .../freetype/builds/wince/vc2008-ce/index.html | 47 - ThirdParty/freetype/builds/windows/detect.mk | 202 - ThirdParty/freetype/builds/windows/ftdebug.c | 331 - .../freetype/builds/windows/vc2010/freetype.sln | 37 - .../builds/windows/vc2010/freetype.user.props | 68 - .../builds/windows/vc2010/freetype.vcxproj | 351 - .../builds/windows/vc2010/freetype.vcxproj.filters | 140 - .../freetype/builds/windows/vc2010/index.html | 40 - .../freetype/builds/windows/visualc/freetype.dsp | 354 - .../freetype/builds/windows/visualc/freetype.dsw | 29 - .../freetype/builds/windows/visualc/freetype.sln | 25 - .../builds/windows/visualc/freetype.vcproj | 546 - .../freetype/builds/windows/visualc/index.html | 38 - .../freetype/builds/windows/visualce/freetype.dsp | 383 - .../freetype/builds/windows/visualce/freetype.dsw | 29 - .../builds/windows/visualce/freetype.vcproj | 3697 ---- .../freetype/builds/windows/visualce/index.html | 47 - ThirdParty/freetype/builds/windows/w32-bcc.mk | 28 - ThirdParty/freetype/builds/windows/w32-bccd.mk | 26 - ThirdParty/freetype/builds/windows/w32-dev.mk | 32 - ThirdParty/freetype/builds/windows/w32-gcc.mk | 31 - ThirdParty/freetype/builds/windows/w32-icc.mk | 28 - ThirdParty/freetype/builds/windows/w32-intl.mk | 28 - ThirdParty/freetype/builds/windows/w32-lcc.mk | 24 - ThirdParty/freetype/builds/windows/w32-mingw32.mk | 33 - ThirdParty/freetype/builds/windows/w32-vcc.mk | 28 - ThirdParty/freetype/builds/windows/w32-wat.mk | 28 - ThirdParty/freetype/builds/windows/win32-def.mk | 51 - ThirdParty/freetype/configure | 137 - ThirdParty/freetype/devel/ft2build.h | 40 - ThirdParty/freetype/devel/ftoption.h | 982 -- ThirdParty/freetype/docs/CHANGES | 5162 ------ ThirdParty/freetype/docs/CMAKE | 2 - ThirdParty/freetype/docs/CUSTOMIZE | 152 - ThirdParty/freetype/docs/DEBUG | 203 - ThirdParty/freetype/docs/DOCGUIDE | 298 - ThirdParty/freetype/docs/FTL.TXT | 169 - ThirdParty/freetype/docs/GPLv2.TXT | 340 - ThirdParty/freetype/docs/INSTALL | 90 - ThirdParty/freetype/docs/INSTALL.ANY | 154 - ThirdParty/freetype/docs/INSTALL.CROSS | 177 - ThirdParty/freetype/docs/INSTALL.GNU | 161 - ThirdParty/freetype/docs/INSTALL.MAC | 32 - ThirdParty/freetype/docs/INSTALL.UNIX | 118 - ThirdParty/freetype/docs/INSTALL.VMS | 62 - ThirdParty/freetype/docs/LICENSE.TXT | 39 - ThirdParty/freetype/docs/MAKEPP | 5 - ThirdParty/freetype/docs/PROBLEMS | 90 - ThirdParty/freetype/docs/TODO | 40 - ThirdParty/freetype/docs/VERSIONS.TXT | 128 - ThirdParty/freetype/docs/formats.txt | 208 - ThirdParty/freetype/docs/freetype-config.1 | 146 - ThirdParty/freetype/docs/raster.txt | 635 - ThirdParty/freetype/docs/reference/README | 35 - ThirdParty/freetype/docs/reference/site/404.html | 1034 -- .../reference/site/assets/fonts/font-awesome.css | 4 - .../reference/site/assets/fonts/material-icons.css | 13 - .../site/assets/fonts/specimen/FontAwesome.ttf | Bin 165548 -> 0 bytes .../site/assets/fonts/specimen/FontAwesome.woff | Bin 98024 -> 0 bytes .../site/assets/fonts/specimen/FontAwesome.woff2 | Bin 77160 -> 0 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 128180 -> 0 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 57620 -> 0 bytes .../fonts/specimen/MaterialIcons-Regular.woff2 | Bin 44300 -> 0 bytes .../docs/reference/site/assets/images/favicon.png | Bin 521 -> 0 bytes .../assets/images/icons/bitbucket.1b09e088.svg | 20 - .../site/assets/images/icons/github.f0b8504a.svg | 18 - .../site/assets/images/icons/gitlab.6dd19c00.svg | 38 - .../assets/javascripts/application.d9aa80ab.js | 6 - .../site/assets/javascripts/lunr/lunr.da.js | 1 - .../site/assets/javascripts/lunr/lunr.de.js | 1 - .../site/assets/javascripts/lunr/lunr.du.js | 1 - .../site/assets/javascripts/lunr/lunr.es.js | 1 - .../site/assets/javascripts/lunr/lunr.fi.js | 1 - .../site/assets/javascripts/lunr/lunr.fr.js | 1 - .../site/assets/javascripts/lunr/lunr.hu.js | 1 - .../site/assets/javascripts/lunr/lunr.it.js | 1 - .../site/assets/javascripts/lunr/lunr.ja.js | 1 - .../site/assets/javascripts/lunr/lunr.jp.js | 1 - .../site/assets/javascripts/lunr/lunr.multi.js | 1 - .../site/assets/javascripts/lunr/lunr.nl.js | 1 - .../site/assets/javascripts/lunr/lunr.no.js | 1 - .../site/assets/javascripts/lunr/lunr.pt.js | 1 - .../site/assets/javascripts/lunr/lunr.ro.js | 1 - .../site/assets/javascripts/lunr/lunr.ru.js | 1 - .../javascripts/lunr/lunr.stemmer.support.js | 1 - .../site/assets/javascripts/lunr/lunr.sv.js | 1 - .../site/assets/javascripts/lunr/lunr.th.js | 1 - .../site/assets/javascripts/lunr/lunr.tr.js | 1 - .../site/assets/javascripts/lunr/tinyseg.js | 1 - .../site/assets/javascripts/lunr/wordcut.js | 1 - .../site/assets/javascripts/modernizr.1f0bcf2b.js | 1 - .../stylesheets/application-palette.224b79ff.css | 1 - .../assets/stylesheets/application.982221ab.css | 1 - .../docs/reference/site/ft2-auto_hinter.html | 1155 -- .../docs/reference/site/ft2-base_interface.html | 5341 ------ .../docs/reference/site/ft2-basic_types.html | 2422 --- .../docs/reference/site/ft2-bdf_fonts.html | 1387 -- .../docs/reference/site/ft2-bitmap_handling.html | 1522 -- .../freetype/docs/reference/site/ft2-bzip2.html | 1200 -- .../docs/reference/site/ft2-cache_subsystem.html | 2425 --- .../docs/reference/site/ft2-cff_driver.html | 1163 -- .../docs/reference/site/ft2-cid_fonts.html | 1320 -- .../docs/reference/site/ft2-color_management.html | 1471 -- .../docs/reference/site/ft2-computations.html | 2074 --- .../docs/reference/site/ft2-error_code_values.html | 1395 -- .../reference/site/ft2-error_enumerations.html | 1241 -- .../docs/reference/site/ft2-font_formats.html | 1197 -- .../docs/reference/site/ft2-gasp_table.html | 1255 -- .../docs/reference/site/ft2-glyph_management.html | 1860 -- .../docs/reference/site/ft2-glyph_stroker.html | 2154 --- .../docs/reference/site/ft2-glyph_variants.html | 1399 -- .../docs/reference/site/ft2-gx_validation.html | 1482 -- .../freetype/docs/reference/site/ft2-gzip.html | 1269 -- .../reference/site/ft2-header_file_macros.html | 2355 --- .../docs/reference/site/ft2-header_inclusion.html | 1159 -- .../docs/reference/site/ft2-incremental.html | 1531 -- .../freetype/docs/reference/site/ft2-index.html | 2141 --- .../docs/reference/site/ft2-layer_management.html | 1313 -- .../docs/reference/site/ft2-lcd_rendering.html | 1420 -- .../docs/reference/site/ft2-list_processing.html | 1660 -- .../freetype/docs/reference/site/ft2-lzw.html | 1200 -- .../docs/reference/site/ft2-mac_specific.html | 1501 -- .../docs/reference/site/ft2-module_management.html | 2225 --- .../docs/reference/site/ft2-multiple_masters.html | 2126 --- .../docs/reference/site/ft2-ot_validation.html | 1326 -- .../reference/site/ft2-outline_processing.html | 2314 --- .../docs/reference/site/ft2-parameter_tags.html | 1352 -- .../docs/reference/site/ft2-pcf_driver.html | 1154 -- .../docs/reference/site/ft2-pfr_fonts.html | 1324 -- .../docs/reference/site/ft2-properties.html | 1919 -- .../docs/reference/site/ft2-quick_advance.html | 1303 -- .../freetype/docs/reference/site/ft2-raster.html | 1742 -- .../docs/reference/site/ft2-sfnt_names.html | 1417 -- .../docs/reference/site/ft2-sizes_management.html | 1282 -- .../docs/reference/site/ft2-system_interface.html | 1576 -- .../docs/reference/site/ft2-t1_cid_driver.html | 1157 -- .../docs/reference/site/ft2-truetype_engine.html | 1240 -- .../docs/reference/site/ft2-truetype_tables.html | 3227 ---- .../docs/reference/site/ft2-tt_driver.html | 1170 -- .../docs/reference/site/ft2-type1_tables.html | 2155 --- .../docs/reference/site/ft2-user_allocation.html | 1153 -- .../freetype/docs/reference/site/ft2-version.html | 1341 -- .../docs/reference/site/ft2-winfnt_fonts.html | 1401 -- .../freetype/docs/reference/site/images/favico.ico | Bin 1150 -> 0 bytes ThirdParty/freetype/docs/reference/site/index.html | 1273 -- .../docs/reference/site/javascripts/extra.js | 54 - .../docs/reference/site/search/search_index.json | 1 - .../freetype/docs/reference/site/sitemap.xml | 258 - .../freetype/docs/reference/site/sitemap.xml.gz | Bin 222 -> 0 bytes .../docs/reference/site/stylesheets/extra.css | 221 - ThirdParty/freetype/docs/release | 202 - .../freetype/include/freetype/config/ftconfig.h | 532 +- .../freetype/include/freetype/config/ftheader.h | 64 +- .../freetype/include/freetype/config/ftmodule.h | 8 +- .../freetype/include/freetype/config/ftoption.h | 85 +- .../freetype/include/freetype/config/ftstdlib.h | 2 +- .../include/freetype/config/integer-types.h | 245 + .../freetype/include/freetype/config/mac-support.h | 49 + .../include/freetype/config/public-macros.h | 120 + ThirdParty/freetype/include/freetype/freetype.h | 387 +- ThirdParty/freetype/include/freetype/ftadvanc.h | 6 +- ThirdParty/freetype/include/freetype/ftbbox.h | 5 +- ThirdParty/freetype/include/freetype/ftbdf.h | 5 +- ThirdParty/freetype/include/freetype/ftbitmap.h | 7 +- ThirdParty/freetype/include/freetype/ftbzip2.h | 24 +- ThirdParty/freetype/include/freetype/ftcache.h | 9 +- ThirdParty/freetype/include/freetype/ftchapters.h | 2 + ThirdParty/freetype/include/freetype/ftcid.h | 5 +- ThirdParty/freetype/include/freetype/ftcolor.h | 1316 +- ThirdParty/freetype/include/freetype/ftdriver.h | 83 +- ThirdParty/freetype/include/freetype/fterrdef.h | 2 +- ThirdParty/freetype/include/freetype/fterrors.h | 29 +- ThirdParty/freetype/include/freetype/ftfntfmt.h | 5 +- ThirdParty/freetype/include/freetype/ftgasp.h | 5 +- ThirdParty/freetype/include/freetype/ftglyph.h | 7 +- ThirdParty/freetype/include/freetype/ftgxval.h | 5 +- ThirdParty/freetype/include/freetype/ftgzip.h | 24 +- ThirdParty/freetype/include/freetype/ftimage.h | 150 +- ThirdParty/freetype/include/freetype/ftincrem.h | 22 +- ThirdParty/freetype/include/freetype/ftlcdfil.h | 51 +- ThirdParty/freetype/include/freetype/ftlist.h | 5 +- ThirdParty/freetype/include/freetype/ftlogging.h | 184 + ThirdParty/freetype/include/freetype/ftlzw.h | 24 +- ThirdParty/freetype/include/freetype/ftmac.h | 3 +- ThirdParty/freetype/include/freetype/ftmm.h | 5 +- ThirdParty/freetype/include/freetype/ftmodapi.h | 41 +- ThirdParty/freetype/include/freetype/ftmoderr.h | 5 +- ThirdParty/freetype/include/freetype/ftotval.h | 5 +- ThirdParty/freetype/include/freetype/ftoutln.h | 21 +- ThirdParty/freetype/include/freetype/ftparams.h | 5 +- ThirdParty/freetype/include/freetype/ftpfr.h | 5 +- ThirdParty/freetype/include/freetype/ftrender.h | 7 +- ThirdParty/freetype/include/freetype/ftsizes.h | 5 +- ThirdParty/freetype/include/freetype/ftsnames.h | 7 +- ThirdParty/freetype/include/freetype/ftstroke.h | 43 +- ThirdParty/freetype/include/freetype/ftsynth.h | 5 +- ThirdParty/freetype/include/freetype/ftsystem.h | 3 +- ThirdParty/freetype/include/freetype/fttrigon.h | 4 +- ThirdParty/freetype/include/freetype/fttypes.h | 6 +- ThirdParty/freetype/include/freetype/ftwinfnt.h | 7 +- .../freetype/include/freetype/internal/autohint.h | 232 - .../freetype/include/freetype/internal/cffotypes.h | 108 - .../freetype/include/freetype/internal/cfftypes.h | 417 - .../freetype/include/freetype/internal/ftcalc.h | 510 - .../freetype/include/freetype/internal/ftdebug.h | 283 - .../freetype/include/freetype/internal/ftdrv.h | 288 - .../freetype/include/freetype/internal/ftgloadr.h | 149 - .../freetype/include/freetype/internal/fthash.h | 136 - .../freetype/include/freetype/internal/ftmemory.h | 392 - .../freetype/include/freetype/internal/ftobjs.h | 1236 -- .../freetype/include/freetype/internal/ftpsprop.h | 48 - .../freetype/include/freetype/internal/ftrfork.h | 246 - .../freetype/include/freetype/internal/ftserv.h | 521 - .../freetype/include/freetype/internal/ftstream.h | 561 - .../freetype/include/freetype/internal/fttrace.h | 156 - .../freetype/include/freetype/internal/ftvalid.h | 159 - .../freetype/include/freetype/internal/internal.h | 66 - .../freetype/include/freetype/internal/psaux.h | 1439 -- .../freetype/include/freetype/internal/pshints.h | 700 - .../include/freetype/internal/services/svbdf.h | 66 - .../include/freetype/internal/services/svcfftl.h | 90 - .../include/freetype/internal/services/svcid.h | 69 - .../include/freetype/internal/services/svfntfmt.h | 55 - .../include/freetype/internal/services/svgldict.h | 72 - .../include/freetype/internal/services/svgxval.h | 72 - .../include/freetype/internal/services/svkern.h | 51 - .../include/freetype/internal/services/svmetric.h | 125 - .../include/freetype/internal/services/svmm.h | 156 - .../include/freetype/internal/services/svotval.h | 55 - .../include/freetype/internal/services/svpfr.h | 66 - .../include/freetype/internal/services/svpostnm.h | 65 - .../include/freetype/internal/services/svprop.h | 66 - .../include/freetype/internal/services/svpscmap.h | 145 - .../include/freetype/internal/services/svpsinfo.h | 86 - .../include/freetype/internal/services/svsfnt.h | 88 - .../include/freetype/internal/services/svttcmap.h | 90 - .../include/freetype/internal/services/svtteng.h | 53 - .../include/freetype/internal/services/svttglyf.h | 56 - .../include/freetype/internal/services/svwinfnt.h | 50 - .../freetype/include/freetype/internal/sfnt.h | 875 - .../freetype/include/freetype/internal/t1types.h | 260 - .../freetype/include/freetype/internal/tttypes.h | 1854 -- ThirdParty/freetype/include/freetype/t1tables.h | 5 +- ThirdParty/freetype/include/freetype/ttnameid.h | 3 +- ThirdParty/freetype/include/freetype/tttables.h | 5 +- ThirdParty/freetype/include/freetype/tttags.h | 6 +- ThirdParty/freetype/include/ft2build.h | 10 +- ThirdParty/freetype/modules.cfg | 247 - ThirdParty/freetype/objs/README | 2 - ThirdParty/freetype/release dll/win32/freetype.dll | Bin 0 -> 706048 bytes ThirdParty/freetype/release dll/win32/freetype.lib | Bin 0 -> 49486 bytes ThirdParty/freetype/release dll/win64/freetype.dll | Bin 0 -> 868352 bytes ThirdParty/freetype/release dll/win64/freetype.lib | Bin 0 -> 48402 bytes ThirdParty/freetype/release static/README.TXT | 1 + .../release static/vs2015-2019/win32/freetype.lib | Bin 0 -> 3689862 bytes .../release static/vs2015-2019/win64/freetype.lib | Bin 0 -> 4124048 bytes ThirdParty/freetype/src/Jamfile | 19 - ThirdParty/freetype/src/autofit/Jamfile | 53 - ThirdParty/freetype/src/autofit/afangles.c | 285 - ThirdParty/freetype/src/autofit/afangles.h | 7 - ThirdParty/freetype/src/autofit/afblue.c | 739 - ThirdParty/freetype/src/autofit/afblue.cin | 39 - ThirdParty/freetype/src/autofit/afblue.dat | 1072 -- ThirdParty/freetype/src/autofit/afblue.h | 414 - ThirdParty/freetype/src/autofit/afblue.hin | 146 - ThirdParty/freetype/src/autofit/afcjk.c | 2405 --- ThirdParty/freetype/src/autofit/afcjk.h | 141 - ThirdParty/freetype/src/autofit/afcover.h | 105 - ThirdParty/freetype/src/autofit/afdummy.c | 77 - ThirdParty/freetype/src/autofit/afdummy.h | 40 - ThirdParty/freetype/src/autofit/aferrors.h | 42 - ThirdParty/freetype/src/autofit/afglobal.c | 498 - ThirdParty/freetype/src/autofit/afglobal.h | 173 - ThirdParty/freetype/src/autofit/afhints.c | 1720 -- ThirdParty/freetype/src/autofit/afhints.h | 487 - ThirdParty/freetype/src/autofit/afindic.c | 157 - ThirdParty/freetype/src/autofit/afindic.h | 41 - ThirdParty/freetype/src/autofit/aflatin.c | 3604 ---- ThirdParty/freetype/src/autofit/aflatin.h | 194 - ThirdParty/freetype/src/autofit/aflatin2.c | 2428 --- ThirdParty/freetype/src/autofit/aflatin2.h | 46 - ThirdParty/freetype/src/autofit/afloader.c | 720 - ThirdParty/freetype/src/autofit/afloader.h | 91 - ThirdParty/freetype/src/autofit/afmodule.c | 574 - ThirdParty/freetype/src/autofit/afmodule.h | 58 - ThirdParty/freetype/src/autofit/afranges.c | 1033 -- ThirdParty/freetype/src/autofit/afranges.h | 47 - ThirdParty/freetype/src/autofit/afscript.h | 390 - ThirdParty/freetype/src/autofit/afshaper.c | 676 - ThirdParty/freetype/src/autofit/afshaper.h | 72 - ThirdParty/freetype/src/autofit/afstyles.h | 475 - ThirdParty/freetype/src/autofit/aftypes.h | 573 - ThirdParty/freetype/src/autofit/afwarp.c | 373 - ThirdParty/freetype/src/autofit/afwarp.h | 66 - ThirdParty/freetype/src/autofit/afwrtsys.h | 52 - ThirdParty/freetype/src/autofit/autofit.c | 38 - ThirdParty/freetype/src/autofit/module.mk | 23 - ThirdParty/freetype/src/autofit/rules.mk | 88 - ThirdParty/freetype/src/base/Jamfile | 90 - ThirdParty/freetype/src/base/ftadvanc.c | 175 - ThirdParty/freetype/src/base/ftbase.c | 42 - ThirdParty/freetype/src/base/ftbase.h | 78 - ThirdParty/freetype/src/base/ftbbox.c | 531 - ThirdParty/freetype/src/base/ftbdf.c | 91 - ThirdParty/freetype/src/base/ftbitmap.c | 1170 -- ThirdParty/freetype/src/base/ftcalc.c | 1089 -- ThirdParty/freetype/src/base/ftcid.c | 118 - ThirdParty/freetype/src/base/ftcolor.c | 157 - ThirdParty/freetype/src/base/ftdbgmem.c | 999 -- ThirdParty/freetype/src/base/ftdebug.c | 319 - ThirdParty/freetype/src/base/fterrors.c | 45 - ThirdParty/freetype/src/base/ftfntfmt.c | 55 - ThirdParty/freetype/src/base/ftfstype.c | 62 - ThirdParty/freetype/src/base/ftgasp.c | 61 - ThirdParty/freetype/src/base/ftgloadr.c | 364 - ThirdParty/freetype/src/base/ftglyph.c | 656 - ThirdParty/freetype/src/base/ftgxval.c | 142 - ThirdParty/freetype/src/base/fthash.c | 339 - ThirdParty/freetype/src/base/ftinit.c | 252 - ThirdParty/freetype/src/base/ftlcdfil.c | 438 - ThirdParty/freetype/src/base/ftmac.c | 1090 -- ThirdParty/freetype/src/base/ftmm.c | 569 - ThirdParty/freetype/src/base/ftobjs.c | 5550 ------ ThirdParty/freetype/src/base/ftotval.c | 91 - ThirdParty/freetype/src/base/ftoutln.c | 1097 -- ThirdParty/freetype/src/base/ftpatent.c | 51 - ThirdParty/freetype/src/base/ftpfr.c | 153 - ThirdParty/freetype/src/base/ftpsprop.c | 285 - ThirdParty/freetype/src/base/ftrfork.c | 943 - ThirdParty/freetype/src/base/ftsnames.c | 186 - ThirdParty/freetype/src/base/ftstream.c | 868 - ThirdParty/freetype/src/base/ftstroke.c | 2455 --- ThirdParty/freetype/src/base/ftsynth.c | 163 - ThirdParty/freetype/src/base/ftsystem.c | 333 - ThirdParty/freetype/src/base/fttrigon.c | 518 - ThirdParty/freetype/src/base/fttype1.c | 127 - ThirdParty/freetype/src/base/ftutil.c | 443 - ThirdParty/freetype/src/base/ftver.rc | 61 - ThirdParty/freetype/src/base/ftwinfnt.c | 53 - ThirdParty/freetype/src/base/md5.c | 291 - ThirdParty/freetype/src/base/md5.h | 45 - ThirdParty/freetype/src/base/rules.mk | 108 - ThirdParty/freetype/src/bdf/Jamfile | 31 - ThirdParty/freetype/src/bdf/README | 148 - ThirdParty/freetype/src/bdf/bdf.c | 35 - ThirdParty/freetype/src/bdf/bdf.h | 258 - ThirdParty/freetype/src/bdf/bdfdrivr.c | 1017 -- ThirdParty/freetype/src/bdf/bdfdrivr.h | 73 - ThirdParty/freetype/src/bdf/bdferror.h | 45 - ThirdParty/freetype/src/bdf/bdflib.c | 2416 --- ThirdParty/freetype/src/bdf/module.mk | 34 - ThirdParty/freetype/src/bdf/rules.mk | 84 - ThirdParty/freetype/src/bzip2/Jamfile | 18 - ThirdParty/freetype/src/bzip2/ftbzip2.c | 521 - ThirdParty/freetype/src/bzip2/rules.mk | 64 - ThirdParty/freetype/src/cache/Jamfile | 37 - ThirdParty/freetype/src/cache/ftcache.c | 32 - ThirdParty/freetype/src/cache/ftcbasic.c | 632 - ThirdParty/freetype/src/cache/ftccache.c | 621 - ThirdParty/freetype/src/cache/ftccache.h | 352 - ThirdParty/freetype/src/cache/ftccback.h | 92 - ThirdParty/freetype/src/cache/ftccmap.c | 327 - ThirdParty/freetype/src/cache/ftcerror.h | 42 - ThirdParty/freetype/src/cache/ftcglyph.c | 219 - ThirdParty/freetype/src/cache/ftcglyph.h | 329 - ThirdParty/freetype/src/cache/ftcimage.c | 164 - ThirdParty/freetype/src/cache/ftcimage.h | 107 - ThirdParty/freetype/src/cache/ftcmanag.c | 700 - ThirdParty/freetype/src/cache/ftcmanag.h | 176 - ThirdParty/freetype/src/cache/ftcmru.c | 357 - ThirdParty/freetype/src/cache/ftcmru.h | 248 - ThirdParty/freetype/src/cache/ftcsbits.c | 423 - ThirdParty/freetype/src/cache/ftcsbits.h | 103 - ThirdParty/freetype/src/cache/rules.mk | 85 - ThirdParty/freetype/src/cff/Jamfile | 36 - ThirdParty/freetype/src/cff/cff.c | 29 - ThirdParty/freetype/src/cff/cffcmap.c | 232 - ThirdParty/freetype/src/cff/cffcmap.h | 67 - ThirdParty/freetype/src/cff/cffdrivr.c | 1165 -- ThirdParty/freetype/src/cff/cffdrivr.h | 36 - ThirdParty/freetype/src/cff/cfferrs.h | 42 - ThirdParty/freetype/src/cff/cffgload.c | 683 - ThirdParty/freetype/src/cff/cffgload.h | 63 - ThirdParty/freetype/src/cff/cffload.c | 2571 --- ThirdParty/freetype/src/cff/cffload.h | 125 - ThirdParty/freetype/src/cff/cffobjs.c | 1206 -- ThirdParty/freetype/src/cff/cffobjs.h | 85 - ThirdParty/freetype/src/cff/cffparse.c | 1559 -- ThirdParty/freetype/src/cff/cffparse.h | 136 - ThirdParty/freetype/src/cff/cfftoken.h | 150 - ThirdParty/freetype/src/cff/module.mk | 23 - ThirdParty/freetype/src/cff/rules.mk | 75 - ThirdParty/freetype/src/cid/Jamfile | 34 - ThirdParty/freetype/src/cid/ciderrs.h | 41 - ThirdParty/freetype/src/cid/cidgload.c | 530 - ThirdParty/freetype/src/cid/cidgload.h | 51 - ThirdParty/freetype/src/cid/cidload.c | 941 - ThirdParty/freetype/src/cid/cidload.h | 53 - ThirdParty/freetype/src/cid/cidobjs.c | 534 - ThirdParty/freetype/src/cid/cidobjs.h | 154 - ThirdParty/freetype/src/cid/cidparse.c | 277 - ThirdParty/freetype/src/cid/cidparse.h | 131 - ThirdParty/freetype/src/cid/cidriver.c | 256 - ThirdParty/freetype/src/cid/cidriver.h | 37 - ThirdParty/freetype/src/cid/cidtoken.h | 115 - ThirdParty/freetype/src/cid/module.mk | 23 - ThirdParty/freetype/src/cid/rules.mk | 73 - ThirdParty/freetype/src/cid/type1cid.c | 29 - ThirdParty/freetype/src/gxvalid/Jamfile | 52 - ThirdParty/freetype/src/gxvalid/README | 532 - ThirdParty/freetype/src/gxvalid/gxvalid.c | 47 - ThirdParty/freetype/src/gxvalid/gxvalid.h | 108 - ThirdParty/freetype/src/gxvalid/gxvbsln.c | 334 - ThirdParty/freetype/src/gxvalid/gxvcommn.c | 1746 -- ThirdParty/freetype/src/gxvalid/gxvcommn.h | 582 - ThirdParty/freetype/src/gxvalid/gxverror.h | 51 - ThirdParty/freetype/src/gxvalid/gxvfeat.c | 339 - ThirdParty/freetype/src/gxvalid/gxvfeat.h | 173 - ThirdParty/freetype/src/gxvalid/gxvfgen.c | 483 - ThirdParty/freetype/src/gxvalid/gxvjust.c | 721 - ThirdParty/freetype/src/gxvalid/gxvkern.c | 920 - ThirdParty/freetype/src/gxvalid/gxvlcar.c | 224 - ThirdParty/freetype/src/gxvalid/gxvmod.c | 285 - ThirdParty/freetype/src/gxvalid/gxvmod.h | 47 - ThirdParty/freetype/src/gxvalid/gxvmort.c | 301 - ThirdParty/freetype/src/gxvalid/gxvmort.h | 94 - ThirdParty/freetype/src/gxvalid/gxvmort0.c | 152 - ThirdParty/freetype/src/gxvalid/gxvmort1.c | 260 - ThirdParty/freetype/src/gxvalid/gxvmort2.c | 312 - ThirdParty/freetype/src/gxvalid/gxvmort4.c | 126 - ThirdParty/freetype/src/gxvalid/gxvmort5.c | 234 - ThirdParty/freetype/src/gxvalid/gxvmorx.c | 199 - ThirdParty/freetype/src/gxvalid/gxvmorx.h | 68 - ThirdParty/freetype/src/gxvalid/gxvmorx0.c | 112 - ThirdParty/freetype/src/gxvalid/gxvmorx1.c | 278 - ThirdParty/freetype/src/gxvalid/gxvmorx2.c | 331 - ThirdParty/freetype/src/gxvalid/gxvmorx4.c | 56 - ThirdParty/freetype/src/gxvalid/gxvmorx5.c | 226 - ThirdParty/freetype/src/gxvalid/gxvopbd.c | 218 - ThirdParty/freetype/src/gxvalid/gxvprop.c | 330 - ThirdParty/freetype/src/gxvalid/gxvtrak.c | 288 - ThirdParty/freetype/src/gxvalid/module.mk | 23 - ThirdParty/freetype/src/gxvalid/rules.mk | 98 - ThirdParty/freetype/src/gzip/Jamfile | 16 - ThirdParty/freetype/src/gzip/adler32.c | 48 - ThirdParty/freetype/src/gzip/ftgzip.c | 812 - ThirdParty/freetype/src/gzip/ftzconf.h | 284 - ThirdParty/freetype/src/gzip/infblock.c | 387 - ThirdParty/freetype/src/gzip/infblock.h | 36 - ThirdParty/freetype/src/gzip/infcodes.c | 250 - ThirdParty/freetype/src/gzip/infcodes.h | 31 - ThirdParty/freetype/src/gzip/inffixed.h | 151 - ThirdParty/freetype/src/gzip/inflate.c | 273 - ThirdParty/freetype/src/gzip/inftrees.c | 468 - ThirdParty/freetype/src/gzip/inftrees.h | 63 - ThirdParty/freetype/src/gzip/infutil.c | 86 - ThirdParty/freetype/src/gzip/infutil.h | 98 - ThirdParty/freetype/src/gzip/rules.mk | 83 - ThirdParty/freetype/src/gzip/zlib.h | 830 - ThirdParty/freetype/src/gzip/zutil.c | 181 - ThirdParty/freetype/src/gzip/zutil.h | 215 - ThirdParty/freetype/src/lzw/Jamfile | 16 - ThirdParty/freetype/src/lzw/ftlzw.c | 416 - ThirdParty/freetype/src/lzw/ftzopen.c | 424 - ThirdParty/freetype/src/lzw/ftzopen.h | 172 - ThirdParty/freetype/src/lzw/rules.mk | 72 - ThirdParty/freetype/src/otvalid/Jamfile | 37 - ThirdParty/freetype/src/otvalid/module.mk | 23 - ThirdParty/freetype/src/otvalid/otvalid.c | 32 - ThirdParty/freetype/src/otvalid/otvalid.h | 78 - ThirdParty/freetype/src/otvalid/otvbase.c | 345 - ThirdParty/freetype/src/otvalid/otvcommn.c | 1096 -- ThirdParty/freetype/src/otvalid/otvcommn.h | 467 - ThirdParty/freetype/src/otvalid/otverror.h | 42 - ThirdParty/freetype/src/otvalid/otvgdef.c | 303 - ThirdParty/freetype/src/otvalid/otvgpos.c | 1051 -- ThirdParty/freetype/src/otvalid/otvgpos.h | 36 - ThirdParty/freetype/src/otvalid/otvgsub.c | 617 - ThirdParty/freetype/src/otvalid/otvjstf.c | 259 - ThirdParty/freetype/src/otvalid/otvmath.c | 453 - ThirdParty/freetype/src/otvalid/otvmod.c | 282 - ThirdParty/freetype/src/otvalid/otvmod.h | 39 - ThirdParty/freetype/src/otvalid/rules.mk | 81 - ThirdParty/freetype/src/pcf/Jamfile | 32 - ThirdParty/freetype/src/pcf/README | 96 - ThirdParty/freetype/src/pcf/module.mk | 34 - ThirdParty/freetype/src/pcf/pcf.c | 36 - ThirdParty/freetype/src/pcf/pcf.h | 251 - ThirdParty/freetype/src/pcf/pcfdrivr.c | 848 - ThirdParty/freetype/src/pcf/pcfdrivr.h | 45 - ThirdParty/freetype/src/pcf/pcferror.h | 41 - ThirdParty/freetype/src/pcf/pcfread.c | 1732 -- ThirdParty/freetype/src/pcf/pcfread.h | 45 - ThirdParty/freetype/src/pcf/pcfutil.c | 104 - ThirdParty/freetype/src/pcf/pcfutil.h | 55 - ThirdParty/freetype/src/pcf/rules.mk | 82 - ThirdParty/freetype/src/pfr/Jamfile | 35 - ThirdParty/freetype/src/pfr/module.mk | 23 - ThirdParty/freetype/src/pfr/pfr.c | 30 - ThirdParty/freetype/src/pfr/pfrcmap.c | 177 - ThirdParty/freetype/src/pfr/pfrcmap.h | 46 - ThirdParty/freetype/src/pfr/pfrdrivr.c | 213 - ThirdParty/freetype/src/pfr/pfrdrivr.h | 37 - ThirdParty/freetype/src/pfr/pfrerror.h | 41 - ThirdParty/freetype/src/pfr/pfrgload.c | 851 - ThirdParty/freetype/src/pfr/pfrgload.h | 49 - ThirdParty/freetype/src/pfr/pfrload.c | 1049 -- ThirdParty/freetype/src/pfr/pfrload.h | 123 - ThirdParty/freetype/src/pfr/pfrobjs.c | 600 - ThirdParty/freetype/src/pfr/pfrobjs.h | 96 - ThirdParty/freetype/src/pfr/pfrsbit.c | 808 - ThirdParty/freetype/src/pfr/pfrsbit.h | 37 - ThirdParty/freetype/src/pfr/pfrtypes.h | 332 - ThirdParty/freetype/src/pfr/rules.mk | 76 - ThirdParty/freetype/src/psaux/Jamfile | 45 - ThirdParty/freetype/src/psaux/afmparse.c | 986 -- ThirdParty/freetype/src/psaux/afmparse.h | 89 - ThirdParty/freetype/src/psaux/cffdecode.c | 2420 --- ThirdParty/freetype/src/psaux/cffdecode.h | 64 - ThirdParty/freetype/src/psaux/module.mk | 23 - ThirdParty/freetype/src/psaux/psarrst.c | 241 - ThirdParty/freetype/src/psaux/psarrst.h | 100 - ThirdParty/freetype/src/psaux/psaux.c | 41 - ThirdParty/freetype/src/psaux/psauxerr.h | 42 - ThirdParty/freetype/src/psaux/psauxmod.c | 191 - ThirdParty/freetype/src/psaux/psauxmod.h | 47 - ThirdParty/freetype/src/psaux/psblues.c | 582 - ThirdParty/freetype/src/psaux/psblues.h | 185 - ThirdParty/freetype/src/psaux/psconv.c | 611 - ThirdParty/freetype/src/psaux/psconv.h | 71 - ThirdParty/freetype/src/psaux/pserror.c | 52 - ThirdParty/freetype/src/psaux/pserror.h | 119 - ThirdParty/freetype/src/psaux/psfixed.h | 95 - ThirdParty/freetype/src/psaux/psfont.c | 567 - ThirdParty/freetype/src/psaux/psfont.h | 134 - ThirdParty/freetype/src/psaux/psft.c | 897 - ThirdParty/freetype/src/psaux/psft.h | 167 - ThirdParty/freetype/src/psaux/psglue.h | 144 - ThirdParty/freetype/src/psaux/pshints.c | 1936 --- ThirdParty/freetype/src/psaux/pshints.h | 288 - ThirdParty/freetype/src/psaux/psintrp.c | 3044 ---- ThirdParty/freetype/src/psaux/psintrp.h | 83 - ThirdParty/freetype/src/psaux/psobjs.c | 2599 --- ThirdParty/freetype/src/psaux/psobjs.h | 313 - ThirdParty/freetype/src/psaux/psread.c | 112 - ThirdParty/freetype/src/psaux/psread.h | 68 - ThirdParty/freetype/src/psaux/psstack.c | 331 - ThirdParty/freetype/src/psaux/psstack.h | 121 - ThirdParty/freetype/src/psaux/pstypes.h | 78 - ThirdParty/freetype/src/psaux/rules.mk | 89 - ThirdParty/freetype/src/psaux/t1cmap.c | 374 - ThirdParty/freetype/src/psaux/t1cmap.h | 105 - ThirdParty/freetype/src/psaux/t1decode.c | 2011 --- ThirdParty/freetype/src/psaux/t1decode.h | 74 - ThirdParty/freetype/src/pshinter/Jamfile | 34 - ThirdParty/freetype/src/pshinter/module.mk | 23 - ThirdParty/freetype/src/pshinter/pshalgo.c | 2195 --- ThirdParty/freetype/src/pshinter/pshalgo.h | 241 - ThirdParty/freetype/src/pshinter/pshglob.c | 796 - ThirdParty/freetype/src/pshinter/pshglob.h | 196 - ThirdParty/freetype/src/pshinter/pshinter.c | 28 - ThirdParty/freetype/src/pshinter/pshmod.c | 120 - ThirdParty/freetype/src/pshinter/pshmod.h | 39 - ThirdParty/freetype/src/pshinter/pshnterr.h | 41 - ThirdParty/freetype/src/pshinter/pshrec.c | 1220 -- ThirdParty/freetype/src/pshinter/pshrec.h | 172 - ThirdParty/freetype/src/pshinter/rules.mk | 75 - ThirdParty/freetype/src/psnames/Jamfile | 31 - ThirdParty/freetype/src/psnames/module.mk | 23 - ThirdParty/freetype/src/psnames/psmodule.c | 621 - ThirdParty/freetype/src/psnames/psmodule.h | 38 - ThirdParty/freetype/src/psnames/psnamerr.h | 42 - ThirdParty/freetype/src/psnames/psnames.c | 25 - ThirdParty/freetype/src/psnames/pstables.h | 4238 ----- ThirdParty/freetype/src/psnames/rules.mk | 73 - ThirdParty/freetype/src/raster/Jamfile | 32 - ThirdParty/freetype/src/raster/ftmisc.h | 142 - ThirdParty/freetype/src/raster/ftraster.c | 3322 ---- ThirdParty/freetype/src/raster/ftraster.h | 46 - ThirdParty/freetype/src/raster/ftrend1.c | 207 - ThirdParty/freetype/src/raster/ftrend1.h | 38 - ThirdParty/freetype/src/raster/module.mk | 23 - ThirdParty/freetype/src/raster/raster.c | 26 - ThirdParty/freetype/src/raster/rasterrs.h | 42 - ThirdParty/freetype/src/raster/rules.mk | 72 - ThirdParty/freetype/src/sfnt/Jamfile | 42 - ThirdParty/freetype/src/sfnt/module.mk | 23 - ThirdParty/freetype/src/sfnt/pngshim.c | 456 - ThirdParty/freetype/src/sfnt/pngshim.h | 51 - ThirdParty/freetype/src/sfnt/rules.mk | 82 - ThirdParty/freetype/src/sfnt/sfdriver.c | 1305 -- ThirdParty/freetype/src/sfnt/sfdriver.h | 36 - ThirdParty/freetype/src/sfnt/sferrors.h | 41 - ThirdParty/freetype/src/sfnt/sfnt.c | 37 - ThirdParty/freetype/src/sfnt/sfobjs.c | 1843 -- ThirdParty/freetype/src/sfnt/sfobjs.h | 59 - ThirdParty/freetype/src/sfnt/ttbdf.c | 257 - ThirdParty/freetype/src/sfnt/ttbdf.h | 50 - ThirdParty/freetype/src/sfnt/ttcmap.c | 3885 ----- ThirdParty/freetype/src/sfnt/ttcmap.h | 122 - ThirdParty/freetype/src/sfnt/ttcmapc.h | 56 - ThirdParty/freetype/src/sfnt/ttcolr.c | 451 - ThirdParty/freetype/src/sfnt/ttcolr.h | 58 - ThirdParty/freetype/src/sfnt/ttcpal.c | 311 - ThirdParty/freetype/src/sfnt/ttcpal.h | 49 - ThirdParty/freetype/src/sfnt/ttkern.c | 311 - ThirdParty/freetype/src/sfnt/ttkern.h | 52 - ThirdParty/freetype/src/sfnt/ttload.c | 1458 -- ThirdParty/freetype/src/sfnt/ttload.h | 112 - ThirdParty/freetype/src/sfnt/ttmtx.c | 337 - ThirdParty/freetype/src/sfnt/ttmtx.h | 55 - ThirdParty/freetype/src/sfnt/ttpost.c | 578 - ThirdParty/freetype/src/sfnt/ttpost.h | 46 - ThirdParty/freetype/src/sfnt/ttsbit.c | 1682 -- ThirdParty/freetype/src/sfnt/ttsbit.h | 63 - ThirdParty/freetype/src/smooth/Jamfile | 32 - ThirdParty/freetype/src/smooth/ftgrays.c | 1951 --- ThirdParty/freetype/src/smooth/ftgrays.h | 57 - ThirdParty/freetype/src/smooth/ftsmerrs.h | 42 - ThirdParty/freetype/src/smooth/ftsmooth.c | 503 - ThirdParty/freetype/src/smooth/ftsmooth.h | 42 - ThirdParty/freetype/src/smooth/module.mk | 27 - ThirdParty/freetype/src/smooth/rules.mk | 73 - ThirdParty/freetype/src/smooth/smooth.c | 26 - ThirdParty/freetype/src/tools/Jamfile | 5 - ThirdParty/freetype/src/tools/afblue.pl | 551 - ThirdParty/freetype/src/tools/apinames.c | 481 - ThirdParty/freetype/src/tools/chktrcmp.py | 114 - ThirdParty/freetype/src/tools/cordic.py | 33 - ThirdParty/freetype/src/tools/ftrandom/Makefile | 45 - ThirdParty/freetype/src/tools/ftrandom/README | 69 - ThirdParty/freetype/src/tools/ftrandom/ftrandom.c | 720 - ThirdParty/freetype/src/tools/glnames.py | 5540 ------ ThirdParty/freetype/src/tools/no-copyright | 65 - ThirdParty/freetype/src/tools/test_afm.c | 157 - ThirdParty/freetype/src/tools/test_bbox.c | 188 - ThirdParty/freetype/src/tools/test_trig.c | 258 - ThirdParty/freetype/src/tools/update-copyright | 14 - .../freetype/src/tools/update-copyright-year | 138 - ThirdParty/freetype/src/truetype/Jamfile | 37 - ThirdParty/freetype/src/truetype/module.mk | 23 - ThirdParty/freetype/src/truetype/rules.mk | 76 - ThirdParty/freetype/src/truetype/truetype.c | 31 - ThirdParty/freetype/src/truetype/ttdriver.c | 664 - ThirdParty/freetype/src/truetype/ttdriver.h | 36 - ThirdParty/freetype/src/truetype/tterrors.h | 42 - ThirdParty/freetype/src/truetype/ttgload.c | 2932 ---- ThirdParty/freetype/src/truetype/ttgload.h | 62 - ThirdParty/freetype/src/truetype/ttgxvar.c | 4242 ----- ThirdParty/freetype/src/truetype/ttgxvar.h | 453 - ThirdParty/freetype/src/truetype/ttinterp.c | 8617 --------- ThirdParty/freetype/src/truetype/ttinterp.h | 541 - ThirdParty/freetype/src/truetype/ttobjs.c | 1468 -- ThirdParty/freetype/src/truetype/ttobjs.h | 425 - ThirdParty/freetype/src/truetype/ttpload.c | 652 - ThirdParty/freetype/src/truetype/ttpload.h | 75 - ThirdParty/freetype/src/truetype/ttsubpix.c | 1014 -- ThirdParty/freetype/src/truetype/ttsubpix.h | 111 - ThirdParty/freetype/src/type1/Jamfile | 35 - ThirdParty/freetype/src/type1/module.mk | 23 - ThirdParty/freetype/src/type1/rules.mk | 76 - ThirdParty/freetype/src/type1/t1afm.c | 415 - ThirdParty/freetype/src/type1/t1afm.h | 54 - ThirdParty/freetype/src/type1/t1driver.c | 798 - ThirdParty/freetype/src/type1/t1driver.h | 36 - ThirdParty/freetype/src/type1/t1errors.h | 41 - ThirdParty/freetype/src/type1/t1gload.c | 607 - ThirdParty/freetype/src/type1/t1gload.h | 53 - ThirdParty/freetype/src/type1/t1load.c | 2712 --- ThirdParty/freetype/src/type1/t1load.h | 127 - ThirdParty/freetype/src/type1/t1objs.c | 654 - ThirdParty/freetype/src/type1/t1objs.h | 160 - ThirdParty/freetype/src/type1/t1parse.c | 525 - ThirdParty/freetype/src/type1/t1parse.h | 138 - ThirdParty/freetype/src/type1/t1tokens.h | 143 - ThirdParty/freetype/src/type1/type1.c | 30 - ThirdParty/freetype/src/type42/Jamfile | 32 - ThirdParty/freetype/src/type42/module.mk | 23 - ThirdParty/freetype/src/type42/rules.mk | 73 - ThirdParty/freetype/src/type42/t42drivr.c | 246 - ThirdParty/freetype/src/type42/t42drivr.h | 37 - ThirdParty/freetype/src/type42/t42error.h | 41 - ThirdParty/freetype/src/type42/t42objs.c | 690 - ThirdParty/freetype/src/type42/t42objs.h | 124 - ThirdParty/freetype/src/type42/t42parse.c | 1314 -- ThirdParty/freetype/src/type42/t42parse.h | 91 - ThirdParty/freetype/src/type42/t42types.h | 57 - ThirdParty/freetype/src/type42/type42.c | 27 - ThirdParty/freetype/src/winfonts/Jamfile | 16 - ThirdParty/freetype/src/winfonts/fnterrs.h | 42 - ThirdParty/freetype/src/winfonts/module.mk | 23 - ThirdParty/freetype/src/winfonts/rules.mk | 68 - ThirdParty/freetype/src/winfonts/winfnt.c | 1200 -- ThirdParty/freetype/src/winfonts/winfnt.h | 165 - ThirdParty/freetype/version.sed | 5 - ThirdParty/freetype/vms_make.com | 1286 -- 809 files changed, 9038 insertions(+), 413338 deletions(-) delete mode 100644 ThirdParty/freetype/CMakeLists.txt delete mode 100644 ThirdParty/freetype/ChangeLog.20 delete mode 100644 ThirdParty/freetype/ChangeLog.21 delete mode 100644 ThirdParty/freetype/ChangeLog.22 delete mode 100644 ThirdParty/freetype/ChangeLog.23 delete mode 100644 ThirdParty/freetype/ChangeLog.24 delete mode 100644 ThirdParty/freetype/ChangeLog.25 delete mode 100644 ThirdParty/freetype/ChangeLog.26 delete mode 100644 ThirdParty/freetype/ChangeLog.27 delete mode 100644 ThirdParty/freetype/ChangeLog.28 create mode 100644 ThirdParty/freetype/FTL.TXT create mode 100644 ThirdParty/freetype/GPLv2.TXT delete mode 100644 ThirdParty/freetype/Jamfile delete mode 100644 ThirdParty/freetype/Jamrules create mode 100644 ThirdParty/freetype/LICENSE.TXT delete mode 100644 ThirdParty/freetype/Makefile delete mode 100644 ThirdParty/freetype/README delete mode 100644 ThirdParty/freetype/README.git create mode 100644 ThirdParty/freetype/README.md delete mode 100644 ThirdParty/freetype/autogen.sh delete mode 100644 ThirdParty/freetype/builds/amiga/README delete mode 100644 ThirdParty/freetype/builds/amiga/include/config/ftconfig.h delete mode 100644 ThirdParty/freetype/builds/amiga/include/config/ftmodule.h delete mode 100644 ThirdParty/freetype/builds/amiga/makefile delete mode 100644 ThirdParty/freetype/builds/amiga/makefile.os4 delete mode 100644 ThirdParty/freetype/builds/amiga/smakefile delete mode 100644 ThirdParty/freetype/builds/amiga/src/base/ftdebug.c delete mode 100644 ThirdParty/freetype/builds/amiga/src/base/ftsystem.c delete mode 100644 ThirdParty/freetype/builds/ansi/ansi-def.mk delete mode 100644 ThirdParty/freetype/builds/ansi/ansi.mk delete mode 100644 ThirdParty/freetype/builds/atari/ATARI.H delete mode 100644 ThirdParty/freetype/builds/atari/FNames.SIC delete mode 100644 ThirdParty/freetype/builds/atari/FREETYPE.PRJ delete mode 100644 ThirdParty/freetype/builds/atari/README.TXT delete mode 100644 ThirdParty/freetype/builds/atari/deflinejoiner.awk delete mode 100644 ThirdParty/freetype/builds/atari/gen-purec-patch.sh delete mode 100644 ThirdParty/freetype/builds/beos/beos-def.mk delete mode 100644 ThirdParty/freetype/builds/beos/beos.mk delete mode 100644 ThirdParty/freetype/builds/beos/detect.mk delete mode 100644 ThirdParty/freetype/builds/cmake/FindHarfBuzz.cmake delete mode 100644 ThirdParty/freetype/builds/cmake/iOS.cmake delete mode 100644 ThirdParty/freetype/builds/cmake/testbuild.sh delete mode 100644 ThirdParty/freetype/builds/compiler/ansi-cc.mk delete mode 100644 ThirdParty/freetype/builds/compiler/bcc-dev.mk delete mode 100644 ThirdParty/freetype/builds/compiler/bcc.mk delete mode 100644 ThirdParty/freetype/builds/compiler/emx.mk delete mode 100644 ThirdParty/freetype/builds/compiler/gcc-dev.mk delete mode 100644 ThirdParty/freetype/builds/compiler/gcc.mk delete mode 100644 ThirdParty/freetype/builds/compiler/intelc.mk delete mode 100644 ThirdParty/freetype/builds/compiler/unix-lcc.mk delete mode 100644 ThirdParty/freetype/builds/compiler/visualage.mk delete mode 100644 ThirdParty/freetype/builds/compiler/visualc.mk delete mode 100644 ThirdParty/freetype/builds/compiler/watcom.mk delete mode 100644 ThirdParty/freetype/builds/compiler/win-lcc.mk delete mode 100644 ThirdParty/freetype/builds/detect.mk delete mode 100644 ThirdParty/freetype/builds/dos/detect.mk delete mode 100644 ThirdParty/freetype/builds/dos/dos-def.mk delete mode 100644 ThirdParty/freetype/builds/dos/dos-emx.mk delete mode 100644 ThirdParty/freetype/builds/dos/dos-gcc.mk delete mode 100644 ThirdParty/freetype/builds/dos/dos-wat.mk delete mode 100644 ThirdParty/freetype/builds/exports.mk delete mode 100644 ThirdParty/freetype/builds/freetype.mk delete mode 100644 ThirdParty/freetype/builds/link_dos.mk delete mode 100644 ThirdParty/freetype/builds/link_std.mk delete mode 100644 ThirdParty/freetype/builds/mac/FreeType.m68k_cfm.make.txt delete mode 100644 ThirdParty/freetype/builds/mac/FreeType.m68k_far.make.txt delete mode 100644 ThirdParty/freetype/builds/mac/FreeType.ppc_carbon.make.txt delete mode 100644 ThirdParty/freetype/builds/mac/FreeType.ppc_classic.make.txt delete mode 100644 ThirdParty/freetype/builds/mac/README delete mode 100644 ThirdParty/freetype/builds/mac/ascii2mpw.py delete mode 100644 ThirdParty/freetype/builds/mac/freetype-Info.plist delete mode 100644 ThirdParty/freetype/builds/mac/ftlib.prj.xml delete mode 100644 ThirdParty/freetype/builds/mac/ftmac.c delete mode 100644 ThirdParty/freetype/builds/modules.mk delete mode 100644 ThirdParty/freetype/builds/os2/detect.mk delete mode 100644 ThirdParty/freetype/builds/os2/os2-def.mk delete mode 100644 ThirdParty/freetype/builds/os2/os2-dev.mk delete mode 100644 ThirdParty/freetype/builds/os2/os2-gcc.mk delete mode 100644 ThirdParty/freetype/builds/symbian/bld.inf delete mode 100644 ThirdParty/freetype/builds/symbian/freetype.mmp delete mode 100644 ThirdParty/freetype/builds/toplevel.mk delete mode 100644 ThirdParty/freetype/builds/unix/aclocal.m4 delete mode 100644 ThirdParty/freetype/builds/unix/config.guess delete mode 100644 ThirdParty/freetype/builds/unix/config.sub delete mode 100644 ThirdParty/freetype/builds/unix/configure delete mode 100644 ThirdParty/freetype/builds/unix/configure.ac delete mode 100644 ThirdParty/freetype/builds/unix/configure.raw delete mode 100644 ThirdParty/freetype/builds/unix/detect.mk delete mode 100644 ThirdParty/freetype/builds/unix/freetype-config.in delete mode 100644 ThirdParty/freetype/builds/unix/freetype2.in delete mode 100644 ThirdParty/freetype/builds/unix/freetype2.m4 delete mode 100644 ThirdParty/freetype/builds/unix/ft-munmap.m4 delete mode 100644 ThirdParty/freetype/builds/unix/ftconfig.in delete mode 100644 ThirdParty/freetype/builds/unix/ftsystem.c delete mode 100644 ThirdParty/freetype/builds/unix/install-sh delete mode 100644 ThirdParty/freetype/builds/unix/install.mk delete mode 100644 ThirdParty/freetype/builds/unix/ltmain.sh delete mode 100644 ThirdParty/freetype/builds/unix/pkg.m4 delete mode 100644 ThirdParty/freetype/builds/unix/unix-cc.in delete mode 100644 ThirdParty/freetype/builds/unix/unix-def.in delete mode 100644 ThirdParty/freetype/builds/unix/unix-dev.mk delete mode 100644 ThirdParty/freetype/builds/unix/unix-lcc.mk delete mode 100644 ThirdParty/freetype/builds/unix/unix.mk delete mode 100644 ThirdParty/freetype/builds/unix/unixddef.mk delete mode 100644 ThirdParty/freetype/builds/vms/ftconfig.h delete mode 100644 ThirdParty/freetype/builds/vms/ftsystem.c delete mode 100644 ThirdParty/freetype/builds/wince/ftdebug.c delete mode 100644 ThirdParty/freetype/builds/wince/vc2005-ce/freetype.sln delete mode 100644 ThirdParty/freetype/builds/wince/vc2005-ce/freetype.vcproj delete mode 100644 ThirdParty/freetype/builds/wince/vc2005-ce/index.html delete mode 100644 ThirdParty/freetype/builds/wince/vc2008-ce/freetype.sln delete mode 100644 ThirdParty/freetype/builds/wince/vc2008-ce/freetype.vcproj delete mode 100644 ThirdParty/freetype/builds/wince/vc2008-ce/index.html delete mode 100644 ThirdParty/freetype/builds/windows/detect.mk delete mode 100644 ThirdParty/freetype/builds/windows/ftdebug.c delete mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.sln delete mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.user.props delete mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.vcxproj delete mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.vcxproj.filters delete mode 100644 ThirdParty/freetype/builds/windows/vc2010/index.html delete mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.dsp delete mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.dsw delete mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.sln delete mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.vcproj delete mode 100644 ThirdParty/freetype/builds/windows/visualc/index.html delete mode 100644 ThirdParty/freetype/builds/windows/visualce/freetype.dsp delete mode 100644 ThirdParty/freetype/builds/windows/visualce/freetype.dsw delete mode 100644 ThirdParty/freetype/builds/windows/visualce/freetype.vcproj delete mode 100644 ThirdParty/freetype/builds/windows/visualce/index.html delete mode 100644 ThirdParty/freetype/builds/windows/w32-bcc.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-bccd.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-dev.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-gcc.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-icc.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-intl.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-lcc.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-mingw32.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-vcc.mk delete mode 100644 ThirdParty/freetype/builds/windows/w32-wat.mk delete mode 100644 ThirdParty/freetype/builds/windows/win32-def.mk delete mode 100644 ThirdParty/freetype/configure delete mode 100644 ThirdParty/freetype/devel/ft2build.h delete mode 100644 ThirdParty/freetype/devel/ftoption.h delete mode 100644 ThirdParty/freetype/docs/CHANGES delete mode 100644 ThirdParty/freetype/docs/CMAKE delete mode 100644 ThirdParty/freetype/docs/CUSTOMIZE delete mode 100644 ThirdParty/freetype/docs/DEBUG delete mode 100644 ThirdParty/freetype/docs/DOCGUIDE delete mode 100644 ThirdParty/freetype/docs/FTL.TXT delete mode 100644 ThirdParty/freetype/docs/GPLv2.TXT delete mode 100644 ThirdParty/freetype/docs/INSTALL delete mode 100644 ThirdParty/freetype/docs/INSTALL.ANY delete mode 100644 ThirdParty/freetype/docs/INSTALL.CROSS delete mode 100644 ThirdParty/freetype/docs/INSTALL.GNU delete mode 100644 ThirdParty/freetype/docs/INSTALL.MAC delete mode 100644 ThirdParty/freetype/docs/INSTALL.UNIX delete mode 100644 ThirdParty/freetype/docs/INSTALL.VMS delete mode 100644 ThirdParty/freetype/docs/LICENSE.TXT delete mode 100644 ThirdParty/freetype/docs/MAKEPP delete mode 100644 ThirdParty/freetype/docs/PROBLEMS delete mode 100644 ThirdParty/freetype/docs/TODO delete mode 100644 ThirdParty/freetype/docs/VERSIONS.TXT delete mode 100644 ThirdParty/freetype/docs/formats.txt delete mode 100644 ThirdParty/freetype/docs/freetype-config.1 delete mode 100644 ThirdParty/freetype/docs/raster.txt delete mode 100644 ThirdParty/freetype/docs/reference/README delete mode 100644 ThirdParty/freetype/docs/reference/site/404.html delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/font-awesome.css delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/material-icons.css delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.ttf delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.woff delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.woff2 delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.ttf delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.woff delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.woff2 delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/favicon.png delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/icons/bitbucket.1b09e088.svg delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/icons/github.f0b8504a.svg delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/icons/gitlab.6dd19c00.svg delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/application.d9aa80ab.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.da.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.de.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.du.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.es.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.fi.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.fr.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.hu.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.it.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.ja.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.jp.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.multi.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.nl.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.no.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.pt.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.ro.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.ru.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.stemmer.support.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.sv.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.th.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.tr.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/tinyseg.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/wordcut.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/modernizr.1f0bcf2b.js delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/stylesheets/application-palette.224b79ff.css delete mode 100644 ThirdParty/freetype/docs/reference/site/assets/stylesheets/application.982221ab.css delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-auto_hinter.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-base_interface.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-basic_types.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-bdf_fonts.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-bitmap_handling.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-bzip2.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-cache_subsystem.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-cff_driver.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-cid_fonts.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-color_management.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-computations.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-error_code_values.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-error_enumerations.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-font_formats.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-gasp_table.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-glyph_management.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-glyph_stroker.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-glyph_variants.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-gx_validation.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-gzip.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-header_file_macros.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-header_inclusion.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-incremental.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-index.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-layer_management.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-lcd_rendering.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-list_processing.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-lzw.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-mac_specific.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-module_management.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-multiple_masters.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-ot_validation.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-outline_processing.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-parameter_tags.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-pcf_driver.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-pfr_fonts.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-properties.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-quick_advance.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-raster.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-sfnt_names.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-sizes_management.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-system_interface.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-t1_cid_driver.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-truetype_engine.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-truetype_tables.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-tt_driver.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-type1_tables.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-user_allocation.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-version.html delete mode 100644 ThirdParty/freetype/docs/reference/site/ft2-winfnt_fonts.html delete mode 100644 ThirdParty/freetype/docs/reference/site/images/favico.ico delete mode 100644 ThirdParty/freetype/docs/reference/site/index.html delete mode 100644 ThirdParty/freetype/docs/reference/site/javascripts/extra.js delete mode 100644 ThirdParty/freetype/docs/reference/site/search/search_index.json delete mode 100644 ThirdParty/freetype/docs/reference/site/sitemap.xml delete mode 100644 ThirdParty/freetype/docs/reference/site/sitemap.xml.gz delete mode 100644 ThirdParty/freetype/docs/reference/site/stylesheets/extra.css delete mode 100644 ThirdParty/freetype/docs/release create mode 100644 ThirdParty/freetype/include/freetype/config/integer-types.h create mode 100644 ThirdParty/freetype/include/freetype/config/mac-support.h create mode 100644 ThirdParty/freetype/include/freetype/config/public-macros.h create mode 100644 ThirdParty/freetype/include/freetype/ftlogging.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/autohint.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/cffotypes.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/cfftypes.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftcalc.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftdebug.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftdrv.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftgloadr.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/fthash.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftmemory.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftobjs.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftpsprop.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftrfork.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftserv.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftstream.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/fttrace.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/ftvalid.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/internal.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/psaux.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/pshints.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svbdf.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svcfftl.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svcid.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svfntfmt.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svgldict.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svgxval.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svkern.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svmetric.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svmm.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svotval.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpfr.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpostnm.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svprop.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpscmap.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpsinfo.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svsfnt.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svttcmap.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svtteng.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svttglyf.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/services/svwinfnt.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/sfnt.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/t1types.h delete mode 100644 ThirdParty/freetype/include/freetype/internal/tttypes.h delete mode 100644 ThirdParty/freetype/modules.cfg delete mode 100644 ThirdParty/freetype/objs/README create mode 100644 ThirdParty/freetype/release dll/win32/freetype.dll create mode 100644 ThirdParty/freetype/release dll/win32/freetype.lib create mode 100644 ThirdParty/freetype/release dll/win64/freetype.dll create mode 100644 ThirdParty/freetype/release dll/win64/freetype.lib create mode 100644 ThirdParty/freetype/release static/README.TXT create mode 100644 ThirdParty/freetype/release static/vs2015-2019/win32/freetype.lib create mode 100644 ThirdParty/freetype/release static/vs2015-2019/win64/freetype.lib delete mode 100644 ThirdParty/freetype/src/Jamfile delete mode 100644 ThirdParty/freetype/src/autofit/Jamfile delete mode 100644 ThirdParty/freetype/src/autofit/afangles.c delete mode 100644 ThirdParty/freetype/src/autofit/afangles.h delete mode 100644 ThirdParty/freetype/src/autofit/afblue.c delete mode 100644 ThirdParty/freetype/src/autofit/afblue.cin delete mode 100644 ThirdParty/freetype/src/autofit/afblue.dat delete mode 100644 ThirdParty/freetype/src/autofit/afblue.h delete mode 100644 ThirdParty/freetype/src/autofit/afblue.hin delete mode 100644 ThirdParty/freetype/src/autofit/afcjk.c delete mode 100644 ThirdParty/freetype/src/autofit/afcjk.h delete mode 100644 ThirdParty/freetype/src/autofit/afcover.h delete mode 100644 ThirdParty/freetype/src/autofit/afdummy.c delete mode 100644 ThirdParty/freetype/src/autofit/afdummy.h delete mode 100644 ThirdParty/freetype/src/autofit/aferrors.h delete mode 100644 ThirdParty/freetype/src/autofit/afglobal.c delete mode 100644 ThirdParty/freetype/src/autofit/afglobal.h delete mode 100644 ThirdParty/freetype/src/autofit/afhints.c delete mode 100644 ThirdParty/freetype/src/autofit/afhints.h delete mode 100644 ThirdParty/freetype/src/autofit/afindic.c delete mode 100644 ThirdParty/freetype/src/autofit/afindic.h delete mode 100644 ThirdParty/freetype/src/autofit/aflatin.c delete mode 100644 ThirdParty/freetype/src/autofit/aflatin.h delete mode 100644 ThirdParty/freetype/src/autofit/aflatin2.c delete mode 100644 ThirdParty/freetype/src/autofit/aflatin2.h delete mode 100644 ThirdParty/freetype/src/autofit/afloader.c delete mode 100644 ThirdParty/freetype/src/autofit/afloader.h delete mode 100644 ThirdParty/freetype/src/autofit/afmodule.c delete mode 100644 ThirdParty/freetype/src/autofit/afmodule.h delete mode 100644 ThirdParty/freetype/src/autofit/afranges.c delete mode 100644 ThirdParty/freetype/src/autofit/afranges.h delete mode 100644 ThirdParty/freetype/src/autofit/afscript.h delete mode 100644 ThirdParty/freetype/src/autofit/afshaper.c delete mode 100644 ThirdParty/freetype/src/autofit/afshaper.h delete mode 100644 ThirdParty/freetype/src/autofit/afstyles.h delete mode 100644 ThirdParty/freetype/src/autofit/aftypes.h delete mode 100644 ThirdParty/freetype/src/autofit/afwarp.c delete mode 100644 ThirdParty/freetype/src/autofit/afwarp.h delete mode 100644 ThirdParty/freetype/src/autofit/afwrtsys.h delete mode 100644 ThirdParty/freetype/src/autofit/autofit.c delete mode 100644 ThirdParty/freetype/src/autofit/module.mk delete mode 100644 ThirdParty/freetype/src/autofit/rules.mk delete mode 100644 ThirdParty/freetype/src/base/Jamfile delete mode 100644 ThirdParty/freetype/src/base/ftadvanc.c delete mode 100644 ThirdParty/freetype/src/base/ftbase.c delete mode 100644 ThirdParty/freetype/src/base/ftbase.h delete mode 100644 ThirdParty/freetype/src/base/ftbbox.c delete mode 100644 ThirdParty/freetype/src/base/ftbdf.c delete mode 100644 ThirdParty/freetype/src/base/ftbitmap.c delete mode 100644 ThirdParty/freetype/src/base/ftcalc.c delete mode 100644 ThirdParty/freetype/src/base/ftcid.c delete mode 100644 ThirdParty/freetype/src/base/ftcolor.c delete mode 100644 ThirdParty/freetype/src/base/ftdbgmem.c delete mode 100644 ThirdParty/freetype/src/base/ftdebug.c delete mode 100644 ThirdParty/freetype/src/base/fterrors.c delete mode 100644 ThirdParty/freetype/src/base/ftfntfmt.c delete mode 100644 ThirdParty/freetype/src/base/ftfstype.c delete mode 100644 ThirdParty/freetype/src/base/ftgasp.c delete mode 100644 ThirdParty/freetype/src/base/ftgloadr.c delete mode 100644 ThirdParty/freetype/src/base/ftglyph.c delete mode 100644 ThirdParty/freetype/src/base/ftgxval.c delete mode 100644 ThirdParty/freetype/src/base/fthash.c delete mode 100644 ThirdParty/freetype/src/base/ftinit.c delete mode 100644 ThirdParty/freetype/src/base/ftlcdfil.c delete mode 100644 ThirdParty/freetype/src/base/ftmac.c delete mode 100644 ThirdParty/freetype/src/base/ftmm.c delete mode 100644 ThirdParty/freetype/src/base/ftobjs.c delete mode 100644 ThirdParty/freetype/src/base/ftotval.c delete mode 100644 ThirdParty/freetype/src/base/ftoutln.c delete mode 100644 ThirdParty/freetype/src/base/ftpatent.c delete mode 100644 ThirdParty/freetype/src/base/ftpfr.c delete mode 100644 ThirdParty/freetype/src/base/ftpsprop.c delete mode 100644 ThirdParty/freetype/src/base/ftrfork.c delete mode 100644 ThirdParty/freetype/src/base/ftsnames.c delete mode 100644 ThirdParty/freetype/src/base/ftstream.c delete mode 100644 ThirdParty/freetype/src/base/ftstroke.c delete mode 100644 ThirdParty/freetype/src/base/ftsynth.c delete mode 100644 ThirdParty/freetype/src/base/ftsystem.c delete mode 100644 ThirdParty/freetype/src/base/fttrigon.c delete mode 100644 ThirdParty/freetype/src/base/fttype1.c delete mode 100644 ThirdParty/freetype/src/base/ftutil.c delete mode 100644 ThirdParty/freetype/src/base/ftver.rc delete mode 100644 ThirdParty/freetype/src/base/ftwinfnt.c delete mode 100644 ThirdParty/freetype/src/base/md5.c delete mode 100644 ThirdParty/freetype/src/base/md5.h delete mode 100644 ThirdParty/freetype/src/base/rules.mk delete mode 100644 ThirdParty/freetype/src/bdf/Jamfile delete mode 100644 ThirdParty/freetype/src/bdf/README delete mode 100644 ThirdParty/freetype/src/bdf/bdf.c delete mode 100644 ThirdParty/freetype/src/bdf/bdf.h delete mode 100644 ThirdParty/freetype/src/bdf/bdfdrivr.c delete mode 100644 ThirdParty/freetype/src/bdf/bdfdrivr.h delete mode 100644 ThirdParty/freetype/src/bdf/bdferror.h delete mode 100644 ThirdParty/freetype/src/bdf/bdflib.c delete mode 100644 ThirdParty/freetype/src/bdf/module.mk delete mode 100644 ThirdParty/freetype/src/bdf/rules.mk delete mode 100644 ThirdParty/freetype/src/bzip2/Jamfile delete mode 100644 ThirdParty/freetype/src/bzip2/ftbzip2.c delete mode 100644 ThirdParty/freetype/src/bzip2/rules.mk delete mode 100644 ThirdParty/freetype/src/cache/Jamfile delete mode 100644 ThirdParty/freetype/src/cache/ftcache.c delete mode 100644 ThirdParty/freetype/src/cache/ftcbasic.c delete mode 100644 ThirdParty/freetype/src/cache/ftccache.c delete mode 100644 ThirdParty/freetype/src/cache/ftccache.h delete mode 100644 ThirdParty/freetype/src/cache/ftccback.h delete mode 100644 ThirdParty/freetype/src/cache/ftccmap.c delete mode 100644 ThirdParty/freetype/src/cache/ftcerror.h delete mode 100644 ThirdParty/freetype/src/cache/ftcglyph.c delete mode 100644 ThirdParty/freetype/src/cache/ftcglyph.h delete mode 100644 ThirdParty/freetype/src/cache/ftcimage.c delete mode 100644 ThirdParty/freetype/src/cache/ftcimage.h delete mode 100644 ThirdParty/freetype/src/cache/ftcmanag.c delete mode 100644 ThirdParty/freetype/src/cache/ftcmanag.h delete mode 100644 ThirdParty/freetype/src/cache/ftcmru.c delete mode 100644 ThirdParty/freetype/src/cache/ftcmru.h delete mode 100644 ThirdParty/freetype/src/cache/ftcsbits.c delete mode 100644 ThirdParty/freetype/src/cache/ftcsbits.h delete mode 100644 ThirdParty/freetype/src/cache/rules.mk delete mode 100644 ThirdParty/freetype/src/cff/Jamfile delete mode 100644 ThirdParty/freetype/src/cff/cff.c delete mode 100644 ThirdParty/freetype/src/cff/cffcmap.c delete mode 100644 ThirdParty/freetype/src/cff/cffcmap.h delete mode 100644 ThirdParty/freetype/src/cff/cffdrivr.c delete mode 100644 ThirdParty/freetype/src/cff/cffdrivr.h delete mode 100644 ThirdParty/freetype/src/cff/cfferrs.h delete mode 100644 ThirdParty/freetype/src/cff/cffgload.c delete mode 100644 ThirdParty/freetype/src/cff/cffgload.h delete mode 100644 ThirdParty/freetype/src/cff/cffload.c delete mode 100644 ThirdParty/freetype/src/cff/cffload.h delete mode 100644 ThirdParty/freetype/src/cff/cffobjs.c delete mode 100644 ThirdParty/freetype/src/cff/cffobjs.h delete mode 100644 ThirdParty/freetype/src/cff/cffparse.c delete mode 100644 ThirdParty/freetype/src/cff/cffparse.h delete mode 100644 ThirdParty/freetype/src/cff/cfftoken.h delete mode 100644 ThirdParty/freetype/src/cff/module.mk delete mode 100644 ThirdParty/freetype/src/cff/rules.mk delete mode 100644 ThirdParty/freetype/src/cid/Jamfile delete mode 100644 ThirdParty/freetype/src/cid/ciderrs.h delete mode 100644 ThirdParty/freetype/src/cid/cidgload.c delete mode 100644 ThirdParty/freetype/src/cid/cidgload.h delete mode 100644 ThirdParty/freetype/src/cid/cidload.c delete mode 100644 ThirdParty/freetype/src/cid/cidload.h delete mode 100644 ThirdParty/freetype/src/cid/cidobjs.c delete mode 100644 ThirdParty/freetype/src/cid/cidobjs.h delete mode 100644 ThirdParty/freetype/src/cid/cidparse.c delete mode 100644 ThirdParty/freetype/src/cid/cidparse.h delete mode 100644 ThirdParty/freetype/src/cid/cidriver.c delete mode 100644 ThirdParty/freetype/src/cid/cidriver.h delete mode 100644 ThirdParty/freetype/src/cid/cidtoken.h delete mode 100644 ThirdParty/freetype/src/cid/module.mk delete mode 100644 ThirdParty/freetype/src/cid/rules.mk delete mode 100644 ThirdParty/freetype/src/cid/type1cid.c delete mode 100644 ThirdParty/freetype/src/gxvalid/Jamfile delete mode 100644 ThirdParty/freetype/src/gxvalid/README delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvalid.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvalid.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvbsln.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvcommn.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvcommn.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxverror.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvfeat.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvfeat.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvfgen.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvjust.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvkern.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvlcar.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmod.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmod.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort0.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort1.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort2.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort4.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort5.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx.h delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx0.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx1.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx2.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx4.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx5.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvopbd.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvprop.c delete mode 100644 ThirdParty/freetype/src/gxvalid/gxvtrak.c delete mode 100644 ThirdParty/freetype/src/gxvalid/module.mk delete mode 100644 ThirdParty/freetype/src/gxvalid/rules.mk delete mode 100644 ThirdParty/freetype/src/gzip/Jamfile delete mode 100644 ThirdParty/freetype/src/gzip/adler32.c delete mode 100644 ThirdParty/freetype/src/gzip/ftgzip.c delete mode 100644 ThirdParty/freetype/src/gzip/ftzconf.h delete mode 100644 ThirdParty/freetype/src/gzip/infblock.c delete mode 100644 ThirdParty/freetype/src/gzip/infblock.h delete mode 100644 ThirdParty/freetype/src/gzip/infcodes.c delete mode 100644 ThirdParty/freetype/src/gzip/infcodes.h delete mode 100644 ThirdParty/freetype/src/gzip/inffixed.h delete mode 100644 ThirdParty/freetype/src/gzip/inflate.c delete mode 100644 ThirdParty/freetype/src/gzip/inftrees.c delete mode 100644 ThirdParty/freetype/src/gzip/inftrees.h delete mode 100644 ThirdParty/freetype/src/gzip/infutil.c delete mode 100644 ThirdParty/freetype/src/gzip/infutil.h delete mode 100644 ThirdParty/freetype/src/gzip/rules.mk delete mode 100644 ThirdParty/freetype/src/gzip/zlib.h delete mode 100644 ThirdParty/freetype/src/gzip/zutil.c delete mode 100644 ThirdParty/freetype/src/gzip/zutil.h delete mode 100644 ThirdParty/freetype/src/lzw/Jamfile delete mode 100644 ThirdParty/freetype/src/lzw/ftlzw.c delete mode 100644 ThirdParty/freetype/src/lzw/ftzopen.c delete mode 100644 ThirdParty/freetype/src/lzw/ftzopen.h delete mode 100644 ThirdParty/freetype/src/lzw/rules.mk delete mode 100644 ThirdParty/freetype/src/otvalid/Jamfile delete mode 100644 ThirdParty/freetype/src/otvalid/module.mk delete mode 100644 ThirdParty/freetype/src/otvalid/otvalid.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvalid.h delete mode 100644 ThirdParty/freetype/src/otvalid/otvbase.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvcommn.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvcommn.h delete mode 100644 ThirdParty/freetype/src/otvalid/otverror.h delete mode 100644 ThirdParty/freetype/src/otvalid/otvgdef.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvgpos.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvgpos.h delete mode 100644 ThirdParty/freetype/src/otvalid/otvgsub.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvjstf.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvmath.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvmod.c delete mode 100644 ThirdParty/freetype/src/otvalid/otvmod.h delete mode 100644 ThirdParty/freetype/src/otvalid/rules.mk delete mode 100644 ThirdParty/freetype/src/pcf/Jamfile delete mode 100644 ThirdParty/freetype/src/pcf/README delete mode 100644 ThirdParty/freetype/src/pcf/module.mk delete mode 100644 ThirdParty/freetype/src/pcf/pcf.c delete mode 100644 ThirdParty/freetype/src/pcf/pcf.h delete mode 100644 ThirdParty/freetype/src/pcf/pcfdrivr.c delete mode 100644 ThirdParty/freetype/src/pcf/pcfdrivr.h delete mode 100644 ThirdParty/freetype/src/pcf/pcferror.h delete mode 100644 ThirdParty/freetype/src/pcf/pcfread.c delete mode 100644 ThirdParty/freetype/src/pcf/pcfread.h delete mode 100644 ThirdParty/freetype/src/pcf/pcfutil.c delete mode 100644 ThirdParty/freetype/src/pcf/pcfutil.h delete mode 100644 ThirdParty/freetype/src/pcf/rules.mk delete mode 100644 ThirdParty/freetype/src/pfr/Jamfile delete mode 100644 ThirdParty/freetype/src/pfr/module.mk delete mode 100644 ThirdParty/freetype/src/pfr/pfr.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrcmap.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrcmap.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrdrivr.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrdrivr.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrerror.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrgload.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrgload.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrload.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrload.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrobjs.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrobjs.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrsbit.c delete mode 100644 ThirdParty/freetype/src/pfr/pfrsbit.h delete mode 100644 ThirdParty/freetype/src/pfr/pfrtypes.h delete mode 100644 ThirdParty/freetype/src/pfr/rules.mk delete mode 100644 ThirdParty/freetype/src/psaux/Jamfile delete mode 100644 ThirdParty/freetype/src/psaux/afmparse.c delete mode 100644 ThirdParty/freetype/src/psaux/afmparse.h delete mode 100644 ThirdParty/freetype/src/psaux/cffdecode.c delete mode 100644 ThirdParty/freetype/src/psaux/cffdecode.h delete mode 100644 ThirdParty/freetype/src/psaux/module.mk delete mode 100644 ThirdParty/freetype/src/psaux/psarrst.c delete mode 100644 ThirdParty/freetype/src/psaux/psarrst.h delete mode 100644 ThirdParty/freetype/src/psaux/psaux.c delete mode 100644 ThirdParty/freetype/src/psaux/psauxerr.h delete mode 100644 ThirdParty/freetype/src/psaux/psauxmod.c delete mode 100644 ThirdParty/freetype/src/psaux/psauxmod.h delete mode 100644 ThirdParty/freetype/src/psaux/psblues.c delete mode 100644 ThirdParty/freetype/src/psaux/psblues.h delete mode 100644 ThirdParty/freetype/src/psaux/psconv.c delete mode 100644 ThirdParty/freetype/src/psaux/psconv.h delete mode 100644 ThirdParty/freetype/src/psaux/pserror.c delete mode 100644 ThirdParty/freetype/src/psaux/pserror.h delete mode 100644 ThirdParty/freetype/src/psaux/psfixed.h delete mode 100644 ThirdParty/freetype/src/psaux/psfont.c delete mode 100644 ThirdParty/freetype/src/psaux/psfont.h delete mode 100644 ThirdParty/freetype/src/psaux/psft.c delete mode 100644 ThirdParty/freetype/src/psaux/psft.h delete mode 100644 ThirdParty/freetype/src/psaux/psglue.h delete mode 100644 ThirdParty/freetype/src/psaux/pshints.c delete mode 100644 ThirdParty/freetype/src/psaux/pshints.h delete mode 100644 ThirdParty/freetype/src/psaux/psintrp.c delete mode 100644 ThirdParty/freetype/src/psaux/psintrp.h delete mode 100644 ThirdParty/freetype/src/psaux/psobjs.c delete mode 100644 ThirdParty/freetype/src/psaux/psobjs.h delete mode 100644 ThirdParty/freetype/src/psaux/psread.c delete mode 100644 ThirdParty/freetype/src/psaux/psread.h delete mode 100644 ThirdParty/freetype/src/psaux/psstack.c delete mode 100644 ThirdParty/freetype/src/psaux/psstack.h delete mode 100644 ThirdParty/freetype/src/psaux/pstypes.h delete mode 100644 ThirdParty/freetype/src/psaux/rules.mk delete mode 100644 ThirdParty/freetype/src/psaux/t1cmap.c delete mode 100644 ThirdParty/freetype/src/psaux/t1cmap.h delete mode 100644 ThirdParty/freetype/src/psaux/t1decode.c delete mode 100644 ThirdParty/freetype/src/psaux/t1decode.h delete mode 100644 ThirdParty/freetype/src/pshinter/Jamfile delete mode 100644 ThirdParty/freetype/src/pshinter/module.mk delete mode 100644 ThirdParty/freetype/src/pshinter/pshalgo.c delete mode 100644 ThirdParty/freetype/src/pshinter/pshalgo.h delete mode 100644 ThirdParty/freetype/src/pshinter/pshglob.c delete mode 100644 ThirdParty/freetype/src/pshinter/pshglob.h delete mode 100644 ThirdParty/freetype/src/pshinter/pshinter.c delete mode 100644 ThirdParty/freetype/src/pshinter/pshmod.c delete mode 100644 ThirdParty/freetype/src/pshinter/pshmod.h delete mode 100644 ThirdParty/freetype/src/pshinter/pshnterr.h delete mode 100644 ThirdParty/freetype/src/pshinter/pshrec.c delete mode 100644 ThirdParty/freetype/src/pshinter/pshrec.h delete mode 100644 ThirdParty/freetype/src/pshinter/rules.mk delete mode 100644 ThirdParty/freetype/src/psnames/Jamfile delete mode 100644 ThirdParty/freetype/src/psnames/module.mk delete mode 100644 ThirdParty/freetype/src/psnames/psmodule.c delete mode 100644 ThirdParty/freetype/src/psnames/psmodule.h delete mode 100644 ThirdParty/freetype/src/psnames/psnamerr.h delete mode 100644 ThirdParty/freetype/src/psnames/psnames.c delete mode 100644 ThirdParty/freetype/src/psnames/pstables.h delete mode 100644 ThirdParty/freetype/src/psnames/rules.mk delete mode 100644 ThirdParty/freetype/src/raster/Jamfile delete mode 100644 ThirdParty/freetype/src/raster/ftmisc.h delete mode 100644 ThirdParty/freetype/src/raster/ftraster.c delete mode 100644 ThirdParty/freetype/src/raster/ftraster.h delete mode 100644 ThirdParty/freetype/src/raster/ftrend1.c delete mode 100644 ThirdParty/freetype/src/raster/ftrend1.h delete mode 100644 ThirdParty/freetype/src/raster/module.mk delete mode 100644 ThirdParty/freetype/src/raster/raster.c delete mode 100644 ThirdParty/freetype/src/raster/rasterrs.h delete mode 100644 ThirdParty/freetype/src/raster/rules.mk delete mode 100644 ThirdParty/freetype/src/sfnt/Jamfile delete mode 100644 ThirdParty/freetype/src/sfnt/module.mk delete mode 100644 ThirdParty/freetype/src/sfnt/pngshim.c delete mode 100644 ThirdParty/freetype/src/sfnt/pngshim.h delete mode 100644 ThirdParty/freetype/src/sfnt/rules.mk delete mode 100644 ThirdParty/freetype/src/sfnt/sfdriver.c delete mode 100644 ThirdParty/freetype/src/sfnt/sfdriver.h delete mode 100644 ThirdParty/freetype/src/sfnt/sferrors.h delete mode 100644 ThirdParty/freetype/src/sfnt/sfnt.c delete mode 100644 ThirdParty/freetype/src/sfnt/sfobjs.c delete mode 100644 ThirdParty/freetype/src/sfnt/sfobjs.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttbdf.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttbdf.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttcmap.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttcmap.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttcmapc.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttcolr.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttcolr.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttcpal.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttcpal.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttkern.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttkern.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttload.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttload.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttmtx.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttmtx.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttpost.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttpost.h delete mode 100644 ThirdParty/freetype/src/sfnt/ttsbit.c delete mode 100644 ThirdParty/freetype/src/sfnt/ttsbit.h delete mode 100644 ThirdParty/freetype/src/smooth/Jamfile delete mode 100644 ThirdParty/freetype/src/smooth/ftgrays.c delete mode 100644 ThirdParty/freetype/src/smooth/ftgrays.h delete mode 100644 ThirdParty/freetype/src/smooth/ftsmerrs.h delete mode 100644 ThirdParty/freetype/src/smooth/ftsmooth.c delete mode 100644 ThirdParty/freetype/src/smooth/ftsmooth.h delete mode 100644 ThirdParty/freetype/src/smooth/module.mk delete mode 100644 ThirdParty/freetype/src/smooth/rules.mk delete mode 100644 ThirdParty/freetype/src/smooth/smooth.c delete mode 100644 ThirdParty/freetype/src/tools/Jamfile delete mode 100644 ThirdParty/freetype/src/tools/afblue.pl delete mode 100644 ThirdParty/freetype/src/tools/apinames.c delete mode 100644 ThirdParty/freetype/src/tools/chktrcmp.py delete mode 100644 ThirdParty/freetype/src/tools/cordic.py delete mode 100644 ThirdParty/freetype/src/tools/ftrandom/Makefile delete mode 100644 ThirdParty/freetype/src/tools/ftrandom/README delete mode 100644 ThirdParty/freetype/src/tools/ftrandom/ftrandom.c delete mode 100644 ThirdParty/freetype/src/tools/glnames.py delete mode 100644 ThirdParty/freetype/src/tools/no-copyright delete mode 100644 ThirdParty/freetype/src/tools/test_afm.c delete mode 100644 ThirdParty/freetype/src/tools/test_bbox.c delete mode 100644 ThirdParty/freetype/src/tools/test_trig.c delete mode 100644 ThirdParty/freetype/src/tools/update-copyright delete mode 100644 ThirdParty/freetype/src/tools/update-copyright-year delete mode 100644 ThirdParty/freetype/src/truetype/Jamfile delete mode 100644 ThirdParty/freetype/src/truetype/module.mk delete mode 100644 ThirdParty/freetype/src/truetype/rules.mk delete mode 100644 ThirdParty/freetype/src/truetype/truetype.c delete mode 100644 ThirdParty/freetype/src/truetype/ttdriver.c delete mode 100644 ThirdParty/freetype/src/truetype/ttdriver.h delete mode 100644 ThirdParty/freetype/src/truetype/tterrors.h delete mode 100644 ThirdParty/freetype/src/truetype/ttgload.c delete mode 100644 ThirdParty/freetype/src/truetype/ttgload.h delete mode 100644 ThirdParty/freetype/src/truetype/ttgxvar.c delete mode 100644 ThirdParty/freetype/src/truetype/ttgxvar.h delete mode 100644 ThirdParty/freetype/src/truetype/ttinterp.c delete mode 100644 ThirdParty/freetype/src/truetype/ttinterp.h delete mode 100644 ThirdParty/freetype/src/truetype/ttobjs.c delete mode 100644 ThirdParty/freetype/src/truetype/ttobjs.h delete mode 100644 ThirdParty/freetype/src/truetype/ttpload.c delete mode 100644 ThirdParty/freetype/src/truetype/ttpload.h delete mode 100644 ThirdParty/freetype/src/truetype/ttsubpix.c delete mode 100644 ThirdParty/freetype/src/truetype/ttsubpix.h delete mode 100644 ThirdParty/freetype/src/type1/Jamfile delete mode 100644 ThirdParty/freetype/src/type1/module.mk delete mode 100644 ThirdParty/freetype/src/type1/rules.mk delete mode 100644 ThirdParty/freetype/src/type1/t1afm.c delete mode 100644 ThirdParty/freetype/src/type1/t1afm.h delete mode 100644 ThirdParty/freetype/src/type1/t1driver.c delete mode 100644 ThirdParty/freetype/src/type1/t1driver.h delete mode 100644 ThirdParty/freetype/src/type1/t1errors.h delete mode 100644 ThirdParty/freetype/src/type1/t1gload.c delete mode 100644 ThirdParty/freetype/src/type1/t1gload.h delete mode 100644 ThirdParty/freetype/src/type1/t1load.c delete mode 100644 ThirdParty/freetype/src/type1/t1load.h delete mode 100644 ThirdParty/freetype/src/type1/t1objs.c delete mode 100644 ThirdParty/freetype/src/type1/t1objs.h delete mode 100644 ThirdParty/freetype/src/type1/t1parse.c delete mode 100644 ThirdParty/freetype/src/type1/t1parse.h delete mode 100644 ThirdParty/freetype/src/type1/t1tokens.h delete mode 100644 ThirdParty/freetype/src/type1/type1.c delete mode 100644 ThirdParty/freetype/src/type42/Jamfile delete mode 100644 ThirdParty/freetype/src/type42/module.mk delete mode 100644 ThirdParty/freetype/src/type42/rules.mk delete mode 100644 ThirdParty/freetype/src/type42/t42drivr.c delete mode 100644 ThirdParty/freetype/src/type42/t42drivr.h delete mode 100644 ThirdParty/freetype/src/type42/t42error.h delete mode 100644 ThirdParty/freetype/src/type42/t42objs.c delete mode 100644 ThirdParty/freetype/src/type42/t42objs.h delete mode 100644 ThirdParty/freetype/src/type42/t42parse.c delete mode 100644 ThirdParty/freetype/src/type42/t42parse.h delete mode 100644 ThirdParty/freetype/src/type42/t42types.h delete mode 100644 ThirdParty/freetype/src/type42/type42.c delete mode 100644 ThirdParty/freetype/src/winfonts/Jamfile delete mode 100644 ThirdParty/freetype/src/winfonts/fnterrs.h delete mode 100644 ThirdParty/freetype/src/winfonts/module.mk delete mode 100644 ThirdParty/freetype/src/winfonts/rules.mk delete mode 100644 ThirdParty/freetype/src/winfonts/winfnt.c delete mode 100644 ThirdParty/freetype/src/winfonts/winfnt.h delete mode 100644 ThirdParty/freetype/version.sed delete mode 100644 ThirdParty/freetype/vms_make.com (limited to 'ThirdParty') diff --git a/ThirdParty/freetype/CMakeLists.txt b/ThirdParty/freetype/CMakeLists.txt deleted file mode 100644 index 28dc3b3..0000000 --- a/ThirdParty/freetype/CMakeLists.txt +++ /dev/null @@ -1,510 +0,0 @@ -# CMakeLists.txt -# -# Copyright (C) 2013-2019 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# Written originally by John Cary -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# -# The following will 1. create a build directory and 2. change into it and -# call cmake to configure the build with default parameters as a static -# library. -# -# cmake -E make_directory build -# cmake -E chdir build cmake .. -# -# For a dynamic library, use -# -# cmake -E chdir build cmake -D BUILD_SHARED_LIBS:BOOL=true .. -# -# For a framework on OS X, use -# -# cmake -E chdir build cmake -G Xcode -D BUILD_FRAMEWORK:BOOL=true .. -# -# For an iOS static library, use -# -# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=OS .. -# -# or -# -# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR .. -# -# or -# -# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 .. -# -# Finally, build the project with: -# -# cmake --build build -# -# Install it with -# -# (sudo) cmake --build build --target install -# -# A binary distribution can be made with -# -# cmake --build build --config Release --target package -# -# Please refer to the cmake manual for further options, in particular, how -# to modify compilation and linking parameters. -# -# Some notes. -# -# . `cmake' creates configuration files in -# -# /include/freetype/config -# -# which should be further modified if necessary. -# -# . You can use `cmake' directly on a freshly cloned FreeType git -# repository. -# -# . `CMakeLists.txt' is provided as-is since it is normally not used by the -# developer team. -# -# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG', and -# `FT_WITH_HARFBUZZ' CMake variables to `ON' to force using a dependency. -# Leave a variable undefined (which is the default) to use the dependency -# only if it is available. Set `CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE' to -# disable a dependency completely (CMake package name, so `BZip2' instead of -# `BZIP2'). Example: -# -# cmake -DFT_WITH_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE [...] -# -# . Installation of FreeType can be controlled with the CMake variables -# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' -# (this is compatible with the same CMake variables in zlib's CMake -# support). - -# FreeType explicitly marks the API to be exported and relies on the compiler -# to hide all other symbols. CMake supports a C_VISBILITY_PRESET property -# starting with 2.8.12. -cmake_minimum_required(VERSION 2.8.12) - -if (NOT CMAKE_VERSION VERSION_LESS 3.3) - # Allow symbol visibility settings also on static libraries. CMake < 3.3 - # only sets the propery on a shared library build. - cmake_policy(SET CMP0063 NEW) -endif () - -include(CheckIncludeFile) - -# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which -# configures the base build environment and references the toolchain file -if (APPLE) - if (DEFINED IOS_PLATFORM) - if (NOT "${IOS_PLATFORM}" STREQUAL "OS" - AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR" - AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR64") - message(FATAL_ERROR - "IOS_PLATFORM must be set to either OS, SIMULATOR, or SIMULATOR64") - endif () - if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") - message(AUTHOR_WARNING - "You should use Xcode generator with IOS_PLATFORM enabled to get Universal builds.") - endif () - if (BUILD_SHARED_LIBS) - message(FATAL_ERROR - "BUILD_SHARED_LIBS can not be on with IOS_PLATFORM enabled") - endif () - if (BUILD_FRAMEWORK) - message(FATAL_ERROR - "BUILD_FRAMEWORK can not be on with IOS_PLATFORM enabled") - endif () - - # iOS only uses static libraries - set(BUILD_SHARED_LIBS OFF) - - set(CMAKE_TOOLCHAIN_FILE - ${CMAKE_SOURCE_DIR}/builds/cmake/iOS.cmake) - endif () -else () - if (DEFINED IOS_PLATFORM) - message(FATAL_ERROR "IOS_PLATFORM is not supported on this platform") - endif () -endif () - - -project(freetype C) - -set(VERSION_MAJOR "2") -set(VERSION_MINOR "10") -set(VERSION_PATCH "0") - -# SOVERSION scheme: CURRENT.AGE.REVISION -# If there was an incompatible interface change: -# Increment CURRENT. Set AGE and REVISION to 0 -# If there was a compatible interface change: -# Increment AGE. Set REVISION to 0 -# If the source code was changed, but there were no interface changes: -# Increment REVISION. -set(LIBRARY_VERSION "6.16.0") -set(LIBRARY_SOVERSION "6") - -# These options mean "require x and complain if not found". They'll get -# optionally found anyway. Use `-DCMAKE_DISABLE_FIND_PACKAGE_x=TRUE` to disable -# searching for a packge entirely (x is the CMake package name, so "BZip2" -# instead of "BZIP2"). -option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF) -option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF) -option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF) -option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF) - - -# Disallow in-source builds -if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") - message(FATAL_ERROR - "In-source builds are not permitted! Make a separate folder for" - " building, e.g.,\n" - " cmake -E make_directory build\n" - " cmake -E chdir build cmake ..\n" - "Before that, remove the files created by this failed run with\n" - " cmake -E remove CMakeCache.txt\n" - " cmake -E remove_directory CMakeFiles") -endif () - - -# Add local cmake modules -list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/builds/cmake) - - -if (BUILD_FRAMEWORK) - if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") - message(FATAL_ERROR - "You should use Xcode generator with BUILD_FRAMEWORK enabled") - endif () - set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)") - set(BUILD_SHARED_LIBS ON) -endif () - - -# Find dependencies -if (FT_WITH_HARFBUZZ) - find_package(HarfBuzz 1.3.0 REQUIRED) -else () - find_package(HarfBuzz 1.3.0) -endif () - -if (FT_WITH_PNG) - find_package(PNG REQUIRED) -else () - find_package(PNG) -endif () - -if (FT_WITH_ZLIB) - find_package(ZLIB REQUIRED) -else () - find_package(ZLIB) -endif () - -if (FT_WITH_BZIP2) - find_package(BZip2 REQUIRED) -else () - find_package(BZip2) -endif () - -# Create the configuration file -if (UNIX) - check_include_file("unistd.h" HAVE_UNISTD_H) - check_include_file("fcntl.h" HAVE_FCNTL_H) - check_include_file("stdint.h" HAVE_STDINT_H) - - file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.in" - FTCONFIG_H) - if (HAVE_UNISTD_H) - string(REGEX REPLACE - "#undef +(HAVE_UNISTD_H)" "#define \\1 1" - FTCONFIG_H "${FTCONFIG_H}") - endif () - if (HAVE_FCNTL_H) - string(REGEX REPLACE - "#undef +(HAVE_FCNTL_H)" "#define \\1 1" - FTCONFIG_H "${FTCONFIG_H}") - endif () - if (HAVE_STDINT_H) - string(REGEX REPLACE - "#undef +(HAVE_STDINT_H)" "#define \\1 1" - FTCONFIG_H "${FTCONFIG_H}") - endif () - string(REPLACE "/undef " "#undef " - FTCONFIG_H "${FTCONFIG_H}") -else() - file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h" - FTCONFIG_H) -endif () -file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h" - "${FTCONFIG_H}") - - -# Create the options file -file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftoption.h" - FTOPTION_H) -if (ZLIB_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_SYSTEM_ZLIB) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (BZIP2_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_BZIP2) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (PNG_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_PNG) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -if (HARFBUZZ_FOUND) - string(REGEX REPLACE - "/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1" - FTOPTION_H "${FTOPTION_H}") -endif () -file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h" - "${FTOPTION_H}") - - -file(GLOB PUBLIC_HEADERS "include/ft2build.h" "include/freetype/*.h") -file(GLOB PUBLIC_CONFIG_HEADERS "include/freetype/config/*.h") -file(GLOB PRIVATE_HEADERS "include/freetype/internal/*.h") - - -set(BASE_SRCS - src/autofit/autofit.c - src/base/ftbase.c - src/base/ftbbox.c - src/base/ftbdf.c - src/base/ftbitmap.c - src/base/ftcid.c - src/base/ftfstype.c - src/base/ftgasp.c - src/base/ftglyph.c - src/base/ftgxval.c - src/base/ftinit.c - src/base/ftmm.c - src/base/ftotval.c - src/base/ftpatent.c - src/base/ftpfr.c - src/base/ftstroke.c - src/base/ftsynth.c - src/base/ftsystem.c - src/base/fttype1.c - src/base/ftwinfnt.c - src/bdf/bdf.c - src/bzip2/ftbzip2.c - src/cache/ftcache.c - src/cff/cff.c - src/cid/type1cid.c - src/gzip/ftgzip.c - src/lzw/ftlzw.c - src/pcf/pcf.c - src/pfr/pfr.c - src/psaux/psaux.c - src/pshinter/pshinter.c - src/psnames/psnames.c - src/raster/raster.c - src/sfnt/sfnt.c - src/smooth/smooth.c - src/truetype/truetype.c - src/type1/type1.c - src/type42/type42.c - src/winfonts/winfnt.c -) - -if (WIN32) - enable_language(RC) - list(APPEND BASE_SRCS builds/windows/ftdebug.c - src/base/ftver.rc) -elseif (WINCE) - list(APPEND BASE_SRCS builds/wince/ftdebug.c) -else () - list(APPEND BASE_SRCS src/base/ftdebug.c) -endif () - -if (BUILD_FRAMEWORK) - list(APPEND BASE_SRCS builds/mac/freetype-Info.plist) -endif () - - -if (NOT DISABLE_FORCE_DEBUG_POSTFIX) - set(CMAKE_DEBUG_POSTFIX d) -endif() - - -add_library(freetype - ${PUBLIC_HEADERS} - ${PUBLIC_CONFIG_HEADERS} - ${PRIVATE_HEADERS} - ${BASE_SRCS} -) - -set_target_properties( - freetype PROPERTIES - C_VISIBILITY_PRESET hidden) - -target_compile_definitions( - freetype PRIVATE FT2_BUILD_LIBRARY) - -if (WIN32) - target_compile_definitions( - freetype PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) - if (BUILD_SHARED_LIBS) - target_compile_definitions( - freetype PRIVATE DLL_EXPORT) - endif () -endif () - -if (BUILD_SHARED_LIBS) - set_target_properties(freetype PROPERTIES - VERSION ${LIBRARY_VERSION} - SOVERSION ${LIBRARY_SOVERSION}) -endif () - -# Pick up ftconfig.h and ftoption.h generated above, first. -target_include_directories( - freetype - PUBLIC - $ - $ - $ - PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/include) - - -if (BUILD_FRAMEWORK) - set_property(SOURCE ${PUBLIC_CONFIG_HEADERS} - PROPERTY MACOSX_PACKAGE_LOCATION Headers/config - ) - set_target_properties(freetype PROPERTIES - FRAMEWORK TRUE - MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist - PUBLIC_HEADER "${PUBLIC_HEADERS}" - XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" - ) -endif () - - -set(PKG_CONFIG_REQUIRED_PRIVATE "") - -if (ZLIB_FOUND) - target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) - target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE zlib) -endif () -if (BZIP2_FOUND) - target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES}) - target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE bzip2) -endif () -if (PNG_FOUND) - target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES}) - target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS}) - target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE libpng) -endif () -if (HARFBUZZ_FOUND) - target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES}) - target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS}) - list(APPEND PKG_CONFIG_REQUIRED_PRIVATE harfbuzz) -endif () - - -# Installation -include(GNUInstallDirs) - -if (NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) - install( - # Note the trailing slash in the argument to `DIRECTORY'! - DIRECTORY ${PROJECT_SOURCE_DIR}/include/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2 - COMPONENT headers - PATTERN "internal" EXCLUDE - PATTERN "ftconfig.h" EXCLUDE - PATTERN "ftoption.h" EXCLUDE) - install( - FILES ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h - ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2/freetype/config - COMPONENT headers) -endif () - -if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) - # Generate the pkg-config file - if (UNIX) - file(READ ${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in FREETYPE2_PC_IN) - - string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}") - - string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX} - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%exec_prefix%" "\${prefix}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%ft_version%" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}" - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - string(REPLACE "%LIBS_PRIVATE%" "" # All libs support pkg-config - FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) - - file(WRITE ${PROJECT_BINARY_DIR}/freetype2.pc ${FREETYPE2_PC_IN}) - - install( - FILES ${PROJECT_BINARY_DIR}/freetype2.pc - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig - COMPONENT pkgconfig) - endif () - - install( - TARGETS freetype - EXPORT freetype-targets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - FRAMEWORK DESTINATION Library/Frameworks - COMPONENT libraries) - install( - EXPORT freetype-targets - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype - FILE freetype-config.cmake - COMPONENT headers) -endif () - - -# Packaging -set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME}) -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.") -set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") -set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/LICENSE.TXT") - -set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) -set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) -set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) -set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") - -if (WIN32) - set(CPACK_GENERATOR ZIP) -else() - set(CPACK_GENERATOR TGZ) -endif() - -set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") -set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers") -set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION - "Library used to build programs which use FreeType") -set(CPACK_COMPONENT_HEADERS_DESCRIPTION - "C/C++ header files for use with FreeType") -set(CPACK_COMPONENT_HEADERS_DEPENDS libraries) -set(CPACK_COMPONENT_LIBRARIES_GROUP "Development") -set(CPACK_COMPONENT_HEADERS_GROUP "Development") - -include(CPack) diff --git a/ThirdParty/freetype/ChangeLog b/ThirdParty/freetype/ChangeLog index 670e848..e649d31 100644 --- a/ThirdParty/freetype/ChangeLog +++ b/ThirdParty/freetype/ChangeLog @@ -1,4869 +1,7805 @@ -2019-03-15 Werner Lemberg +2021-07-18 Werner Lemberg - * Version 2.10.0 released. + * Version 2.11.0 released. ========================== - Tag sources with `VER-2-10-0'. + Tag sources with `VER-2-11-0'. - * docs/VERSION.TXT: Add entry for version 2.10.0. + * docs/VERSION.TXT: Add entry for version 2.11.0. * docs/CHANGES: Updated. - * README, Jamfile (RefDoc), src/base/ftver.rc, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/index.html, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, + * README, src/base/ftver.rc, builds/windows/vc2010/index.html, builds/windows/visualc/index.html, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, builds/windows/visualce/index.html, - builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/freetype.vcproj, - builds/wince/vc2008-ce/index.html: s/2.9.1/2.10.0/, s/291/2100/. + builds/wince/vc2008-ce/index.html, docs/freetype-config.1: + s/2.10.4/2.11.0/, s/2104/2110/. - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 10. + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 11. (FREETYPE_PATCH): Set to 0. - * builds/unix/configure.raw (version_info): Set to 23:0:17. - * CMakeLists.txt (VERSION_MINOR): Set to 10. + * builds/unix/configure.raw (version_info): Set to 24:0:18. + * CMakeLists.txt (VERSION_MINOR): Set to 11. (VERSION_PATCH): Set to 0. - * builds/toplevel.mk (version, winversion): Since the minor version - number has two digits now, never omit the patch number. We would - get ambiguous zip file names otherwise. - (dist): Remove remnants of `docmaker' tool. - (do-dist): Remove unused intermediate files. + * builds/toplevel.mk (dist): Ignore more git-related files. - * src/cff/cffparse.c (destrict_c2s_item): Guard function with - CFF_CONFIG_OPTION_OLD_ENGINE macro. +2021-07-17 David Turner -2019-03-07 Andrei Alexeyev <0x416b617269@gmail.com> - Werner Lemberg + * src/smooth/ftgrays.c: Fix compilation if `FT_LONG64` is undefined. - Fix invalid function pointer casts. + The code assumed that if `__SSE2__` is defined, then 64-bit integer + types are available. This is not the case apparently for certain + multilib compiler targets like 'x86_32.x86' used by Gentoo. - This change should allow Freetype to work on WASM/Emscripten without - needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'. + This patch fixes the issue by disabling the special code path when + 64-bit integer types are not available. - * src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature. + Fixes #1071. - * src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array, - parse_expansion_factor, parse_font_name): Return `void', not - `FT_Error'. +2021-07-16 Alex Richardson - * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc): - Fix signature. + [tests] Allow arbitrary build directories. -2019-03-05 Werner Lemberg + * tests/issue-1063/main.c (main): I am building with a build + directory that is not directly inside the source tree, so the path + `../tests/data/As.I.Lay.Dying.ttf` does not resolve to the test + input file. This change passes the test data directory as an + environment variable to allow arbitrary build directories. - [base] Handle numeric overflow (#55827). + * tests/meson.build: Updated. - * src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'. +2021-07-16 Alex Richardson -2019-03-05 Sebastian Rasmussen + * tests/issue-1063/main.c (main): Fix uninitialized variable. - [psaux] Fix use of uninitialized memory (#55832). + I tried running `meson test` but the test just crashed and gdb + reported that the face argument to `FT_Get_Char_Index` was nonsense. + With this change the test prints 'Could not open file: ' as it + should. - * src/psaux/psintrp.c (cf2_interpT2CharString): The call to - `cf2_arrstack_setCount' may fail because the allocator ran out of - memory. When this happens the stack is still written to before the - error condition is checked. This means that FreeType writes outside - of allocated memory. This commit moves the error check prior to the - stack assignment, hence the function now properly returns with an - error condition. +2021-07-16 Werner Lemberg -2019-02-23 Werner Lemberg + [smooth] Minor fixes. - * src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets. + * src/smooth/ftgrays.c (gray_render_conic): Move variable and + structure declarations to beginning of function. Inspite of C99 + compliance we still do this for the sake of backward compatibility. + This also avoids a shadowing declaration of `count`. + (gray_convert_glyph_inner): Fix typo. - The function only provided a framework without an actual - implementation, which this commit removes. +2021-07-15 Ben Wagner -2019-02-23 Werner Lemberg + * src/smooth/ftgrays.c: Guard inclusion of `emmintrin.h`. - * src/tools/update-copyright-year: Insert `(C)'. + Guard inclusion of `emmintrin.h` with `#ifdef __SSE2__`. The gcc + version of this header, `xmmintrin.h`, and `mmintrin.h` check that + the appropriate defines are set before defining anything (are + internally guarded). However, the clang versions of these includes + are not internally guarded. As a result of this, externally guard + the inclusion of these headers. -2019-02-21 Armin Hasitzka +2021-07-15 David Turner - [truetype] Mask numeric overflows. + [smooth] Implement Bézier quadratic arc flattening with DDA. - * src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP): - Mask numeric overflows. + Benchmarking shows that this provides a very slighty performance + boost when rendering fonts with lots of quadratic Bézier arcs, + compared to the recursive arc splitting, but only when SSE2 is + available, or on 64-bit CPUs. - Reported as + On a 2017 Core i5-7300U CPU on Linux/x86_64: - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734 + ftbench -p -s10 -t5 -cb DroidSansFallbackFull.ttf -2019-02-21 Armin Hasitzka + Before: 4.033 us/op (best of 5 runs for all numbers) + After: 3.876 us/op - [psaux] Mask numeric overflow. + ftbench -p -s60 -t5 -cb DroidSansFallbackFull.ttf - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric - overflow. + Before: 13.467 us/op + After: 13.385 us/op - Reported as + * src/smooth/ftgrays.c (gray_render_conic): New implementation + based on DDA and optionally SSE2. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041 +2021-07-15 David Turner -2019-02-16 Wink Saville + [smooth] Minor speedup to smooth rasterizer. - * src/autofit/afwarp.h (af_warper_compute): Fix declaration. + This speeds up the smooth rasterizer by avoiding conditional + branches in the hot path. -2019-02-02 Nikolaus Waxweiler + - Define a fixed 'null cell', which will be pointed to whenever the + current cell is outside of the current target region. This avoids + a `ras.cell != NULL` check in the `FT_INTEGRATE` macro. - [truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics. + - Also use the null cell as a sentinel at the end of all `ycells` + linked-lists, by setting its x coordinate to `INT_MAX`. This + avoids a `if (!cell)` check in `gray_set_cell` as well. - Instead of setting typo or win metrics as the new `FT_Face' metrics - indiscriminately, apply only typo deltas to the currently active - `FT_Face' metrics. This prevents line height differences when the - default outlines were used as the regular face and instances for - everything else, for example. + - Slightly change the worker struct fields to perform a little less + operations during rendering. - * src/truetype/ttgxvar.c (tt_apply_mvar): Implement. + Example results (on a 2013 Corei5-3337U CPU) -2019-02-02 Nikolaus Waxweiler + out/ftbench -p -s10 -t5 -bc DroidSansFallbackFull.ttf - [sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set. + Before: 5.472 us/op + After: 5.275 us/op - If the `OS/2' table exists and `fsSelection' bit 7 - (USE_TYPO_METRICS) is set, use the `sTypo*' set of values to compute - the `FT_Face's ascender, descender, and height. Otherwise, fall - back to old behavior. + out/ftbench -p -s60 -t5 -bc DroidSansFallbackFull.ttf - * src/sfnt/sfobjs.c (sfnt_load_face): Implement. + Before: 17.988 us/op + After: 17.389 us/op -2019-01-18 John Tytgat + * src/smooth/ftgrays.c (grat_TWorker): Replace `num_cells` field with + `cell_free` and `cell_limit`. + (NULL_CELL_PTR, CELL_MAX_X_VALUE, CELL_IS_NULL): New macros. + (gray_dump_cells, gray_set_cell, gray_sweep, gray_sweep_direct, + gray_convert_glyph_inner, gray_convert_glyph): Updated. - [sfnt] Handle TT fonts having two PostScript font names (#55471). +2021-07-15 David Turner - * src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any - other language found for PostScript font names. + [tests] Rewrite download script in Python3. -2019-01-08 Chris Liddell + This commit replaces the bash script with a Python script that does + the same work, plus avoiding to download anything if the files are + already installed with the right content. - [psaux] Fix closepath (#55414). + We now use the first 8 bytes of each file's sha256 hash for the + digest. - All of the Type 1 path building is done with code common to the - revised CFF engine, with the exception of closepath, which was still - calling ps_builder_close_contour(), thus previously cached segments - were not always written to the path, and glyph corruption, or even - invalid outlines were possible. + * tests/scripts/download-test-fonts.sh: Removed. + * tests/scripts/download-test-fonts.py: New script. + * tests/README.md: Updated. - * src/psauc/psinterp.c (cf2_interpT2CharString) : - Switch to calling `cf2_glyphpath_closeOpenPath'. +2021-07-15 Alex Richardson -2018-12-29 Werner Lemberg + Support architectures where `long` is smaller than pointers. - * src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310). + I am currently trying to compile FreeType for CHERI-extended ISAs + (CHERI-RISC-V and Arm's Morello), but I am getting compiler warnings + from the `FT_UINT_TO_POINTER` macro. When compiling with the CHERI + Clang compiler, not using `uinptr_t` for casts between integers an + pointers results in the following `-Werror` build failures: -2018-12-25 Werner Lemberg + ``` + In file included from .../src/truetype/truetype.c:22: + .../src/truetype/ttgload.c:1925:22: error: + cast from provenance-free integer type to pointer type will + give pointer that can not be dereferenced + [-Werror,-Wcheri-capability-misuse] + node->data = FT_UINT_TO_POINTER( glyph_index ); + ^ + .../include/freetype/internal/compiler-macros.h:79:34: note: + expanded from macro 'FT_UINT_TO_POINTER' + ``` - * src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow. + * include/freetype/internal/compiler-macros.h (FT_UINT_TO_POINTER): + The ISO C standard compliant fix for this would be to use + `uintptr_t` from `stdint.h`, but I am not sure if this is supported + by the minimum compiler version. Therefore, use the + compiler-defined `__UINTPTR_TYPE__` macro (supported in GCC 4.6+ and + Clang since about 3.0) before checking for `_WIN64` and falling back + to `unsigned long`. - Reported as +2021-07-13 Oleg Oshmyan - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915 + [base] Fix `FT_Open_Face`'s handling of user-supplied streams. -2018-12-12 Werner Lemberg + This was already true (though undocumented) most of the time, but + not if `FT_NEW` inside `FT_Stream_New` failed or if the + `FT_OPEN_XXX` flags were bad. - [gxvalid] Fix compiler warnings. + Normally, `FT_Open_Face` calls `FT_Stream_New`, which returns the + user-supplied stream unchanged, and in case of any subsequent error + in `FT_Open_Face`, the stream is closed via `FT_Stream_Free`. - * src/gxvalid/gxvjust.c (gxv_just_check_max_gid), - src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'. + Up to now, however, `FT_Stream_New` allocates a new stream even if + it is already given one by the user. If this allocation fails, the + user-supplied stream is not returned to `FT_Open_Face` and never + closed. Moreover, the user cannot detect this situation: all they + see is that `FT_Open_Face` returns `FT_Err_Out_Of_Memory`, but that + can also happen after a different allocation fails within the main + body of `FT_Open_Face`, when the user's stream has already been + closed by `FT_Open_Face`. It is plausible that the user stream's + `close` method frees memory allocated for the stream object itself, + so the user cannot defensively free it upon `FT_Open_Face` failure + lest it ends up doubly freed. All in all, this ends up leaking the + memory/resources used by user's stream. -2018-12-11 Werner Lemberg + Furthermore, `FT_Stream_New` simply returns an error if the + `FT_OPEN_XXX` flags are unsupported, which can mean either an + invalid combination of flags or a perfectly innocent + `FT_OPEN_STREAM` on a FreeType build that lacks stream support. + With this patch, the user-supplied stream is closed even in these + cases, so the user can be sure that if `FT_Open_Face` failed, the + stream is definitely closed. - * src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test. + * src/base/ftobjs.c (FT_Stream_New): Don't allocate a buffer + unnecessarily. + Move error-handling code to make the control flow more obvious. + Close user-supplied stream if the flags are unsupported. + `FT_Stream_Open` always sets `pathname.pointer`, so remove the + redundant (re)assignment. None of the `FT_Stream_Open...` functions + uses `stream->memory`, so keep just one assignment at the end, + shared among all possible control flow paths. + ('Unsupported flags' that may need a stream closure can be either an + invalid combination of multiple `FT_OPEN_XXX` mode flags or a clean + `FT_OPEN_STREAM` flag on a FreeType build that lacks stream + support.) - `control_len' only gets its value from `n_ins' (and vice versa), - which is always read as `unsigned short' and thus can't be larger - than 0xFFFF. +2021-07-13 Oleg Oshmyan + + [base] Reject combinations of incompatible `FT_OPEN_XXX` flags. + + The three modes are mutually exclusive, and the documentation of the + `FT_OPEN_XXX` constants notes this. However, there was no check to + validate this in the code, and the documentation on `FT_Open_Args` + claimed that the corresponding bits were checked in a well-defined + order, implying it was valid (if useless) to specify more than one. + Ironically, this documented order did not agree with the actual + code, so it could not be relied upon; hopefully, nobody did this and + nobody will be hurt by the new validation. -2018-12-04 Werner Lemberg + Even if multiple mode bits were allowed, they could cause memory + leaks: if both `FT_OPEN_STREAM` and `stream` are set along with + either `FT_OPEN_MEMORY` or `FT_OPEN_PATHNAME`, then `FT_Stream_New` + allocated a new stream but `FT_Open_Face` marked it as an 'external' + stream, so the stream object was never released. - [bdf] Ignore data after `ENDFONT'. + * src/base/ftobjs.c (FT_Stream_New): Reject incompatible + `FT_OPEN_XXX` flags. - Reported as +2021-07-12 Alex Richardson - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798 + * meson.build: Fix build for other UNIX systems (e.g., FreeBSD). - * src/bdf/bdflib.c (_bdf_parse_end): New function. - (_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has - been encountered. + Without this change the build of `unix/ftsystem.c` fails because the + `ftconfig.h` header that defines macros such as `HAVE_UNISTD_H` and + `HAVE_FCNTL_H` is only being generated for Linux, macOS, and Cygwin + systems: -2018-12-02 Alexei Podtelezhnikov + ``` + .../builds/unix/ftsystem.c:258:32: error: + use of undeclared identifier 'O_RDONLY' + file = open( filepathname, O_RDONLY ); + ``` - * builds/windows/visualc/freetype.dsp: Dust off. + Instead of hardcoding a list of operating systems for this check, + update the logic that decides whether to build the file and set a + boolean flag that can be checked instead. -2018-11-27 Alexei Podtelezhnikov +2021-07-12 Werner Lemberg - * builds/windows/vc2010/freetype.vcxproj: Simplify. + [autofit] More clean-ups. -2018-11-27 Chris Liddell + * src/autofit/afhints.h (AF_GlyphHintsRec): Remove the no longer + needed fields `xmin_delta` and `xmax_delta`. - [type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls. + * src/autofit/afhints.c (af_glyph_hints_reload), + src/autofit/afloader.c (af_loader_load_glyph): Updated. - For multiple master fonts, common usage (in Postscript) is to modify - the WeightVector of an existing font instance, this addition - supports that use. +2021-07-12 Werner Lemberg - * include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector, - FT_Get_MM_WeightVector): New API functions. + Small clean-ups for the last few commits. - * include/freetype/internalservices/svmm.h - (FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New - function types. - (MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector' - members. - (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. + * include/freetype/fttrace.h (afwarp): Removed. - * src/cffcffdrivr.c (cff_set_mm_weightvector, - cff_get_mm_weightvector): New functions. - (cff_service_multi_masters): Register them. +2021-07-12 David Turner - * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. - This driver doesn't use the new interface. + Remove obsolete `AF_Angle` type and related sources. - * src/type1/t1load.c (T1_Set_MM_WeightVector, - T1_Get_MM_WeightVector): New functions. - * src/type1/t1driver.c (t1_service_multi_masters): Register them. - * src/type1/t1load.h: Updated. + * src/autofit/afangles.c: File removed. Functions related to + sorting moved to... + * src/autofit/afhints.c (af_sort_pos, af_sort_and_quantize_widths): + This file. + * src/autofit/afangles.h: File removed. + * src/autofit/aftypes.h: Updated. + * src/autofit/autofit.c: Updated. -2018-11-27 Ben Wagner + * src/autofit/rules.mk (AUTOF_DRV_SRC): Updated. - [cff] Fix compiler warning (#55105). +2021-07-12 David Turner - * src/cff/cffparse.c (cff_parser_run): Guard label only used if - CFF_CONFIG_OPTION_OLD_ENGINE is active. + Remove experimental auto-hinting 'warp' mode. -2018-11-27 Ben Wagner + This feature was always experimental, and probably never worked + properly. This patch completely removes it from the source code, + except for a documentation block describing it for historical + purposes. - [truetype] Fix numeric overflow (#55103). + * devel/ftoption.h, include/freetype/config/ftoption.h: Remove + `AF_CONFIG_OPTION_USE_WARPER`. - * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'. + * include/freetype/ftdriver.h: Document 'warping' property as + obsolete. -2018-11-25 Alexei Podtelezhnikov + * src/autofit/afwarp.c, src/autofit/afwarp.h: Files removed. + * src/autofit/*: Remove any code related to warp mode. - [builds] Belated DLL support with vc2002-vc2008. +2021-07-12 David Turner - The solution and project files should be automatically upgraded for - the approriate Visual C++ version. + Remove experimental 'Latin2' writing system (`FT_OPTION_AUTOFIT2`). - * builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades. - * builds/windows/visualc/index.html: Document the change. - * builds/windows/vc2005, builds/windows/vc2008: Removed as redundant. + This code has always been experimental and was never compiled anyway + (`FT_OPTION_AUTOFIT2` does not appear in `ftoption.h` or even any of + our build files). -2018-11-22 Armin Hasitzka + * include/freetype/internal/fttrace.h (aflatin2): Removed. + * src/autofit/aflatin2.h, src/autofit/aflatin2.c: Files removed. + * src/autofit/afloader.c: Remove undocumented hook to activate + Latin2 system. + * src/autofit/afstyles.h: Remove `ltn2_dflt` style definition. + * src/autofit/afwrtsys.h: Remove `LATIN2` writing system definition. + * src/autofit/autofit.c: Updated. - * src/cff/cffparse.c: Please the compiler. +2021-07-05 Werner Lemberg -2018-11-22 Armin Hasitzka + * src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix argument. - [cff] Fix memory overflow. + Reported by Hin-Tak. - Reported as +2021-07-03 Werner Lemberg - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869 + * meson_options.txt: Sort alphabetically; no final full stops. - * src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store - evaluated T2 charstrings in separately allocated memory. +2021-07-01 Ben Wagner -2018-11-18 Alexei Podtelezhnikov + * src/truetype/ttgxvar.c (tt_set_mm_blend): Test `coords`. - * builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it. + It is undefined behavior to pass `NULL` to `memcpy`. `coords' is + passed to `memcpy` but `TT_Get_MM_Blend` and `TT_Get_Var_Design` + explictly call `tt_set_mm_blend` with `coords` as `NULL`. In + addition, `TT_Set_MM_Blend` has a similar possible issue. -2018-11-10 Alexei Podtelezhnikov +2021-06-30 Dominik Röttsches - [smooth] Placeholder only for library-enabled LCD filtering. + [sfnt] Support PaintScale in 'COLR' v1 parsing. - * src/smooth/ftsmooth.c (ft_smooth_init): Add disabled - `FT_Library_SetLcdFilter' call. + * include/freetype/ftcolor.h (FT_PaintFormat): Renumber values, add + `FT_COLR_PAINTFORMAT_SCALE`. + (FT_PaintScale): New structure to represent 'PaintScale*' tables. + (FT_COLR_Paint): Updated. -2018-11-09 Young Xiao + * src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration. + (read_paint): Parse 'PaintScale' and friends. - [psaux] Add safety guard (#54985). +2021-06-30 Dominik Röttsches - * src/psaux/psobjs.c (cff_builder_close_contour): Do it. + [sfnt] Handle fonts without layer list in 'COLR' v1. -2018-11-08 Alexei Podtelezhnikov + 'COLR' v1 fonts do not necessarily need to have a layer list; for + this reason, 'fontTools' recently started generating fonts in a way + that drops the layer list if there are no layers in it. This + results in the layer list offset becoming zero, which FreeType + treated as an invalid table. Fix that and handle the case for layer + list offset being 0. This slightly changes how we need to calculate + the starting offset for paints. - * builds/unix/configure.raw: Require `windows.h' for windres. + * src/sfnt/ttcolr.c (tt_face_load_colr): Handle case of layer list + offset being zero without outright rejecting table. -2018-11-08 Alexei Podtelezhnikov +2021-06-30 Alexei Podtelezhnikov - [ftstroke] Fix unpredictable failures (#54986). + * src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'. - * src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check. +2021-06-29 Alexei Podtelezhnikov -2018-11-08 Alexei Podtelezhnikov + [raster] Do not skip the second pass without dropout control. - [ftstroke] Fix unpredictable failures (#54976). + The second pass also fixes horizontal lines through the pixel centers. - * src/base/ftstroke.c (ft_sroke_border_close): Set the start tags. + * src/raster/ftraster.c (black_TWorker): Do not use `second_pass'. + (Render_Glyph): Skip the second pass only with the appropriate flag. -2018-11-07 Ben Wagner +2021-06-29 Alexei Podtelezhnikov - [truetype] Fix VF check from 2018-09-12 (#54973). + [raster] Handle sub-band stack locally. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct - offsets for estimates. + * src/raster/ftraster.c (black_TWorker): Move `band_stack' from here.. + (Render_Single_Pass): ... to here and accept limit arguments. + (Render_Glyph): Updated. -2018-11-06 Werner Lemberg +2021-06-25 Anurag Thakur - [pshinter] Fix numeric overflow. + [CI] Introduce linux CI and refactor job names. - Reported as + * .gitlab-ci.yml: Added jobs for building freetype on linux. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242 +2021-06-28 Alexei Podtelezhnikov - * src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it. + [raster] Handle Bézier stack locally. -2018-11-06 Werner Lemberg + * src/raster/ftraster.c (black_TWorker): Move `arcs' from here... + (Conic_To, Cubic_To): ... to here to tighten their scope. + (Bezier_Up, Bezier_Down): ... Take the current `arc' argument. - [psaux] Fix timeout in old CFF engine. +2021-06-28 Dominik Röttsches - Reported as + [sfnt] Improve paint limit checks - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260 + Paint tables can appear before the `base_glyphs_v1` offset if the + font is produced with the layer list before the base glyph list. In + this case paint tables can occur after the layer list but before the + base glyph list. Checks in the 'COLR' v1 code were rejecting fonts + with this layout. Improve these checks by calculating a minimum + offset after which paint tables can occur and use that in safety + checks. - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless - loop. + * src/sfnt/ttcolr.c (Colr, tt_face_load_colr): Declare + `paint_start_v1` and calculate that as the minimum of the end of + layer list and base glyph list. + (get_child_table_pointer, read_paint, tt_face_get_paint_layers): + Use that in safety checks. -2018-11-04 Alexei Podtelezhnikov +2021-06-28 Alexei Podtelezhnikov - * src/truetype/ttgxvar.c: Use enum definitions. + [raster] Clean up vertical sweep. -2018-11-03 Alexei Podtelezhnikov + * src/raster/ftraster.c (black_TWorker): Replace the current line + offset with the pointer and drop the increment. + (Function_Sweep_Init): Take values as arguments instead of pointers. + (Vertical_Sweep_*, Horizontal_Sweep_Init, Draw_Sweep): Updated. - * src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition. +2021-06-25 Alexei Podtelezhnikov -2018-11-03 Alexei Podtelezhnikov + [raster] Make `band_top' local variable. - * src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks. + * src/raster/ftraster.c (black_TWorker): Move `band_top' from here... + (Render_Single_Pass): ... to here, and refactor. + (Render_Glyph): Updated. -2018-11-03 Alexei Podtelezhnikov +2021-06-25 Alexei Podtelezhnikov - Revert due to specs: [truetype] Speed up variation IUP. + [raster] Adjust sub-band bisecting limits. -2018-11-02 Alexei Podtelezhnikov + We can bisect a band until it is just a single scan line. This might + be slow and cause time-outs but if we need to impose limits it should + be elsewhere. - * src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic. + * src/raster/ftraster.c (Render_Single_Pass): Tweak sub-banding. - Reported and tested by Behdad. +2021-06-25 Alexei Podtelezhnikov -2018-11-02 Shailesh Mistry + * src/raster/ftraster.c (Render_Single_Pass): Remove dead code. - [autofit] Prevent SEGV. +2021-06-25 Werner Lemberg - See + [base] Add trace level to logging output. - https://bugs.ghostscript.com/show_bug.cgi?id=697545 + Some practical debugging work has shown that displaying level X of + an `FT_TRACEX` macro in the output of `FT2_DEBUG="... -v"` would be + very helpful to find out which trace level should be selected. As + an example, we now get output like - for more details on how the bug was found. + ``` + [ttobjs:2] TTF driver + [ttobjs:2] SFNT driver + [sfobjs:2] not a font using the SFNT container format + [t1objs:2] Type 1 driver + [stream:7] FT_Stream_EnterFrame: 14 bytes + ``` - * src/autofit/afloader.c (af_loader_load_glyph): Propagate error - code. + * include/freetype/internal/ftdebug.h (FT_LOGGING_TAGX): New macro. + (FT_LOG): Use it to add the trace level to the logging tag. -2018-10-31 Alexei Podtelezhnikov + * include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH): + Adjust. - [truetype] Speed up variation IUP. + * docs/DEBUG: Updated. - * src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial - snapping to the same position from true interpolation. +2021-06-24 Alexei Podtelezhnikov -2018-10-31 Alexei Podtelezhnikov + [smooth, raster] Fix up and align error codes. - * src/type1/t1load.c (t1_set_mm_blend): Optimized. + FT_Render_Glyph picked up FAILURE or 1 returned from the raster + function, which became a confusing error code. Instead, return + Raster_Overflow in the unlikely event that banding does not help or + another meaningful error. -2018-10-31 Alexei Podtelezhnikov + * src/smooth/ftgrays.c (gray_convert_glyph_inner, gray_convert_glyph): + Use Raster_Overflow when the rendering pool is exhausted and return it + if banding does not help. + (gray_raster_render): Use Smooth_Err_Ok. - * src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized. + * src/raster/ftraster.c (Render_Single_Pass): Return Raster_Overflow + if banding does not help or another error code. -2018-10-29 Werner Lemberg +2021-06-23 Alexei Podtelezhnikov - [base] Fix numeric overflow. + [smooth, raster] Remove synonymous error macros. - Reported as + * src/smooth/ftgays.c [STANDALONE_]: s/ErrRaster_/Smooth_Err_/. + (gray_convert_glyph_inner): Updated accordingly. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080 + * src/raster/ftraster.c [STANDALONE_]: Do not abbreviate error macros. + (New_Profile, End_Profile, Insert_Y_Turn, Line_Up, Bezier_Up, + Decompose_Curve, Draw_Sweep, Render_Single_Pass, ft_black_render): + Updated accordingly. - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'. +2021-06-22 Dominik Röttsches -2018-10-29 Werner Lemberg + [sfnt] s/PaintTransformed/PaintTransform/, s/transformed/transform/. - [cff] Fix numeric overflow. + * include/freetype/ftcolor.h (FT_PaintTransformed, FT_PaintFormat, + FT_COLR_Paint): Do it to make it harmonize with other names such as + 'PaintTranslate'. - Reported as + * src/sfnt/ttcolr.c (read_paint, tt_face_get_paint): Ditto. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988 +2021-06-22 Dominik Röttsches - * src/cff/cffparse.c (cff_parser_run) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'. + Move 'COLR' API to `ftcolor.h`. -2018-10-27 Alexei Podtelezhnikov + * include/freetype/freetype.h: Cut section layer managament + containing 'COLR' v0 and v1 API and move it to `ftcolor.h` as + requested by Werner on freetype-devel. + * include/freetype/ftcolor.h: Paste that section. - [sfnt] Make `head' timestamps unsigned. +2021-06-19 Werner Lemberg - It's been more than 2^31 seconds since 1904. + [truetype] Fix integer overflow. - * include/freetype/tttables.h (TT_Header): Change field types. - * src/sfnt/ttload.c (tt_face_load_generic_header): Updated. + Reported as -2018-10-27 Alexei Podtelezhnikov + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35312 - Revert: Align FreeType with standard C memory management. + * src/truetype/ttinterp.c (Ins_JMPR): Use `ADD_LONG`. -2018-10-27 Werner Lemberg +2021-06-19 Werner Lemberg - [psaux] Fix numeric overflow. + [autofit] Prevent hinting if there are too many segments. - Triggered by + This speeds up handling of broken glyphs. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157 + Reported as - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35309 -2018-10-20 Werner Lemberg + * src/autofit/aflatin.c (af_latin_hints_compute_segments): Implement + it. - Avoid endless loop while tracing (#54858). +2021-06-18 Alexei Podtelezhnikov - * src/type1/t1load.c (parse_buildchar): Guard tracing stuff with - FT_DEBUG_LEVEL_TRACE. - -2018-10-17 David Demelier + * src/sdf/ftsdfrend.c (ft_(b)sdf_render): Do not FT_ERROR routinely. - * CMakeLists.txt: Specify `RUNTIME DESTINATION'. +2021-06-16 David Turner - This is needed for DLL builds. + [autofit] Fix return value of `FT_Load_Glyph`. -2018-10-07 Werner Lemberg + * src/autofit/afglobal.c (af_face_globals_get_metrics): The issue is + that `style_metrics_init` sometimes returns -1 without clearing + `error`. While looping to `Again`, the next operation is + successful, but -1 is still returned by the function. The fix is to + set `error` to 0 appropriately. - A missing Unicode cmap is not a fatal error. + Fixes #1063. - This is a follow-up to the previous commit. +2021-06-15 David Turner - * src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c - (sfnt_load_face), src/type1/t1objs.c (T1_Face_Init), - src/type42/t42objs.c (T42_Face_Init): Implement it. + [meson] Add first regression test to FreeType. -2018-10-07 Werner Lemberg + * tests/README.md: New file that explains how to build and run the + tests with the Meson build. - Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794). + * tests/scripts/download-test-fonts.sh: New bash script to download + test font files to the `tests/data` folder. - * src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c - (t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init): - Check `unicodes_init' field. + * meson.build, meson_options.txt: Add 'tests' option to enable + building and running the test programs (disabled by default). -2018-10-03 Werner Lemberg + * tests/meson.build: New file. - [ftgrays] Fix typo in stand-alone mode (#54771). + * tests/issue-1063/main.c: Simple regression test to exhibit issue + 1063. - * src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ && - FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'. + * .gitignore: Ignore the content of the `tests/data` folder for + now. -2018-10-02 Werner Lemberg +2021-06-12 Alexei Podtelezhnikov - [psaux] Fix segfault. + [type42] Fix new memory leak. - Reported as + We need to inverse inheritance of FT_GlyphSlot_Internal so that we + have a chance to free the rendered bitmap from the parent slot. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768 + * src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts + of the child `ttslot' and replace it with the parent structure. + (T42_GlyphSlot_Done): Updated accordingly. - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Check - argument. +2021-06-12 Werner Lemberg -2018-10-02 Werner Lemberg + [psaux] Fix another assertion. - [psaux] Fix numeric overflow. + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Convert assertion into error, since the + problem can happen with invalid user input. - Reported as + Test case is file - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10740 + fuzzing/corpora/legacy/oss-fuzz/5754332360212480-unknown-read - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT. + in the `freetype2-testing` repository. -2018-10-02 Werner Lemberg +2021-06-12 Werner Lemberg - [pshinter] Handle numeric overflow. + [psaux] Fix assertions. - Reported as + * src/psaux/pshints.c (cf2_hintmap_adjustHints): Check for overflow + before emitting an assertion error. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550 + Test case is file - * src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric - overflow. + fuzzing/corpora/legacy/oss-fuzz/4594115297673216-integer-overflow -2018-09-27 Alexei Podtelezhnikov + in the `freetype2-testing` repository. - Align FreeType with standard C memory management. +2021-06-09 Alexei Podtelezhnikov - * include/freetype/ftsystem.h: Include FT_TYPES_H. - (*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments. - * src/raster/ftmisc.h: Ditto. + * src/truetype/ttinterp.c (TT_RunIns): Optimize tracing. - * builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c, - * builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc): - Use size_t for the size arguments. +2021-06-09 Alexei Podtelezhnikov - * src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use - FT_Offset, aka size_t, for the size arguments. + [sdf] Fix SDF positioning. -2018-09-25 Werner Lemberg + * src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Add padding to + `bitmap_top' and `bitmap_left'. - Fix handling of `FT_Bool'. + * sdf/sdf/ftsdf.c (sdf_generate_with_overlaps): Fix VC++ warning. - Before this commit we had code like +2021-06-08 Werner Lemberg - (FT_Bool)( globals->glyph_styles[gindex] & 0x8000) + Fix 'devel' build for 'COLR' v1. - Since `FT_Bool' is defined to be an `unsigned char', the code - evaluated to something like + * devel/ftoption.h: Synchronize with + `include/freetype/config/ftoption.h`. - (unsigned char)( 0x8532 & 0x8000) +2021-06-08 Werner Lemberg - which in turn expanded to + [sfnt] Sanitize cmap4 table better. - (unsigned char)( 0x8000) + Fixes #1062. - and finally yielded 0x00 – i.e., false – not as expected. + * src/sfnt/ttcmap.c (tt_cmap4_validate): Handle a too-small value of + `length` gracefully. - Problem reported and analyzed by Tony Smith . +2021-06-08 Dominik Röttsches - * include/freetype/fttypes.h (FT_BOOL): Add a comparison against - zero so that we always have a Boolean expression. + [sfnt] Pointer validity check when reading 'COLR' v1 layers - */*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where - possible. + * src/sfnt/ttcolr.c (tt_face_get_paint_layers): In addition to the + existing sanity checks, ensure that the pointer to the layer to be + read is within the 'COLR' v1 table. -2018-09-23 Alexei Podtelezhnikov +2021-06-08 Werner Lemberg - [bdf] Speed up charmap access. + * src/sdf/ftsdfcommon.c: Fix inclusion of header files. - This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster. +2021-06-08 Werner Lemberg - * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search - with continuous prediction. + [sdf] Make `make multi` work. -2018-09-22 Alexei Podtelezhnikov + * src/sdf/ftsdf.c: Include `ftbitmap.h`. - * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Another tweak. + * src/sdf/ftsdfcommon.h: Move function bodies to `ftsdfcommon.c`. + Include `ftobjs.h` to get definitions of `FT_LOCAL` and friends. - This one should be clearer. When the rounded monochrome bbox collapses - we add a pixel that covers most if not all original cbox. + * src/sdf/ftsdfcommon.c: New file. -2018-09-21 Alexei Podtelezhnikov + * src/sdf/rules.mk, src/sdf/sdf.c: Updated. - * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak. +2021-06-08 Anuj Verma -2018-09-21 Ben Wagner + [sdf] Use 8 bits for final SDF output instead of 16bits. - Improve auto-hinter handling of bitmap fonts (#54681). + Since 8-bits is enough to represent SDF data we no longer require + 16-bits for this purpose. Also, we now normalize the output data + to use the entire 8-bit range efficiently. For example: if we use + 3.5 format with a spread of 1 we basically only use the starting + 5-bits. By normalizing we can use the entire 8-bit range. - For bitmap fonts, `FT_Load_Glyph' should either return an error or - not set the format to `FT_GLYPH_FORMAT_OUTLINE'. However, in this - case `FT_Load_Glyph' calls into the auto-hinter which calls back - into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which - marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path - (even though it doesn't have any path). It appears that the - auto-hinter should not be called when the face doesn't have - outlines. The current test for using the auto-hinter in - `FT_Load_Glyph' checks whether the driver supports scalable - outlines, but not if the face supports scalable outlines. + * include/freetype/freetype.h (FT_Render_Mode): Updated description + for `FT_RENDER_MODE_SDF` regarding this change. - * src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have - scalable outlines. + * include/freetype/ftimage.h (FT_Pixel_Mode): Removed + `FT_PIXEL_MODE_GRAY16` since no longer required. -2018-09-21 Werner Lemberg + * include/freetype/fttypes.h (FT_F6Dot10): Removed since no longer + required. - [raster] Fix disappearing vertical lines (#54589). + * src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Allocate 8-bit + bitmap instead of 16-bit buffer. - * src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case - where both left and right outline exactly pass pixel centers. + * src/sdf/ftsdfcommon.h (map_fixed_to_sdf): Added function to convert + 16.16 distance value to our desired format. -2018-09-20 Alexei Podtelezhnikov + * src/sdf/ftsdf.c (sdf_generate_with_overlaps, + sdf_generate_bounding_box): Use the new `map_fixed_to_sdf` function + and also use 8-bit output buffer. - * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Tiny rounding tweak. + * src/sdf/ftbsdf.c (finalize_sdf): Output to a 8-bit buffer instead + of 16-bit buffer. - This adds pixels in case a contour goes through the center - and they need to be turned on in the b/w rasterizer. +2021-06-02 Ben Wagner + Werner Lemberg -2018-09-20 Alexei Podtelezhnikov + [sfnt] Fix fallout from 2021-05-29 change. - [pcf] Replace charmap implementation. + * src/sfnt/ttcolr.c (find_base_glyph_record, + find_base_glyph_v1_record): Adjust binary search. - PCF comes with charmap lookup table, aka PCF encodings. Using it - directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times - faster than the original BDF-like binary searches. + Needs to be updated with change to unsigned. - * src/pcf/pcf.h (PCF_EncodingRec): Removed. - (PCF_FaceRec): Remove `nencodings' and `encodings'. - * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced. - * src/pcf/pcfread.c (pcf_get_encodings): Store data differently. +2021-06-02 Werner Lemberg -2018-09-20 Werner Lemberg + * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing. - [base] Remove unused function `FT_GlyphLoader_CopyPoints'. + Problem reported by Alexei. - * include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c - (FT_GlyphLoader_CopyPoints): Do it. +2021-06-02 Werner Lemberg -2018-09-19 Alexei Podtelezhnikov + [psaux] Fix MSVC compiler warnings. - [pcf] Prepare to replace charmap implementation. + * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs): + Add cast. - * src/pcf/pcf.h (PCF_FaceRec): Updated to include... - (PCF_EncRec): ... this new structure to store charmap geometry. +2021-05-29 Werner Lemberg - * src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry. + Fix compilation errors and (some) warnings for clang++. -2018-09-18 Alexei Podtelezhnikov + * src/autofit/afmodule.c (AF_GlyphHintsRec): Make it static. - Remove unused fields. + * src/cache/ftcache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c + (ftc_snode_compare): Remove semicolon. - * src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'. - * src/bdfdrvr.h (BDF_FaceRec): Ditto. - * src/winfonts/winfnt.h (FNT_FaceRec): Ditto. + * src/cff/cffparse.c (cff_parser_run): Add `break` statement. -2018-09-17 Werner Lemberg + * src/cid/cidload.c (cid_hex_to_binary): Add cast. - [pshinter] Handle numeric overflow. + * src/sdf/ftbsdf.c (CHECK_NEIGHBOR): Use `do {} while(0)` loop. + (bsdf_init_distance_map, finalize_sdf, bsdf_raster_render): Add + casts. + * src/sdf/ftsdf.c (sdf_generate_bounding_box, + sdf_generate_with_overlaps): Ditto. + * src/sdf/ftsdfcommon.h (square_root): Ditto. + * src/sdf/ftsdfrend.c (sdf_property_get, ft_sdf_render, + ft_bsdf_render): Ditto. - Reported as + * src/sfnt/ttcolr.c (find_base_glyph_record, + find_base_glyph_v1_record): Fix variable signedness. + (read_color_line): Add cast. + (read_paint): Add casts. + Fix signedness issue. + (tt_face_get_colorline_stops) Fix signedness issues. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396 + * src/sfnt/ttpost.c (load_format_20): Add casts. - * src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H. - (psh_blues_snap_stem): Mask numeric overflow. + * src/truetype/ttsubpix.c (TWEAK_RULES, TWEAK_RULES_EXCEPTIONS): + Remove final semicolons. -2018-09-13 Werner Lemberg +2021-05-29 Werner Lemberg - [truetype] Some fixes for VF checks. + [build] Allow overriding of `ANSIFLAGS` for GNU make build. - Reported as + * builds/*: Implement it. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317 +2021-05-27 Alexei Podtelezhnikov - * src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory - frame if we have invalid glyph variation data offsets. - (tt_face_vary_cvt): Protect against missing `tuplecoords' array. - Fix typo. + [type42] Fix auto-hinting. -2018-09-13 Werner Lemberg + The autohinter could not access the base (unscaled) outline in the + child TrueType glyph slot. We now share the internal parts between + the parent and child glyph slots. Fixes #1057. - * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit. + * src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts + of `T42_GlyphSlot' and replace it with the child TrueType structure. + (T42_GlyphSlot_Done): Updated accordingly. -2018-09-13 Werner Lemberg +2021-05-25 Werner Lemberg - * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'. + [psaux] Guard and trace AFM kern data allocation. Reported as - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31543 -2018-09-12 John Tytgat + * include/freetype/internal/fttrace.h: Add 'afmparse' trace + component. - [sfnt] Better PS name handling (#54629). + * src/psaux/afmparse.c (FT_COMPONENT): Define. + (afm_parse_track_kern, afm_parse_kern_pairs): Protect against + allocations bombs. + Add tracing. + (afm_parse_kern_data): Don't allow multiple kern data sections. - * src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks. - (get_win_string, get_apple_string): Return NULL when the PostScript - font name characters is not according to specification. - (get_win_string): Make trace output work if the high byte if - non-zero. - (sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred - Win PS name (when there is also an Apple PS name); change this into - a fallback to Apple PS name in case the Win PS name is invalid. +2021-05-23 Alexei Podtelezhnikov -2018-09-12 Werner Lemberg + * meson.build (ft2_public_headers): Add missing `ftcid.h'. - [truetype] Improve VF check. + Fixes #1058. - Triggered by +2021-05-20 Alexei Podtelezhnikov - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255 + [type42] Avoid some memory zeroing. - * src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check - for `tupleCount'. + * src/type42/t42objs.c (T42_Open_Face): Tweak allocation macro. + * src/type42/t42parse.c (t42_parse_sfnts): Ditto. -2018-09-12 Werner Lemberg +2021-05-19 Nikolaus Waxweiler - * src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'. + [CMake] Update dependency finders. -2018-09-10 Armin Hasitzka + 1. Fixes CMake using any found HarfBuzz version lower than the minimum + required. This is based on HALX99's merge request at + https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/31 + 2. Update FindHarfBuzz.cmake from + https://github.com/WebKit/WebKit/blob/1ce32454/Source/cmake/FindHarfBuzz.cmake + and guard post-CMake-3.1 features to keep the minimum version unchanged + 3. Update FindBrotliDec.cmake to stop the warnings, based on what + https://github.com/google/woff2/blob/a0d0ed7d/cmake/FindBrotliDec.cmake + is doing - * src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow. + * CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Implement 1 and 2. + * builds/cmake/FindBrotliDec.cmake: Implement 3. - Reported as +2021-05-19 Ben Wagner - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215 + [gzip] Use exact type for `ft_gzip_alloc` and `ft_gzip_free`. -2018-09-09 Ben Wagner + While a function pointer may be cast to another function pointer + type, it is required to cast the function pointer back to the + original function pointer type before calling it. If a parameter is + a pointer the exact pointer type is required. Using a pointer to a + different underlying type is technically undefined behavior. The + wrapper functions `ft_gzip_alloc` and `ft_gzip_free` took + `FT_Memory` (a `FT_MemoryRec_*`) instead of `voidpf` (`void*`), so + when gzip calls these callbacks through `alloc_func` or `free_func` + it invokes undefined behavior. On most platforms this works out as + expected, but newer undefined behavior detectors and targets like + wasm can detect this and will produce an error. - * builds/freetype.mk (refdoc-venv): Ensure python version (#54631). + * src/gzip/ftgzip.c (ft_gzip_alloc, ft_gzip_free): Update signatures + to exactly match `alloc_func` and `free_func`, respectively. + Internally, cast the `void*` opaque pointer to `FT_Memory`. -2018-09-07 Werner Lemberg +2021-05-18 Alexei Podtelezhnikov - [truetype] Fix assertion failure. + Prioritize the anti-aliasing renderer module. - Triggered by + * modules.cfg: Reorder the renderers. + * include/freetype/config/ftmodule.h: Ditto. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10212 +2021-05-16 Alexei Podtelezhnikov - * src/truetype/ttgload.c (load_truetype_glyph): Reintroduce - `opened_frame' (removed in a change from 2018-08-26) to handle - deallocation of the second frame. + [sfnt] Additional guards on the POST table. -2018-09-05 Werner Lemberg + Fixes timeout (#1055) analyzed by Ben Wagner, reported as - Synchronize `ftdebug.c' files. + https://crbug.com/1194092 - * builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c, - builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'. + * src/sfnt/ttload.c (tt_face_load_post): Check POST format. + * src/sfnt/sfobjs.c (sfnt_load_face): Synthesize the missing unicode + charmap only if the glyph names exist. + * src/psnames/psmodule.c (ps_unicode_value): Short cut ".notdef" and + ".null". -2018-09-05 Nikhil Ramakrishnan +2021-05-13 Daniel McArdle - Add documentation guidelines file. + [psaux] Use doubling allocation strategy for CF2_ArrStack. - * docs/DOCGUIDE: New file. + Fixes timeout reported as -2018-09-04 Werner Lemberg + https://crbug.com/1206181 - * devel/ftoption.h: Synchronize with master `ftoption.h'. + * src/psaux/psarrst.c (cf2_arrstack_{push,init}): Implement it. + * src/psaux/psarrst.h (CF2_ArrStackiRec): Drop `chunk'. -2018-09-03 Nikhil Ramakrishnan +2021-05-12 Alexei Podtelezhnikov - [docwriter] Don't break code snippets accross lines. + * src/smooth/ftgrays.c (FT_MAX_GRAY_SPANS): Increase from 10 to 16. - Reported as + Ten was barely enough for two slanted stems. Sixteen can actually fit + a bit more complicated scanlines. - https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00124.html +2021-05-11 Alexei Podtelezhnikov - * docs/reference/markdown/stylesheets/extra.css (.md-typeset code): - Add rule `white-space'. + * src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code. -2018-09-03 Werner Lemberg +2021-05-11 Alexei Podtelezhnikov - */*: s/PSNames/psnames/. + [smooth] Faster bitmap sweeping. - Only tracing messages are affected. + Selecting the fill rule or checking the direct mode each time we call + `gray_hline' is sub-optimal. This effectively splits the direct mode + into a separate code path while inlining `gray_hline' and saving 5-7% + of rendering time. -2018-09-03 Werner Lemberg + * src/smooth/ftgrays.c (gray_hline): Eliminated in favor of... + (FT_FILL_RULE, FT_GRAY_SET): ... these new macros... + (gray_sweep): ... inlined here. + (gray_sweep_direct): New function that handles the direct span buffer. + (gray_TWorker): Remove the span buffer. + (gray_raster_render, gray_convert_glyph): Updated. - [sfnt] Fix heap buffer overflow in CPAL handling. +2021-05-10 Alexei Podtelezhnikov - * src/sfnt/ttcpal.c (tt_face_palette_set): Fix boundary test. - (tt_face_load_cpal): Updated. + * src/smooth/ftgrays.c (gray_hline): Simplify even-odd computations. -2018-09-01 Werner Lemberg + It is too bad the even-odd rule is not used much. - Remove `FT_Outline_{New,Done}_Internal'. +2021-05-07 Alexei Podtelezhnikov - These public API functions(!) were always undocumented and have - escaped all clean-up efforts until now. + [type1] Avoid MM memory zeroing. - * include/freetype/ftoutln.h (FT_Outline_New_Internal, - FT_Outline_Done_Internal): Removed. + * src/type1/t1load.c (t1_allocate_blend, parse_blend_design_map): + Tweak allocation macros. + * src/type1/t1objs.c (T1_Face_Done): Minor. - * src/base/ftoutln.h (FT_Outline_New_Internal, - FT_Outline_Done_Internal): Merge into... - (FT_Outline_New, FT_Outline_Done): ... these functions. +2021-05-07 Alexei Podtelezhnikov - * docs/README: Updated. + * src/bdf/bdflib.c (_bdf_list_ensure): Tweak allocation macro. -2018-08-30 Alexei Podtelezhnikov +2021-05-06 Alexei Podtelezhnikov - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format. + * src/psaux/psobjs.c (ps_parser_load_field): Tweak allocation macro. -2018-08-31 Armin Hasitzka +2021-05-06 Alexei Podtelezhnikov - [errors] Refine the macro logic surrounding `FT_Error_String'. + * src/sfnt/sfobjs.c (sfnt_load_face): Tweak allocation macro. - * include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS, - FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after - checking it and introduce a new macro that takes proper care of - multiple-inclusion protection. +2021-05-06 Alexei Podtelezhnikov -2018-08-31 Werner Lemberg + * src/cid/cidload.c (cid_read_subrs): Tweak allocation macro. - * src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls. +2021-05-06 Alexei Podtelezhnikov -2018-08-31 Werner Lemberg + * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Tweak allocation. - * src/base/ftdebug.c (FT_Throw): Reduce chattiness. +2021-05-05 Alexei Podtelezhnikov -2018-08-31 Werner Lemberg + [cff,psaux] Avoid memory zeroing (contd.). - * src/autofit/afhints.c (af_glyph_hints_reload): Add initialization. + * src/cff/cffload.c (cff_blend_doBlend, cff_blend_build_vector): Tweak + allocation macros. + * src/psaux/psarrst.c (cf2_arrstack_setNumElements): Ditto. + * src/psaux/psstack.c (cf2_stack_init): Ditto. -2018-08-30 Alexei Podtelezhnikov +2021-05-04 Ben Wagner - Consolidate bitmap presetting and size assessment. + * src/cid/cidload.c (cid_hex_to_binary): Improve return value. - * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): - Change return type. - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap - size assessment. + Add argument to return the actual number of bytes that were decoded. + The actual number of bytes decoded can be quite variable depending + on the number of ignored 'whitespace' bytes or early termination + with `>`. + (cid_face_open): Updated to use this calculated value. This avoids + trusting `parser->binary_length` is always be correct and reading + uninitialized bits if fewer are actually decoded. - * src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the - rendering of enourmous or far-fetched outlines. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + First reported as -2018-08-30 Alexei Podtelezhnikov + https://crbug.com/1203240 - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono. +2021-05-03 Alexei Podtelezhnikov -2018-08-30 Armin Hasitzka + [sfnt] Streamline POST format 2.0 handing. - [errors] Introduce a macro to control `FT_Error_String'. + To reduce memory allocations, we read an entire Pascal-string buffer + and convert it to a C-string buffer. We also reject tables with + Postscript glyph names exceeding 63 bytes. - * devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS), - include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS): - New macro. + * src/sfnt/ttpost.c (load_format20): Implement it. + (load_post_names): Check the minimal POST table size. + (load_format25, tt_face_free_ps_names): Updated accordingly. -2018-08-30 Armin Hasitzka +2021-05-02 Alexei Podtelezhnikov - [errors] Introduce `FT_Error_String'. + [bdf,pcf] Avoid memory zeroing (contd.). - * include/freetype/fterrors.h (FT_Error_String), - src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'. + * src/bdf/bdflib.c (bdf_create_property, _bdf_add_comment, + _bdf_add_property, bdf_load_font): Tweak allocation macros. + * src/pcf/pcfread.c (pcf_get_properties, pcf_get_metrics): Ditto. - * src/base/ftbase.c, src/base/Jamfile (_source), - src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic. +2021-05-01 Alexei Podtelezhnikov - * src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'. + * src/cid/cidload.c (cid_read_subrs): Tweak allocaton macro. -2018-08-30 Werner Lemberg +2021-05-01 Alexei Podtelezhnikov - [autofit] Trace `before' and `after' edges of strong points. + [sfnt] Avoid some memory zeroing. - * src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays - `before' and `after'. + * src/sfnt/sfobjs.c (sfnt_open_font, sfnt_init_face, + tt_name_ascii_from_{utf16,other}): Tweak allocaton macros. + * src/sfnt/ttload.c (tt_face_load_name): Ditto. - * src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary - function. - (af_glyph_hints_dump_points): Trace `before' and `after' edges. - (af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set - `before' and `after' information. +2021-05-01 Alexei Podtelezhnikov -2018-08-30 Alexei Podtelezhnikov + * src/sfnt/ttpost.c (load_format_{20,25}): Tweak allocaton macros. - [base] Overflow-resistant bitmap presetting. +2021-05-01 Alexei Podtelezhnikov - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it. - -2018-08-29 Armin Hasitzka + * src/sfnt/pngshim.c (Load_SBit_Png): Tweak allocaton macro. - Fix numeric overflows. +2021-05-01 Alexei Podtelezhnikov - * src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light, - psh_hint_table_find_strong_points): Fix numeric overflows. + [truetype] Avoid some memory zeroing. - Reported as + * src/truetype/ttinterp.c (Init_Context): Tweak allocation macro. + * src/truetype/ttpload.c (tt_face_load_cvt): Ditto. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083 +2021-05-01 Alexei Podtelezhnikov -2018-08-29 Werner Lemberg + [woff2] Avoid some memory zeroing. - [cff] Fix handling of `roll' op in old engine. + * src/sfnt/sfwoff2.c (store_loca, woff2_open_font): Tweak macros. - Reported as +2021-04-30 Alexei Podtelezhnikov - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080 + * src/gzip/ftgzip.c (ft_gzip_alloc): Zero out memory again. - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as - documented in the specification. +2021-04-27 Alexei Podtelezhnikov -2018-08-26 Werner Lemberg + [lzw] Preserve decompression stack when relocating to heap. - * src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values. + * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Copy stack when + relocating to heap. -2018-08-26 Nikhil Ramakrishnan +2021-04-27 Alexei Podtelezhnikov - * configure: Copy assets required by docwriter. + * src/cid/cidgload.c (cid_load_glyph): Restore the glyph_length check. - Copy directory `docs/reference/markdown' when FreeType is compiled in a - different directory. +2021-04-27 Werner Lemberg - Fixes `make refdoc' if builddir != srcdir. + * src/psmodule.c (ps_unicodes_init): Ignore empty glyph names. Reported as - https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33637 -2018-08-26 Werner Lemberg +2021-04-26 Alexei Podtelezhnikov - * src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow. + * src/sfnt/sfobjs.c (sfnt_init_face): Revert macro change. - Reported as +2021-04-26 Alexei Podtelezhnikov - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057 + [cff] Avoid some memory zeroing. -2018-08-26 Werner Lemberg + * src/cff/cffparse.c (cff_parser_init): Tweak memory macro. + * src/cff/cffload.c (cff_index_load_offsets, cff_index_get_pointers, + cff_charset_load, cff_vstore_load): Ditto. - Minor tracing adjustments. +2021-04-26 Alexei Podtelezhnikov - * src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame): - Trace. + [pfr] Avoid some memory zeroing. - * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing. + * src/pfr/pfrobjs.c (pfr_face_init) : Tweak memory macro. + * src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps, + pfr_phy_font_load): Ditto. -2018-08-26 Werner Lemberg +2021-04-26 Alexei Podtelezhnikov - [truetype] Avoid nested frames. + * src/winfonts/winfnt.c (FNT_Face_Init): Tweak memory macro. - Triggered by +2021-04-26 Alexei Podtelezhnikov - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054 + [psaux,psnames] Avoid some memory zeroing. - * src/truetype/ttgload.c (load_truetype_glyph): Don't use variable - `opened_frame' to trace whether a frame must be closed at the end of - function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which - gets called for space glyphs) uses a frame by itself. Instead, - close the frame after loading the header, then use another frame for - the remaining part of the glyph later on. + * src/psaux/psstack.c (cf2_stack_init): Tweak memory macro. + * src/psnames/psmodule.c (ps_unicodes_init): Ditto. - Also avoid calling `tt_get_metrics' twice under some circumstances. +2021-04-25 Alexei Podtelezhnikov -2018-08-26 Werner Lemberg + [base] Avoid some memory zeroing. - Various minor clean-ups. + * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Use FT_QNEW_ARRAY. + * src/base/ftsnames.c (FT_Get_Sfnt_{Name,LangTag}): Ditto. - * src/base/ftapi.c: Remove. Unused. - * src/base/Jamfile (_sources): Updated. +2021-04-25 Alexei Podtelezhnikov - * src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant - code. + [bdf,pcf] Avoid some memory zeroing. -2018-08-25 Nikhil Ramakrishnan + * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, pcf_load_font): + Tweak memory macros. + * src/bdf/bdfdrivr.c (BDF_Face_Init): Ditto. + * src/bdf/bdflib.c (_bdf_readstreami, bdf_create_property, + _bdf_parse_glyphs, _bdf_parse_start): Ditto. + (_bdf_add_property): Do not handle zero size. - Convert documentation markup to Markdown. +2021-04-25 Issam E. Maghni - It is the result of a GSoC 2018 project; this separate ChangeLog - commit covers the last four commits + * builds/meson/process_ftoption_h.py: Add LF at EOF. - ae5d1a4cec37557f31aec270332cfe886a62f9a0 - 53c69ce04faed3dcc68ca0f54cb8d703d8babf69 - 195728d5ba38f34fb2c2c20807c01656f2f59b66 - c962db28ea59225f0105c03d907d4a9b71765687 + This fixes - * docs/reference/markdown/images/favico.ico, - docs/reference/markdown/javascripts/extra.js, - docs/reference/markdown/stylesheets/extra.css: New files. + .../ftoption.h:1030:10: error: + no newline at end of file [-Werror,-Wnewline-eof] - * docs/reference/.gitignore, docs/reference/README: Updated. + for the generated `ftoption.h` file. - * src/tools/docmaker/*: Removed. It has been replaced with - `docwriter', a python package available at +2021-04-24 Alexei Podtelezhnikov - https://pypi.org/project/docwriter/ + * src/cff/cffload.c (cff_index_get_pointers): s/FT_QALLOC/FT_ALLOC/. - * Jamfile: Updated. - * builds/ansi/ansi-def.mk, builds/beos/beos-def.mk, - builds/dos/dos-def.mk, builds/os2/os2-def.mk (BIN), - builds/unix/unixddef.mk, builds/windows/win32-def.mk: New variable. +2021-04-23 Alexei Podtelezhnikov - * builds/unix/configure.raw: Check for `python' and `pip'. - If not present, warn that `make refdoc' will fail. - * builds/unix/unix-def.in (PYTHON, PIP, BIN): New variables. + * src/base/ftobjs.c (Mac_Read_POST_Resource): s/FT_ALLOC/FT_QALLOC/. + * builds/mac/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto. - * builds/freetype.mk (PYTHON, PIP, VENV_NAME, VENV_DIR, ENV_PYTHON, - ENV_PIP): New variables. - (refdoc): Updated. - (refdoc-venv): New target. - (.PHONY): Updated. +2021-04-23 Alexei Podtelezhnikov -2018-08-23 Werner Lemberg + * src/sdf/ftsdf.c (sdf_{edge,contour,shape}_new): Use FT_QALLOC. - Add macros for handling over-/underflowing `FT_Int64' values. +2021-04-23 Alexei Podtelezhnikov - * include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64, - MUL_INT64, DIV_INT64) [FT_LONG64]: New macros. + [sfnt] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. - * src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use - `SUB_INT64' and `MUL_INT64'. + * src/sfnt/sfdriver.c (get_win_string, get_apple_string, + sfnt_get_var_ps_name): Do not zero out the buffer. + * src/sfnt/sfobjs.c (sfnt_init_face): Ditto. + * src/sfnt/sfwoff.c (woff_open_font): Ditto. + * src/sfnt/sfwoff2.c (woff2_open_font): Ditto. - Reported as +2021-04-23 Alexei Podtelezhnikov - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028 + [cff,type1,type42] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. -2018-08-22 Werner Lemberg + * src/cff/cffload.c (cff_index_get_pointers, cff_index_get_name): + Do not zero out the buffer. + * src/cff/cffdrivr.c (cff_ps_get_font_info): Ditto. + * src/type1/t1load.c (parse_subrs, parse_charstrings, + parse_blend_axis_types): Ditto. + * src/type1/t1parse.c (T1_New_Parser, T1_Get_Private_Dict): Ditto. + * src/type42/t42parse.c (t42_parser_init): Ditto. - [truetype] Improve legibility of `glyf' parsing. +2021-04-23 Alexei Podtelezhnikov - * src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR, - Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y, - OVERLAP_SIMPLE): New macros. - (TT_Load_Simple_Glyph): Use new macros to make code more readable. - Remove useless adjustment of `outline->tags' elements. + [cid] s/FT_ALLOC/FT_QALLOC/ and clean up. -2018-08-21 Werner Lemberg + * src/cid/cidgload.c (cid_load_glyph): Do not zero out the buffer. + * src/cid/cidload.c (cid_face_open, cid_read_subrs): Ditto. - * src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check. +2021-04-23 Alexei Podtelezhnikov - Reported as + [pfr] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981 + * src/pfr/pfrload.c (pfr_extra_item_load_font_id, pfr_aux_name_load): + Do not zero out the buffer. -2018-08-18 Werner Lemberg +2021-04-23 Alexei Podtelezhnikov - [psaux] Avoid slow PS font parsing in case of error. + [bzip2,gzip] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. - Reported as + * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Do not zero out the buffer. + * src/gzip/ftgzip.c (ft_gzip_alloc, FT_Stream_OpenGzip): Ditto. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955 +2021-04-23 Alexei Podtelezhnikov - * src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even - in case of error to avoid potential re-scanning. + [pcf,bdf,winfonts] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. -2018-08-18 Werner Lemberg + * src/pcf/pcfread.c (pcf_interpret_style): Do not zero out the buffer. + * src/bdf/bdfdrivr.c (bdf_interpret_style): Ditto. + * src/winfonts/winfnt.c (FNT_Face_Init, FNT_Load_Glyph): Ditto. - [cff] Fix heap buffer overflow in old engine. +2021-04-22 Alexei Podtelezhnikov - Reported as + [cache] Optimize SBit copying. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967 + * src/cache/ftcsbits.c (ftc_snode_load): Do not initialize the buffer. + (ftc_sbit_copy_bitmap): Accept zero size, s/FT_ALLOC/FT_QALLOC/. - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be - non-zero. +2021-04-22 Alexei Podtelezhnikov -2018-08-16 Young Xiao + [gxvalid,otvalid] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. - * builds/mac/ftmac.c (parse_fond): Fix buffer overrun. + * src/gxvalid/gxvmod.c (gxv_load_table): Do not zero out the buffer. + * src/otvalid/otvmod.c (otv_load_table): Ditto. - Reported as bug #54515, duplicate of #43540. +2021-04-22 Alexei Podtelezhnikov -2018-08-16 Werner Lemberg + [psaux] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. - * builds/*/ftsystem.c (FT_COMPONENT): Updated also. + * src/psaux/psobjs.c (ps_table_done, ps_parser_load_field): Do not + zero out the buffer. -2018-08-15 Alexei Podtelezhnikov +2021-04-22 Alexei Podtelezhnikov - [bdf] Don't track duplicate encodings. + [base] s/FT_ALLOC/FT_QALLOC/ for initialized buffers. - There is no harm except some umbiguity in broken fonts with duplicate - encodings. + * src/base/ftobjs.c (open_face_PS_from_sfnt_stream, + Mac_Read_sfnt_Resource): Do not zero out the buffer. + * src/base/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto. + * src/base/ftrfork.c (raccess_make_file_name, + raccess_guess_darwin_hfsplus, raccess_guess_darwin_newvfs): Ditto. - * src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking. - (_bdf_parse_t): Remove large `have' bitfield. +2021-04-20 Alexei Podtelezhnikov -2018-08-15 Werner Lemberg + [cache] Restore SBit copying for unowned (BDF) bitmaps. - Don't use `trace_' prefix for FT_COMPONENT arguments. + * src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Restore. + (ftc_snode_load): Check ownership and copy unowned bitmaps. - * include/freetype/internal/ftdebug.h (FT_TRACE_COMP, - FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix. - (FT_TRACE): Use `FT_TRACE_COMP'. +2021-04-19 Dominik Röttsches - */* (FT_COMPONENT): Updated. + [sfnt] Return in 'COLR' v1 when layer pointer outside table -2018-08-14 Werner Lemberg + * src/sfnt/ttcolr.c (tt_face_get_paint_layers): Add missing return + when paint pointer outside table. + (read_paint): Add missing return when paint pointer outside table. - Use formatting string in FT_TRACEX calls for non-simple arguments. +2021-04-18 Alexei Podtelezhnikov - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - : - Do it. + [cache] Switch to lazy SBit setting. - * src/psaux/pshints.c (cf2_hintmap_build): Ditto. + * src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Removed. + (ftc_snode_load): Take the bitmap ownership instead of copying. - * src/psaux/psintrp.c (cf2_interpT2CharString) : Ditto. +2021-04-16 Daniel Welty <@danielwelty> - * src/truetype/ttinterp.c (TT_RunIns): Ditto. + * src/cache/ftcsbits.c (ftc_snode_load): Properly handle short pitch. -2018-08-14 Alexei Podtelezhnikov +2021-04-16 Werner Lemberg - [bdf] Remove unused fields. + * builds/unix/freetype2.m4: Fix help string formatting. - * src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified', - which were set but never used. - * src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font): - Updated accordingly. + The indented `dnl` macros inserted unwanted horizontal space. -2018-08-14 Werner Lemberg + Problem reported by Ozkan Sezer . - [cff] Fix another segv in old engine. +2021-04-16 Dominik Röttsches - Reported as + [sfnt] Safeguard 'COLR' v1 layer extraction - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872 + * src/sfnt/ttcolr.c (tt_face_get_paint_layers): Do not output + layer pointer to iterator if it is outside the 'COLR' table. + (read_paint): Do not attempt to read layers that are outside the + table. - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in - dictionaries. +2021-04-02 Ben Wagner -2018-08-14 Werner Lemberg + [base] Complete `ft_glyphslot_clear`. - [cff] Fix missing error handling. + * src/base/ftobjs.c (ft_glyphslot_clear): This function is intended + to reset all the values of a glyph slot. However, it was not + resetting the values of the advances and `glyph_index`. Reset the + advances and `glyph_index` to zero. - Reported as +2021-04-02 Ben Wagner - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865 + [truetype] Prevent glyph program state from persisting. - * src/psaux/cffparse.c (cff_parser_run) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of - `parse_charstrings_old'. + `FDEF` instructions are specified as allowed only in 'prep' or + 'fpgm'. FreeType has attempted to prevent their use in the glyph + program, but they were still allowed in glyph programs if defined in + a function defined in 'prep' or 'fpgm' and called from the glyph + program. -2018-08-14 Alexei Podtelezhnikov + Similarly, `IDEF` instructions are specified not to be able to + modify any existing instruction. FreeType has attempted to prevent + their use in the glyph program, but they can still be used like + `FDEF`. - [bdf] Remove unused overflow storage. + This change stores the initial bytecode range type and disallows the + use of `FDEF` and `IDEF` while running the glyph program. - * src/bdf/bdf.h (bdf_glyphlist_t): Remove this type. - (bdf_font_t): Remove `overflow' field. - * src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing. + Most other state is copied from the `TT_Size` into the execution + context. However, it is possible for a glyph program to use `WS` to + write to the storage area or `WCVTP`, `WCVTF`, and `DELTAC[123]` to + write to the control value table. -2018-08-14 Werner Lemberg + Allowing any change to the global state from the glyph program is + problematic as the outlines of any given glyph may change based on + the order the glyphs are loaded or even how many times they are + loaded. There exist fonts that write to the storage area or the + control value table in the glyph program, so their use should not be + an error. - [cff] Fix segv in old engine. + Possible solutions to using these in the glyph program are - Reported as + * ignore the writes; + * value-level copy on write, discard modified values when finished; + * array-level copy on write, discard the copy when finished; + * array-level copy up-front. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864 + Ignoring the writes may break otherwise good uses. A full copy + up-front was implemented, but was quite heavy as even well behaved + fonts required a full copy and the memory management that goes along + with it. Value-level copy on write could use less memory but + requires a great deal more record keeping and complexity. This + change implements array-level copy on write. If any attempt is made + to write to the control value table or the storage area when the + initial bytecode range was in a glyph program, the relevant array + will be copied to a designated storage area and the copy used for + the rest of the glyph program's execution. - * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) - [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's - `random' field directly if parsing dictionaries. + * src/truetype/ttinterp.h (TT_ExecContextRec): New fields + `iniRange`, `glyfCvtSize`, `glyfCvt`, `origCvt`, `glyfStoreSize`, + `glyfStorage`, and `origStorage`. -2018-08-13 Alexei Podtelezhnikov + * src/truetype/ttinterp.c (Modify_CVT_Check): New function to handle + `exc->glyfCvt`. + (Write_CVT, Write_CVT_Stretched, Move_CVT, Move_CVT_Stretched): Use + it. + (Ins_WS): Handle `exc->glyfStorage`. + (Ins_FDEF, Ins_IDEF): Updated. + (TT_RunIns): Updated. + (TT_Done_Context): Free 'glyf' CVT working and storage area. + (TT_Load_Context): Fix/add casts. - [bdf] Use unsigned types. + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix cast. - * src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'. - (bdf_font_t): Unsign `default_char'. - * src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'. +2021-03-30 Dominik Röttsches - * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs, - _bdf_parse_start): Updated accordingly. - * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto. + [sfnt] Check validity of pointer location of `read_color_line`. -2018-08-13 Werner Lemberg + * src/sfnt/ttcolr.c (get_child_table_pointer): New function to fetch + child table pointer early for all paint formats that compute a child + table pointer. + (read_color_line, read_paint): Updated. + (tt_face_get_colorline_stops): Check `colr->table`. - * src/type42/t42parse.c (t42_parse_sfnts): One more format check. +2021-03-28 Nikhil Ramakrishnan - Reported as + [docs] Update docwriter stylesheet for 1.3.1. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832 + This change is required to support docwriter 1.3.1. -2018-08-11 Werner Lemberg + See - * src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow. + https://gitlab.freedesktop.org/freetype/docwriter/-/merge_requests/101 - Reported as + for more information. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811 + * docs/markdown/stylesheets/extra.css: + (.wy-nav-content, .md-sidebar--secondary): Remove. -2018-08-10 Alexei Podtelezhnikov +2021-03-16 Alexei Podtelezhnikov - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs. + * src/sfnt/pngshim.c (Load_SBit_Png): Free `rows` once later. -2018-08-10 Ben Wagner +2021-03-16 Ben Wagner - * src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435). + [sfnt] Fix memory leak in png loading. -2018-08-10 Werner Lemberg + Reported as - * src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing. + https://bugs.chromium.org/p/chromium/issues/detail?id=1182552 -2018-08-10 Werner Lemberg + Memory is allocated and the pointer assigned to `rows` inside a + 'setjmp' scope. This memory must be freed outside the 'setjmp' + scope after a 'longjmp'. Since `rows` is a local and modified + inside the 'setjmp' scope it must be marked volatile or it will have + an indeterminate value after the 'longjmp'. - Fix clang warnings. + * src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak of `rows`. - * src/base/ftdebug.c (ft_trace_level_enabled, - ft_trace_level_disabled): Add `static' keyword. +2021-03-16 Christopher Degawa -2018-08-09 Alexei Podtelezhnikov + * CMakeLists.txt: Don't limit generation of 'pkg-config' file to UNIX. - [raster, smooth] Reinstate bitmap size limits. + mingw-w64 uses the 'pkg-config' files but does not set UNIX. - This again moves outline and bitmap size checks one level up. +2021-03-11 Alexei Podtelezhnikov - * src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous - outlines. - * src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps - and, therefore, outlines that require them. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + * src/smooth/ftgrays.c (gray_set_cell): Refactor to fix VC++ warning. - * src/raster/ftraster.c (ft_black_render): Remove outline size checks. - * src/smooth/ftgrays.c (gray_raster_render): Ditto. - [STANDALONE]: Remove `FT_Outline_Get_CBox' copy. +2021-03-13 Werner Lemberg -2018-08-08 Alexei Podtelezhnikov + Handle various VC++ compiler warnings. - [pcf] Revert massive unsigning. + Fixes #1039. -2018-08-08 Werner Lemberg + * src/base/ftstroke.c (ft_stroker_inside, ft_stroker_outside): + Initialize `sigma`. - [smooth] Improve tracing. + * src/sdf/ftsdf.c (sdf_generate_with_overlaps): Exit immediately if + function arguments are invalid. + * src/sdf/ftsdfrend.c (sdf_property_set) <"overlaps">: Fix cast. - * src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing - if called the first time. - (gray_convert_glyph): Updated. + * src/sfnt/sfwoff2.c (woff2_decompress) + [!FT_CONFIG_OPTION_USE_BROTLI]: Use `FT_UNUSED`. -2018-08-08 Werner Lemberg + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Initialize `fvar_head`. - Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'. +2021-03-11 Alexei Podtelezhnikov - It sometimes makes sense to suppress tracing informations, for - example, if it outputs identical messages again and again. + [smooth] Reduce copying during integration phase. - * include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a - pointer. - (FT_Trace_Disable, FT_Trace_Enable): New declarations. + We now record `cover' and `area' directly into the linked list. This + makes rendering faster by 10% or even more at larger sizes. - * src/base/ftdebug.c (ft_trace_levels): Rename to... - (ft_trace_levels_enabled): ... this. - (ft_trace_levels_disabled): New array. - (ft_trace_levels): New pointer. - (FT_Trace_Disable, FT_Trace_Enable): Implement. - (ft_debug_init): Updated. + * src/smooth/ftgrays.c (FT_INTEGRATE): Write directly. + (gray_TWorker): Add direct cell reference and remove unused fields. + (gray_set_cell): Consolidate the linked list management and pointers. + (gray_convert_glyph, gray_convert_glyph_inner): Updated. -2018-08-08 Werner Lemberg +2021-03-10 Alexei Podtelezhnikov - Debugging improvements. + * src/smooth/ftgrays.c (FT_INTEGRATE): New convenience macro. + (gray_render_line, gray_render_scanline): Use it. - * src/base/ftobjs.c (pixel_modes): Move this array to top level - from ... - (FT_Load_Glyph): ... here. - (FT_Render_Glyph_Internal): Use `width' x `height' in trace message. - Use `pixel_modes'. +2021-03-09 Alexei Podtelezhnikov -2018-08-08 Alexei Podtelezhnikov + * src/smooth/ftgrays.c (gray_render_line): Rearrange conditionals. - [pcf] Massive unsigning (part 2). + These produce faster or more optimizable code. - Treat all size related properties as unsigned values. +2021-03-08 Tim-Philipp Müller - * src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and - `value'. - * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): Updated - parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, - RESOLUTION_X and RESOLUTION_Y. + [meson] Fix 'mmap' handling on Windows. -2018-08-08 Alexei Podtelezhnikov + * meson.build (ft2_sources): Always use `windows/ftsystem.c` on + Windows unless mmap has been disabled. - [pcf] Massive unsigning (part 1). + https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/5#note_829289 - Unofficial specifications hesitate to use unsigned 32-bit integers. - Negative values caused a lot of trouble in the past and it is safer - and easier to treat some properties as unsigned. +2021-03-07 Tim-Philipp Müller - * src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent', - `fontDescent', and `maxOverlap'. - * src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated. - * src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select, - PCF_Size_Request): Updated. + [ci] Add basic support for Meson builds with MSVC on Windows. -2018-08-07 Alexei Podtelezhnikov + This adds meson jobs for VS2017 (x86 and x86_64). - * src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and - `bitmapSizes'. + * .gitlab-ci.yml: New file. -2018-08-06 Werner Lemberg +2021-03-07 Tim-Philipp Müller - * devel/ftoption.h: Synchronize with main `ftoption.h'. + [meson] Add subproject fallbacks for 'libpng' and 'zlib'. -2018-08-06 Alexei Podtelezhnikov + * subprojects/libpng.wrap, subprojects/zlib.wrap: New files. - [pcf] Use unsigned types. + * meson.build: Updated. - * src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'. - * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto. - * src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types. +2021-03-07 Xavier Claessens -2018-08-05 Werner Lemberg + [meson] Make it work with Windows. - * src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow. + * meson.build: Do not process `ftconfig.h` when not using + `ftconfig.h.in`. - Reported as + Fixes #1029. - https://bugs.chromium.org/p/chromium/issues/detail?id=777151 +2021-02-25 Werner Lemberg -2018-08-04 Werner Lemberg + [woff2] Fix memory leak. - * src/truetype/ttinterp.c (opcode_name): Fix typos. + Reported as -2018-08-04 Werner Lemberg + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28148 - Fix clang warnings. + * src/sfnt/sfwoff2.c (woff2_open_font): Reject fonts that have + multiple tables with the same tag. While not explicitly forbidden + in the OpenType specification, it is implicitly forbidden by + describing a binary search algorithm for tables that only works + reliably if table tags are unique. - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of - `orientation'. +2021-02-22 Werner Lemberg - * src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature. + * CMakeLists.txt: Update location of `LICENSE.TXT`. - * src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables. - Add cast. + Fixes #1035. - * src/type1/t1load.c (parse_weight_vector): Fix cast. +2021-02-19 Werner Lemberg -2018-07-31 Werner Lemberg + * builds/unix/ax_pthread.m4: Update from 'autoconf-archive'. - * src/cid/cidtoken.h: Handle `XUID' keyword. + A bunch of fixes were added recently to its git repository. -2018-07-31 Werner Lemberg +2021-02-17 Werner Lemberg - [cid] Trace PostScript dictionaries. + [unix] Updates for autoconf 2.71. - * src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. - (cid_load_keyword, cid_parse_font_matrix, parse_fd_array, - parse_expansion_factor, cid_parse_dict): Add tracing calls. - (parse_font_name): New function to trace `/FontName' keywords in - /FDArray dict. - (cid_field_records): Register `parse_font_name'. + This fixes warnings reported by autoupdate. -2018-07-30 Werner Lemberg + * builds/unix/ax_pthread.m4: Replace `as_echo` with `AS_ECHO`. - [cff] Fix typo. + * builds/unix/configure.raw: Remove obsolete `AC_HEADER_STDC`. + Don't escape back quotes in messages for `AC_MSG_WARN`. - Reported as +2021-02-16 Werner Lemberg - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409 + * builds/toplevel.mk: Fix previous commit. - * src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary - check. + : Use `TOP_DIR` in `wildcard` function. + (check_out_submodule, copy_submodule): Move down to come after + definition of `all` rule. + Call `mkdir` conditionally. -2018-07-29 Werner Lemberg +2021-02-16 Werner Lemberg - * src/pcf/pcfread.c (pcf_get_encodings): Another thinko. + * builds/toplevel.mk: Use rules for handling 'dlg'. - Reported as + Suggested by Alexei. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608 + (check_out_submodule, copy_submodule): New targets. + : Replace calls to `shell` with rules. -2018-07-28 Alexei Podtelezhnikov +2021-02-16 Werner Lemberg - [smooth] Fix Harmony memory management. + * builds/toplevel.mk: Avoid side effects of `shell`. - Reported as + We use a dummy variable to catch its output. Otherwise the `make` + program is going to interpret the return value of `shell`; this can + cause obscure warning or error messages or even be harmful. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501 +2021-02-16 Werner Lemberg - * src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer - after each rendering in case of failure. + Move 'dlg' submodule to `subprojects` directory. -2018-07-28 Werner Lemberg + This is for future changes with Meson, which doesn't allow a + different name for its `subprojects` directory. Having both a + `submodules` and a `subprojects` directory is confusing. - [type1] Avoid segfaults with `FT_Get_PS_Font_Value'. + * .gitmodules, autogen.sh (copy_submodule_files, DLG_INC_DIR, + DLG_SRC_DIR): Updated. - Reported as + * builds/toplevel.mk (, do-dist), + builds/windows/vc2010/script.bat: Updated. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610 + * src/tools/no-copyright: Updated. - * src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL. +2021-02-16 Dominik Röttsches -2018-07-27 Werner Lemberg + [sfnt] Update paint format values to support non-variable paints. - [truetype] Make `TT_Set_MM_Blend' idempotent (#54388). + * freetype.h (FT_PaintFormat): Update paint format identifiers after + a specification change. The specification was updated to have + sibling formats, variable and non-variable variants for each. + Reflect that here. - * src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set - `face->doblend' if the current call to the function yields the same - blend coordinates as the previous call. + * sfnt/ttcolr.c (read_paint): Remove parsing of variable indices as + the non-variable formats no longer have them. -2018-07-27 Werner Lemberg +2021-02-15 Daniel E - [psaux, type1]: More tracing improvements. + * CMakeLists.txt: Improve 'bz2' support. - * src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped - outline commands. + Not all distributions such as FreeBSD provide a `.pc` file for + '(lib)bz2' so follow autotools and add it to `Libs.private` instead. - * src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix - missing case. - (t1_decoder_parse_metrics): Make tracing output more compact. +2021-02-13 Werner Lemberg - * src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose. - (T1_Get_Advances): Add tracing. + * src/tools/update-copyright-year: Fix single-year entry handling. -2018-07-25 Werner Lemberg + The fix from 2021-01-17 didn't cover the case where the year to be + updated is identical to the current year. - [psaux, type1] Trace PostScript dictionaries and other things. +2021-02-13 Werner Lemberg - The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary - right now. + Add new function `FT_Get_Transform`. - * src/psaux/psobjs.c (ps_parser_load_field, - ps_parser_load_field_table): Add tracing calls. + See - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing - output more compact. + https://github.com/harfbuzz/harfbuzz/issues/2428 - * src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add - tracing messages. + for some reasons to introduce this function. - * src/type1/t1load.c (parse_blend_axis_types, - parse_blend_design_positions, parse_blend_design_map, - parse_weight_vector, t1_load_keyword, t1_parse_font_matrix, - parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add - tracing calls. + * include/freetype/freetype.h, src/base/ftobjs.c (FT_Get_Transform): + Implement it. - * src/type1/t1objs.c (T1_Face_Init): Add tracing call. +2021-02-12 Alexei Podtelezhnikov - * src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more - verbose. + Decorate `qsort` callbacks with `cdecl`. -2018-07-25 Werner Lemberg + * include/freetype/internal/compiler-macros.h (FT_COMPARE_DEF): + Add new macro. - Fix minor ASAN run-time warnings. + * src/base/ftrfork.c, src/bdf/bdflib.c, src/gxvalid/gxvcommn.c, + src/psaux/afmparse.c, src/psnames/psmodule.c, src/type1/t1afm.c, + src/sfnt/sfwoff.c, src/sfnt/sfwoff2.c: Update `qsort` callbacks. - * src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call - `FT_MEM_ZERO' if we actually have a buffer. - (ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer. + Fixes #1026 when compiling FreeType with an unusual calling + convention while the C library function `qsort` still expects + `cdecl`. -2018-07-24 Alexei Podtelezhnikov +2021-02-10 Dominik Röttsches - [build] Fortify dllexport/dllimport attributes (#53969,#54330). + [sfnt] Implement 'COLR' v1 sweep gradients. - We no longer use predefined _DLL, which can be defined for static - builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead, - following libtool convention. + * freetype.h (FT_PaintSweepGradient): Add `FT_PaintSweepGradient` to + represent a 'COLR' v1 sweep gradient. + Update format. + (FT_PaintFormat): Update shifted paint formats. + Sync with spec. + * sfnt/ttcolr.c (read_paint): Logic to parse sweep gradients. + Fix struct access in radial gradient implementation. - * CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj: - Define DLL_EXPORT manually. +2021-02-09 Dominik Röttsches - * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h, builds/windows/vc2010/index.html, - src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/. + [sfnt] Provide optional root transform for 'COLR' v1 glyph graph. -2018-07-24 Werner Lemberg + * include/freetype/freetype.h (FT_Get_Color_Glyph_Paint): + Additional function argument `root_transform` to control whether + root transform should be returned. + (FT_OpaquePaint): Additional tracking field to denote whether + root transform is to be returned. + * include/freetype/internal/sfnt.h + (TT_Get_Color_Glyph_Paint_Func): Propagate additional argument. + * src/base/ftobjs.c (FT_Get_Color_Glyph_Paint): Ditto. + * src/sfnt/ttcolr.c (tt_face_get_colr_glyph_paint): Return root + transform reflecting the size and tranform configured on + `FT_Face`. + (read_paint): Initialize and track status of insert_root_transform + flag. - [type1] Check relationship between number of axes and designs. +2021-02-09 Xavier Claessens - For Multiple Masters fonts we don't support intermediate designs; - this implies that + * meson.build: s/freetype2_dep/freetype_dep/. - number_of_designs == 2 ^^ number_of_axes + Many projects (e.g., fontconfig, cairo) hardcode the `freetype_dep` + variable name to use FreeType as subproject because that was the + variable name in Centricular's Meson port of FreeType. While they + should stop hardcoding that variable name, it does not cost us + anything to keep using that name to ease transition. - Reported as +2021-02-09 Xavier Claessens - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557 + [meson] Fix handling of HarfBuzz library. - * src/type1/t1load.c (T1_Open_Face): Ensure above constraint. - (T1_Get_MM_Var): Remove now redundant test. + * meson.build (harfbuzz_dep): Do not fall back to HarfBuzz by + default. -2018-07-24 Hin-Tak Leung + Otherwise it causes a dependency cycle: - [truetype] Match ttdebug's naming of instruction mnemonics. + cairo => fontconfig => freetype2 => harfbuzz => cairo - * src/truetype/ttinterp.c: The form used in ttdebug, - "MDRP[G,B,W,?]", etc., is slightly more readable than - "MDRP[00,01,02,03]". + Meson will still fall back to HarfBuzz subprojects if the `harfbuzz` + option is set to `enabled` instead of `auto` and a + `subprojects/harfbuzz.wrap` file is present. In that case it is the + responsibility of the main project to set the proper options on each + subproject to break the dependency cycle. -2018-07-24 Werner Lemberg + Fixes: #1028. - * src/pcf/pcfread.c (pcf_get_encodings): Thinko. +2021-02-09 Xavier Claessens - Reported as + [meson] Fix dependency lookup and generate `ftconfig.h`. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561 + - zlib: If not found on the system, meson can build it as a + subproject. We thus never use the (outdated) zlib support that + comes with FreeType. Doing so has the additional advantage that + the zlib code can be shared with other projects like GLib if both + are subprojects of an application. + - harfbuzz: Build as a subproject if not found on the system. + - 'QUESTION: What if the compiler doesn't support `-D` but uses `/D` + instead as on Windows?' Answer: Meson translate arguments for us. + - visibility: Replace self-made code with meson-specific solution. -2018-07-22 Werner Lemberg + * meson.build (ft2_defines): Rewrite logic to set and handle it. + (process_header_command): New variable, previously called + `ftoption_command`. + (ftoption_command, ftconfig_command): New variables. + (zlib_option): Removed. + (zlib_dep): New variable. + (ft2_deps): Updated. + (harfbuzz_dep): Updated. + (ftconfig_h_in, ftconfig_h): New variables. + (ft2_sources): Updated. + (ft2_lib): Updated, handle visibility. + (summary): Updted. - * src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar. + * meson_options.txt (zlib): Updated. - Reported as +2021-02-09 Xavier Claessens - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527 + * meson.build: Fix resource compilation on Windows. -2018-07-22 Werner Lemberg + This is copied from GStreamer's meson port of FreeType. - * src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs. + (ft2_sources): Add both debug and resource file (the latter for + Windows only). + (ft2_debug_src): Removed. - This is an oversight of the module change 2018-07-21. +2021-02-09 Xavier Claessens - Reported as + * meson.build: s/ft2_libtool_version/ft2_pkgconfig_version/. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524 + (freetype2_dep): Use it. -2018-07-22 Werner Lemberg + `ft2_libtool_version` would be the shared library version, not the + one we should use in file `freetype2.pc`. - [cid] Sanitize `BlueShift' and `BlueFuzz'. +2021-02-09 Xavier Claessens - This code is taken from the type1 module. + * meson.build: Use `meson.override_dependency`. - Reported as + This is a new meson mechanism to avoid other projects to hard-code + the `freetype2_dep` variable name in their build definition. It + also ensures that meson does not mix system and subproject versions + of FreeType inside of the same project. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510 + Also remove outdated TODO because `declare_dependency` was already + there. - * src/cid/cidload.c (parse_fd_array): Set some private dict default - values. - (cid_face_open): Do the sanitizing. - Fix some tracing messages. +2021-02-09 Xavier Claessens -2018-07-21 Werner Lemberg + * meson.build (bzip2_dep): Simplify. - [pcf] Fix handling of the undefined glyph. + We remove `static:false` from `find_library('bz2')`. - This change makes the driver use the `defaultChar' property of PCF - files. + I don't know whether the previous code was a workaround for an old + meson bug, but at least with version >=0.55.0 (which FreeType uses) + it picks the shared library when both are available. - * src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to - unsigned. + File `freetype2.pc` still contains the full path to file `libbz2.so` + instead of `-lbz2` – that we need to do this is a meson bug even + present in the current version (0.57.0). - * src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as - unsigned. - Validate `defaultChar'. - If `defaultChar' doesn't point to glyph index zero, swap glyphs with - index zero and index `defaultChar' and adjust the encodings - accordingly. +2021-02-09 Xavier Claessens - * src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next, - PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced - the first character in the font to be the default character. + * meson.build: Set project version. -2018-07-20 Armin Hasitzka +2021-02-04 Werner Lemberg - Move the legacy fuzz target to the `freetype-testing' repository. + [base] Fix Netpbm tracing message. - It can now be found at + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Don't emit Netpbm + warning if there is nothing to output. - https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy +2021-02-04 Werner Lemberg - * src/tools/ftfuzzer: Remove this folder and its contents from the - repository. + * src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`. -2018-07-20 Werner Lemberg + This ensures good logging output, with all lines having a proper + prefix (if requested). - [cff] Avoid left-shift of negative numbers (#54322). + This is a continuation of a similar patch from 2020-12-02, which + missed some locations. - * src/cff/cffgload.c (cff_slot_load): Use multiplication. +2021-02-03 Alexei Podtelezhnikov -2018-07-17 Werner Lemberg + * builds/unix/configure.raw [mmap]: Restore default path. - Allow FT_ENCODING_NONE for `FT_Select_Charmap'. + Fixes #1023. - This is a valid encoding tag for BDF, PCF, and Windows FNT, and - there is no reason to disallow it for these formats. +2021-02-03 Werner Lemberg - * src/base/ftobjs.c (FT_Select_Charmap): Implement it. + [psaux] Fix integer overflow. -2018-07-17 Werner Lemberg + Reported as - * src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'. + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30154 -2018-07-16 Armin Hasitzka + * src/psaux/psblues.c (cf2_blues_capture): Use `SUB_INT32`. - * include/freetype/internal/ftcalc.h: Add macros for handling - harmless over-/underflowing `FT_Int' values. +2021-02-02 Alexei Podtelezhnikov - * src/sfnt/sfdriver.c (fixed2float): Fix negation of - `(int)(-2147483648)'. + * builds/unix/configure.raw [mmap support]: Explicitly handle Windows. - Reported as + Fixes #1024. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423 +2021-01-31 Werner Lemberg -2018-07-16 Werner Lemberg + * builds/unix/configure.raw [mmap support]: Correctly handle Windows. - * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error. + Fixes #1024. - Reported as +2021-01-31 Werner Lemberg - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412 + * builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`. -2018-07-12 Werner Lemberg +2021-01-31 Werner Lemberg - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'. + Always provide logging API. - Taken from patch #9667, written by Steve Langasek - . + It's easier to have stubs if FT_DEBUG_LOGGING is undefined than to + modify `ftexport.sym` conditionally. - This fixes a build failure (most probably a bug in gcc) on ppc64el - when building with -O3. + Problem reported by Alexei. -2018-07-05 Werner Lemberg + * src/base/ftdebug.c: Include `ftlogging.h`. + (FT_Trace_Set_Level, FT_Trace_Set_Default_Level, FT_Set_Log_Handler, + FT_Set_Default_Log_Handler) [!FT_DEBUG_LOGGING]: Provide stubs. - Fix typo (#54238). +2021-01-31 Werner Lemberg - * src/base/ftcolor.c (FT_Palette_Set_Foreground_Color) - [!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value. + * builds/unix/configure.raw: Fix typo. -2018-07-05 Werner Lemberg + Bug introduced in Vincent's last commit bb33f03. - Adjust table size comparisons (#54242). + Fixes issue #1021. - * src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it. +2021-01-27 Alexei Podtelezhnikov -2018-07-05 Werner Lemberg + * src/base/ftstroke.c (FT_Stroker_EndSubPath): Ignore tiny gaps. - Fix more 32bit issues (#54208). + Fixes bug #1020. - * src/cff/cffload.c (cff_blend_build_vector): Convert assertion into - run-time error. +2021-01-27 Alexei Podtelezhnikov - * src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against - numeric overflow. + [stroker] Minor clean-up. -2018-07-04 Werner Lemberg + * src/base/ftstroke.c (FT_Stroker_{ConicTo,CubicTo}): Reset the last + line length. + (FT_Stroker_EndSubPath): Call `ft_stroker_process_corner'. - Fix 32bit build warnings (#54239). +2021-01-27 Vincent Torri - * src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed - vs. unsigned comparisons. + * builds/windows/ftsystem.c: Add shared memory support on Windows. - * srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto. + * CMakeLists.txt (BASE_SRCS), builds/unix/configure.raw (FTSYS_SRC), + builds/windows/vc2010/freetype.vcxproj, + builds/windows/visualc/freetype.vcproj, meson.build (ft2_sources): + Add it (conditionally). -2018-07-02 Jeff Carey +2021-01-23 Werner Lemberg - * src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging. + Require HarfBuzz 2.0.0. -2018-07-02 Werner Lemberg + This is needed to make commit f1f9705f9 work. - s/palette_types/palette_flags/. + * CMakeLists.txt (HARFBUZZ_MIN_VERSION), builds/unix/configure.raw + (harfbuzz_pkg), meson.build (harfbuzz_dep): Updated. - Suggested by Behdad. +2021-01-22 Alexei Podtelezhnikov -2018-07-02 Werner Lemberg + * autogen.sh: Absorb `version.sed'. + * version.sed: Removed. - Make `FT_Get_Color_Glyph_Layer' return FT_Bool. +2021-01-19 Alexei Podtelezhnikov - * include/freetype/freetype.h, src/base/ftobjs.c - (FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated. + * srd/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix return value. - * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func), - src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer): - Updated. +2021-01-15 Nikolaus Waxweiler -2018-07-01 Werner Lemberg + [afshaper] Fix hb_ot_tags_from_script deprecation warning. - * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function. + * autofit/afshaper.c (af_shaper_get_coverage): Copy the source code + of the function as suggested in + https://github.com/harfbuzz/harfbuzz/issues/2737 and adjust to handle + at most three tags. - Reported by Behdad. +2021-01-17 Werner Lemberg -2018-06-28 Alexei Podtelezhnikov + * src/tools/update-copyright-year: Fix single-year entry handling. - * src/base/fttrigon.c (FT_Tan): Improve accuracy. - (FT_Vector_Rotate): Simplify. +2021-01-16 Alexei Podtelezhnikov -2018-06-28 Alexei Podtelezhnikov + * builds/unix/unixddef.mk: Remove the second DEVEL_DIR definition. - * src/base/ftobjs.c (FT_Set_Charmap): Robustify. +2021-01-14 Dominik Röttsches -2018-06-25 Werner Lemberg + [sfnt] Additional checks for 'colr' table presence. - [truetype] Fix memory leak. + * sfnt/ttcolr.c (tt_face_get_colr_glyph_paint, + tt_face_get_colorline_stops, tt_face_get_paint): Additional checks + for whether colr table is present. Prevents crashes when these + methods are called on non-COLR fonts. - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers. - Fix typo in `goto' destination. +2021-01-13 Dominik Röttsches - Reported as + Add config option to test for 'COLR' v1 support in headers. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071 + * include/freetype/config/ftoption.h (TT_SUPPORT_COLRV1): New macro + so that clients can test whether the FreeType checkout that they are + building against supports the 'COLR' v1 API. This is intended to be + a temporary solution until 'COLR' v1 support is released in a + FreeType version and such a check can be made by using the version + number instead. -2018-06-25 Werner Lemberg +2020-12-16 Dominik Röttsches - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers. + [base] Fill 'COLR' v1 API templates to make them work (#59703). - Reported as + * src/base/ftobjs.c (FT_Get_Color_Glyph_Paint, FT_Get_Paint_Layers, + FT_Get_Paint, FT_Get_Colorline_Stops): Add basic sanity checks, + check for existence of `FT_Face`, check arguments and delegate calls + for the respective 'COLR' v1 API to the SFNT driver. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070 +2020-12-16 Dominik Röttsches -2018-06-24 Werner Lemberg + [sfnt] Register 'COLR' v1 API in driver (#59703). - [truetype] Increase precision while applying VF deltas. + * include/freetype/internal/sfnt.h (TT_Get_Color_Glyph_Paint_Func, + TT_Get_Paint_Layers_Func, TT_Get_Colorline_Stops_Func, + TT_Get_Paint_Func): New function pointer types. + (SFNT_Interface): Add them. + (FT_DEFINE_SFNT_INTERFACE): Updated. - It turned out that we incorrectly round CVT and glyph point deltas - before accumulation, leading to severe positioning errors if there - are many delta values to sum up. + * src/sfnt/sfdriver.c (PUT_COLOR_LAYERS_V1): New macro. + (sfnt_interface): Add new function pointers. - Problem reported by Akiem Helmling and analyzed - by Behdad. +2020-12-16 Dominik Röttsches - * src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in - 16.16 format. - (tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16 - format array, and add the accumulated values to the CVT at the end - of the function. - (TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and - `points_out' in 16.16 format. - Collect deltas in `point_deltas_x' and `point_deltas_y', which are - 16.16 format arrays, and add the accumulated values to the glyph - coordinates at the end of the function. + [sfnt] Add 'COLR' v1 API to retrieve color layers (#59703). -2018-06-24 Werner Lemberg + * src/sfnt/ttcolr.c (tt_face_get_paint_layers): New function to get + the layers of a `PaintColrLayers` table in the font, using an + `FT_LayerIterator` from an `FT_PaintColrLayers` object retrieved via + `tt_face_get_paint`. - New base function `FT_Matrix_Check' (#54019). + * src/sfnt/ttcolr.h: Updated. - * src/base/ftcalc.c (FT_Matrix_Check): New base function to properly - reject degenerate font matrices. +2020-12-16 Dominik Röttsches - * include/freetype/internal/ftcalc.h: Updated. + [sfnt] Add 'COLR' v1 API to iterate color stops (#59703). - * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c - (cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix), - src/type42/t42parse.c (t42_parse_font_matrix): Use - `FT_Matrix_Check'. + * src/sfnt/ttcolr.c (tt_face_get_colorline_stops): New function to + return the current `FT_ColorStop` object from `FT_ColorStopIterator`. + Also increment the iterator. -2018-06-23 Werner Lemberg + * src/sfnt/ttcolr.h: Updated. - Fix typo. +2020-12-16 Dominik Röttsches - Reported by Behdad. + [sfnt] Add API to get actual paint from `FT_OpaquePaint` (#59703). - * src/base/ftcolor.c (FT_Palette_Data_Get) - [!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/. + * src/sfnt/ttcolr.c (tt_face_get_paint): New function to resolve an + `FT_OpaquePaint` paint reference into an `FT_COLR_Paint` object of a + certain format, which contains the detailed information stored in a + paint of the respective format. + (read_paint): New function to provide the format specific parsing + and to populate the data members of each specific `FT_COLR_Paint` + subtype. + (read_color_line): New function to parse retrieved color line + information into an `FT_ColorLine` object, which has information + about the color line extend mode as well as an + `FT_ColorStopIterator` object. -2018-06-21 Werner Lemberg + * src/sfnt/ttcolr.h: Updated. - s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/. +2020-12-16 Dominik Röttsches - * include/freetype/ftcolor.h, include/freetype/internal/sfnt.h, - src/sfnt/ttcolr.c: Do it. + [sfnt] Add API to retrieve 'COLR' v1 root paint (#59703). -2018-06-19 Werner Lemberg + * src/sfnt/ttcolr.c (BaseGlyphV1Record): New structure. + (tt_face_load_colr): Handle version 1 table header. + (find_base_glyph_v1_record): New auxiliary function. + (tt_face_get_colr_glyph_paint): New function to find the root + `FT_OpaquePaint` object for a given glyph ID. - [sfnt] Fix CPAL heap buffer overflow. + * src/sfnt/ttcolr.h: Updated. - Reported as +2020-12-16 Dominik Röttsches - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968 + Add new methods required for 'COLR' v1 to public API (#59703). - * src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1 - offsets. + * include/freetype/freetype.h (FT_Get_Color_Glyph_Paint): New method + for retrieving the root paint object for a color glyph by specifying + a glyph ID. + (FT_Get_Paint_Layers): New method for retrieving the layers of a + `PaintColorGlyph`. + (FT_Get_ColorLine_Stops): New method for retrieving the stops of a + color. + (FT_Get_Paint): New method for resolving an `FT_OpaquePaint` into an + `FT_COLR_Paint` object. -2018-06-19 Werner Lemberg +2020-12-16 Dominik Röttsches - Doh. Don't use CPAL or COLR data if tables are missing. + Add types required for 'COLR' v1 to public API (#59703). - Reported by Alexei. + * include/freetype/freetype.h (FT_PaintFormat, FT_ColorStopIterator, + FT_ColorIndex, FT_ColorStop, FT_PaintExtend, FT_ColorLine, + FT_Affine23, FT_CompositeMode, FT_OpaquePaint, FT_PaintColrLayers, + FT_PaintSolid, FT_PaintLinearGradient, FT_PaintRadialGradient, + FT_PaintGlyph, FT_PaintColrGlyph, FT_PaintTransformed, + FT_PaintTranslate, FT_PaintRotate, FT_PaintSkew, FT_PaintComposite, + FT_COLR_Paint): Adding structs and enum to represent paint format, + color stop information, gradient extend information, structs to + reference paint offsets, and to define transforms and compositions. + Adding a union type to represent the union of the structs, + distinguished by `FT_PaintFormat`. - * src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if - `colr' is NULL. +2021-01-10 Werner Lemberg - * src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if - `cpal' is NULL. + * builds/*: s/BUILD_DIR/PLATFORM_DIR/. -2018-06-17 Alexei Podtelezhnikov + The old variable name caused confusion. - [base] Introduce `FT_New_Glyph'. +2021-01-08 Alexei Podtelezhnikov - This function facilitates access to full capabilities of FreeType - rendering engine for custom glyphs. This can be quite useful for - consistent rendering of mathematical and chemical formulas, e.g. + [builds] Revert `FTMODULE_H' changes. - https://bugs.chromium.org/p/chromium/issues/detail?id=757078 + * builds/toplevel.mk, builds/freetype.mk: Revert changes. - * include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New - function. +2021-01-07 Alexei Podtelezhnikov -2018-06-17 Armin Hasitzka + [builds/windows] Fix up DLG build with VC++. - [bdf] Fix underflow of an unsigned value. + * builds/windows/vc2010/script.bat: Copy headers to include/. + * builds/windows/vc2010/freetype.vcxproj: Remove DLG paths. - bdflib.c:1562 could be reached with `font->glyphs_used == 0'. That - caused an underflow of the unsigned value which results in undefined - behaviour. +2021-01-07 Alexei Podtelezhnikov - * src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before - if the `ENCODING' keyword cannot be found. + [builds] Relocate `FTMODULE_H'. -2018-06-17 Werner Lemberg + * builds/toplevel.mk: Place `FTMODULE_H' in include/. + * builds/freetype.mk: Simplify included path. - [base] Add tracing for `FT_Bitmap_Blend'. +2021-01-07 Werner Lemberg - * include/freetype/internal/fttrace.h (trace_bitmap): New - enumeration. + Fix ABI incompatibility. - * src/base/ftbitmap.c (FT_COMPONENT): Define. - (FT_Bitmap_Blend): Add `FT_TRACE5' calls. + * include/freetype/ftimage.h (FT_Pixel_Mode): Don't insert + `FT_PIXEL_MODE_GRAY16' but append it. -2018-06-17 Werner Lemberg + * src/base/ftobjs.c (pixel_modes): Updated. - s/trace_bitmap/trace_checksum/. +2021-01-07 Alexei Podtelezhnikov - * include/freetype/internal/fttrace.h: s/bitmap/checksum/. + [dlg] Move the headers to include/dlg to simplify their use. - * src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/. - Adjust code. + * autogen.sh, builds/toplevel.mk: Copy headers to include/dlg. + * builds/freetype.mk, builds/windows/vc2010/freetype.vcxproj: + Simplify included path. + * include/freetype/internal/ftdebug.h: Simplify #include. + * src/dlg/rules.mk, .gitignore: Updated. -2018-06-16 Werner Lemberg +2021-01-06 Werner Lemberg - [sfnt] Fix color glyph layer loading. + * meson.build: Add summary. - * src/sfnt/ttcolr.c (Colr): Add `table_size' field. - (tt_face_load_colr): Set it. - (tt_face_get_colr_layer): Check pointer limit for layer entries. + Based on a patch from Vincent Torri . -2018-06-16 Werner Lemberg +2021-01-06 Torsten Hilbrich - [sfnt] Fix color palette loading. + * meson.build: Fix 'png' build option (#59458). - Reported as + Without this patch, 'png' is always required. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933 +2021-01-04 Alexei Podtelezhnikov - * src/sfnt/ttcpal.c (Cpal): Add `table_size' field. - (tt_face_load_cpal): Set it. - (tt_face_palette_set): Check pointer limit for color entries. + [builds/windows] Add SDF to VC2010 project. -2018-06-16 Werner Lemberg + * builds/windows/vc2010/freetype.vcxproj: Updated; + AfterBuild conveniences. - * src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow. +2020-12-26 Werner Lemberg -2018-06-16 Werner Lemberg + [sdf] Use 'counter-clockwise', not 'anti-clockwise'. - Add `FT_Bitmap_Blend' API. + We prefer US nomenclature. - Still missing: Support for negative bitmap pitch and subpixel offset - of source bitmap. + * src/sdf/ftsdf.c (SDF_Contour_Orientation): + s/SDF_ORIENTATION-ACW/SDF_ORIENTATION_CCW/. + Update all users. - * include/freetype/ftbitmap.h, src/base/ftbitmap.c - (FT_Bitmap_Blend): New function. +2020-12-26 Werner Lemberg -2018-06-14 Werner Lemberg + * src/base/ftobjs.c (pixel_modes): Updated. - Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'. +2020-12-26 Anuj Verma - This avoids any additional allocation of COLR related structures in - a glyph slot. + [sdf] Remove custom memory tracker. - * include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec, - FT_Get_GlyphLayers): Removed. + The internal FreeType memory tracker is sufficient. - * include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed. - (FT_Slot_InternalRec): Remove `color_layers'. + * src/sdf/ftsdf.c (FT_DEBUG_INNER, FT_ASSIGNP_INNER, SDF_MemoryUser, + sdf_alloc, sdf_free, SDF_ALLOC, SDF_FREE, + SDF_MEMORY_TRACKER_DECLARE, SDF_MEMORY_TRACKER_SETUP, + SDF_MEMORY_TRACKER_DONE): Removed. - * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): - Removed. - (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove - `load_colr_layer'. + s/SDF_ALLOC/FT_ALLOC/. + s/SDF_FREE/FT_FREE/. - * src/base/ftobjs.c (ft_glyph_slot_done): Updated. - (FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'. - (FT_Get_GlyphLayers): Removed. + Other updates. - * src/sfnt/sfdriver.c (sfnt_interface): Updated. +2020-12-24 Werner Lemberg - * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed. - * src/sfnt/ttcolr.h: Updated. + [sdf] Fix `make multi`. - * src/truetype/ttgload.c (TT_Load_Glyph): Updated. + * src/sdf/ftsdf.c: Include `ftoutln.h`. -2018-06-14 Werner Lemberg +2020-12-24 Werner Lemberg - Provide iterative API to access `COLR' data. + [sdf] Fix tracing. - This solution doesn't store any data in an `FT_GlyphSlot' object. + * include/freetype/internal.fttrace.h: Add 'bsdf' component. - * include/freetype/freetype.h (FT_LayerIterator): New structure. - (FT_Get_Color_Glyph_Layer): New function. + * src/sdf/ftbsdf.c, src/sdf/ftsdf.c (FT_COMPONENT): Define. - * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New - function type. - (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. +2020-08-21 Anuj Verma - * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it. + [sdf] Add debugging function. - * src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function. - * src/sfnt/ttcolr.h: Updated. + * src/sdf/ftsdf.c (sdf_shape_dump): New function. - * src/sfnt/sfdriver.c (sfnt_interface): Updated. +2020-08-20 Anuj Verma -2018-06-14 Werner Lemberg + [sdf] Add 'bsdf' renderer to 'sdf' module. - Add glyph index and glyph load flags to glyph slot. + * src/sdf/ftsdfrend.c (ft_bsdf_render): New function. - * include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused - `reserved' field to `glyph_index'. + (ft_bitmap_sdf_renderer_class): New structure. - * include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add - `load_flags' field. +2020-08-20 Anuj Verma - * src/base/ftobjs.c (FT_Load_Glyph): Set new fields. + [sdf] Add interface functions for the 'bsdf' rasterizer. -2018-06-14 Werner Lemberg + * src/sdf/ftsdf.c (bsdf_raster_new, bsdf_raster_reset, + bsdf_raster_set_mode, bsdf_raster_render, bsdf_raster_done): New + functions. - [sfnt] Move `CPAL' stuff into separate files. + (ft_bitmap_sdf_raster): New variable. - * src/sfnt/sfdriver.c: Include `ttcpal.h'. - * src/sfnt/sfnt.c: Include `ttcpal.c'. + * src/sdf/ftsdf.h: Updated. - * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ... - * src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files. +2020-08-20 Anuj Verma - * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): - Updated. + [sdf] Add function to copy SDF data into output bitmap. - * include/freetype/internal/fttrace.h: Add support for `colr' and - `cpal'. - Sort entries. + * src/sdf/ftbsdf.c (finalize_sdf): New function. -2018-06-13 Werner Lemberg +2020-08-20 Anuj Verma - [sfnt] Separate `CPAL' and `COLR' table handling. + [sdf] Add '8-point sequential Euclidean distance mapping' algorithm. - Later on we want to support the `SVG' table also, which needs `CPAL' - (but not `COLR'). + * src/sdf/ftbsdf.c (compare_neighbor, first_pass, second_pass, + edt8): New functions. - * include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal' - and `free_cpal' fields. - (FT_DEFINE_SFNT_INTERFACE): Updated. +2020-08-20 Anuj Verma - * include/freetype/internal/tttypes.h (TT_FaceRec): Replace - `colr_and_cpal' fields with `cpal' and `colr'. + [sdf] Add function to copy source bitmap to distance map. - * src/sfnt/sfdriver.c (sfnt_interface): Updated. + * src/sdf/ftbsdf.c (bsdf_init_distance_map): New function. - * src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated. +2020-08-20 Anuj Verma - * src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field. - (ColrCpal): Removed. - (tt_face_load_colr): Split off CPAL handling into... - (tt_face_load_cpal): ... this new function. - (tt_face_free_colr): Split off CPAL handling into... - (tt_face_free_cpal): ... this new function. - (tt_face_load_colr_layers, tt_face_palette_set): Updated. + [sdf] Add functions to compute pixel edge distances. - * src/sfnt/ttcolr.h: Updated. + * src/sdf/ftbsdf.c (compute_edge_distance, bsdf_approximate_edge): + New functions. - * src/truetype/ttgload.c (TT_Load_Glyph): Updated. +2020-08-20 Anuj Verma -2018-06-12 Werner Lemberg + [sdf] Add function to find edge pixels in a grid of alpha values. - [sfnt] Fix `sizeof' thinko. + * src/sdf/ftbsdf.c (bsdf_is_edge): New function. - * src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't - use `sizeof' for computing array limit. +2020-08-20 Anuj Verma -2018-06-12 Werner Lemberg + [sdf] Add essential structures for the 'bsdf' rasterizer. - Finish CPAL/COLR support (4/4). + * src/sdf/ftbsdf.c (ONE): New macro. + (BSDF_TRaster, ED, BSDF_Worker): New structures. + (zero_ed): New constant. - * src/sfnt/ttcolr.c (tt_face_find_color): Removed. - (tt_face_colr_blend_layer): Use `face->palette' instead of calling - `tt_face_find_color'. - Use and set text foreground color. +2020-08-20 Anuj Verma -2018-06-12 Werner Lemberg + [sdf] Add 'sdf' module to non-gnumake build systems. - Finish CPAL/COLR support (3/4). + * include/freetype/config/ftmodule.h: Add both the 'sdf' and 'bsdf' + renderers to the list of modules. - * src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H. - (FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement - functions. + * CMakeLists.txt (BASE_SRCS): Add 'sdf' single-object module. -2018-06-12 Werner Lemberg +2020-08-20 Anuj Verma - Finish CPAL/COLR support (2/4). + [sdf] Added basic overlapping contour support. - * src/sfnt/ttcolr.c (tt_face_palette_set): New function. - (tt_face_load_colr): Allocate `face->palette' and call - `tt_face_palette_set'. - Adjust return error code in case of error. + * src/sdf/ftsdf.c (sdf_generate_with_overlaps): New function. + (sdf_raster_render): Enable it. - * src/sfnt/ttcolr.h: Updated. +2020-08-19 Anuj Verma - * include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New - function type. - (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. + [sdf] Add build infrastructure. - * src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c - (sfnt_done_face): Updated. + * src/sdf/module.mk, src/sdf/rules.mk: New files. -2018-06-12 Werner Lemberg + * src/sdf/ftsdf.h (ft_sdf_raster): New forward declaration. - Finish CPAL/COLR support (1/4). + * include/freetype/ftmoderr.h (FT_MODERRDEF): Add error definition + for the 'sdf' module. - * include/freetype/internal/tttypes.h (TT_FaceRec): New fields - `palette_index', `palette', `have_foreground_color' and - `foreground_color'. + * include/freetype/internal/fttrace.h (FT_TRACE_DEF): Add trace + definition for the `sdf' module. -2018-06-12 Werner Lemberg + * modules.cfg (RASTER_MODULES): Add the `sdf' module to the list of + rasterizers. - [sfnt] Minor. +2020-08-19 Anuj Verma - * src/sfnt/ttcolr.c (tt_face_load_colr_layers): - s/palette_index/palette_entry_index/ for consistency. - Adjust return error code in case of error. + [sdf] Add interface functions for the 'sdf' rasterizer. -2018-06-11 Alexei Podtelezhnikov + * src/sdf/ftsdf.c (sdf_raster_new, sdf_raster_reset, + sdf_raster_set_mode, sdf_raster_render, sdf_raster_done): New + functions. + (ft_sdf_raster): New structure. - [raster] Clean up. +2020-08-19 Anuj Verma - * src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision): - Clean up after 5-level gray removal (8dc8635874). - (Vertical_Sweep_Span): Be brief. + [sdf] Add subdivision and bounding box optimization. -2018-06-10 Werner Lemberg + * src/sdf/ftsdf.c (sdf_generate_bounding_box): New function, which + is an optimized version of `sdf_generate`. + (sdf_generate_subdivision): New function. - [sfnt] Fix compiler warnings. +2020-08-19 Anuj Verma - * src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers, - tt_face_colr_blend_layer): Add `NULL' initializers. + [sdf] Add function to generate SDF. -2018-06-10 Werner Lemberg + * src/sdf/ftsdf.c (sdf_generate): New function, currently disabled. + This is a proof-of-concept implementation: It doesn't use any + optimization, it simply checks all grid points against all contours. - s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/. +2020-08-19 Anuj Verma - * include/freetype/ftcolor.h, include/freetype/internal/tttypes.h, - src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated. + [sdf] Add functions to get shortest distance from any edge/contour. -2018-06-10 Nikolaus Waxweiler + * src/sdf/ftsdf.c (sdf_edge_get_min_distance): New function. + (sdf_contour_get_min_distance): New function, currently disabled. - CMakeLists: also accept IOS_PLATFORM=SIMULATOR64 +2020-08-18 Anuj Verma - This might be needed to build FreeType for the iOS simulator. See - https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed - by Steve Robinson. + [sdf] Add shortest distance finding functions. - * CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64 + * src/sdf/ftsdf.c (get_min_distance_line, get_min_distance_conic, + get_min_distance_cubic): New functions. Note that + `get_min_distance_conic` comes with two implementations (using an + analytical and an iterative method, to be controlled with the + `USE_NEWTON_FOR_CONIC` macro). -2018-06-10 Werner Lemberg +2020-08-18 Anuj Verma - Implement `FT_Palette_Get'. + [sdf] Add function to resolve corner distances. - * src/base/ftcolor.c: New file. + * src/sdf/ftsdf.c (resolve_corner): New function. - * src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC), - src/base/ftbase.c: Add `ftcolor.c'. +2020-08-18 Anuj Verma -2018-06-10 Werner Lemberg + [sdf] Add essential math functions. - * src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks. + * src/sdf/ftsdf.c (cube_root, arc_cos) [!USE_NEWTON_FOR_CONIC]: New + auxiliary functions. -2018-06-09 Alexei Podtelezhnikov + * src/sdf/ftsdf.c (solve_quadratic_equation, solve_cubic_equation) + [!USE_NEWTON_FOR_CONIC]: New functions. - [raster] Deal with pitch sign earlier. +2020-08-18 Anuj Verma - * src/raster/ftraster.c (black_TWorker): Remove unused `traceG', - s/bTarget/bOrigin/. - (Render_Glyph): Set `ras.bOrigin' at the bottom-left corner. - (Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}): - Updated accordingly. + [sdf] Add utility functions for contours. -2018-06-09 Werner Lemberg + * src/sdf/ftsdf.c (get_control_box, get_contour_orientation): New + functions. + (split_conic, split_cubic, split_sdf_conic, split_sdf_cubic, + split_sdf_shape): New functions. - [sfnt] Read `CPAL' version 1 tables. +2020-08-17 Anuj Verma - * include/freetype/internal.tttypes.h: Include FT_COLOR_H. - (TT_FaceRec): Add `palette' field. + [sdf] Add functions to decompose `FT_Outline`. - * src/sfnt/ttcolr.c: Include FT_COLOR_H. - (Cpal): Remove all data covered by the new `palette' field in - `TT_FaceRec'. - (tt_face_load_colr): Updated. - Read `CPAL' version 1 data. - (tt_face_load_colr_layers, tt_face_find_color): Updated. + * src/sdf/ftsdf.c (sdf_move_to, sdf_line_to, sdf_conic_to, + sdf_cubic_to): New auxiliary decomposition functions. + (sdf_compose_funcs): New structure. + (sdf_outline_decompose): New function. - * src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data. +2020-08-17 Anuj Verma -2018-06-07 Alexei Podtelezhnikov + [sdf] Structs, enums, macros, and functions for 'sdf' rasterizer. - [base] API for Harmony LCD rendering. + * src/sdf/ftsdf.c (FT_DEBUG_INNER, FT_ASSIGNP_INNER) + [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New macros. + (SDF_MemoryUser) [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New + struct for memory usage tracing. + (sdf_alloc, sdf_free) [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New + functions for memory usage tracing. - This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary - LCD subpixel geometry including non-striped patterns. + (SDF_ALLOC, SDF_FREE): New macros for memory management. + (SDF_MEMORY_TRACKER_DECLARE, SDF_MEMORY_TRACKER_SETUP, + SDF_MEMORY_TRACKER_DONE): New macros to set up memory usage tracing. - * src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function. - * include/freetype/ftlcdfil.h: Document it. - * include/freetype/freetype.h: Minor. - * include/freetype/ftchapters.h: Minor. + (USE_NEWTON_FOR_CONIC, MAX_NEWTON_DIVISIONS, MAX_NEWTON_STEPS, + CORNER_CHECK_EPSILON, CG_DIMEN): New configuration macros for + controlling the process of finding the shortest distance. -2018-06-06 Werner Lemberg + (MUL_26D6, VEC_26D6_DOT): New auxiliary macros. - ftcolor.h: Redesign API. + (SDF_TRaster, SDF_Edge, SDF_Contour, SDF_Shape, SDF_Signed_Distance, + SDF_Params): New structs for setting up SDF data. + (SDF_Edge_Type, SDF_Contour_Orientation): New enums for SDF data. - While going to implement it I noticed that I need access to most of - the `CPAL' elements; I thus plan to add a `cpal' field to - `TT_FaceRec', which makes most of the previously suggested API - functions obsolete because the fields will be directly accessible. + (zero_vector, null_edge, null_contour, null_shape, max_sdf): Useful + constants. -2018-06-06 Parth Wazurkar + (sdf_edge_new, sdf_edge_done, sdf_contour_new, sdf_contour_done, + sdf_shape_new, sdf_shape_done): New constructors and destructors. - [bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag. +2020-08-17 Anuj Verma - * src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated - FT_FACE_FLAG_FAST_GLYPHS flag. + [sdf] Add raster parameters structure. - * src/pcf/pcfread.c (pcf_load_font): Remove deprecated - FT_FACE_FLAG_FAST_GLYPHS flag. + * src/sdf/ftsdf.h (SDF_Raster_Params): New structure. -2018-06-06 Werner Lemberg + * src/sdf/sdf.c: Include source files in order to make a single + object of the module. - [smooth, raster] Limit bitmap size (#54019). +2020-08-17 Anuj Verma - * src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add - function. - [!STANDALONE]: Include FT_OUTLINE_H. - (ft_black_render): Compute CBox and reject glyphs larger than - 0xFFFF x 0xFFFF. + [sdf] Add 'sdf' renderer. - * src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger - than 0xFFFF x 0xFFFF. + * src/sdf/ftsdf.c: Add 'sdf' renderer along with its interface + functions. + Also add functions to set and get properties. -2018-06-03 Armin Hasitzka +2020-08-17 Anuj Verma - * src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables. + [sdf] Add common elements for 'sdf' and 'bsdf' renderers. -2018-06-03 Werner Lemberg + * src/sdf/ftsdfrend.h (SDF_Rendere_Module, ft_sdf_renderer_class, + ft_bitmap_sdf_renderer_class): New structures. - * src/tools/glnames.py (main): Emit header in `light' comment style. + * src/sdf/ftsdfcommon.h (DEFAULT_SPREAD, MIN_SPREAD_MAX_SPREAD, + USE_SQUARED_DISTANCES): New macros. + (FT_INT_26D6, FT_INT_16D16, FT_26D6_16D16): New macros. + (FT_CALL, VECTOR_LENGTH_16D16): New macros. + (FT_26D6_Vec, FT_16D16_Vec, FT_16D16, FT_26D6, FT_6D10, FT_CBox): + New typedefs. + (square_root): New macro. -2018-06-02 Alexei Podtelezhnikov + * src/sdf/ftsdferrs.h: Add module error setup. - [smooth] Attempt to mitigate bug #54019. +2020-08-16 Anuj Verma - The robust rendering of estra large glyphs came with unbearable cost. - The old way of bisecting should fail but fail faster. + [sdf] Add files for new 'sdf' module. - * src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting - in y-direction. + Here is a breakdown of what the files will contain. -2018-06-02 Werner Lemberg + * src/sdf/ftsdfrend.c, src/sdf/ftsdfrend.h: The 'sdf' and 'bsdf' + renderers. - * src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS. + * src/sdf/ftsdf.c, src/sdf/ftsdf.h: The rasterizer for the 'sdf' + renderer. + * src/sdf/ftbsdf.c, src/sdf/ftbsdf.h: The rasterizer for the 'bsdf' + renderer. - Reported as + * src/sdf/ftsdfcommon.h: Commmon properties and functions for both + rasterizers. + * src/sdf/ftsdferrs.h: Common error defines. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706 + * src/sdf/sdf.c: For building a single object of the entire module. -2018-06-02 Werner Lemberg +2020-08-16 Anuj Verma - * src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033). + [base] Allow renderers of different formats. -2018-05-31 Werner Lemberg + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the + glyph's slot format is `FT_GLYPH_FORMAT_BITMAP`. The forthcoming + 'bsdf' renderer will require bitmaps for processing. - * src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field. + * src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove + renderer's glyph format check before adding and removing them. The + 'bsdf' renderer will have a format `FT_GLYPH_FORMAT_BITMAP`. - This is no longer used. +2020-08-16 Anuj Verma -2018-05-31 Werner Lemberg + Add data types required for the forthcoming 'sdf' module. - [sfnt] Get colors from `CPAL' table in right order (#54015). + * include/freetype/freetype.h (FT_Render_Mode): Add new render mode + `FT_RENDER_MODE_SDF`, which will be used to generate SDF. - * src/sfnt/ttcolr.c (tt_face_find_color): Fix it. + * include/freetype/ftimage.h (FT_Pixel_Mode): Add new pixel mode + `FT_PIXEL_MODE_GRAY16`, which will be the output of the 'sdf' + module. + (FT_RASTER_FLAG_SDF): New raster flag to be used internally by the + 'sdf' module. -2018-05-30 Werner Lemberg + * include/freetype/fttypes.h (FT_F6Dot10): New data type. - ftcolor.h: Improve API design, fix typos (#54011, #54014). +2020-08-16 Anuj Verma - * include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with... - (FT_Palette_Get_Name_IDs): ... this function. - (FT_Palette_Get_Entry_Names): Replace with... - (FT_Palette_Get_Entry_Name_IDs): ... this function - s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/. + [base] Allow renderers of different formats. -2018-05-30 Armin Hasitzka + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the + glyph's slot format is `FT_GLYPH_FORMAT_BITMAP`. The forthcoming + 'bsdf' renderer will require bitmaps for processing. - Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b. + * src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove + renderer's glyph format check before adding and removing them. The + 'bsdf' renderer will have a format `FT_GLYPH_FORMAT_BITMAP`. - * src/autofit/afloader.c (af_loader_load_glyph): Move the - initialisationand declaration of variables into the if-block. +2020-12-23 Werner Lemberg -2018-05-30 Armin Hasitzka + * builds/windows/detect.mk (COPY): Make it work with `shell`. - Fix pointer underflow. + Without this patch, we get the error - The declaration of `edge2' can be reached with `edge1 == NULL' and - `axis->edges == 0' which results in undefined behaviour. + builds/toplevel.mk:127: *** missing separator. Stop. - * src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2' - after checking `axis->num_edges > 1'. `edge1 != NULL' can be assumed. + Reported by Anuj, with a solution from Alexei. -2018-05-30 Werner Lemberg +2020-12-23 Ignacio Casal Quinteiro - Various minor color fixes. + * meson.build (ft2_defines): Fix builds on Windows. - * include/freetype/config/ftheader.h (FT_COLOR_H): New macro. +2020-12-18 Tatsuyuki Ishi - * include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change - type of `load_flags' to `FT_Int32'. + [autofit] Fix double division in stem darkening. - * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change - type of `idx' to `FT_UInt'. - (TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'. + The old code used to divide the darkening amount by em_ratio twice, + leading to unnecessarily bold stems on certain fonts with higher + units per em (e.g. Inter). This patch fixes it. - * src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of - `load_flags' to `FT_Int32'. + The return value of af_loader_compute_darkening was also changed to + use 16.16 fixed point to get rid of a redundant truncation operation. + This should slightly improve the precision, although it's still + bottlenecked by the emboldening function, which uses 26.6 fixed point. - * src/sfnt/ttcolr.c (find_base_glyph_record, - tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'. - (tt_face_find_color, tt_face_colr_blend_layer): Change type of - `color_index' to `FT_UInt'. - Fix signedness and type issues. + * src/autofit/afloader.[ch] + (af_loader_compute_darkening): Return FT_Fixed. + (af_loader_embolden_glyph_in_slot): Revise calculations. - * src/sfnt/ttcolr.h: Updated. +2020-12-17 Alexei Podtelezhnikov -2018-05-25 Nikhil Ramakrishnan + * include/freetype/ftmodapi.h (FT_FACE_DRIVER_NAME): New public macro. - [docmaker] Fix missing `Defined in (...)' under Windows/Cygwin. + The driver name is needed for `FT_Property_Set' and `FT_Property_Get'. - This platform uses backslashes for paths, which docmaker didn't - understand correctly. +2020-12-16 Chris Liddell - * src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use - `os.path.normpath' to normalize the path for the platform being - used. + [truetype] Fix incremental metrics (#59503). -2018-05-24 Alexei Podtelezhnikov + * src/truetype/ttgload.c (tt_get_metrics, load_truetype_glyph): + Previously, the code would populate the phantom points before + calling the `get_glyph_metrics` callback. For formats like PCL XL + format 1, class 2 downloaded fonts (where metrics are removed from + the TTF header), this causes problems when the hinting program uses + the phantom points (misplaced and distorted glyphs) due to the + metrics being unset (all zeros). + (tt_get_metrics_incr_overrides): Renamed to... + (tt_get_metrics_incremental): ... this. Updated caller - [smooth] Formalize Harmony LCD rendering. + * include/freetype/ftincrem.h: Update the documentation to make it + clearer that `get_glyph_metrics` is to retrieve metrics from a + non-standard source, but *not* for the purpose of imposing custom + metrics. - This generalizes magic outline shifts that make Harmony LCD - rendering work in terms of precise two-dimensional RGB subpixel - positions. These coordinates are now set in time of the `smooth' - module initialization and later used to shift a glyph outline for - rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same - coordinates. The letter, however, rotates them before using. - The LCD bitmap padding is also calculated using these coordinates. +2020-12-14 Werner Lemberg - * include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field - `lcd_geometry'. - * src/base/ftlcdfil.c (ft_lcd_padding): Reworked. - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly. + [type42] Pacify static analysis tools (#59682). - * src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING] - (ft_smooth_init): Initialize `lcd_geometry'. - (ft_smooth_render_generic): Formalize outline shifts. + * src/type42/t42objs.c (T42_Size_Init, T42_GlyphSlot_Init): Avoid + warnings about uninitialized variables. -2018-05-22 Werner Lemberg +2020-12-07 Werner Lemberg - [truetype] Reject elements of composites with invalid glyph indices. + * builds/unix/configure.raw: Don't set `FT_DEBUG_LOGGING`. - Reported as + All debug options are handled exclusively in `ftoption.h`. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413 +2020-12-07 Werner Lemberg - * src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it. + * src/*: More fixes for using a '\n' in `FT_TRACE` and `FT_ERROR`. -2018-05-22 Werner Lemberg +2020-12-07 Werner Lemberg - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points. + */*: s/FT_LOGGING/FT_DEBUG_LOGGING/. -2018-05-20 Werner Lemberg +2020-12-05 Werner Lemberg - * include/freetype/ftcolor.h: New file. + * builds/toplevel.mk (do-dist): Remove `submodules` directory. - This is an interface to the `CPAL' OpenType table. No - implementation yet. +2020-12-02 Werner Lemberg -2018-05-18 Alexei Podtelezhnikov + * src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`. - * include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'. + This ensures good logging output, with all lines having a proper + prefix (if requested). - Actually `_BitScanReverse' is available since VS2005. +2020-12-02 Werner Lemberg -2018-05-18 Werner Lemberg + [base] Don't close 'stderr' after logging. - * include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value. + * src/base/ftdebug.c, builds/windows/ftdebug.c (ft_logging_deinit): + Fix it. - Older VC versions don't provide `_BitScanReverse'. We test for VC - 2013. +2020-12-02 Werner Lemberg - Reported by John Emmas . + * submodules/dlg: Updated to commit 9f0c8b22. -2018-05-17 Werner Lemberg +2020-12-02 Werner Lemberg - s/inline/__inline/ for MSVC. + * src/bdf/bdflib.c: Fix `-Wformat` warning. - Reported by John Emmas . +2020-12-02 Werner Lemberg - * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it. + Improve setup for 'dlg' library. -2018-05-16 Werner Lemberg + * autogen.sh (copy_submodule_file), builds/toplevel.mk: Redirect + stderr to `/dev/null`. - Add function `FT_Get_GlyphLayers' to access `COLR' table data. + * builds/toplevel.mk: Move code block to handle 'dlg' stuff into + `check_platform` conditional. + Also fix wildcard expressions for guarding `git submodule` commands. + Also make file copying work with non-Unix platforms (untested). - * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this - structure to... - * include/freetype/freetype.h (FT_Glyph_LayerRec): ... this - header file. - (FT_Glyph_Layer): New typedef. - Update code to use it where appropriate. +2020-12-01 Werner Lemberg - * src/base/ftobjs.c (FT_Get_GlyphLayers): New function. + [build] Use gcc (and clang) in C99 mode. -2018-05-15 Alexei Podtelezhnikov + Other compilers are unchanged. - [base] Fix mono bitmap presetting (#53896). + * builds/compiler/gcc-dev.mk, builds/compiler/gcc.mk (ANSIFLAGS): + s/-ansi/-std=c99/. - It is rather fundamental to set monochrome bitmap based on rounded - CBox because the b/w rasterizer turns on pixels when their centers are - inside the glyph outline. The dropout control is unpredictable and can - distort narrow glyphs if the bitmap is too wide. + * builds/freetype.mk (FT_CFLAGS): Remove `-std=c99`. - Reported by Chris Liddell. + * builds/unix/configure.raw: Handle C99. + Remove no longer needed test for gcc 4.6 and earlier. - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries - are too close, adjust them before rounding. +2020-12-01 Werner Lemberg -2018-05-15 Werner Lemberg + [dlg] Fix compiler warnings. - [psaux] Fix compiler warning (#53915). + * src/dlg/dlgwrap.c: Duplicate some feature test macros from + `dlg.c`, which must come first before loading standard headers. For + example, `freetype.h` loads `stdio.h` if compiled in debug mode. - * src/psaux/psft.c (cf2_freeT1SeacComponent): Do it. +2020-12-01 Werner Lemberg -2018-05-15 Werner Lemberg + * src/type42/t42parse.c: Fix `-Wformat` warnings. - [sfnt] Fix memory leak in handling `COLR' data. +2020-12-01 Priyesh Kumar - * src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array - before reassigning allocated memory. - Only allocate `color_layers' if we don't have one already. + [builds/unix] Check for 'pthread' library. -2018-05-15 Werner Lemberg + * builds/unix/ax_pthread.m4: New file, taken from 'autoconf-archive' + git repository. - [sfnt] If `COLR' is present, don't assume that all glyphs use it. + * builds/unix/configure.raw: Check for 'pthread'; also check whether + it works. - * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if - current glyph is not a `COLR' base glyph. +2020-12-01 Werner Lemberg - * src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate - `color_layers' if there are no color layers. + [base] Implement vertical alignment of log printing. -2018-05-14 Werner Lemberg + Based on a patch by Priyesh. - * src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'. + * include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH): + New macro. -2018-05-14 Werner Lemberg + * src/base/ftdebug.c, builds/windows/ftdebug.c (ft_log_handler): + Print logs after a fixed width to handle different lengths of + `FT_COMPONENT` entries. + Use `ft_strrchr` to check for final newline character. - Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set. +2020-11-30 Priyesh Kumar - * src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it. + Update logging related documentation. -2018-05-13 Werner Lemberg + * docs/DEBUG: Updates related to `FT_LOGGING`. - * src/base/ftobjs.c (FT_Load_Glyph): Improve tracing. + * README.git: Updates related to logging. -2018-05-13 Shao Yu Zhang - Werner Lemberg +2020-11-30 Priyesh Kumar - [sfnt] Preliminary support of coloured layer outlines (#44689). + * src/*: Fix `-Wformat` warnings. - This commit enables OpenType's COLR/CPAL table handling; a typical - application are color emojis that can be scaled to any size. +2020-11-30 Priyesh Kumar - If the color palette does not exist or is invalid, the rendering - step rasterizes the outline instead. The current implementation - assumes that the foreground is black. + [builds/windows] Changes to build 'dlg' with FreeType on Windows. - Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS. + We only support Visual C++ 2010 and newer. - There are still some issues with metrics; additionally, an API to - fetch color layers is missing. + * builds/windows/vc2010/script.bat: New windows batch file to copy + necessary 'dlg' files from `submodules/dlg` to `src/dlg`. This file + is used as a pre-built event in Visual C++. - * devel/ftoption.h, include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_COLOR_LAYERS): New macro. + * builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`. - * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec, - FT_Colr_InternalRec): New structures. - (FT_Slot_InternalRec): Add `color_layers' field. + * builds/windows/vc2010/freetype.vcxproj.filters: Add + `src/dlgwrap.c`. - * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func, - TT_Blend_Colr_Func): New function types. - (SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer', - and `colr_blend' fields. + * builds/windows/vc2010/freetype.vcxproj + (AdditionalIncludeDirectories): Add include files of dlg for 'Debug' + and 'Debug Static' configurations on both 'x64' and 'win32' + platforms. + (PreprocessorDefinitions): Add `FT_LOGGING` for 'Debug' and 'Debug + Static' configurations on both 'x64' and 'win32' platforms. + Add `DLG_STATIC' for 'Debug' configuration on 'x64' and 'win32' + platforms. + (DisableLanguageExtensions): We need to disable the `/Za` option + when building 'dlg' with FreeType as 'dlg' strictly follows the C99 + standard. Visual C++ produces behaves unexpectedly when + compiling a C99 file with `/Za` option enabled. - * include/freetype/internal/tttypes.h (TT_FaceRec): Add - `colr_and_cpal' field. +2020-11-30 Priyesh Kumar - * include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New - macros. + [base] Add public API to change log handling function. - * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files. + * include/freetype/ftlogging.h (FT_Custom_Log_Handler): New function + typedef to store the custom callback logging function. + (FT_Set_Log_Handler, FT_Set_Default_Log_Handler): New functions to + set and reset custom log handler. - * src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal): - Handle glyph color layers. + * include/freetype/internal/ftdebug.h (custom_output_handler): New + variable to support a custom callback logging function. + (FT_Logging_Callback): A new function typedef to print log using + custom callback logging function, which is set using + `FT_Set_Log_Handler`. + (FT_Log): Use it. - * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add - `ttcolr.c'. + * src/base/ftdebug.c (FT_Set_Log_Handler, + FT_Set_Default_Log_Handler, FT_Logging_Callback): Add function + definitions. - * src/sfnt/sfdriver.c: Include `ttcolr.h'. - (PUT_COLOR_LAYERS): New macro. - Update call to `FT_DEFINE_SFNT_INTERFACE'. +2020-11-28 Priyesh Kumar - * src/sfnt/sfnt.c: Include `ttcolr.c'. + [base] Add public API to change the levels of tracing components. - * src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables. - (sfnt_done_face): Updated. + * include/freetype/ftlogging.h: New header file. - * src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers. + * include/freetype/internal/ftdebug.h [FT_LOGGING]: Include + `ftlogging.h`. -2018-05-12 Arkady Shapkin + * src/base/ftdebug.c (ft_custom_trace_level): New variable. + (ft_debug_init): Update to support change of levels of tracing + components of FreeType at run-time. + (FT_Trace_Set_Level): New function to change the levels of tracing + components at run-time. + (FT_Trace_Set_Default_Level): New function to reset the levels of + tracing components back to default. - Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636). +2020-11-28 Priyesh Kumar - * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement - it. + [base] Updates to print timestamp and name of `FT_COMPONENT` in logs. -2018-05-10 Alan Coopersmith + * include/freetype/internal/ftdebug.h (FT_LOGGING_TAG, + FT_LOGGING_TAG_): New macros to resolve the value of `FT_COMPONENT' + into a string. + (ft_add_tag, ft_remove_tag): New functions to add and remove dlg tags. - Fix DLL compilation on Solaris. + * src/base/ftdebug.c: Add new variables to control the logging of + timestamp and name of `FT_COMPONENT` along with actual logs. + (ft_add_tag, ft_remove_tag): Add function definitions. + (ft_log_handler): Updates to print timestamp and name of + `FT_COMPONENT`. + (ft_debug_init) [FT_LOGGING]: Users can now control the logging of + timestamp and name of `FT_COMPONENT` by adding tags in the + `FT2_DEBUG` environment variable. - AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'. The - Solaris Studio 12.1 through 12.5 compilers see the - `-fvisibility=hidden' flag, but ignore it with a warning of: +2020-11-27 Priyesh Kumar - cc: Warning: Option -fvisibility=hidden passed to ld, - if ld is invoked, ignored otherwise + [base] Add functions and variables to print logs to a file. - AC_LINK_IFELSE does the compile and then tries to link the result, - at which point the Solaris linker will issue an error: + * include/freetype/internal/ftdebug.h: Added dlg's header files. + (FT_LOG): New macro to redirect trace logs to dlg's API's whenever + `FT_LOGGING' is defined. + (ft_logging_init, ft_logging_deinit): New functions to handle + initialization and uninitialization of logging related variables. + (ft_log_handler): New function to handle logs of FreeType. - ld: fatal: option '-fvisibility=hidden' is incompatible with - building a dynamic executable + * src/base/ftdebug.c: Add necessary logging related variables. + (ft_logging_init, ft_logging_deinit, ft_log_handler): Add function + definitions. - If we don't use AC_LINK_IFELSE to catch the error, then configure - will fail further tests which attempt to link, such as those testing - dependencies like `libbz2'. + * src/base/ftinit.c (FT_Init_FreeType) [FT_LOGGING]: Call + `ft_logging_init`. + (FT_Done_FreeType) [FT_LOGGING]: Call `ft_logging_deinit`. - Also, don't try adding `-fvisibility' if we have already added - `-xldscope', just use one of them, since Sun Studio 12 and earlier - compilers only issue a warning, and don't try passing through to the - linker to generate an error, so AC_LINK_IFELSE doesn't catch them. + * src/base/ftobjs.c (FT_New_Library): Call `ft_debug_init` only if + `FT_LOGGING` is not defined. - Tested on Solaris 11.4 beta with compiler versions: +2020-11-27 Priyesh Kumar - Sun Studio 8 (Sun C 5.5) - Sun Studio 10 (Sun C 5.7) - Sun Studio 11 (Sun C 5.8) - Sun Studio 12 (Sun C 5.9) - Sun Studio 12.1 (Sun C 5.10) - Oracle Solaris Studio 12.2 (Sun C 5.11) - Oracle Solaris Studio 12.3 (Sun C 5.12) - Oracle Solaris Studio 12.4 (Sun C 5.13) - Oracle Developer Studio 12.5 (Sun C 5.14) - Oracle Developer Studio 12.6 (Sun C 5.15) - gcc 5.5.0 - gcc 7.3.0 + [builds] Necessary changes to make 'dlg' compile. - and verified the libfreetype.so.6 generated by each of those - compilers exported the same set of symbols. + * autogen.sh (copy_submodule_files): New script to copy all the + necessary source and include files from `submodules/dlg` to + `src/dlg`. - * builds/unix/configure.raw: Implement it. + * src/dlg/dlgwrap.c: New wrapper file for `src/dlg.c`. It enables + the build of 'dlg' if the `FT_LOGGING` macro is defined. -2018-05-08 Werner Lemberg + * src/dlg/rules.mk: New sub-Makefile. - [autofit] Avoid potential SEGV if running out of memory. + * builds/freetype.mk (DLG_DIR): New variable to include the + header files of the 'dlg' library. + (INCLUDES): Add `DLG_DIR`. + (FT_CFLAGS): Add `-std=c99' flag. + Include `src/dlg/rules.mk` file to build 'dlg' library. + (OBJ_S, OBJ_M): Add `DLG_OBJS_M` and `DLG_OBJS_S`. - Problem reported by Shailesh Mistry . + * builds/toplevel.mk: For builds directly from the git repository + we need to copy files from `submodule/dlg` to `src/dlg`. - * src/autofit/afshaper.c (af_shaper_buf_create, - af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't - allocate and free a four-byte buffer. Instead, make those functions - no-ops; the calling functions will provide a pointer to a buffer - instead. + * include/freetype/config/ftoption.h, devel/ftoption.h (FT_LOGGING): + New macro to enable or disable the logging facility in FreeType. - * src/autofit/afcjk.c (af_cjk_metrics_init_widths, - af_cjk_metrics_init_blues, af_cjk_metrics_check_digits), - src/autofit/aflatin.c (af_latin_metrics_init_widths, - af_latin_metrics_init_blues, af_latin_metrics_check_digits) - [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for - `shaper_buf'. +2020-11-27 Priyesh Kumar -2018-05-07 Nikolaus Waxweiler + * .gitmodules: Add 'dlg' library's git repository as submodule. - [cmake] Allow using project as subfolder in other project. +2020-12-01 Werner Lemberg - * CMakeLists.txt: Test for CMake build directory being different - from source directory. Provide other parts of the build system - access the full include directory. + * src/tools/chktrcmp.py (trace_use_pat): Update to current use. -2018-05-07 Werner Lemberg +2020-11-20 Alexei Podtelezhnikov - [build] Suppress configure's `nothing to be done' message. + [cff,cid,type1] Demote old engine for lack of CFF2. - This is due to calling the configure script via `make' (within the - top-level `configure' wrapper script). The same can happen for all - other secondary make targets that are used to only modify the - primary one, e.g., `make setup devel'. + * src/cff/cffobjs.c (cff_driver_init): Always default to Adobe engine. + * src/cid/cidobjs.c (cid_driver_init): Ditto. + * src/type1/t1objs.c (T1_Driver_Init): Ditto. - * builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16), - builds/os2/detect (visualage, watcom, borlandc, devel), - builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk - (visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc, - devel-gcc): Use no-op recipe. +2020-11-09 Werner Lemberg -2018-05-04 suzuki toshiya + * src/type42/t42parse.c (t42_parse_sfnts): More tracing messages. - Support symbol visibility features of Sun / Oracle C compilers. +2020-11-04 Werner Lemberg - Reported by Kiyoshi Kanazawa: - https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html - Thanks to the suggestions by Alexei and Alan Coopersmith. + * meson.build: Fix .pc file generation. - * builds/unix/configure.raw: Check if "-xldscope=hidden" is - accepted, and if so, it is added to CFLAGS. This is the option - making Sun / Oracle C compilers hide the symbols from global - scope. - * include/freetype/config/ftconfig.h: Use "__global" prefix - for FT_EXPORT() macro, if SunPro C is newer than Sun ONE - Studio 8 (2003). - * builds/unix/ftconfig.in: Ditto. - * builds/vms/ftconfig.h: Ditto. + For backwards compatibility we need the libtool version, not the .so + number. -2018-05-02 Nikolaus Waxweiler + Reported by Nikolaus. - Unbreak CMake Windows installation +2020-10-28 Werner Lemberg - * CMakeLists.txt: Generate ftconfig.h on non-UNIX. + [truetype] Minor update to forthcoming OpenType 1.8.4 standard. -2018-05-02 Werner Lemberg + * src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Limit + size of `regionCount`. - Remove FT_CONFIG_OPTION_PIC and related code. +2020-10-26 Werner Lemberg - */* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this - preprocessor symbol. + * meson.build: Fix 'harfbuzz' and 'brotli' build options (#59347). - */*: Replace `XXX_GET' macros (which could be either a function in - PIC mode or an array in non-PIC mode) with `xxx' arrays. + Without this patch, 'harfbuzz' and 'brotli' are always required. - * include/freetype/internal/ftpic.h, src/autofit/afpic.c, - src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h, - src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h, - src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c, - src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h, - src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, - src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: - Removed. + Patch submitted anonymously in Savannah bug report. + +2020-10-23 Ben Wagner + + * src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak (#59322). + + The issue is that `rows` is allocated but will not be freed in the + event that the call to `png_read_image` fails and calls `longjmp`. -2018-05-01 Werner Lemberg +2020-10-20 Werner Lemberg - * Version 2.9.1 released. - ========================= + * Version 2.10.4 released. + ========================== - Tag sources with `VER-2-9-1'. + Tag sources with `VER-2-10-4'. - * docs/VERSION.TXT: Add entry for version 2.9.1. + * docs/VERSION.TXT: Add entry for version 2.10.4. * docs/CHANGES: Updated. - * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, - src/base/ftver.rc, builds/windows/vc2005/index.html, - builds/windows/vc2008/freetype.vcproj, - builds/windows/vc2008/index.html, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/index.html, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, + * README, src/base/ftver.rc, builds/windows/vc2010/index.html, builds/windows/visualc/index.html, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, builds/windows/visualce/index.html, - builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/freetype.vcproj, - builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/. + builds/wince/vc2008-ce/index.html, docs/freetype-config.1: + s/2.10.3/2.10.4/, s/2103/2104/. - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. - * builds/unix/configure.raw (version_info): Set to 22:1:16. - * CMakeLists.txt (VERSION_PATCH): Set to 1. + * builds/unix/configure.raw (version_info): Set to 23:4:17. + * CMakeLists.txt (VERSION_PATCH): Set to 4. - * include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER. +2020-10-19 Werner Lemberg -2018-04-26 Werner Lemberg + [sfnt] Fix heap buffer overflow (#59308). - Another fix for handling invalid format 2 cmaps. + This is CVE-2020-15999. - Sigh. + * src/sfnt/pngshim.c (Load_SBit_Png): Test bitmap size earlier. - Reported as +2020-10-17 Alexei Podtelezhnikov - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003 + * src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++. - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid - an endless loop. +2020-10-17 Alexei Podtelezhnikov -2018-04-24 Ben Wagner + * src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++. - [base] Avoid undefined behaviour in lcd filtering code (#53727). +2020-10-10 Werner Lemberg - * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): - Ensure `height > 0'. + * Version 2.10.3 released. + ========================== -2018-04-22 Werner Lemberg - * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. + Tag sources with `VER-2-10-3'. -2018-04-22 Alexei Podtelezhnikov + * docs/VERSION.TXT: Add entry for version 2.10.3. - [base] Fix bitmap emboldening. + * README, src/base/ftver.rc, builds/windows/vc2010/index.html, + builds/windows/visualc/index.html, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/index.html, docs/freetype-config.1: + s/2.10.2/2.10.3/, s/2102/2103/. - Bug introduced after release 2.8. + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use - `FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the - bitmap copying code to take care of this fact. + * builds/unix/configure.raw (version_info): Set to 23:3:17. + * CMakeLists.txt (VERSION_PATCH): Set to 3. -2018-04-22 Werner Lemberg +2020-09-25 Werner Lemberg - Another fix for handling invalid format 2 cmaps. + [autofit] Synchronize with ttfautohint. - The previous commit was incomplete. + This corresponds to the following commits in the ttfautohint git + repository: - Reported as + bb6842bd3bd437b7b4a7921b0376c860f5e73d18 Typo, formatting. + d5c91ddb1cb310257a3dfe9a8e20e1fc51335faa Add Medefaidrin script. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928 + * src/autofit/afblue.dat: Add blue zone data for Medefaidrin. + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid - an endless loop. + * src/autofit/afscript.h: Add Medefaidrin standard characters. -2018-04-19 Werner Lemberg - This will be part of the forthcoming Unicode 11.0. + Move `scripts/make_distribution_archives.py` to `src/tools`. - * src/autofit/afblue.dat: Add blue zone data for Mtavruli. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + * scr/tools/scripts/make_distribution_archives.py: (_TOP_DIR, + _SCRIPT_DIR): Updated to new location. + (main): s/shutils.copyfile/shutils.copy/ to preserve file + permissions. + (main): Prefix source file paths with `git_dir` while copying files + to allow calls of the script from other places than the top-level + directory. - * src/autofit/afscript.h: Add Mtavruli standard character. +2020-09-24 Werner Lemberg -2018-04-18 Werner Lemberg + * src/cff/cffgload.c (cff_slot_load): Scale `vertBearingY`. - Fix handling of invalid format 2 cmaps. + Towards the end of the the function there is a call to + `FT_Outline_Get_CBox` that retrieves the glyph bbox in scaled units. + That sets `horiBearing{X,Y}` and `vertBearingX` but `vertBearingY` + is left alone, and is not scaled. - The problem was introduced after the last release. + Patch from Eric Muller . - Reported as +2020-09-24 Werner Lemberg - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828 + * src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics. - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop. +2020-09-22 Werner Lemberg -2018-04-17 Werner Lemberg + [meson] Move auxiliary scripts to `builds/meson`. - [truetype] Integer overflow issues. + Suggested by Alexei. - Reported as + * scripts/*.py: Move meson scripts to... + * builds/meson/*.py: ... this new location. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739 + * meson.build: Updated. - * src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG. +2020-09-21 David Turner -2018-04-16 Werner Lemberg + Add python script for building tarballs. - [truetype] Integer overflow issues. + * scripts/make_distribution_archives.py: New file. - Reported as + This standalone Python script should be equivalent to running `make + dist` with the Make-based build system, with the following minor + differences: - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718 + - Since `make distclean` doesn't always clean up `objs/` properly, + `make dist` archives may contain some stale binaries like + `objs/.libs/libfreetype.so.6` or others. - * src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG. + - `config.guess` and `config.sub` are not updated unless option + `--gnu-config-dir=DIR` is used to specify the location of these + files. -2018-04-15 Alexei Podtelezhnikov + - Some bits of the auto-generated reference documentation may + appear in slightly different order, probably due to issues related + to mkdocs and docwriter. - [build] Use `info' function of make 3.81. + As an example, the call - * configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU, - docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements. + scripts/make_distribution_archives.py /tmp/freetype2-dist - * builds/detect.mk (std_setup): Replace `echo' with `info'. - (dos_setup): Removed. - * builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk, - builds/windows/detect.mk, builds/os2/detect.mk: Updated. - * builds/newline: No longer needed. + creates the following files under `/tmp/freetype2-dist`: -2018-04-15 Werner Lemberg + freetype-.tar.gz + freetype-.tar.xz + ft.zip - [truetype]: Limit `SLOOP' bytecode argument to 16 bits. +2020-09-21 Werner Lemberg - This fixes + * scripts/extract_freetype_version.py: Fix regex typos. - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707 +2020-09-21 David Turner - * src/truetype/ttinterp.c (Ins_SLOOP): Do it. + Add Meson build project file. -2018-04-14 Werner Lemberg + Example usage: - [truetype] Integer overflow issues. + # Configure Meson build in directory `build-meson` to generate + # release binaries comparable to to the ones from the + # autotools/make build system. + meson setup build-meson \ + --prefix=/usr/local \ + --buildtype=debugoptimized \ + --strip \ + -Db_ndebug=true - Reported as + # After configuring the Meson build with the above command, + # compile and install to `/usr/local/`; this includes a pkg-config + # file. + ninja -C build-meson install - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652 + # Alternatively, compile and install to `/tmp/aa/usr/local/...` + # for packaging. + DESTDIR=/tmp/aa ninja -C build-meson install - * src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG. + # Generate documentation under `build-meson/docs`. + ninja -C build-meson docs -2018-04-14 Werner Lemberg + Library size comparison for stripped `libfreetype.so` generated by + all three build systems: - [autofit] Update to Unicode 11.0.0. + - Default build (autotools + libtool): 712 KiB + - CMake build (RelWithDebInfo): 712 KiB + - Meson build: 712 KiB - But no support new scripts (volunteers welcomed). - * src/autofit/afranges.c (af_arab_nonbase_uniranges, - af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges, - af_deva_nonbase_uniranges, af_geor_uniranges, - af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges, - af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges, - af_hani_uniranges): Add new data. + * meson.build: New top-level Meson build file for the library. -2018-04-10 Nikolaus Waxweiler + * meson_options.txt: New file. It holds user-selectable options for + the build, which can be printed with `meson configure`, and selected + at `meson setup` or `meson --reconfigure` time with + `-D