summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/CMakeLists.txt10
-rw-r--r--src/3rdparty/forkfd/forkfd.c170
-rw-r--r--src/3rdparty/forkfd/forkfd.h1
-rw-r--r--src/3rdparty/forkfd/forkfd_freebsd.c2
-rw-r--r--src/3rdparty/forkfd/forkfd_linux.c57
-rw-r--r--src/3rdparty/freetype/CMakeLists.txt88
-rw-r--r--src/3rdparty/freetype/LICENSE.txt290
-rw-r--r--src/3rdparty/freetype/PCF-LICENSE.txt24
-rw-r--r--src/3rdparty/freetype/README112
-rw-r--r--src/3rdparty/freetype/builds/unix/ftconfig.h2
-rw-r--r--src/3rdparty/freetype/builds/unix/ftsystem.c245
-rw-r--r--src/3rdparty/freetype/builds/windows/ftdebug.c698
-rw-r--r--src/3rdparty/freetype/docs/CHANGES305
-rw-r--r--src/3rdparty/freetype/docs/CUSTOMIZE2
-rw-r--r--src/3rdparty/freetype/docs/DEBUG96
-rw-r--r--src/3rdparty/freetype/docs/LICENSE.TXT39
-rw-r--r--src/3rdparty/freetype/docs/TODO2
-rw-r--r--src/3rdparty/freetype/import_from_tarball.sh2
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftconfig.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftheader.h14
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftmodule.h7
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftoption.h75
-rw-r--r--src/3rdparty/freetype/include/freetype/config/ftstdlib.h14
-rw-r--r--src/3rdparty/freetype/include/freetype/config/integer-types.h45
-rw-r--r--src/3rdparty/freetype/include/freetype/config/mac-support.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/config/public-macros.h20
-rw-r--r--src/3rdparty/freetype/include/freetype/freetype.h617
-rw-r--r--src/3rdparty/freetype/include/freetype/ftadvanc.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbbox.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbdf.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbitmap.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftbzip2.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftcache.h6
-rw-r--r--src/3rdparty/freetype/include/freetype/ftchapters.h4
-rw-r--r--src/3rdparty/freetype/include/freetype/ftcid.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftcolor.h1407
-rw-r--r--src/3rdparty/freetype/include/freetype/ftdriver.h147
-rw-r--r--src/3rdparty/freetype/include/freetype/fterrdef.h6
-rw-r--r--src/3rdparty/freetype/include/freetype/fterrors.h4
-rw-r--r--src/3rdparty/freetype/include/freetype/ftfntfmt.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftgasp.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftglyph.h116
-rw-r--r--src/3rdparty/freetype/include/freetype/ftgxval.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftgzip.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftimage.h131
-rw-r--r--src/3rdparty/freetype/include/freetype/ftincrem.h17
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlcdfil.h21
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlist.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlogging.h184
-rw-r--r--src/3rdparty/freetype/include/freetype/ftlzw.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmac.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmm.h5
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmodapi.h35
-rw-r--r--src/3rdparty/freetype/include/freetype/ftmoderr.h3
-rw-r--r--src/3rdparty/freetype/include/freetype/ftotval.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftoutln.h14
-rw-r--r--src/3rdparty/freetype/include/freetype/ftparams.h17
-rw-r--r--src/3rdparty/freetype/include/freetype/ftpfr.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftrender.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsizes.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsnames.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftstroke.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsynth.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/ftsystem.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/fttrigon.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/fttypes.h19
-rw-r--r--src/3rdparty/freetype/include/freetype/ftwinfnt.h4
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/autohint.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/cffotypes.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/cfftypes.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/compiler-macros.h154
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftcalc.h58
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftdebug.h171
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftdrv.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftgloadr.h3
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftmemory.h13
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftobjs.h7
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftpsprop.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftrfork.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftserv.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftstream.h32
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/fttrace.h26
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/ftvalid.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/psaux.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/pshints.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svbdf.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svcfftl.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svcid.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svfntfmt.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svgldict.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svgxval.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svkern.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svmetric.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svmm.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svotval.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpfr.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpostnm.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svprop.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpscmap.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svpsinfo.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svsfnt.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svttcmap.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svtteng.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svttglyf.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/services/svwinfnt.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/sfnt.h299
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/svginterface.h46
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/t1types.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/tttypes.h20
-rw-r--r--src/3rdparty/freetype/include/freetype/internal/wofftypes.h6
-rw-r--r--src/3rdparty/freetype/include/freetype/otsvg.h336
-rw-r--r--src/3rdparty/freetype/include/freetype/t1tables.h176
-rw-r--r--src/3rdparty/freetype/include/freetype/ttnameid.h4
-rw-r--r--src/3rdparty/freetype/include/freetype/tttables.h2
-rw-r--r--src/3rdparty/freetype/include/freetype/tttags.h3
-rw-r--r--src/3rdparty/freetype/include/ft2build.h2
-rw-r--r--src/3rdparty/freetype/qt_attribution.json48
-rw-r--r--src/3rdparty/freetype/src/autofit/afblue.c2
-rw-r--r--src/3rdparty/freetype/src/autofit/afblue.cin2
-rw-r--r--src/3rdparty/freetype/src/autofit/afblue.dat2
-rw-r--r--src/3rdparty/freetype/src/autofit/afblue.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afblue.hin2
-rw-r--r--src/3rdparty/freetype/src/autofit/afcjk.c78
-rw-r--r--src/3rdparty/freetype/src/autofit/afcjk.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afcover.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afdummy.c2
-rw-r--r--src/3rdparty/freetype/src/autofit/afdummy.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/aferrors.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afglobal.c30
-rw-r--r--src/3rdparty/freetype/src/autofit/afglobal.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afhints.c154
-rw-r--r--src/3rdparty/freetype/src/autofit/afhints.h17
-rw-r--r--src/3rdparty/freetype/src/autofit/afindic.c7
-rw-r--r--src/3rdparty/freetype/src/autofit/afindic.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/aflatin.c137
-rw-r--r--src/3rdparty/freetype/src/autofit/aflatin.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afloader.c39
-rw-r--r--src/3rdparty/freetype/src/autofit/afloader.h4
-rw-r--r--src/3rdparty/freetype/src/autofit/afmodule.c56
-rw-r--r--src/3rdparty/freetype/src/autofit/afmodule.h5
-rw-r--r--src/3rdparty/freetype/src/autofit/afranges.c2
-rw-r--r--src/3rdparty/freetype/src/autofit/afranges.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afscript.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afshaper.c57
-rw-r--r--src/3rdparty/freetype/src/autofit/afshaper.h2
-rw-r--r--src/3rdparty/freetype/src/autofit/afstyles.h11
-rw-r--r--src/3rdparty/freetype/src/autofit/aftypes.h65
-rw-r--r--src/3rdparty/freetype/src/autofit/afws-decl.h33
-rw-r--r--src/3rdparty/freetype/src/autofit/afws-iter.h31
-rw-r--r--src/3rdparty/freetype/src/autofit/autofit.c5
-rw-r--r--src/3rdparty/freetype/src/autofit/module.mk2
-rw-r--r--src/3rdparty/freetype/src/autofit/rules.mk21
-rw-r--r--src/3rdparty/freetype/src/base/ftadvanc.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftbase.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftbase.h3
-rw-r--r--src/3rdparty/freetype/src/base/ftbbox.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftbdf.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftbitmap.c18
-rw-r--r--src/3rdparty/freetype/src/base/ftcalc.c18
-rw-r--r--src/3rdparty/freetype/src/base/ftcid.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftcolor.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftdbgmem.c94
-rw-r--r--src/3rdparty/freetype/src/base/ftdebug.c334
-rw-r--r--src/3rdparty/freetype/src/base/fterrors.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftfntfmt.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftfstype.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftgasp.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftgloadr.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftglyph.c271
-rw-r--r--src/3rdparty/freetype/src/base/ftgxval.c2
-rw-r--r--src/3rdparty/freetype/src/base/fthash.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftinit.c10
-rw-r--r--src/3rdparty/freetype/src/base/ftlcdfil.c10
-rw-r--r--src/3rdparty/freetype/src/base/ftmac.c14
-rw-r--r--src/3rdparty/freetype/src/base/ftmm.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftobjs.c461
-rw-r--r--src/3rdparty/freetype/src/base/ftotval.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftoutln.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftpatent.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftpfr.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftpsprop.c6
-rw-r--r--src/3rdparty/freetype/src/base/ftrfork.c54
-rw-r--r--src/3rdparty/freetype/src/base/ftsnames.c6
-rw-r--r--src/3rdparty/freetype/src/base/ftstream.c85
-rw-r--r--src/3rdparty/freetype/src/base/ftstroke.c47
-rw-r--r--src/3rdparty/freetype/src/base/ftsynth.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftsystem.c4
-rw-r--r--src/3rdparty/freetype/src/base/fttrigon.c8
-rw-r--r--src/3rdparty/freetype/src/base/fttype1.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftutil.c2
-rw-r--r--src/3rdparty/freetype/src/base/ftver.rc8
-rw-r--r--src/3rdparty/freetype/src/base/ftwinfnt.c2
-rw-r--r--src/3rdparty/freetype/src/base/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/bdf/README6
-rw-r--r--src/3rdparty/freetype/src/bdf/bdfdrivr.c10
-rw-r--r--src/3rdparty/freetype/src/bdf/bdflib.c198
-rw-r--r--src/3rdparty/freetype/src/bzip2/ftbzip2.c56
-rw-r--r--src/3rdparty/freetype/src/bzip2/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/cache/ftcache.c2
-rw-r--r--src/3rdparty/freetype/src/cache/ftcbasic.c16
-rw-r--r--src/3rdparty/freetype/src/cache/ftccache.c26
-rw-r--r--src/3rdparty/freetype/src/cache/ftccache.h6
-rw-r--r--src/3rdparty/freetype/src/cache/ftccback.h2
-rw-r--r--src/3rdparty/freetype/src/cache/ftccmap.c11
-rw-r--r--src/3rdparty/freetype/src/cache/ftcerror.h2
-rw-r--r--src/3rdparty/freetype/src/cache/ftcglyph.c2
-rw-r--r--src/3rdparty/freetype/src/cache/ftcglyph.h8
-rw-r--r--src/3rdparty/freetype/src/cache/ftcimage.c5
-rw-r--r--src/3rdparty/freetype/src/cache/ftcimage.h8
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmanag.c12
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmanag.h2
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmru.c4
-rw-r--r--src/3rdparty/freetype/src/cache/ftcmru.h2
-rw-r--r--src/3rdparty/freetype/src/cache/ftcsbits.c45
-rw-r--r--src/3rdparty/freetype/src/cache/ftcsbits.h4
-rw-r--r--src/3rdparty/freetype/src/cache/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/cff/cff.c2
-rw-r--r--src/3rdparty/freetype/src/cff/cffcmap.c4
-rw-r--r--src/3rdparty/freetype/src/cff/cffcmap.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cffdrivr.c24
-rw-r--r--src/3rdparty/freetype/src/cff/cffdrivr.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cfferrs.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cffgload.c92
-rw-r--r--src/3rdparty/freetype/src/cff/cffgload.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cffload.c110
-rw-r--r--src/3rdparty/freetype/src/cff/cffload.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cffobjs.c35
-rw-r--r--src/3rdparty/freetype/src/cff/cffobjs.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cffparse.c12
-rw-r--r--src/3rdparty/freetype/src/cff/cffparse.h2
-rw-r--r--src/3rdparty/freetype/src/cff/cfftoken.h2
-rw-r--r--src/3rdparty/freetype/src/cff/module.mk2
-rw-r--r--src/3rdparty/freetype/src/cff/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/cid/ciderrs.h2
-rw-r--r--src/3rdparty/freetype/src/cid/cidgload.c42
-rw-r--r--src/3rdparty/freetype/src/cid/cidgload.h2
-rw-r--r--src/3rdparty/freetype/src/cid/cidload.c126
-rw-r--r--src/3rdparty/freetype/src/cid/cidload.h4
-rw-r--r--src/3rdparty/freetype/src/cid/cidobjs.c17
-rw-r--r--src/3rdparty/freetype/src/cid/cidobjs.h2
-rw-r--r--src/3rdparty/freetype/src/cid/cidparse.c8
-rw-r--r--src/3rdparty/freetype/src/cid/cidparse.h4
-rw-r--r--src/3rdparty/freetype/src/cid/cidriver.c2
-rw-r--r--src/3rdparty/freetype/src/cid/cidriver.h2
-rw-r--r--src/3rdparty/freetype/src/cid/cidtoken.h2
-rw-r--r--src/3rdparty/freetype/src/cid/module.mk2
-rw-r--r--src/3rdparty/freetype/src/cid/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/cid/type1cid.c2
-rw-r--r--src/3rdparty/freetype/src/dlg/dlgwrap.c32
-rw-r--r--src/3rdparty/freetype/src/dlg/rules.mk70
-rw-r--r--src/3rdparty/freetype/src/gxvalid/README2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvalid.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvalid.h2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvbsln.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvcommn.c61
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvcommn.h37
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxverror.h2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvfeat.c4
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvfeat.h2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvfgen.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvjust.c23
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvkern.c14
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvlcar.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmod.c50
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmod.h2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort.c4
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort.h2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort0.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort1.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort2.c14
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort4.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmort5.c4
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx.c8
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx.h2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx0.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx1.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx2.c30
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx4.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvmorx5.c2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvopbd.c4
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvprop.c6
-rw-r--r--src/3rdparty/freetype/src/gxvalid/gxvtrak.c6
-rw-r--r--src/3rdparty/freetype/src/gxvalid/module.mk2
-rw-r--r--src/3rdparty/freetype/src/gxvalid/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/gzip/README.freetype22
-rw-r--r--src/3rdparty/freetype/src/gzip/adler32.c188
-rw-r--r--src/3rdparty/freetype/src/gzip/crc32.c1116
-rw-r--r--src/3rdparty/freetype/src/gzip/crc32.h9446
-rw-r--r--src/3rdparty/freetype/src/gzip/ftgzip.c102
-rw-r--r--src/3rdparty/freetype/src/gzip/ftzconf.h530
-rw-r--r--src/3rdparty/freetype/src/gzip/gzguts.h219
-rw-r--r--src/3rdparty/freetype/src/gzip/infback.c641
-rw-r--r--src/3rdparty/freetype/src/gzip/inffast.c323
-rw-r--r--src/3rdparty/freetype/src/gzip/inffast.h11
-rw-r--r--src/3rdparty/freetype/src/gzip/inffixed.h241
-rw-r--r--src/3rdparty/freetype/src/gzip/inflate.c1843
-rw-r--r--src/3rdparty/freetype/src/gzip/inflate.h131
-rw-r--r--src/3rdparty/freetype/src/gzip/inftrees.c710
-rw-r--r--src/3rdparty/freetype/src/gzip/inftrees.h112
-rw-r--r--src/3rdparty/freetype/src/gzip/patches/freetype-zlib.diff372
-rw-r--r--src/3rdparty/freetype/src/gzip/rules.mk14
-rw-r--r--src/3rdparty/freetype/src/gzip/zlib.h1962
-rw-r--r--src/3rdparty/freetype/src/gzip/zutil.c232
-rw-r--r--src/3rdparty/freetype/src/gzip/zutil.h197
-rw-r--r--src/3rdparty/freetype/src/lzw/ftlzw.c6
-rw-r--r--src/3rdparty/freetype/src/lzw/ftzopen.c9
-rw-r--r--src/3rdparty/freetype/src/lzw/ftzopen.h2
-rw-r--r--src/3rdparty/freetype/src/lzw/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/otvalid/module.mk2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvalid.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvalid.h2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvbase.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvcommn.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvcommn.h40
-rw-r--r--src/3rdparty/freetype/src/otvalid/otverror.h2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgdef.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgpos.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgpos.h2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvgsub.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvjstf.c2
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvmath.c4
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvmod.c6
-rw-r--r--src/3rdparty/freetype/src/otvalid/otvmod.h2
-rw-r--r--src/3rdparty/freetype/src/otvalid/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfdrivr.c6
-rw-r--r--src/3rdparty/freetype/src/pcf/pcfread.c110
-rw-r--r--src/3rdparty/freetype/src/pfr/module.mk2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfr.c2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrcmap.c2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrcmap.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrdrivr.c2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrdrivr.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrerror.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrgload.c2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrgload.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrload.c12
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrload.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrobjs.c10
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrobjs.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrsbit.c10
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrsbit.h2
-rw-r--r--src/3rdparty/freetype/src/pfr/pfrtypes.h4
-rw-r--r--src/3rdparty/freetype/src/pfr/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/psaux/afmparse.c130
-rw-r--r--src/3rdparty/freetype/src/psaux/afmparse.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/cffdecode.c35
-rw-r--r--src/3rdparty/freetype/src/psaux/cffdecode.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/module.mk2
-rw-r--r--src/3rdparty/freetype/src/psaux/psarrst.c7
-rw-r--r--src/3rdparty/freetype/src/psaux/psarrst.h1
-rw-r--r--src/3rdparty/freetype/src/psaux/psaux.c2
-rw-r--r--src/3rdparty/freetype/src/psaux/psauxerr.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/psauxmod.c2
-rw-r--r--src/3rdparty/freetype/src/psaux/psauxmod.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/psblues.c3
-rw-r--r--src/3rdparty/freetype/src/psaux/psconv.c10
-rw-r--r--src/3rdparty/freetype/src/psaux/psconv.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/psft.c6
-rw-r--r--src/3rdparty/freetype/src/psaux/pshints.c60
-rw-r--r--src/3rdparty/freetype/src/psaux/psintrp.c69
-rw-r--r--src/3rdparty/freetype/src/psaux/psintrp.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/psobjs.c103
-rw-r--r--src/3rdparty/freetype/src/psaux/psobjs.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/psstack.c8
-rw-r--r--src/3rdparty/freetype/src/psaux/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/psaux/t1cmap.c2
-rw-r--r--src/3rdparty/freetype/src/psaux/t1cmap.h2
-rw-r--r--src/3rdparty/freetype/src/psaux/t1decode.c33
-rw-r--r--src/3rdparty/freetype/src/psaux/t1decode.h2
-rw-r--r--src/3rdparty/freetype/src/pshinter/module.mk2
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshalgo.c139
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshalgo.h32
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshglob.c4
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshglob.h2
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshinter.c2
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshmod.c2
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshmod.h2
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshnterr.h2
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshrec.c122
-rw-r--r--src/3rdparty/freetype/src/pshinter/pshrec.h2
-rw-r--r--src/3rdparty/freetype/src/pshinter/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/psnames/module.mk2
-rw-r--r--src/3rdparty/freetype/src/psnames/psmodule.c42
-rw-r--r--src/3rdparty/freetype/src/psnames/psmodule.h2
-rw-r--r--src/3rdparty/freetype/src/psnames/psnamerr.h2
-rw-r--r--src/3rdparty/freetype/src/psnames/psnames.c2
-rw-r--r--src/3rdparty/freetype/src/psnames/pstables.h2
-rw-r--r--src/3rdparty/freetype/src/psnames/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/raster/ftmisc.h9
-rw-r--r--src/3rdparty/freetype/src/raster/ftraster.c325
-rw-r--r--src/3rdparty/freetype/src/raster/ftraster.h2
-rw-r--r--src/3rdparty/freetype/src/raster/ftrend1.c2
-rw-r--r--src/3rdparty/freetype/src/raster/ftrend1.h2
-rw-r--r--src/3rdparty/freetype/src/raster/module.mk2
-rw-r--r--src/3rdparty/freetype/src/raster/raster.c2
-rw-r--r--src/3rdparty/freetype/src/raster/rasterrs.h2
-rw-r--r--src/3rdparty/freetype/src/raster/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/sdf/ftbsdf.c1347
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdf.c3925
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdf.h97
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfcommon.c147
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfcommon.h141
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdferrs.h37
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfrend.c604
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfrend.h118
-rw-r--r--src/3rdparty/freetype/src/sdf/module.mk29
-rw-r--r--src/3rdparty/freetype/src/sdf/rules.mk78
-rw-r--r--src/3rdparty/freetype/src/sdf/sdf.c29
-rw-r--r--src/3rdparty/freetype/src/sfnt/module.mk2
-rw-r--r--src/3rdparty/freetype/src/sfnt/pngshim.c18
-rw-r--r--src/3rdparty/freetype/src/sfnt/pngshim.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/rules.mk3
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfdriver.c70
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfdriver.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/sferrors.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfnt.c3
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfobjs.c120
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfobjs.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfwoff.c36
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfwoff.h5
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfwoff2.c144
-rw-r--r--src/3rdparty/freetype/src/sfnt/sfwoff2.h5
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttbdf.c2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttbdf.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcmap.c14
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcmap.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcmapc.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcolr.c908
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcolr.h28
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcpal.c2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttcpal.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttkern.c21
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttkern.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttload.c90
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttload.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttmtx.c2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttmtx.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttpost.c111
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttpost.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsbit.c45
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsbit.h2
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsvg.c403
-rw-r--r--src/3rdparty/freetype/src/sfnt/ttsvg.h43
-rw-r--r--src/3rdparty/freetype/src/sfnt/woff2tags.c16
-rw-r--r--src/3rdparty/freetype/src/sfnt/woff2tags.h8
-rw-r--r--src/3rdparty/freetype/src/smooth/ftgrays.c829
-rw-r--r--src/3rdparty/freetype/src/smooth/ftgrays.h2
-rw-r--r--src/3rdparty/freetype/src/smooth/ftsmerrs.h2
-rw-r--r--src/3rdparty/freetype/src/smooth/ftsmooth.c2
-rw-r--r--src/3rdparty/freetype/src/smooth/ftsmooth.h2
-rw-r--r--src/3rdparty/freetype/src/smooth/module.mk2
-rw-r--r--src/3rdparty/freetype/src/smooth/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/smooth/smooth.c2
-rw-r--r--src/3rdparty/freetype/src/svg/ftsvg.c350
-rw-r--r--src/3rdparty/freetype/src/svg/ftsvg.h35
-rw-r--r--src/3rdparty/freetype/src/svg/module.mk23
-rw-r--r--src/3rdparty/freetype/src/svg/rules.mk70
-rw-r--r--src/3rdparty/freetype/src/svg/svg.c24
-rw-r--r--src/3rdparty/freetype/src/svg/svgtypes.h42
-rw-r--r--src/3rdparty/freetype/src/tools/afblue.pl2
-rw-r--r--src/3rdparty/freetype/src/tools/apinames.c22
-rwxr-xr-xsrc/3rdparty/freetype/src/tools/chktrcmp.py4
-rw-r--r--src/3rdparty/freetype/src/tools/ftrandom/ftrandom.c2
-rw-r--r--src/3rdparty/freetype/src/tools/glnames.py2
-rw-r--r--src/3rdparty/freetype/src/tools/no-copyright4
-rwxr-xr-xsrc/3rdparty/freetype/src/tools/update-copyright-year65
-rw-r--r--src/3rdparty/freetype/src/truetype/module.mk2
-rw-r--r--src/3rdparty/freetype/src/truetype/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/truetype/truetype.c2
-rw-r--r--src/3rdparty/freetype/src/truetype/ttdriver.c18
-rw-r--r--src/3rdparty/freetype/src/truetype/ttdriver.h2
-rw-r--r--src/3rdparty/freetype/src/truetype/tterrors.h2
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgload.c294
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgload.h2
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgxvar.c320
-rw-r--r--src/3rdparty/freetype/src/truetype/ttgxvar.h8
-rw-r--r--src/3rdparty/freetype/src/truetype/ttinterp.c245
-rw-r--r--src/3rdparty/freetype/src/truetype/ttinterp.h97
-rw-r--r--src/3rdparty/freetype/src/truetype/ttobjs.c97
-rw-r--r--src/3rdparty/freetype/src/truetype/ttobjs.h4
-rw-r--r--src/3rdparty/freetype/src/truetype/ttpload.c127
-rw-r--r--src/3rdparty/freetype/src/truetype/ttpload.h2
-rw-r--r--src/3rdparty/freetype/src/truetype/ttsubpix.c8
-rw-r--r--src/3rdparty/freetype/src/truetype/ttsubpix.h2
-rw-r--r--src/3rdparty/freetype/src/type1/module.mk2
-rw-r--r--src/3rdparty/freetype/src/type1/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/type1/t1afm.c6
-rw-r--r--src/3rdparty/freetype/src/type1/t1afm.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1driver.c2
-rw-r--r--src/3rdparty/freetype/src/type1/t1driver.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1errors.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1gload.c4
-rw-r--r--src/3rdparty/freetype/src/type1/t1gload.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1load.c130
-rw-r--r--src/3rdparty/freetype/src/type1/t1load.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1objs.c16
-rw-r--r--src/3rdparty/freetype/src/type1/t1objs.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1parse.c10
-rw-r--r--src/3rdparty/freetype/src/type1/t1parse.h2
-rw-r--r--src/3rdparty/freetype/src/type1/t1tokens.h2
-rw-r--r--src/3rdparty/freetype/src/type1/type1.c2
-rw-r--r--src/3rdparty/freetype/src/type42/module.mk2
-rw-r--r--src/3rdparty/freetype/src/type42/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/type42/t42drivr.c15
-rw-r--r--src/3rdparty/freetype/src/type42/t42drivr.h2
-rw-r--r--src/3rdparty/freetype/src/type42/t42error.h2
-rw-r--r--src/3rdparty/freetype/src/type42/t42objs.c31
-rw-r--r--src/3rdparty/freetype/src/type42/t42objs.h2
-rw-r--r--src/3rdparty/freetype/src/type42/t42parse.c88
-rw-r--r--src/3rdparty/freetype/src/type42/t42parse.h2
-rw-r--r--src/3rdparty/freetype/src/type42/t42types.h2
-rw-r--r--src/3rdparty/freetype/src/type42/type42.c2
-rw-r--r--src/3rdparty/freetype/src/winfonts/fnterrs.h2
-rw-r--r--src/3rdparty/freetype/src/winfonts/module.mk2
-rw-r--r--src/3rdparty/freetype/src/winfonts/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/winfonts/winfnt.c40
-rw-r--r--src/3rdparty/freetype/src/winfonts/winfnt.h2
-rw-r--r--src/3rdparty/gradle/gradle/wrapper/gradle-wrapper.properties2
-rw-r--r--src/3rdparty/gradle/qt_attribution.json6
-rw-r--r--src/3rdparty/harfbuzz-ng/CMakeLists.txt3
-rw-r--r--src/3rdparty/harfbuzz-ng/NEWS285
-rw-r--r--src/3rdparty/harfbuzz-ng/README.md6
-rw-r--r--src/3rdparty/harfbuzz-ng/TODO28
-rw-r--r--src/3rdparty/harfbuzz-ng/import_from_tarball.sh9
-rw-r--r--src/3rdparty/harfbuzz-ng/qt_attribution.json2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/AlternateSet.hh110
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/AlternateSubst.hh51
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/AlternateSubstFormat1.hh128
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/ChainContextSubst.hh18
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/Common.hh21
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/ContextSubst.hh18
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/ExtensionSubst.hh22
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/GSUB.hh58
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/Ligature.hh135
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/LigatureSet.hh118
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/LigatureSubst.hh59
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/LigatureSubstFormat1.hh165
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/MultipleSubst.hh53
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/MultipleSubstFormat1.hh120
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/ReverseChainSingleSubst.hh36
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh228
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/Sequence.hh103
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/SingleSubst.hh75
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/SingleSubstFormat1.hh122
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/SingleSubstFormat2.hh120
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/SubstLookup.hh224
-rw-r--r--src/3rdparty/harfbuzz-ng/src/OT/Layout/GSUB/SubstLookupSubTable.hh77
-rw-r--r--src/3rdparty/harfbuzz-ng/src/harfbuzz.cc2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-aat-layout-bsln-table.hh4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-aat-layout-common.hh20
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-aat-layout-just-table.hh10
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-aat-layout-kerx-table.hh14
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-aat-layout-morx-table.hh42
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-aat-layout.cc3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-algs.hh127
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-array.hh36
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-atomic.hh10
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-bimap.hh25
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-bit-page.hh72
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-bit-set-invertible.hh26
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-bit-set.hh127
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-blob.cc4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-buffer-deserialize-text.hh16
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-buffer-verify.cc422
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-buffer.cc252
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-buffer.h161
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-buffer.hh267
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-cff-interp-common.hh14
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-cff-interp-cs-common.hh9
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-cff2-interp-cs.hh14
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-common.cc78
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-common.h16
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-config.hh9
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-coretext.cc27
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-debug.hh8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-directwrite.cc3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-dispatch.hh2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-draw.cc376
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-draw.h285
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-draw.hh246
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-face.cc23
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-fallback-shape.cc2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-font.cc273
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-font.h53
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-font.hh33
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ft.cc98
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-gobject-structs.cc1
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-gobject-structs.h4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-graphite2.cc3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-iter.hh105
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-kern.hh9
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-machinery.hh20
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-map.hh128
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-meta.hh234
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ms-feature-ranges.cc177
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ms-feature-ranges.hh145
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-mutex.hh37
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-object.hh6
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-open-type.hh49
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-cff-common.hh4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-cff1-table.cc34
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-cff1-table.hh42
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-cff2-table.cc22
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-cff2-table.hh67
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-cmap-table.hh291
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-color-cbdt-table.hh32
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-color-colr-table.hh789
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-color-colrv1-closure.hh55
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-color-sbix-table.hh9
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-color-svg-table.hh8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-color.cc12
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-deprecated.h15
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-face-table-list.hh17
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-face.hh3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-font.cc79
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-glyf-table.hh154
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-head-table.hh4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-hmtx-table.hh179
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-kern-table.hh8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-base-table.hh22
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-common.hh206
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-gdef-table.hh27
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-gpos-table.hh236
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-gsub-table.hh1683
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-gsubgpos.hh652
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout-jstf-table.hh2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout.cc376
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout.h62
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-layout.hh54
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-map.cc8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-map.hh8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-math-table.hh415
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-math.cc45
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-math.h36
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-meta-table.hh8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-metrics.cc191
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-metrics.h5
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-name-table.hh13
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-name.cc2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-name.h30
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-post-table-v2subset.hh38
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-post-table.hh17
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-arabic-fallback.hh14
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-arabic-win1256.hh32
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-arabic.cc28
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-hangul.cc4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-indic.cc43
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-indic.hh1
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-khmer.cc17
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-khmer.hh4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-myanmar-machine.hh473
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-myanmar.cc13
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-myanmar.hh10
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-syllabic.cc2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-thai.cc2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-use-machine.hh808
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-use-table.hh1119
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-use.cc23
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-complex-vowel-constraints.cc2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-fallback.cc19
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-normalize.cc12
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape-normalize.hh1
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-shape.cc96
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-tag-table.hh114
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-tag.cc3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-var-common.hh264
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-var-fvar-table.hh2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-var-gvar-table.hh15
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-var-hvar-table.hh95
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-var.cc3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-var.h2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-ot-vorg-table.hh2
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-repacker.hh918
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-sanitize.hh21
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-serialize.hh158
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-set-digest.hh14
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-set.cc48
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-set.h11
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-set.hh35
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-shape.cc18
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-static.cc39
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-style.cc20
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-style.h4
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-cff-common.hh102
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-cff1.cc42
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-cff2.cc43
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-input.hh22
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-plan.cc259
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-plan.hh15
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-repacker.cc49
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset-repacker.h80
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset.cc61
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset.h46
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-subset.hh6
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-unicode.hh5
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-uniscribe.cc3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-vector.hh229
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-version.h8
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb.hh3
-rw-r--r--src/3rdparty/harfbuzz-ng/src/main.cc82
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-iter.cc74
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-machinery.cc46
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-map.cc139
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-meta.cc133
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-repacker.cc1041
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-serialize.cc51
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-set.cc97
-rw-r--r--src/3rdparty/harfbuzz-ng/src/test-vector.cc154
-rw-r--r--src/3rdparty/libjpeg/CMakeLists.txt1
-rw-r--r--src/3rdparty/libpng/CMakeLists.txt1
-rw-r--r--src/3rdparty/libpsl/qtpatches.diff42
-rwxr-xr-xsrc/3rdparty/libpsl/src/psl-make-dafsa10
-rw-r--r--src/3rdparty/pcre2/CMakeLists.txt1
-rw-r--r--src/3rdparty/sqlite/qt_attribution.json4
-rw-r--r--src/3rdparty/sqlite/sqlite3.c15618
-rw-r--r--src/3rdparty/sqlite/sqlite3.h412
-rw-r--r--src/3rdparty/zlib/CMakeLists.txt1
-rw-r--r--src/CMakeLists.txt25
-rw-r--r--src/android/CMakeLists.txt3
-rw-r--r--src/android/jar/CMakeLists.txt3
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/CursorHandle.java8
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/EditPopupMenu.java16
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java4
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/accessibility/QtAccessibilityDelegate.java26
-rw-r--r--src/android/java/CMakeLists.txt3
-rw-r--r--src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java2
-rw-r--r--src/android/templates/CMakeLists.txt3
-rw-r--r--src/android/templates/build.gradle2
-rw-r--r--src/concurrent/CMakeLists.txt3
-rw-r--r--src/concurrent/doc/snippets/CMakeLists.txt3
-rw-r--r--src/concurrent/qtconcurrentfilter.cpp1
-rw-r--r--src/concurrent/qtconcurrentfilter.h4
-rw-r--r--src/concurrent/qtconcurrentmap.cpp1
-rw-r--r--src/concurrent/qtconcurrentmap.h4
-rw-r--r--src/concurrent/qtconcurrentreducekernel.h2
-rw-r--r--src/concurrent/qtconcurrentrun.cpp1
-rw-r--r--src/concurrent/qtconcurrentrun.h4
-rw-r--r--src/concurrent/qtconcurrenttask.qdoc1
-rw-r--r--src/corelib/CMakeLists.txt47
-rw-r--r--src/corelib/Qt6AndroidMacros.cmake64
-rw-r--r--src/corelib/Qt6CTestMacros.cmake3
-rw-r--r--src/corelib/Qt6CoreDeploySupport.cmake3
-rw-r--r--src/corelib/Qt6CoreMacros.cmake704
-rw-r--r--src/corelib/Qt6WasmMacros.cmake3
-rw-r--r--src/corelib/compat/removed_api.cpp104
-rw-r--r--src/corelib/configure.cmake11
-rw-r--r--src/corelib/doc/qtcore.qdocconf2
-rw-r--r--src/corelib/doc/snippets/cmake-macros/examples.cmake8
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp15
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qabstractnativeeventfilter.mm2
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qabstractnativeeventfilter_win.cpp20
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_text_qstring.cpp8
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_text_qstringiterator.cpp2
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_tools_qmap.cpp16
-rw-r--r--src/corelib/doc/snippets/qloggingcategory/main.cpp17
-rw-r--r--src/corelib/doc/snippets/resource-system/CMakeLists.txt3
-rw-r--r--src/corelib/doc/src/cmake/cmake-configure-variables.qdoc27
-rw-r--r--src/corelib/doc/src/cmake/cmake-properties.qdoc36
-rw-r--r--src/corelib/doc/src/cmake/qt_add_big_resources.qdoc8
-rw-r--r--src/corelib/doc/src/cmake/qt_add_plugin.qdoc4
-rw-r--r--src/corelib/doc/src/cmake/qt_add_resources.qdoc11
-rw-r--r--src/corelib/doc/src/cmake/qt_standard_project_setup.qdoc6
-rw-r--r--src/corelib/doc/src/external-resources.qdoc10
-rw-r--r--src/corelib/doc/src/includes/cmake-android-qt-finalize-project-warning.cmake3
-rw-r--r--src/corelib/doc/src/objectmodel/properties.qdoc16
-rw-r--r--src/corelib/doc/src/qt6-changes.qdoc253
-rw-r--r--src/corelib/doc/src/qtcore.qdoc10
-rw-r--r--src/corelib/doc/src/resource-system.qdoc9
-rw-r--r--src/corelib/global/q20algorithm.h28
-rw-r--r--src/corelib/global/q20functional.h15
-rw-r--r--src/corelib/global/q23functional.h49
-rw-r--r--src/corelib/global/qassert.cpp201
-rw-r--r--src/corelib/global/qassert.h103
-rw-r--r--src/corelib/global/qcompilerdetection.h169
-rw-r--r--src/corelib/global/qendian.h12
-rw-r--r--src/corelib/global/qendian_p.h82
-rw-r--r--src/corelib/global/qenvironmentvariables.cpp357
-rw-r--r--src/corelib/global/qenvironmentvariables.h36
-rw-r--r--src/corelib/global/qforeach.h1
-rw-r--r--src/corelib/global/qglobal.cpp1310
-rw-r--r--src/corelib/global/qglobal.h787
-rw-r--r--src/corelib/global/qlogging.cpp7
-rw-r--r--src/corelib/global/qlogging.h3
-rw-r--r--src/corelib/global/qminmax.h88
-rw-r--r--src/corelib/global/qminmax.qdoc39
-rw-r--r--src/corelib/global/qnamespace.h9
-rw-r--r--src/corelib/global/qnamespace.qdoc13
-rw-r--r--src/corelib/global/qnativeinterface_p.h2
-rw-r--r--src/corelib/global/qnumeric.h85
-rw-r--r--src/corelib/global/qoperatingsystemversion.cpp38
-rw-r--r--src/corelib/global/qoperatingsystemversion.h2
-rw-r--r--src/corelib/global/qoverload.h80
-rw-r--r--src/corelib/global/qoverload.qdoc43
-rw-r--r--src/corelib/global/qprocessordetection.h6
-rw-r--r--src/corelib/global/qsimd.cpp6
-rw-r--r--src/corelib/global/qsimd_p.h70
-rw-r--r--src/corelib/global/qsystemdetection.h12
-rw-r--r--src/corelib/global/qtconfigmacros.h122
-rw-r--r--src/corelib/global/qtdeprecationmarkers.h280
-rw-r--r--src/corelib/global/qtnamespacemacros.h82
-rw-r--r--src/corelib/global/qtranslation.h41
-rw-r--r--src/corelib/global/qtranslation.qdoc206
-rw-r--r--src/corelib/global/qtversionchecks.cpp46
-rw-r--r--src/corelib/global/qtversionchecks.h80
-rw-r--r--src/corelib/global/qtypes.cpp332
-rw-r--r--src/corelib/global/qtypes.h163
-rw-r--r--src/corelib/global/qxpfunctional.h176
-rw-r--r--src/corelib/io/qdebug.h12
-rw-r--r--src/corelib/io/qfilesystemengine_win.cpp37
-rw-r--r--src/corelib/io/qloggingcategory.cpp81
-rw-r--r--src/corelib/io/qloggingcategory.h21
-rw-r--r--src/corelib/io/qprocess.cpp3
-rw-r--r--src/corelib/io/qprocess_unix.cpp19
-rw-r--r--src/corelib/io/qsettings.cpp71
-rw-r--r--src/corelib/io/qsettings_wasm.cpp43
-rw-r--r--src/corelib/io/qtemporaryfile.cpp40
-rw-r--r--src/corelib/io/qurl.cpp4
-rw-r--r--src/corelib/io/qurl.h4
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.h26
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel_p.h12
-rw-r--r--src/corelib/kernel/qabstractnativeeventfilter.cpp3
-rw-r--r--src/corelib/kernel/qbindingstorage.h3
-rw-r--r--src/corelib/kernel/qcore_mac.mm78
-rw-r--r--src/corelib/kernel/qcore_mac_p.h1
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp17
-rw-r--r--src/corelib/kernel/qcoreapplication_p.h3
-rw-r--r--src/corelib/kernel/qcoreevent.cpp6
-rw-r--r--src/corelib/kernel/qeventdispatcher_cf.mm4
-rw-r--r--src/corelib/kernel/qeventdispatcher_cf_p.h4
-rw-r--r--src/corelib/kernel/qeventdispatcher_wasm.cpp429
-rw-r--r--src/corelib/kernel/qeventdispatcher_wasm_p.h40
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp8
-rw-r--r--src/corelib/kernel/qjnienvironment.h12
-rw-r--r--src/corelib/kernel/qjnihelpers.cpp2
-rw-r--r--src/corelib/kernel/qjniobject.cpp31
-rw-r--r--src/corelib/kernel/qjniobject.h20
-rw-r--r--src/corelib/kernel/qjnitypes.h80
-rw-r--r--src/corelib/kernel/qmath.qdoc2
-rw-r--r--src/corelib/kernel/qmetaobject.cpp441
-rw-r--r--src/corelib/kernel/qmetaobject.h2
-rw-r--r--src/corelib/kernel/qmetaobject_p.h2
-rw-r--r--src/corelib/kernel/qmetatype.cpp320
-rw-r--r--src/corelib/kernel/qmetatype.h246
-rw-r--r--src/corelib/kernel/qmetatype_p.h75
-rw-r--r--src/corelib/kernel/qmimedata.cpp11
-rw-r--r--src/corelib/kernel/qobject.cpp230
-rw-r--r--src/corelib/kernel/qobject_p_p.h249
-rw-r--r--src/corelib/kernel/qobjectdefs.h3
-rw-r--r--src/corelib/kernel/qproperty.cpp86
-rw-r--r--src/corelib/kernel/qproperty_p.h104
-rw-r--r--src/corelib/kernel/qpropertyprivate.h10
-rw-r--r--src/corelib/kernel/qsharedmemory.cpp22
-rw-r--r--src/corelib/kernel/qsharedmemory.h6
-rw-r--r--src/corelib/kernel/qsharedmemory_android.cpp14
-rw-r--r--src/corelib/kernel/qsharedmemory_p.h16
-rw-r--r--src/corelib/kernel/qsharedmemory_posix.cpp4
-rw-r--r--src/corelib/kernel/qsharedmemory_systemv.cpp16
-rw-r--r--src/corelib/kernel/qsharedmemory_unix.cpp10
-rw-r--r--src/corelib/kernel/qsharedmemory_win.cpp5
-rw-r--r--src/corelib/kernel/qsystemsemaphore.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_android.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_p.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_posix.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_systemv.cpp6
-rw-r--r--src/corelib/kernel/qsystemsemaphore_unix.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_win.cpp4
-rw-r--r--src/corelib/kernel/qtmochelpers.h85
-rw-r--r--src/corelib/kernel/qtranslator.cpp9
-rw-r--r--src/corelib/kernel/qvariant.cpp492
-rw-r--r--src/corelib/kernel/qvariant.h299
-rw-r--r--src/corelib/kernel/qvariant_p.h40
-rw-r--r--src/corelib/mimetypes/mimetypes_resources.cmake3
-rw-r--r--src/corelib/platform/android/qandroidextras.cpp12
-rw-r--r--src/corelib/platform/wasm/qstdweb.cpp346
-rw-r--r--src/corelib/platform/wasm/qstdweb_p.h46
-rw-r--r--src/corelib/plugin/qlibrary.cpp2
-rw-r--r--src/corelib/plugin/qplugin.h4
-rw-r--r--src/corelib/qt_cmdline.cmake3
-rw-r--r--src/corelib/serialization/qcborvalue.cpp75
-rw-r--r--src/corelib/serialization/qcborvalue.h6
-rw-r--r--src/corelib/serialization/qcborvalue_p.h2
-rw-r--r--src/corelib/serialization/qdatastream.cpp1
-rw-r--r--src/corelib/serialization/qdatastream.h5
-rw-r--r--src/corelib/serialization/qjsonarray.cpp24
-rw-r--r--src/corelib/serialization/qjsonarray.h4
-rw-r--r--src/corelib/serialization/qjsondocument.cpp2
-rw-r--r--src/corelib/serialization/qjsondocument.h2
-rw-r--r--src/corelib/serialization/qjsonobject.cpp43
-rw-r--r--src/corelib/serialization/qjsonobject.h10
-rw-r--r--src/corelib/serialization/qjsonvalue.cpp31
-rw-r--r--src/corelib/serialization/qjsonvalue.h8
-rw-r--r--src/corelib/serialization/qxmlstream.cpp128
-rw-r--r--src/corelib/serialization/qxmlstream.g2
-rw-r--r--src/corelib/serialization/qxmlstream.h15
-rw-r--r--src/corelib/serialization/qxmlutils.cpp15
-rw-r--r--src/corelib/serialization/qxmlutils_p.h2
-rw-r--r--src/corelib/text/qbytearray.cpp29
-rw-r--r--src/corelib/text/qbytearray.h24
-rw-r--r--src/corelib/text/qbytearrayview.h2
-rw-r--r--src/corelib/text/qbytedata_p.h18
-rw-r--r--src/corelib/text/qchar.cpp150
-rw-r--r--src/corelib/text/qcollator.cpp14
-rw-r--r--src/corelib/text/qcollator.h6
-rw-r--r--src/corelib/text/qcollator_icu.cpp9
-rw-r--r--src/corelib/text/qcollator_macx.cpp8
-rw-r--r--src/corelib/text/qcollator_p.h6
-rw-r--r--src/corelib/text/qcollator_posix.cpp11
-rw-r--r--src/corelib/text/qcollator_win.cpp8
-rw-r--r--src/corelib/text/qlocale.cpp67
-rw-r--r--src/corelib/text/qlocale.h19
-rw-r--r--src/corelib/text/qlocale.qdoc406
-rw-r--r--src/corelib/text/qlocale_data_p.h50
-rw-r--r--src/corelib/text/qlocale_mac.mm12
-rw-r--r--src/corelib/text/qlocale_p.h32
-rw-r--r--src/corelib/text/qlocale_tools.cpp14
-rw-r--r--src/corelib/text/qlocale_tools_p.h3
-rw-r--r--src/corelib/text/qlocale_unix.cpp4
-rw-r--r--src/corelib/text/qlocale_win.cpp51
-rw-r--r--src/corelib/text/qregularexpression.cpp75
-rw-r--r--src/corelib/text/qregularexpression.h22
-rw-r--r--src/corelib/text/qstring.cpp260
-rw-r--r--src/corelib/text/qstring.h43
-rw-r--r--src/corelib/text/qstringalgorithms.h16
-rw-r--r--src/corelib/text/qstringalgorithms_p.h2
-rw-r--r--src/corelib/text/qstringconverter.cpp361
-rw-r--r--src/corelib/text/qstringconverter.h37
-rw-r--r--src/corelib/text/qstringconverter_base.h16
-rw-r--r--src/corelib/text/qstringconverter_p.h31
-rw-r--r--src/corelib/text/qstringiterator_p.h31
-rw-r--r--src/corelib/text/qstringlist.cpp8
-rw-r--r--src/corelib/text/qstringlist.h4
-rw-r--r--src/corelib/text/qstringview.cpp2
-rw-r--r--src/corelib/text/qstringview.h14
-rw-r--r--src/corelib/text/qt_attribution.json4
-rw-r--r--src/corelib/text/qtextboundaryfinder.cpp8
-rw-r--r--src/corelib/text/qunicodetables.cpp19676
-rw-r--r--src/corelib/text/qunicodetables_p.h20
-rw-r--r--src/corelib/text/qunicodetools.cpp208
-rw-r--r--src/corelib/text/qutf8stringview.h4
-rw-r--r--src/corelib/thread/qatomic.cpp40
-rw-r--r--src/corelib/thread/qfuture_impl.h4
-rw-r--r--src/corelib/thread/qfutureinterface.cpp14
-rw-r--r--src/corelib/thread/qfutureinterface.h2
-rw-r--r--src/corelib/thread/qfutureinterface_p.h6
-rw-r--r--src/corelib/thread/qpromise.h2
-rw-r--r--src/corelib/thread/qreadwritelock_p.h2
-rw-r--r--src/corelib/thread/qsemaphore.cpp2
-rw-r--r--src/corelib/thread/qthread.cpp110
-rw-r--r--src/corelib/thread/qthread_p.h132
-rw-r--r--src/corelib/thread/qthread_unix.cpp2
-rw-r--r--src/corelib/thread/qthread_win.cpp13
-rw-r--r--src/corelib/time/qdatetime.cpp97
-rw-r--r--src/corelib/time/qdatetime.h19
-rw-r--r--src/corelib/time/qdatetime_p.h12
-rw-r--r--src/corelib/time/qhijricalendar_data_p.h4
-rw-r--r--src/corelib/time/qjalalicalendar_data_p.h4
-rw-r--r--src/corelib/time/qlocaltime.cpp56
-rw-r--r--src/corelib/time/qlocaltime_p.h10
-rw-r--r--src/corelib/time/qromancalendar.cpp9
-rw-r--r--src/corelib/time/qromancalendar_data_p.h4
-rw-r--r--src/corelib/time/qtimezone.cpp11
-rw-r--r--src/corelib/time/qtimezone.h1
-rw-r--r--src/corelib/time/qtimezoneprivate_data_p.h10
-rw-r--r--src/corelib/time/qtimezoneprivate_tz.cpp3
-rw-r--r--src/corelib/tools/qalgorithms.h4
-rw-r--r--src/corelib/tools/qatomicscopedvaluerollback_p.h106
-rw-r--r--src/corelib/tools/qbitarray.cpp4
-rw-r--r--src/corelib/tools/qbitarray.h4
-rw-r--r--src/corelib/tools/qcontainerfwd.h6
-rw-r--r--src/corelib/tools/qhash.cpp9
-rw-r--r--src/corelib/tools/qhashfunctions.h11
-rw-r--r--src/corelib/tools/qline.h4
-rw-r--r--src/corelib/tools/qmap.qdoc29
-rw-r--r--src/corelib/tools/qtaggedpointer.qdoc2
-rw-r--r--src/corelib/tools/qvector.h6
-rw-r--r--src/corelib/tools/qversionnumber.cpp2
-rw-r--r--src/dbus/CMakeLists.txt3
-rw-r--r--src/dbus/Qt6DBusMacros.cmake32
-rw-r--r--src/dbus/doc/snippets/CMakeLists.txt3
-rw-r--r--src/dbus/doc/snippets/cmake/examples.cmake3
-rw-r--r--src/dbus/qdbusconnection.cpp2
-rw-r--r--src/dbus/qdbusintegrator.cpp5
-rw-r--r--src/dbus/qdbusmetaobject.cpp70
-rw-r--r--src/dbus/qdbusvirtualobject.cpp2
-rw-r--r--src/entrypoint/CMakeLists.txt3
-rw-r--r--src/gui/CMakeLists.txt12
-rw-r--r--src/gui/accessible/linux/atspiadaptor.cpp4
-rw-r--r--src/gui/accessible/linux/dbusconnection.cpp11
-rw-r--r--src/gui/accessible/linux/qspi_constant_mappings.cpp4
-rw-r--r--src/gui/accessible/linux/qspi_struct_marshallers.cpp4
-rw-r--r--src/gui/accessible/linux/qspiaccessiblebridge.cpp4
-rw-r--r--src/gui/accessible/linux/qspiapplicationadaptor.cpp4
-rw-r--r--src/gui/accessible/linux/qspidbuscache.cpp4
-rw-r--r--src/gui/accessible/qaccessible.cpp6
-rw-r--r--src/gui/accessible/qaccessible.h8
-rw-r--r--src/gui/accessible/qaccessible_base.h8
-rw-r--r--src/gui/accessible/qaccessiblebridge.cpp4
-rw-r--r--src/gui/accessible/qaccessiblebridge.h4
-rw-r--r--src/gui/accessible/qaccessiblecache.cpp2
-rw-r--r--src/gui/accessible/qaccessiblecache_p.h4
-rw-r--r--src/gui/accessible/qaccessibleobject.cpp4
-rw-r--r--src/gui/accessible/qaccessibleobject.h4
-rw-r--r--src/gui/accessible/qaccessibleplugin.cpp6
-rw-r--r--src/gui/accessible/qaccessibleplugin.h4
-rw-r--r--src/gui/accessible/qplatformaccessibility.cpp4
-rw-r--r--src/gui/accessible/qplatformaccessibility.h4
-rw-r--r--src/gui/configure.cmake5
-rw-r--r--src/gui/doc/qtgui.qdocconf3
-rw-r--r--src/gui/doc/src/dnd.qdoc16
-rw-r--r--src/gui/image/qicon.cpp12
-rw-r--r--src/gui/image/qicon.h2
-rw-r--r--src/gui/image/qimage.cpp106
-rw-r--r--src/gui/image/qimage.h4
-rw-r--r--src/gui/image/qimage_conversions.cpp8
-rw-r--r--src/gui/image/qimageiohandler.cpp5
-rw-r--r--src/gui/image/qpicture.cpp2
-rw-r--r--src/gui/image/qpixmap.h3
-rw-r--r--src/gui/itemmodels/qfilesystemmodel.cpp4
-rw-r--r--src/gui/itemmodels/qfilesystemmodel_p.h3
-rw-r--r--src/gui/kernel/qaction.cpp10
-rw-r--r--src/gui/kernel/qaction.h7
-rw-r--r--src/gui/kernel/qclipboard.cpp4
-rw-r--r--src/gui/kernel/qcursor.cpp2
-rw-r--r--src/gui/kernel/qcursor.h2
-rw-r--r--src/gui/kernel/qevent.cpp42
-rw-r--r--src/gui/kernel/qevent.h7
-rw-r--r--src/gui/kernel/qeventpoint.cpp3
-rw-r--r--src/gui/kernel/qguiapplication.cpp35
-rw-r--r--src/gui/kernel/qguiapplication_p.h2
-rw-r--r--src/gui/kernel/qguivariant.cpp1
-rw-r--r--src/gui/kernel/qinputmethod.cpp6
-rw-r--r--src/gui/kernel/qkeysequence.cpp28
-rw-r--r--src/gui/kernel/qopenglcontext.cpp22
-rw-r--r--src/gui/kernel/qopenglcontext_p.h12
-rw-r--r--src/gui/kernel/qpalette.cpp91
-rw-r--r--src/gui/kernel/qplatformintegration.cpp6
-rw-r--r--src/gui/kernel/qplatformintegration.h5
-rw-r--r--src/gui/kernel/qplatformscreen_p.h12
-rw-r--r--src/gui/kernel/qplatformtheme.h10
-rw-r--r--src/gui/kernel/qpointingdevice.cpp2
-rw-r--r--src/gui/kernel/qscreen.cpp17
-rw-r--r--src/gui/kernel/qshortcut.h3
-rw-r--r--src/gui/kernel/qstylehints.cpp11
-rw-r--r--src/gui/kernel/qsurfaceformat.cpp3
-rw-r--r--src/gui/kernel/qtestsupport_gui.cpp8
-rw-r--r--src/gui/kernel/qtestsupport_gui.h4
-rw-r--r--src/gui/kernel/qwindow.cpp63
-rw-r--r--src/gui/kernel/qwindow_p.h5
-rw-r--r--src/gui/kernel/qwindowsysteminterface.cpp4
-rw-r--r--src/gui/math3d/qquaternion.cpp2
-rw-r--r--src/gui/math3d/qvectornd.cpp6
-rw-r--r--src/gui/opengl/platform/egl/qeglstreamconvenience_p.h4
-rw-r--r--src/gui/opengl/platform/egl/qxlibeglintegration.cpp130
-rw-r--r--src/gui/opengl/platform/egl/qxlibeglintegration_p.h33
-rw-r--r--src/gui/opengl/platform/unix/qglxconvenience.cpp2
-rw-r--r--src/gui/opengl/qopenglprogrambinarycache_p.h2
-rw-r--r--src/gui/painting/qbackingstore.cpp48
-rw-r--r--src/gui/painting/qbackingstoredefaultcompositor.cpp54
-rw-r--r--src/gui/painting/qbackingstoredefaultcompositor_p.h9
-rw-r--r--src/gui/painting/qbackingstorerhisupport.cpp21
-rw-r--r--src/gui/painting/qbackingstorerhisupport_p.h1
-rw-r--r--src/gui/painting/qbrush.cpp5
-rw-r--r--src/gui/painting/qcolor.cpp16
-rw-r--r--src/gui/painting/qcolor.h6
-rw-r--r--src/gui/painting/qcolormatrix_p.h4
-rw-r--r--src/gui/painting/qcolorspace.cpp5
-rw-r--r--src/gui/painting/qcolortransfertable_p.h4
-rw-r--r--src/gui/painting/qcolortransform.cpp142
-rw-r--r--src/gui/painting/qcolortransform.h17
-rw-r--r--src/gui/painting/qcolortransform_p.h4
-rw-r--r--src/gui/painting/qdatabuffer_p.h18
-rw-r--r--src/gui/painting/qdrawhelper.cpp12
-rw-r--r--src/gui/painting/qdrawhelper_p.h2
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp67
-rw-r--r--src/gui/painting/qfixed_p.h72
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp58
-rw-r--r--src/gui/painting/qpaintengine_raster_p.h1
-rw-r--r--src/gui/painting/qpainter.cpp11
-rw-r--r--src/gui/painting/qpainter.h1
-rw-r--r--src/gui/painting/qpathclipper.cpp1
-rw-r--r--src/gui/painting/qpathclipper_p.h6
-rw-r--r--src/gui/painting/qpathsimplifier.cpp8
-rw-r--r--src/gui/painting/qpdf.cpp21
-rw-r--r--src/gui/painting/qplatformbackingstore.cpp3
-rw-r--r--src/gui/painting/qplatformbackingstore.h3
-rw-r--r--src/gui/painting/qrasterizer.cpp19
-rw-r--r--src/gui/painting/qrgba64_p.h8
-rw-r--r--src/gui/painting/qrgbafloat.h8
-rw-r--r--src/gui/painting/qrhibackingstore.cpp2
-rw-r--r--src/gui/painting/qt_attribution.json2
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp18
-rw-r--r--src/gui/painting/qtextureglyphcache_p.h5
-rw-r--r--src/gui/painting/shaders/backingstorecompose.frag8
-rw-r--r--src/gui/painting/shaders/backingstorecompose.frag.qsbbin1759 -> 1657 bytes
-rw-r--r--src/gui/painting/shaders/backingstorecompose.vert2
-rw-r--r--src/gui/painting/shaders/backingstorecompose.vert.qsbbin1627 -> 1408 bytes
-rw-r--r--src/gui/platform/darwin/qapplekeymapper.mm2
-rw-r--r--src/gui/platform/unix/qgenericunixservices.cpp40
-rw-r--r--src/gui/platform/unix/qgenericunixservices_p.h4
-rw-r--r--src/gui/platform/unix/qtx11extras.cpp4
-rw-r--r--src/gui/platform/wasm/qlocalfileapi.cpp197
-rw-r--r--src/gui/platform/wasm/qlocalfileapi_p.h87
-rw-r--r--src/gui/platform/wasm/qwasmlocalfileaccess_p.h6
-rw-r--r--src/gui/platform/windows/qwindowsnativeinterface.cpp10
-rw-r--r--src/gui/qt_cmdline.cmake3
-rw-r--r--src/gui/qtgui.tracepoints2
-rw-r--r--src/gui/rhi/qrhi.cpp189
-rw-r--r--src/gui/rhi/qrhi_p.h54
-rw-r--r--src/gui/rhi/qrhi_p_p.h46
-rw-r--r--src/gui/rhi/qrhid3d11.cpp649
-rw-r--r--src/gui/rhi/qrhid3d11_p_p.h49
-rw-r--r--src/gui/rhi/qrhigles2.cpp156
-rw-r--r--src/gui/rhi/qrhigles2_p.h1
-rw-r--r--src/gui/rhi/qrhigles2_p_p.h12
-rw-r--r--src/gui/rhi/qrhimetal.mm315
-rw-r--r--src/gui/rhi/qrhimetal_p_p.h8
-rw-r--r--src/gui/rhi/qrhinull.cpp6
-rw-r--r--src/gui/rhi/qrhinull_p_p.h6
-rw-r--r--src/gui/rhi/qrhivulkan.cpp634
-rw-r--r--src/gui/rhi/qrhivulkan_p_p.h38
-rw-r--r--src/gui/rhi/qshader.cpp38
-rw-r--r--src/gui/rhi/qshader_p.h2
-rw-r--r--src/gui/rhi/qshader_p_p.h9
-rw-r--r--src/gui/text/coretext/qfontengine_coretext.mm17
-rw-r--r--src/gui/text/coretext/qfontengine_coretext_p.h1
-rw-r--r--src/gui/text/freetype/qfontengine_ft.cpp2
-rw-r--r--src/gui/text/qfont.cpp15
-rw-r--r--src/gui/text/qfontengine.cpp41
-rw-r--r--src/gui/text/qfontengine_p.h5
-rw-r--r--src/gui/text/qfontsubset.cpp56
-rw-r--r--src/gui/text/qfontsubset_p.h5
-rw-r--r--src/gui/text/qplatformfontdatabase.cpp18
-rw-r--r--src/gui/text/qplatformfontdatabase.h6
-rw-r--r--src/gui/text/qrawfont.h2
-rw-r--r--src/gui/text/qtextdocument.cpp50
-rw-r--r--src/gui/text/qtextdocument.h4
-rw-r--r--src/gui/text/qtextdocument_p.h3
-rw-r--r--src/gui/text/qtextdocumentfragment.cpp11
-rw-r--r--src/gui/text/qtextdocumentlayout.cpp12
-rw-r--r--src/gui/text/qtextengine.cpp14
-rw-r--r--src/gui/text/qtextengine_p.h2
-rw-r--r--src/gui/text/qtextformat.cpp5
-rw-r--r--src/gui/text/qtextformat.h1
-rw-r--r--src/gui/text/qtexthtmlparser.cpp8
-rw-r--r--src/gui/text/qtextlayout.cpp36
-rw-r--r--src/gui/text/qtextmarkdownwriter.cpp18
-rw-r--r--src/gui/text/qtextodfwriter.cpp2
-rw-r--r--src/gui/text/windows/qwindowsfontengine.cpp16
-rw-r--r--src/gui/text/windows/qwindowsfontengine_p.h1
-rw-r--r--src/gui/util/qedidparser.cpp3
-rw-r--r--src/gui/util/qtexturefiledata.cpp66
-rw-r--r--src/gui/util/qtexturefiledata_p.h6
-rw-r--r--src/gui/util/qvalidator.cpp48
-rw-r--r--src/gui/vulkan/LICENSE.txt64
-rw-r--r--src/gui/vulkan/qbasicvulkanplatforminstance.cpp107
-rw-r--r--src/gui/vulkan/qbasicvulkanplatforminstance_p.h17
-rw-r--r--src/gui/vulkan/qplatformvulkaninstance.cpp5
-rw-r--r--src/gui/vulkan/qplatformvulkaninstance.h1
-rw-r--r--src/gui/vulkan/qt_attribution.json6
-rw-r--r--src/gui/vulkan/qvulkandefaultinstance.cpp20
-rw-r--r--src/gui/vulkan/qvulkaninstance.cpp93
-rw-r--r--src/gui/vulkan/qvulkaninstance.h22
-rw-r--r--src/gui/vulkan/qvulkaninstance_p.h3
-rw-r--r--src/gui/vulkan/qvulkanwindow.cpp29
-rw-r--r--src/gui/vulkan/vk.xml9072
-rw-r--r--src/network/CMakeLists.txt19
-rw-r--r--src/network/access/qhttpheaderparser.cpp38
-rw-r--r--src/network/access/qhttpheaderparser_p.h34
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp11
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp2
-rw-r--r--src/network/access/qnetworkdiskcache.cpp2
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp2
-rw-r--r--src/network/access/qnetworkrequest.cpp5
-rw-r--r--src/network/android/jar/CMakeLists.txt3
-rw-r--r--src/network/configure.cmake3
-rw-r--r--src/network/doc/snippets/CMakeLists.txt3
-rw-r--r--src/network/doc/snippets/network/CMakeLists.txt3
-rw-r--r--src/network/kernel/qauthenticator.cpp30
-rw-r--r--src/network/kernel/qhostaddress.cpp2
-rw-r--r--src/network/kernel/qnetconmonitor_win.cpp2
-rw-r--r--src/network/kernel/qnetworkinformation.cpp5
-rw-r--r--src/network/kernel/qnetworkinterface_uikit_p.h21
-rw-r--r--src/network/kernel/qnetworkinterface_unix.cpp3
-rw-r--r--src/network/kernel/qnetworkproxy_android.cpp15
-rw-r--r--src/network/kernel/qt_attribution.json2
-rw-r--r--src/network/kernel/qurltlds_p.h8845
-rw-r--r--src/network/qt_cmdline.cmake3
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp25
-rw-r--r--src/network/socket/qtcpserver.cpp29
-rw-r--r--src/network/socket/qtcpserver.h1
-rw-r--r--src/network/ssl/qocspresponse.cpp2
-rw-r--r--src/network/ssl/qpassworddigestor.h4
-rw-r--r--src/network/ssl/qssl.h4
-rw-r--r--src/network/ssl/qsslcertificate.cpp2
-rw-r--r--src/network/ssl/qsslellipticcurve.cpp2
-rw-r--r--src/network/ssl/qsslserver.cpp287
-rw-r--r--src/network/ssl/qsslserver.h58
-rw-r--r--src/network/ssl/qsslserver_p.h37
-rw-r--r--src/network/ssl/qsslsocket.cpp6
-rw-r--r--src/network/ssl/qtlsbackend.cpp2
-rw-r--r--src/opengl/CMakeLists.txt3
-rw-r--r--src/opengl/doc/snippets/CMakeLists.txt3
-rw-r--r--src/opengl/qopengl2pexvertexarray_p.h2
-rw-r--r--src/opengl/qopenglbuffer.cpp34
-rw-r--r--src/opengl/qopenglbuffer.h8
-rw-r--r--src/opengl/qopenglcompositor.cpp54
-rw-r--r--src/opengl/qopenglcompositor_p.h1
-rw-r--r--src/opengl/qopenglcompositorbackingstore.cpp2
-rw-r--r--src/opengl/qopenglcompositorbackingstore_p.h1
-rw-r--r--src/opengl/qopenglengineshadermanager_p.h2
-rw-r--r--src/opengl/qopenglframebufferobject_p.h4
-rw-r--r--src/opengl/qopenglpaintengine.cpp27
-rw-r--r--src/opengl/qopengltexture.cpp6
-rw-r--r--src/opengl/qopenglvertexarrayobject.cpp7
-rw-r--r--src/opengl/qopenglwindow.cpp2
-rw-r--r--src/openglwidgets/CMakeLists.txt3
-rw-r--r--src/openglwidgets/qopenglwidget.cpp9
-rw-r--r--src/platformsupport/CMakeLists.txt3
-rw-r--r--src/platformsupport/devicediscovery/CMakeLists.txt3
-rw-r--r--src/platformsupport/fbconvenience/CMakeLists.txt3
-rw-r--r--src/platformsupport/input/CMakeLists.txt3
-rw-r--r--src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp2
-rw-r--r--src/platformsupport/kmsconvenience/CMakeLists.txt3
-rw-r--r--src/platformsupport/kmsconvenience/qkmsdevice.cpp2
-rw-r--r--src/platformsupport/kmsconvenience/qkmsdevice_p.h2
-rw-r--r--src/plugins/CMakeLists.txt3
-rw-r--r--src/plugins/generic/CMakeLists.txt3
-rw-r--r--src/plugins/generic/evdevkeyboard/CMakeLists.txt3
-rw-r--r--src/plugins/generic/evdevmouse/CMakeLists.txt3
-rw-r--r--src/plugins/generic/evdevtablet/CMakeLists.txt3
-rw-r--r--src/plugins/generic/evdevtouch/CMakeLists.txt3
-rw-r--r--src/plugins/generic/libinput/CMakeLists.txt3
-rw-r--r--src/plugins/generic/tslib/CMakeLists.txt3
-rw-r--r--src/plugins/generic/tuiotouch/CMakeLists.txt3
-rw-r--r--src/plugins/generic/tuiotouch/qoscbundle.cpp2
-rw-r--r--src/plugins/imageformats/CMakeLists.txt3
-rw-r--r--src/plugins/imageformats/gif/CMakeLists.txt3
-rw-r--r--src/plugins/imageformats/ico/CMakeLists.txt3
-rw-r--r--src/plugins/imageformats/jpeg/CMakeLists.txt3
-rw-r--r--src/plugins/networkinformation/CMakeLists.txt3
-rw-r--r--src/plugins/networkinformation/android/CMakeLists.txt3
-rw-r--r--src/plugins/networkinformation/android/jar/src/org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation.java8
-rw-r--r--src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp65
-rw-r--r--src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h5
-rw-r--r--src/plugins/networkinformation/glib/CMakeLists.txt3
-rw-r--r--src/plugins/networkinformation/networklistmanager/CMakeLists.txt3
-rw-r--r--src/plugins/networkinformation/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp4
-rw-r--r--src/plugins/networkinformation/networkmanager/CMakeLists.txt3
-rw-r--r--src/plugins/networkinformation/scnetworkreachability/CMakeLists.txt3
-rw-r--r--src/plugins/platforminputcontexts/CMakeLists.txt3
-rw-r--r--src/plugins/platforminputcontexts/compose/CMakeLists.txt3
-rw-r--r--src/plugins/platforminputcontexts/ibus/CMakeLists.txt3
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibustypes.cpp2
-rw-r--r--src/plugins/platforms/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/android/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/android/androidjniaccessibility.cpp8
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp7
-rw-r--r--src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp67
-rw-r--r--src/plugins/platforms/android/qandroidinputcontext.cpp17
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.cpp12
-rw-r--r--src/plugins/platforms/android/qandroidplatformintegration.h4
-rw-r--r--src/plugins/platforms/cocoa/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibility.h6
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibility.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibilityelement.h6
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoabackingstore.h1
-rw-r--r--src/plugins/platforms/cocoa/qcocoabackingstore.mm7
-rw-r--r--src/plugins/platforms/cocoa/qcocoaclipboard.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoacursor.mm2
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.h4
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenuloader.mm2
-rw-r--r--src/plugins/platforms/cocoa/qcocoansmenu.h1
-rw-r--r--src/plugins/platforms/cocoa/qcocoansmenu.mm8
-rw-r--r--src/plugins/platforms/cocoa/qcocoascreen.mm26
-rw-r--r--src/plugins/platforms/cocoa/qcocoatheme.mm59
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm4
-rw-r--r--src/plugins/platforms/cocoa/qmultitouch_mac.mm2
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm2
-rw-r--r--src/plugins/platforms/cocoa/qnsview_complextext.mm11
-rw-r--r--src/plugins/platforms/cocoa/qnsview_keys.mm2
-rw-r--r--src/plugins/platforms/cocoa/qnsview_tablet.mm16
-rw-r--r--src/plugins/platforms/direct2d/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/directfb/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfscursor.cpp10
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsscreen.cpp18
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsscreen_p.h2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_emu/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp11
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.cpp2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration_p.h2
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_openwfd/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/ios/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/ios/optional/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/ios/optional/nsphotolibrarysupport/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm2
-rw-r--r--src/plugins/platforms/ios/qioscontext.mm4
-rw-r--r--src/plugins/platforms/ios/qiosdocumentpickercontroller.mm5
-rw-r--r--src/plugins/platforms/ios/qiosinputcontext.mm9
-rw-r--r--src/plugins/platforms/ios/qiosintegration.h2
-rw-r--r--src/plugins/platforms/ios/qiosintegration.mm6
-rw-r--r--src/plugins/platforms/ios/qiosplatformaccessibility.h2
-rw-r--r--src/plugins/platforms/ios/qiosplatformaccessibility.mm2
-rw-r--r--src/plugins/platforms/ios/qiosscreen.mm14
-rw-r--r--src/plugins/platforms/ios/qiostextinputoverlay.mm8
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm2
-rw-r--r--src/plugins/platforms/ios/qiostheme.mm41
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.mm4
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm8
-rw-r--r--src/plugins/platforms/ios/quiaccessibilityelement.h2
-rw-r--r--src/plugins/platforms/ios/quiaccessibilityelement.mm2
-rw-r--r--src/plugins/platforms/ios/quiview.mm103
-rw-r--r--src/plugins/platforms/linuxfb/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/minimal/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/minimalegl/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/offscreen/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/qnx/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp4
-rw-r--r--src/plugins/platforms/vkkhrdisplay/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/vnc/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/wasm/CMakeLists.txt6
-rw-r--r--src/plugins/platforms/wasm/qtloader.js39
-rw-r--r--src/plugins/platforms/wasm/qwasmaccessibility.cpp250
-rw-r--r--src/plugins/platforms/wasm/qwasmaccessibility.h44
-rw-r--r--src/plugins/platforms/wasm/qwasmclipboard.cpp111
-rw-r--r--src/plugins/platforms/wasm/qwasmclipboard.h4
-rw-r--r--src/plugins/platforms/wasm/qwasmcompositor.cpp750
-rw-r--r--src/plugins/platforms/wasm/qwasmcompositor.h156
-rw-r--r--src/plugins/platforms/wasm/qwasmcursor.cpp7
-rw-r--r--src/plugins/platforms/wasm/qwasmcursor.h5
-rw-r--r--src/plugins/platforms/wasm/qwasmdrag.cpp3
-rw-r--r--src/plugins/platforms/wasm/qwasmevent.cpp53
-rw-r--r--src/plugins/platforms/wasm/qwasmevent.h168
-rw-r--r--src/plugins/platforms/wasm/qwasmeventdispatcher.cpp4
-rw-r--r--src/plugins/platforms/wasm/qwasmeventtranslator.cpp306
-rw-r--r--src/plugins/platforms/wasm/qwasmeventtranslator.h32
-rw-r--r--src/plugins/platforms/wasm/qwasminputcontext.cpp19
-rw-r--r--src/plugins/platforms/wasm/qwasminputcontext.h4
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp35
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.h16
-rw-r--r--src/plugins/platforms/wasm/qwasmoffscreensurface.cpp4
-rw-r--r--src/plugins/platforms/wasm/qwasmplatform.cpp31
-rw-r--r--src/plugins/platforms/wasm/qwasmplatform.h29
-rw-r--r--src/plugins/platforms/wasm/qwasmscreen.cpp81
-rw-r--r--src/plugins/platforms/wasm/qwasmscreen.h5
-rw-r--r--src/plugins/platforms/wasm/qwasmstylepixmaps_p.h4
-rw-r--r--src/plugins/platforms/wasm/qwasmtheme.cpp2
-rw-r--r--src/plugins/platforms/wasm/qwasmwindow.cpp36
-rw-r--r--src/plugins/platforms/wasm/wasm_shell.html3
-rw-r--r--src/plugins/platforms/windows/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/windows/qtwindowsglobal.h8
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp45
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.h3
-rw-r--r--src/plugins/platforms/windows/qwindowscursor.cpp14
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp82
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp27
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.cpp47
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.h8
-rw-r--r--src/plugins/platforms/windows/qwindowssystemtrayicon.cpp3
-rw-r--r--src/plugins/platforms/windows/qwindowstheme.cpp231
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp161
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h1
-rw-r--r--src/plugins/platforms/windows/uiautomation/qwindowsuiaexpandcollapseprovider.cpp16
-rw-r--r--src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp12
-rw-r--r--src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.cpp21
-rw-r--r--src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.cpp33
-rw-r--r--src/plugins/platforms/xcb/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.h2
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp156
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp19
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.h3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/CMakeLists.txt3
-rw-r--r--src/plugins/platforms/xcb/nativepainting/qpixmap_x11.cpp12
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.cpp3
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.h1
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.cpp12
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection_xi2.cpp22
-rw-r--r--src/plugins/platforms/xcb/qxcbcursor.cpp12
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.cpp31
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.h4
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.cpp4
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.cpp30
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.h5
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp6
-rw-r--r--src/plugins/platformthemes/CMakeLists.txt3
-rw-r--r--src/plugins/platformthemes/gtk3/CMakeLists.txt12
-rw-r--r--src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp9
-rw-r--r--src/plugins/platformthemes/gtk3/qgtk3menu.cpp1
-rw-r--r--src/plugins/platformthemes/gtk3/qgtk3theme.cpp17
-rw-r--r--src/plugins/platformthemes/gtk3/qgtk3theme.h1
-rw-r--r--src/plugins/platformthemes/xdgdesktopportal/CMakeLists.txt3
-rw-r--r--src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp95
-rw-r--r--src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog_p.h10
-rw-r--r--src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp7
-rw-r--r--src/plugins/printsupport/CMakeLists.txt3
-rw-r--r--src/plugins/printsupport/cups/CMakeLists.txt3
-rw-r--r--src/plugins/printsupport/cups/qcupsprintersupport.cpp7
-rw-r--r--src/plugins/sqldrivers/.cmake.conf2
-rw-r--r--src/plugins/sqldrivers/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/configure.cmake3
-rw-r--r--src/plugins/sqldrivers/db2/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/ibase/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/mysql/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/mysql/qsql_mysql.cpp4
-rw-r--r--src/plugins/sqldrivers/oci/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/oci/qsql_oci.cpp2
-rw-r--r--src/plugins/sqldrivers/odbc/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/psql/CMakeLists.txt3
-rw-r--r--src/plugins/sqldrivers/psql/qsql_psql.cpp2
-rw-r--r--src/plugins/sqldrivers/qt_cmdline.cmake3
-rw-r--r--src/plugins/sqldrivers/sqlite/CMakeLists.txt8
-rw-r--r--src/plugins/styles/CMakeLists.txt3
-rw-r--r--src/plugins/styles/android/CMakeLists.txt3
-rw-r--r--src/plugins/styles/mac/CMakeLists.txt3
-rw-r--r--src/plugins/styles/mac/qmacstyle_mac.mm30
-rw-r--r--src/plugins/styles/windowsvista/CMakeLists.txt3
-rw-r--r--src/plugins/styles/windowsvista/qwindowsvistastyle.cpp9
-rw-r--r--src/plugins/tls/CMakeLists.txt3
-rw-r--r--src/plugins/tls/certonly/CMakeLists.txt3
-rw-r--r--src/plugins/tls/openssl/CMakeLists.txt18
-rw-r--r--src/plugins/tls/openssl/qsslcontext_openssl.cpp6
-rw-r--r--src/plugins/tls/openssl/qsslcontext_openssl_p.h3
-rw-r--r--src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp2
-rw-r--r--src/plugins/tls/openssl/qsslsocket_openssl_symbols_p.h8
-rw-r--r--src/plugins/tls/schannel/CMakeLists.txt3
-rw-r--r--src/plugins/tls/schannel/qtls_schannel.cpp242
-rw-r--r--src/plugins/tls/securetransport/CMakeLists.txt3
-rw-r--r--src/plugins/tls/securetransport/qtls_st.cpp94
-rw-r--r--src/printsupport/CMakeLists.txt5
-rw-r--r--src/printsupport/configure.cmake3
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog_unix.cpp2
-rw-r--r--src/printsupport/dialogs/qprintdialog_mac.mm8
-rw-r--r--src/printsupport/dialogs/qprintdialog_unix.cpp2
-rw-r--r--src/printsupport/doc/snippets/CMakeLists.txt3
-rw-r--r--src/printsupport/doc/snippets/widgetprinting.cpp16
-rw-r--r--src/printsupport/kernel/qplatformprintplugin.cpp8
-rw-r--r--src/printsupport/kernel/qprint.cpp159
-rw-r--r--src/printsupport/kernel/qprint_p.h149
-rw-r--r--src/printsupport/kernel/qprinter.cpp2
-rw-r--r--src/printsupport/platform/macos/qcocoaprintersupport.mm4
-rw-r--r--src/printsupport/platform/windows/qprintengine_win.cpp1
-rw-r--r--src/printsupport/platform/windows/qwindowsprintdevice.cpp24
-rw-r--r--src/printsupport/platform/windows/qwindowsprintersupport.cpp4
-rw-r--r--src/sql/CMakeLists.txt6
-rw-r--r--src/sql/compat/removed_api.cpp43
-rw-r--r--src/sql/configure.cmake3
-rw-r--r--src/sql/doc/snippets/CMakeLists.txt3
-rw-r--r--src/sql/doc/snippets/code/CMakeLists.txt3
-rw-r--r--src/sql/doc/snippets/sqldatabase/CMakeLists.txt3
-rw-r--r--src/sql/kernel/qsqlquery.cpp4
-rw-r--r--src/sql/kernel/qtsqlglobal.h4
-rw-r--r--src/sql/models/qsqlquerymodel.cpp10
-rw-r--r--src/sql/models/qsqlquerymodel.h3
-rw-r--r--src/sql/models/qsqltablemodel.cpp17
-rw-r--r--src/sql/models/qsqltablemodel.h2
-rw-r--r--src/testlib/CMakeLists.txt3
-rw-r--r--src/testlib/configure.cmake3
-rw-r--r--src/testlib/doc/includes/building-examples.qdocinc41
-rw-r--r--src/testlib/doc/qttestlib.qdocconf3
-rw-r--r--src/testlib/doc/snippets/CMakeLists.txt3
-rw-r--r--src/testlib/doc/snippets/code/CMakeLists.txt3
-rw-r--r--src/testlib/doc/snippets/code/doc_src_qtestlib.qdoc51
-rw-r--r--src/testlib/doc/src/qttest-index.qdoc45
-rw-r--r--src/testlib/doc/src/qttestlib-manual.qdoc116
-rw-r--r--src/testlib/qabstractitemmodeltester.cpp1
-rw-r--r--src/testlib/qbenchmark.cpp2
-rw-r--r--src/testlib/qbenchmarkmetric.cpp2
-rw-r--r--src/testlib/qsignalspy.h2
-rw-r--r--src/testlib/qtaptestlogger.cpp77
-rw-r--r--src/testlib/qtest.h6
-rw-r--r--src/testlib/qtest_gui.h26
-rw-r--r--src/testlib/qtestblacklist.cpp4
-rw-r--r--src/testlib/qtestcase.cpp538
-rw-r--r--src/testlib/qtestcase.h167
-rw-r--r--src/testlib/qtestcase.qdoc344
-rw-r--r--src/testlib/qtesteventloop.h3
-rw-r--r--src/testlib/qtestlog.cpp9
-rw-r--r--src/testlib/qtestresult.cpp196
-rw-r--r--src/testlib/qtestresult_p.h13
-rw-r--r--src/testlib/qtestutil_macos.mm2
-rw-r--r--src/testlib/qttestglobal.h9
-rw-r--r--src/testlib/selfcover.cmake3
-rw-r--r--src/tools/CMakeLists.txt3
-rw-r--r--src/tools/androiddeployqt/CMakeLists.txt5
-rw-r--r--src/tools/androiddeployqt/main.cpp40
-rw-r--r--src/tools/androidtestrunner/CMakeLists.txt7
-rw-r--r--src/tools/androidtestrunner/main.cpp15
-rw-r--r--src/tools/bootstrap/CMakeLists.txt6
-rw-r--r--src/tools/cmake_automoc_parser/CMakeLists.txt3
-rw-r--r--src/tools/configure.cmake3
-rw-r--r--src/tools/macdeployqt/CMakeLists.txt3
-rw-r--r--src/tools/macdeployqt/macdeployqt/CMakeLists.txt3
-rw-r--r--src/tools/macdeployqt/shared/shared.cpp8
-rw-r--r--src/tools/moc/CMakeLists.txt3
-rw-r--r--src/tools/moc/generator.cpp283
-rw-r--r--src/tools/moc/moc.cpp94
-rw-r--r--src/tools/qdbuscpp2xml/CMakeLists.txt5
-rw-r--r--src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp10
-rw-r--r--src/tools/qdbusxml2cpp/CMakeLists.txt5
-rw-r--r--src/tools/qdbusxml2cpp/qdbusxml2cpp.cpp92
-rw-r--r--src/tools/qlalr/CMakeLists.txt5
-rw-r--r--src/tools/qtpaths/CMakeLists.txt3
-rw-r--r--src/tools/qvkgen/CMakeLists.txt5
-rw-r--r--src/tools/qvkgen/qvkgen.cpp7
-rw-r--r--src/tools/rcc/CMakeLists.txt12
-rw-r--r--src/tools/rcc/rcc.cpp12
-rw-r--r--src/tools/tracegen/CMakeLists.txt3
-rw-r--r--src/tools/uic/CMakeLists.txt3
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp37
-rw-r--r--src/tools/windeployqt/CMakeLists.txt3
-rw-r--r--src/tools/windeployqt/elfreader.h2
-rw-r--r--src/tools/windeployqt/main.cpp2
-rw-r--r--src/widgets/CMakeLists.txt3
-rw-r--r--src/widgets/Qt6WidgetsMacros.cmake32
-rw-r--r--src/widgets/accessible/complexwidgets.cpp14
-rw-r--r--src/widgets/accessible/complexwidgets_p.h6
-rw-r--r--src/widgets/accessible/itemviews.cpp4
-rw-r--r--src/widgets/accessible/itemviews_p.h4
-rw-r--r--src/widgets/accessible/qaccessiblemenu.cpp4
-rw-r--r--src/widgets/accessible/qaccessiblemenu_p.h4
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp4
-rw-r--r--src/widgets/accessible/qaccessiblewidget.h4
-rw-r--r--src/widgets/accessible/qaccessiblewidgetfactory.cpp6
-rw-r--r--src/widgets/accessible/qaccessiblewidgets.cpp4
-rw-r--r--src/widgets/accessible/qaccessiblewidgets_p.h4
-rw-r--r--src/widgets/accessible/rangecontrols.cpp4
-rw-r--r--src/widgets/accessible/rangecontrols_p.h4
-rw-r--r--src/widgets/accessible/simplewidgets.cpp47
-rw-r--r--src/widgets/accessible/simplewidgets_p.h15
-rw-r--r--src/widgets/configure.cmake3
-rw-r--r--src/widgets/dialogs/qdialog.cpp6
-rw-r--r--src/widgets/dialogs/qfontdialog.cpp24
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp2
-rw-r--r--src/widgets/dialogs/qwizard.cpp6
-rw-r--r--src/widgets/dialogs/qwizard.h2
-rw-r--r--src/widgets/doc/qtwidgets.qdocconf2
-rw-r--r--src/widgets/doc/snippets/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/cmake-macros/examples.cmake3
-rw-r--r--src/widgets/doc/snippets/customstyle/customstyle.cpp2
-rw-r--r--src/widgets/doc/snippets/customviewstyle/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/filedialogurls/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/graphicssceneadditem/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/graphicsview/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/mdiarea/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/myscrollarea/CMakeLists.txt3
-rw-r--r--src/widgets/doc/snippets/simplemodel-use/main.cpp56
-rw-r--r--src/widgets/doc/src/model-view-programming.qdoc13
-rw-r--r--src/widgets/doc/src/widgets-and-layouts/styles.qdoc8
-rw-r--r--src/widgets/doc/src/widgets-tutorial.qdoc2
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp9
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.h4
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp17
-rw-r--r--src/widgets/graphicsview/qgraphicssceneindex.cpp2
-rw-r--r--src/widgets/graphicsview/qgraphicstransform.cpp4
-rw-r--r--src/widgets/graphicsview/qgraphicsview.cpp2
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate.cpp4
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp16
-rw-r--r--src/widgets/itemviews/qitemeditorfactory.cpp2
-rw-r--r--src/widgets/itemviews/qlistview.cpp28
-rw-r--r--src/widgets/itemviews/qlistwidget.cpp5
-rw-r--r--src/widgets/itemviews/qlistwidget.h2
-rw-r--r--src/widgets/itemviews/qstyleditemdelegate.cpp9
-rw-r--r--src/widgets/itemviews/qtableview.cpp33
-rw-r--r--src/widgets/itemviews/qtablewidget.cpp5
-rw-r--r--src/widgets/itemviews/qtablewidget.h2
-rw-r--r--src/widgets/itemviews/qtreeview.cpp6
-rw-r--r--src/widgets/itemviews/qtreewidget.cpp5
-rw-r--r--src/widgets/itemviews/qtreewidget.h8
-rw-r--r--src/widgets/kernel/qapplication.cpp12
-rw-r--r--src/widgets/kernel/qapplication_p.h6
-rw-r--r--src/widgets/kernel/qboxlayout.cpp31
-rw-r--r--src/widgets/kernel/qlayout.cpp21
-rw-r--r--src/widgets/kernel/qshortcut_widgets.cpp2
-rw-r--r--src/widgets/kernel/qtestsupport_widgets.cpp10
-rw-r--r--src/widgets/kernel/qtestsupport_widgets.h2
-rw-r--r--src/widgets/kernel/qtooltip.cpp2
-rw-r--r--src/widgets/kernel/qwhatsthis.cpp6
-rw-r--r--src/widgets/kernel/qwidget.cpp111
-rw-r--r--src/widgets/kernel/qwidget.h4
-rw-r--r--src/widgets/kernel/qwidget_p.h2
-rw-r--r--src/widgets/kernel/qwidgetrepaintmanager.cpp1
-rw-r--r--src/widgets/kernel/qwidgetsvariant.cpp1
-rw-r--r--src/widgets/kernel/qwidgetwindow.cpp32
-rw-r--r--src/widgets/kernel/qwidgetwindow_p.h2
-rw-r--r--src/widgets/kernel/qwindowcontainer.cpp35
-rw-r--r--src/widgets/kernel/qwindowcontainer_p.h1
-rw-r--r--src/widgets/qt_cmdline.cmake3
-rw-r--r--src/widgets/styles/qcommonstyle.cpp12
-rw-r--r--src/widgets/styles/qfusionstyle.cpp8
-rw-r--r--src/widgets/styles/qstyle.cpp4
-rw-r--r--src/widgets/styles/qstyle.h1
-rw-r--r--src/widgets/styles/qstylehelper.cpp12
-rw-r--r--src/widgets/styles/qstylehelper_p.h2
-rw-r--r--src/widgets/styles/qstylepainter.h4
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp13
-rw-r--r--src/widgets/styles/qwindowsstyle.cpp4
-rw-r--r--src/widgets/util/qsystemtrayicon.cpp1
-rw-r--r--src/widgets/widgets/qabstractbutton.cpp8
-rw-r--r--src/widgets/widgets/qabstractslider.cpp4
-rw-r--r--src/widgets/widgets/qabstractspinbox.cpp6
-rw-r--r--src/widgets/widgets/qcheckbox.cpp6
-rw-r--r--src/widgets/widgets/qcombobox.cpp18
-rw-r--r--src/widgets/widgets/qcommandlinkbutton.cpp6
-rw-r--r--src/widgets/widgets/qdatetimeedit.cpp10
-rw-r--r--src/widgets/widgets/qdial.cpp2
-rw-r--r--src/widgets/widgets/qdockwidget.cpp40
-rw-r--r--src/widgets/widgets/qdockwidget_p.h2
-rw-r--r--src/widgets/widgets/qframe.cpp6
-rw-r--r--src/widgets/widgets/qgroupbox.cpp6
-rw-r--r--src/widgets/widgets/qkeysequenceedit.cpp117
-rw-r--r--src/widgets/widgets/qkeysequenceedit.h8
-rw-r--r--src/widgets/widgets/qkeysequenceedit_p.h2
-rw-r--r--src/widgets/widgets/qlabel.cpp12
-rw-r--r--src/widgets/widgets/qlineedit.cpp6
-rw-r--r--src/widgets/widgets/qlineedit_p.cpp4
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp2
-rw-r--r--src/widgets/widgets/qmainwindowlayout_p.h2
-rw-r--r--src/widgets/widgets/qmenu.cpp41
-rw-r--r--src/widgets/widgets/qmenubar.cpp6
-rw-r--r--src/widgets/widgets/qplaintextedit.cpp4
-rw-r--r--src/widgets/widgets/qprogressbar.cpp4
-rw-r--r--src/widgets/widgets/qpushbutton.cpp4
-rw-r--r--src/widgets/widgets/qscrollbar.cpp2
-rw-r--r--src/widgets/widgets/qsizegrip.cpp6
-rw-r--r--src/widgets/widgets/qslider.cpp4
-rw-r--r--src/widgets/widgets/qsplitter.cpp12
-rw-r--r--src/widgets/widgets/qstatusbar.cpp4
-rw-r--r--src/widgets/widgets/qtabbar.cpp21
-rw-r--r--src/widgets/widgets/qtabbar.h4
-rw-r--r--src/widgets/widgets/qtabbar_p.h2
-rw-r--r--src/widgets/widgets/qtextbrowser.cpp9
-rw-r--r--src/widgets/widgets/qtextedit.cpp8
-rw-r--r--src/widgets/widgets/qtoolbararealayout.cpp4
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol.cpp16
-rw-r--r--src/widgets/widgets/qwidgettextcontrol.cpp33
-rw-r--r--src/xml/CMakeLists.txt3
-rw-r--r--src/xml/configure.cmake3
-rw-r--r--src/xml/doc/qtxml.qdocconf3
-rw-r--r--src/xml/doc/snippets/CMakeLists.txt3
-rw-r--r--src/xml/doc/src/qt6-changes.qdoc9
-rw-r--r--src/xml/dom/qdom.cpp450
-rw-r--r--src/xml/dom/qdom.h37
-rw-r--r--src/xml/dom/qdom_p.h4
-rw-r--r--src/xml/dom/qdomhelpers.cpp79
-rw-r--r--src/xml/dom/qdomhelpers_p.h22
1660 files changed, 100943 insertions, 44163 deletions
diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt
index a02150e0f1..a597b47b52 100644
--- a/src/3rdparty/CMakeLists.txt
+++ b/src/3rdparty/CMakeLists.txt
@@ -21,16 +21,6 @@ if(QT_FEATURE_gui AND QT_FEATURE_harfbuzz AND NOT QT_FEATURE_system_harfbuzz)
endif()
qt_install_3rdparty_library_wrap_config_extra_file(BundledHarfbuzz)
-if(QT_FEATURE_regularexpression AND NOT QT_FEATURE_system_pcre2)
- add_subdirectory(pcre2)
-endif()
-qt_install_3rdparty_library_wrap_config_extra_file(BundledPcre2)
-
-if(NOT QT_FEATURE_system_zlib)
- add_subdirectory(zlib)
-endif()
-qt_install_3rdparty_library_wrap_config_extra_file(BundledZLIB)
-
if (ANDROID)
add_subdirectory(gradle)
endif()
diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c
index f9e440494a..9960e45d4e 100644
--- a/src/3rdparty/forkfd/forkfd.c
+++ b/src/3rdparty/forkfd/forkfd.c
@@ -99,6 +99,7 @@
static int system_has_forkfd(void);
static int system_forkfd(int flags, pid_t *ppid, int *system);
+static int system_vforkfd(int flags, pid_t *ppid, int (*)(void *), void *, int *system);
static int system_forkfd_wait(int ffd, struct forkfd_info *info, int ffdwoptions, struct rusage *rusage);
static int disable_fork_fallback(void)
@@ -595,46 +596,7 @@ static int create_pipe(int filedes[], int flags)
}
#ifndef FORKFD_NO_FORKFD
-/**
- * @brief forkfd returns a file descriptor representing a child process
- * @return a file descriptor, or -1 in case of failure
- *
- * forkfd() creates a file descriptor that can be used to be notified of when a
- * child process exits. This file descriptor can be monitored using select(2),
- * poll(2) or similar mechanisms.
- *
- * The @a flags parameter can contain the following values ORed to change the
- * behaviour of forkfd():
- *
- * @li @c FFD_NONBLOCK Set the O_NONBLOCK file status flag on the new open file
- * descriptor. Using this flag saves extra calls to fnctl(2) to achieve the same
- * result.
- *
- * @li @c FFD_CLOEXEC Set the close-on-exec (FD_CLOEXEC) flag on the new file
- * descriptor. You probably want to set this flag, since forkfd() does not work
- * if the original parent process dies.
- *
- * @li @c FFD_USE_FORK Tell forkfd() to actually call fork() instead of a
- * different system implementation that may be available. On systems where a
- * different implementation is available, its behavior may differ from that of
- * fork(), such as not calling the functions registered with pthread_atfork().
- * If that's necessary, pass this flag.
- *
- * The file descriptor returned by forkfd() supports the following operations:
- *
- * @li read(2) When the child process exits, then the buffer supplied to
- * read(2) is used to return information about the status of the child in the
- * form of one @c siginfo_t structure. The buffer must be at least
- * sizeof(siginfo_t) bytes. The return value of read(2) is the total number of
- * bytes read.
- *
- * @li poll(2), select(2) (and similar) The file descriptor is readable (the
- * select(2) readfds argument; the poll(2) POLLIN flag) if the child has exited
- * or signalled via SIGCHLD.
- *
- * @li close(2) When the file descriptor is no longer required it should be closed.
- */
-int forkfd(int flags, pid_t *ppid)
+static int forkfd_fork_fallback(int flags, pid_t *ppid)
{
Header *header;
ProcessInfo *info;
@@ -647,15 +609,6 @@ int forkfd(int flags, pid_t *ppid)
int efd;
#endif
- if (disable_fork_fallback())
- flags &= ~FFD_USE_FORK;
-
- if ((flags & FFD_USE_FORK) == 0) {
- fd = system_forkfd(flags, ppid, &ret);
- if (ret || disable_fork_fallback())
- return fd;
- }
-
(void) pthread_once(&forkfd_initialization, forkfd_initialize);
info = allocateInfo(&header);
@@ -764,6 +717,112 @@ err_free:
freeInfo(header, info);
return -1;
}
+
+/**
+ * @brief forkfd returns a file descriptor representing a child process
+ * @return a file descriptor, or -1 in case of failure
+ *
+ * forkfd() creates a file descriptor that can be used to be notified of when a
+ * child process exits. This file descriptor can be monitored using select(2),
+ * poll(2) or similar mechanisms.
+ *
+ * The @a flags parameter can contain the following values ORed to change the
+ * behaviour of forkfd():
+ *
+ * @li @c FFD_NONBLOCK Set the O_NONBLOCK file status flag on the new open file
+ * descriptor. Using this flag saves extra calls to fnctl(2) to achieve the same
+ * result.
+ *
+ * @li @c FFD_CLOEXEC Set the close-on-exec (FD_CLOEXEC) flag on the new file
+ * descriptor. You probably want to set this flag, since forkfd() does not work
+ * if the original parent process dies.
+ *
+ * @li @c FFD_USE_FORK Tell forkfd() to actually call fork() instead of a
+ * different system implementation that may be available. On systems where a
+ * different implementation is available, its behavior may differ from that of
+ * fork(), such as not calling the functions registered with pthread_atfork().
+ * If that's necessary, pass this flag.
+ *
+ * The file descriptor returned by forkfd() supports the following operations:
+ *
+ * @li read(2) When the child process exits, then the buffer supplied to
+ * read(2) is used to return information about the status of the child in the
+ * form of one @c siginfo_t structure. The buffer must be at least
+ * sizeof(siginfo_t) bytes. The return value of read(2) is the total number of
+ * bytes read.
+ *
+ * @li poll(2), select(2) (and similar) The file descriptor is readable (the
+ * select(2) readfds argument; the poll(2) POLLIN flag) if the child has exited
+ * or signalled via SIGCHLD.
+ *
+ * @li close(2) When the file descriptor is no longer required it should be closed.
+ */
+int forkfd(int flags, pid_t *ppid)
+{
+ int fd;
+ if (disable_fork_fallback())
+ flags &= ~FFD_USE_FORK;
+
+ if ((flags & FFD_USE_FORK) == 0) {
+ int system_forkfd_works;
+ fd = system_forkfd(flags, ppid, &system_forkfd_works);
+ if (system_forkfd_works || disable_fork_fallback())
+ return fd;
+ }
+
+ return forkfd_fork_fallback(flags, ppid);
+}
+
+/**
+ * @brief vforkfd returns a file descriptor representing a child process
+ * @return a file descriptor, or -1 in case of failure
+ *
+ * vforkfd() operates in the same way as forkfd() and the @a flags and @a ppid
+ * arguments are the same. See the forkfd() documentation for details on the
+ * possible values and information on the returned file descriptor.
+ *
+ * This function does not return @c FFD_CHILD_PROCESS. Instead, the function @a
+ * childFn is called in the child process with the @a token parameter as
+ * argument. If that function returns, its return value will be passed to
+ * _exit(2).
+ *
+ * This function differs from forkfd() the same way that vfork() differs from
+ * fork(): the parent process may be suspended while the child is has not yet
+ * called _exit(2) or execve(2). Additionally, on some systems, the child
+ * process may share memory with the parent process the same way an auxiliary
+ * thread would, so extreme care should be employed on what functions the child
+ * process uses before termination.
+ *
+ * The @c FFD_USE_FORK flag retains its behavior as described in the forkfd()
+ * documentation, including that of actually using fork(2) and no other
+ * implementation.
+ *
+ * Currently, only on Linux will this function have any behavior different from
+ * forkfd(). In all other systems, it is equivalent to the following code:
+ *
+ * @code
+ * int ffd = forkfd(flags, &pid);
+ * if (ffd == FFD_CHILD_PROCESS)
+ * _exit(childFn(token));
+ * @endcode
+ */
+int vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token)
+{
+ int fd;
+ if ((flags & FFD_USE_FORK) == 0) {
+ int system_forkfd_works;
+ fd = system_vforkfd(flags, ppid, childFn, token, &system_forkfd_works);
+ if (system_forkfd_works || disable_fork_fallback())
+ return fd;
+ }
+
+ fd = forkfd_fork_fallback(flags, ppid);
+ if (fd == FFD_CHILD_PROCESS) {
+ /* child process */
+ _exit(childFn(token));
+ }
+ return fd;
+}
#endif // FORKFD_NO_FORKFD
#if _POSIX_SPAWN > 0 && !defined(FORKFD_NO_SPAWNFD)
@@ -889,3 +948,16 @@ int system_forkfd_wait(int ffd, struct forkfd_info *info, int options, struct ru
return -1;
}
#endif
+#ifndef SYSTEM_FORKFD_CAN_VFORK
+int system_vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token, int *system)
+{
+ /* we don't have a way to vfork(), so fake it */
+ int ret = system_forkfd(flags, ppid, system);
+ if (ret == FFD_CHILD_PROCESS) {
+ /* child process */
+ _exit(childFn(token));
+ }
+ return ret;
+}
+#endif
+#undef SYSTEM_FORKFD_CAN_VFORK
diff --git a/src/3rdparty/forkfd/forkfd.h b/src/3rdparty/forkfd/forkfd.h
index 6bc1f0c1b9..16cde67c8a 100644
--- a/src/3rdparty/forkfd/forkfd.h
+++ b/src/3rdparty/forkfd/forkfd.h
@@ -53,6 +53,7 @@ struct forkfd_info {
};
int forkfd(int flags, pid_t *ppid);
+int vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token);
int forkfd_wait4(int ffd, struct forkfd_info *info, int options, struct rusage *rusage);
static inline int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage)
{
diff --git a/src/3rdparty/forkfd/forkfd_freebsd.c b/src/3rdparty/forkfd/forkfd_freebsd.c
index c4ca796ccd..ba18d83591 100644
--- a/src/3rdparty/forkfd/forkfd_freebsd.c
+++ b/src/3rdparty/forkfd/forkfd_freebsd.c
@@ -29,6 +29,8 @@
#include "forkfd_atomic.h"
+#undef SYSTEM_FORKFD_CAN_VFORK
+
// in forkfd.c
static int convertForkfdWaitFlagsToWaitFlags(int ffdoptions);
static void convertStatusToForkfdInfo(int status, struct forkfd_info *info);
diff --git a/src/3rdparty/forkfd/forkfd_linux.c b/src/3rdparty/forkfd/forkfd_linux.c
index 4b3be7036b..23a2f35238 100644
--- a/src/3rdparty/forkfd/forkfd_linux.c
+++ b/src/3rdparty/forkfd/forkfd_linux.c
@@ -51,6 +51,8 @@
# define P_PIDFD 3
#endif
+#define SYSTEM_FORKFD_CAN_VFORK
+
// in forkfd.c
static int convertForkfdWaitFlagsToWaitFlags(int ffdoptions);
static void convertStatusToForkfdInfo(int status, struct forkfd_info *info);
@@ -131,16 +133,55 @@ int system_has_forkfd()
return ffd_atomic_load(&system_forkfd_state, FFD_ATOMIC_RELAXED) > 0;
}
-int system_forkfd(int flags, pid_t *ppid, int *system)
+static int system_forkfd_availability(void)
{
- pid_t pid;
- int pidfd;
-
int state = ffd_atomic_load(&system_forkfd_state, FFD_ATOMIC_RELAXED);
if (state == 0) {
state = detect_clone_pidfd_support();
ffd_atomic_store(&system_forkfd_state, state, FFD_ATOMIC_RELAXED);
}
+ return state;
+}
+
+static int system_forkfd_pidfd_set_flags(int pidfd, int flags)
+{
+ if ((flags & FFD_CLOEXEC) == 0) {
+ /* pidfd defaults to O_CLOEXEC */
+ fcntl(pidfd, F_SETFD, 0);
+ }
+ if (flags & FFD_NONBLOCK)
+ fcntl(pidfd, F_SETFL, fcntl(pidfd, F_GETFL) | O_NONBLOCK);
+ return pidfd;
+}
+
+int system_vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token, int *system)
+{
+ __attribute__((aligned(64))) char childStack[4096];
+ pid_t pid;
+ int pidfd;
+ unsigned long cloneflags = CLONE_PIDFD | CLONE_VFORK | CLONE_VM | SIGCHLD;
+
+ int state = system_forkfd_availability();
+ if (state < 0) {
+ *system = 0;
+ return state;
+ }
+ *system = 1;
+
+ pid = clone(childFn, childStack + sizeof(childStack), cloneflags, token, &pidfd, NULL, NULL);
+ if (pid < 0)
+ return pid;
+ if (ppid)
+ *ppid = pid;
+ return system_forkfd_pidfd_set_flags(pidfd, flags);
+}
+
+int system_forkfd(int flags, pid_t *ppid, int *system)
+{
+ pid_t pid;
+ int pidfd;
+
+ int state = system_forkfd_availability();
if (state < 0) {
*system = 0;
return state;
@@ -160,13 +201,7 @@ int system_forkfd(int flags, pid_t *ppid, int *system)
}
/* parent process */
- if ((flags & FFD_CLOEXEC) == 0) {
- /* pidfd defaults to O_CLOEXEC */
- fcntl(pidfd, F_SETFD, 0);
- }
- if (flags & FFD_NONBLOCK)
- fcntl(pidfd, F_SETFL, fcntl(pidfd, F_GETFL) | O_NONBLOCK);
- return pidfd;
+ return system_forkfd_pidfd_set_flags(pidfd, flags);
}
int system_forkfd_wait(int ffd, struct forkfd_info *info, int ffdoptions, struct rusage *rusage)
diff --git a/src/3rdparty/freetype/CMakeLists.txt b/src/3rdparty/freetype/CMakeLists.txt
index 73a4d0afec..720a98bee1 100644
--- a/src/3rdparty/freetype/CMakeLists.txt
+++ b/src/3rdparty/freetype/CMakeLists.txt
@@ -1,4 +1,58 @@
-# Generated from freetype.pro.
+# From freetype CMakeLists.txt
+
+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/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/sdf/sdf.c
+ src/sfnt/sfnt.c
+ src/smooth/smooth.c
+ src/svg/svg.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 ()
+
#####################################################################
## BundledFreetype Generic Library:
@@ -7,38 +61,10 @@
qt_internal_add_3rdparty_library(BundledFreetype
QMAKE_LIB_NAME freetype
STATIC
+ SKIP_AUTOMOC
INSTALL
SOURCES
- src/autofit/autofit.c
- src/base/ftbase.c
- src/base/ftbbox.c
- src/base/ftbitmap.c
- src/base/ftdebug.c
- src/base/ftglyph.c
- src/base/ftinit.c
- src/base/ftmm.c
- src/base/ftsynth.c
- src/base/fttype1.c
- src/bdf/bdf.c
- src/cache/ftcache.c
- src/cff/cff.c
- src/cid/type1cid.c
- src/gzip/ftgzip.c
- src/lzw/ftlzw.c
- src/otvalid/otvalid.c
- src/otvalid/otvbase.c
- src/pcf/pcf.c
- src/pfr/pfr.c
- src/psaux/psaux.c
- src/pshinter/pshinter.c
- src/psnames/psmodule.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
+ ${BASE_SRCS}
DEFINES
FT2_BUILD_LIBRARY
FT_CONFIG_OPTION_SYSTEM_ZLIB
diff --git a/src/3rdparty/freetype/LICENSE.txt b/src/3rdparty/freetype/LICENSE.txt
index 1119880c09..824f5c6129 100644
--- a/src/3rdparty/freetype/LICENSE.txt
+++ b/src/3rdparty/freetype/LICENSE.txt
@@ -1,96 +1,101 @@
-The FreeType 2 font engine is copyrighted work and cannot be used
-legally without a software license. In order to make this project
-usable to a vast majority of developers, we distribute it under two
+FREETYPE LICENSES
+-----------------
+
+The FreeType 2 font engine is copyrighted work and cannot be used
+legally without a software license. In order to make this project
+usable to a vast majority of developers, we distribute it under two
mutually exclusive open-source licenses.
-This means that *you* must choose *one* of the two licenses described
-below, then obey all its terms and conditions when using FreeType 2 in
+This means that *you* must choose *one* of the two licenses described
+below, then obey all its terms and conditions when using FreeType 2 in
any of your projects or products.
- - The FreeType License, found in the file `FTL.TXT', which is similar
- to the original BSD license *with* an advertising clause that forces
- you to explicitly cite the FreeType project in your product's
- documentation. All details are in the license file. This license
- is suited to products which don't use the GNU General Public
- License.
+ - The FreeType License, found in the file `docs/FTL.TXT`, which is
+ similar to the original BSD license *with* an advertising clause
+ that forces you to explicitly cite the FreeType project in your
+ product's documentation. All details are in the license file.
+ This license is suited to products which don't use the GNU General
+ Public License.
- Note that this license is compatible to the GNU General Public
+ Note that this license is compatible to the GNU General Public
License version 3, but not version 2.
- - The GNU General Public License version 2, found in `GPLv2.TXT' (any
- later version can be used also), for programs which already use the
- GPL. Note that the FTL is incompatible with GPLv2 due to its
- advertisement clause.
+ - The GNU General Public License version 2, found in
+ `docs/GPLv2.TXT` (any later version can be used also), for
+ programs which already use the GPL. Note that the FTL is
+ incompatible with GPLv2 due to its advertisement clause.
-The contributed BDF and PCF drivers come with a license similar to that
-of the X Window System. It is compatible to the above two licenses (see
-file src/bdf/README and src/pcf/README).
+The contributed BDF and PCF drivers come with a license similar to
+that of the X Window System. It is compatible to the above two
+licenses (see files `src/bdf/README` and `src/pcf/README`). The same
+holds for the source code files `src/base/fthash.c` and
+`include/freetype/internal/fthash.h`; they wer part of the BDF driver
+in earlier FreeType versions.
-The gzip module uses the zlib license (see src/gzip/zlib.h) which too is
-compatible to the above two licenses.
+The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
+too is compatible to the above two licenses.
-The MD5 checksum support (only used for debugging in development builds)
-is in the public domain.
+The MD5 checksum support (only used for debugging in development
+builds) is in the public domain.
+-- FTL.TXT --
---- FDL.TXT ---
+The FreeType Project LICENSE
+----------------------------
- The FreeType Project LICENSE
- ----------------------------
+ 2006-Jan-27
- 2006-Jan-27
-
- Copyright 1996-2002, 2006 by
- David Turner, Robert Wilhelm, and Werner Lemberg
+Copyright 1996-2002, 2006 by
+David Turner, Robert Wilhelm, and Werner Lemberg
Introduction
============
- The FreeType Project is distributed in several archive packages;
- some of them may contain, in addition to the FreeType font engine,
- various tools and contributions which rely on, or relate to, the
- FreeType Project.
+The FreeType Project is distributed in several archive packages;
+some of them may contain, in addition to the FreeType font engine,
+various tools and contributions which rely on, or relate to, the
+FreeType Project.
- This license applies to all files found in such packages, and
- which do not fall under their own explicit license. The license
- affects thus the FreeType font engine, the test programs,
- documentation and makefiles, at the very least.
+This license applies to all files found in such packages, and
+which do not fall under their own explicit license. The license
+affects thus the FreeType font engine, the test programs,
+documentation and makefiles, at the very least.
- This license was inspired by the BSD, Artistic, and IJG
- (Independent JPEG Group) licenses, which all encourage inclusion
- and use of free software in commercial and freeware products
- alike. As a consequence, its main points are that:
+This license was inspired by the BSD, Artistic, and IJG
+(Independent JPEG Group) licenses, which all encourage inclusion
+and use of free software in commercial and freeware products
+alike. As a consequence, its main points are that:
- o We don't promise that this software works. However, we will be
- interested in any kind of bug reports. (`as is' distribution)
+o We don't promise that this software works. However, we will be
+interested in any kind of bug reports. (`as is' distribution)
- o You can use this software for whatever you want, in parts or
- full form, without having to pay us. (`royalty-free' usage)
+o You can use this software for whatever you want, in parts or
+full form, without having to pay us. (`royalty-free' usage)
- o You may not pretend that you wrote this software. If you use
- it, or only parts of it, in a program, you must acknowledge
- somewhere in your documentation that you have used the
- FreeType code. (`credits')
+o You may not pretend that you wrote this software. If you use
+it, or only parts of it, in a program, you must acknowledge
+somewhere in your documentation that you have used the
+FreeType code. (`credits')
- We specifically permit and encourage the inclusion of this
- software, with or without modifications, in commercial products.
- We disclaim all warranties covering The FreeType Project and
- assume no liability related to The FreeType Project.
+We specifically permit and encourage the inclusion of this
+software, with or without modifications, in commercial products.
+We disclaim all warranties covering The FreeType Project and
+assume no liability related to The FreeType Project.
- Finally, many people asked us for a preferred form for a
- credit/disclaimer to use in compliance with this license. We thus
- encourage you to use the following text:
+Finally, many people asked us for a preferred form for a
+credit/disclaimer to use in compliance with this license. We thus
+encourage you to use the following text:
- """
- Portions of this software are copyright © <year> The FreeType
- Project (www.freetype.org). All rights reserved.
- """
+"""
+Portions of this software are copyright © <year> The FreeType
+Project (www.freetype.org). All rights reserved.
+"""
- Please replace <year> with the value from the FreeType version you
- actually use.
+Please replace <year> with the value from the FreeType version you
+actually use.
Legal Terms
@@ -99,110 +104,111 @@ Legal Terms
0. Definitions
--------------
- Throughout this license, the terms `package', `FreeType Project',
- and `FreeType archive' refer to the set of files originally
- distributed by the authors (David Turner, Robert Wilhelm, and
- Werner Lemberg) as the `FreeType Project', be they named as alpha,
- beta or final release.
-
- `You' refers to the licensee, or person using the project, where
- `using' is a generic term including compiling the project's source
- code as well as linking it to form a `program' or `executable'.
- This program is referred to as `a program using the FreeType
- engine'.
-
- This license applies to all files distributed in the original
- FreeType Project, including all source code, binaries and
- documentation, unless otherwise stated in the file in its
- original, unmodified form as distributed in the original archive.
- If you are unsure whether or not a particular file is covered by
- this license, you must contact us to verify this.
-
- The FreeType Project is copyright (C) 1996-2000 by David Turner,
- Robert Wilhelm, and Werner Lemberg. All rights reserved except as
- specified below.
+Throughout this license, the terms `package', `FreeType Project',
+and `FreeType archive' refer to the set of files originally
+distributed by the authors (David Turner, Robert Wilhelm, and
+Werner Lemberg) as the `FreeType Project', be they named as alpha,
+beta or final release.
+
+`You' refers to the licensee, or person using the project, where
+`using' is a generic term including compiling the project's source
+code as well as linking it to form a `program' or `executable'.
+This program is referred to as `a program using the FreeType
+engine'.
+
+This license applies to all files distributed in the original
+FreeType Project, including all source code, binaries and
+documentation, unless otherwise stated in the file in its
+original, unmodified form as distributed in the original archive.
+If you are unsure whether or not a particular file is covered by
+this license, you must contact us to verify this.
+
+The FreeType Project is copyright (C) 1996-2000 by David Turner,
+Robert Wilhelm, and Werner Lemberg. All rights reserved except as
+specified below.
1. No Warranty
--------------
- THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
- USE, OF THE FREETYPE PROJECT.
+THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
+USE, OF THE FREETYPE PROJECT.
2. Redistribution
-----------------
- This license grants a worldwide, royalty-free, perpetual and
- irrevocable right and license to use, execute, perform, compile,
- display, copy, create derivative works of, distribute and
- sublicense the FreeType Project (in both source and object code
- forms) and derivative works thereof for any purpose; and to
- authorize others to exercise some or all of the rights granted
- herein, subject to the following conditions:
-
- o Redistribution of source code must retain this license file
- (`FTL.TXT') unaltered; any additions, deletions or changes to
- the original files must be clearly indicated in accompanying
- documentation. The copyright notices of the unaltered,
- original files must be preserved in all copies of source
- files.
-
- o Redistribution in binary form must provide a disclaimer that
- states that the software is based in part of the work of the
- FreeType Team, in the distribution documentation. We also
- encourage you to put an URL to the FreeType web page in your
- documentation, though this isn't mandatory.
-
- These conditions apply to any software derived from or based on
- the FreeType Project, not just the unmodified files. If you use
- our work, you must acknowledge us. However, no fee need be paid
- to us.
+This license grants a worldwide, royalty-free, perpetual and
+irrevocable right and license to use, execute, perform, compile,
+display, copy, create derivative works of, distribute and
+sublicense the FreeType Project (in both source and object code
+forms) and derivative works thereof for any purpose; and to
+authorize others to exercise some or all of the rights granted
+herein, subject to the following conditions:
+
+o Redistribution of source code must retain this license file
+(`FTL.TXT') unaltered; any additions, deletions or changes to
+the original files must be clearly indicated in accompanying
+documentation. The copyright notices of the unaltered,
+original files must be preserved in all copies of source
+files.
+
+o Redistribution in binary form must provide a disclaimer that
+states that the software is based in part of the work of the
+FreeType Team, in the distribution documentation. We also
+encourage you to put an URL to the FreeType web page in your
+documentation, though this isn't mandatory.
+
+These conditions apply to any software derived from or based on
+the FreeType Project, not just the unmodified files. If you use
+our work, you must acknowledge us. However, no fee need be paid
+to us.
3. Advertising
--------------
- Neither the FreeType authors and contributors nor you shall use
- the name of the other for commercial, advertising, or promotional
- purposes without specific prior written permission.
+Neither the FreeType authors and contributors nor you shall use
+the name of the other for commercial, advertising, or promotional
+purposes without specific prior written permission.
- We suggest, but do not require, that you use one or more of the
- following phrases to refer to this software in your documentation
- or advertising materials: `FreeType Project', `FreeType Engine',
- `FreeType library', or `FreeType Distribution'.
+We suggest, but do not require, that you use one or more of the
+following phrases to refer to this software in your documentation
+or advertising materials: `FreeType Project', `FreeType Engine',
+`FreeType library', or `FreeType Distribution'.
- As you have not signed this license, you are not required to
- accept it. However, as the FreeType Project is copyrighted
- material, only this license, or another one contracted with the
- authors, grants you the right to use, distribute, and modify it.
- Therefore, by using, distributing, or modifying the FreeType
- Project, you indicate that you understand and accept all the terms
- of this license.
+As you have not signed this license, you are not required to
+accept it. However, as the FreeType Project is copyrighted
+material, only this license, or another one contracted with the
+authors, grants you the right to use, distribute, and modify it.
+Therefore, by using, distributing, or modifying the FreeType
+Project, you indicate that you understand and accept all the terms
+of this license.
4. Contacts
-----------
- There are two mailing lists related to FreeType:
+There are two mailing lists related to FreeType:
+
+o freetype@nongnu.org
- o freetype@nongnu.org
+Discusses general use and applications of FreeType, as well as
+future and wanted additions to the library and distribution.
+If you are looking for support, start in this list if you
+haven't found anything to help you in the documentation.
- Discusses general use and applications of FreeType, as well as
- future and wanted additions to the library and distribution.
- If you are looking for support, start in this list if you
- haven't found anything to help you in the documentation.
+o freetype-devel@nongnu.org
- o freetype-devel@nongnu.org
+Discusses bugs, as well as engine internals, design issues,
+specific licenses, porting, etc.
- Discusses bugs, as well as engine internals, design issues,
- specific licenses, porting, etc.
+Our home page can be found at
- Our home page can be found at
+https://www.freetype.org
- http://www.freetype.org
---- end of FDL.TXT ---
+--- end of FTL.TXT ---
--- GPLv2.TXT ---
diff --git a/src/3rdparty/freetype/PCF-LICENSE.txt b/src/3rdparty/freetype/PCF-LICENSE.txt
index 3f3a3b3f0c..2668007a5c 100644
--- a/src/3rdparty/freetype/PCF-LICENSE.txt
+++ b/src/3rdparty/freetype/PCF-LICENSE.txt
@@ -18,3 +18,27 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--
+
+Copyright 1990, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
diff --git a/src/3rdparty/freetype/README b/src/3rdparty/freetype/README
index e4c8cf1c57..7a8a2dcedc 100644
--- a/src/3rdparty/freetype/README
+++ b/src/3rdparty/freetype/README
@@ -1,92 +1,98 @@
- FreeType 2.10.4
- ===============
+FreeType 2.12.1
+===============
- Homepage: https://www.freetype.org
+Homepage: https://www.freetype.org
- FreeType is a freely available software library to render fonts.
+FreeType is a freely available software library to render fonts.
- It is written in C, designed to be small, efficient, highly
- customizable, and portable while capable of producing high-quality
- output (glyph images) of most vector and bitmap font formats.
+It is written in C, designed to be small, efficient, highly
+customizable, and portable while capable of producing high-quality
+output (glyph images) of most vector and bitmap font formats.
- Please read the docs/CHANGES file, it contains IMPORTANT
- INFORMATION.
+Please read the `docs/CHANGES` file, it contains IMPORTANT
+INFORMATION.
- Read the files `docs/INSTALL*' for installation instructions; see
- the file `docs/LICENSE.TXT' for the available licenses.
+Read the files `docs/INSTALL*` for installation instructions; see the
+file `docs/LICENSE.TXT` for the available licenses.
- The FreeType 2 API reference is located in `docs/reference/site';
- use the file `index.html' as the top entry point. [Please note that
- currently the search function for locally installed documentation
- doesn't work due to cross-site scripting issues.]
+For using FreeType's git repository instead of a distribution bundle,
+please read file `README.git`.
- Additional documentation is available as a separate package from our
- sites. Go to
+The FreeType 2 API reference is located in directory `docs/reference`;
+use the file `index.html` as the top entry point. [Please note that
+currently the search function for locally installed documentation
+doesn't work due to cross-site scripting issues.]
- https://download.savannah.gnu.org/releases/freetype/
+Additional documentation is available as a separate package from our
+sites. Go to
- and download one of the following files.
+ https://download.savannah.gnu.org/releases/freetype/
- freetype-doc-2.10.4.tar.xz
- freetype-doc-2.10.4.tar.gz
- ftdoc2104.zip
+and download one of the following files.
- To view the documentation online, go to
+ freetype-doc-2.12.1.tar.xz
+ freetype-doc-2.12.1.tar.gz
+ ftdoc2121.zip
- https://www.freetype.org/freetype2/docs/
+To view the documentation online, go to
+ https://www.freetype.org/freetype2/docs/
- Mailing Lists
- =============
- The preferred way of communication with the FreeType team is using
- e-mail lists.
+Mailing Lists
+-------------
- general use and discussion: freetype@nongnu.org
- engine internals, porting, etc.: freetype-devel@nongnu.org
- announcements: freetype-announce@nongnu.org
- git repository tracker: freetype-commit@nongnu.org
+The preferred way of communication with the FreeType team is using
+e-mail lists.
- The lists are moderated; see
+ general use and discussion: freetype@nongnu.org
+ engine internals, porting, etc.: freetype-devel@nongnu.org
+ announcements: freetype-announce@nongnu.org
+ git repository tracker: freetype-commit@nongnu.org
- https://www.freetype.org/contact.html
+The lists are moderated; see
- how to subscribe.
+ https://www.freetype.org/contact.html
+how to subscribe.
- Bugs
- ====
- Please submit bug reports at
+Bugs
+----
- https://savannah.nongnu.org/bugs/?group=freetype
+Please submit bug reports at
- Alternatively, you might report bugs by e-mail to
- `freetype-devel@nongnu.org'. Don't forget to send a detailed
- explanation of the problem -- there is nothing worse than receiving
- a terse message that only says `it doesn't work'.
+ https://gitlab.freedesktop.org/freetype/freetype/-/issues
+Alternatively, you might report bugs by e-mail to
+`freetype-devel@nongnu.org`. Don't forget to send a detailed
+explanation of the problem -- there is nothing worse than receiving a
+terse message that only says 'it doesn't work'.
- Patches
- =======
- Please submit patches to the `freetype-devel@nongnu.org' mailing
- list -- and thank you in advance for your work on improving
- FreeType!
+Patches
+-------
- Details on the process can be found here:
+For larger changes please provide merge requests at
- https://www.freetype.org/developer.html#patches
+ https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests
+Alternatively, you can send patches to the `freetype-devel@nongnu.org`
+mailing list -- and thank you in advance for your work on improving
+FreeType!
- Enjoy!
+Details on the process can be found here:
+ https://www.freetype.org/developer.html#patches
- The FreeType Team
+
+Enjoy!
+
+ The FreeType Team
----------------------------------------------------------------------
-Copyright (C) 2006-2020 by
+Copyright (C) 2006-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/builds/unix/ftconfig.h b/src/3rdparty/freetype/builds/unix/ftconfig.h
index 51cb796391..57911e2f71 100644
--- a/src/3rdparty/freetype/builds/unix/ftconfig.h
+++ b/src/3rdparty/freetype/builds/unix/ftconfig.h
@@ -5,7 +5,7 @@
*
* UNIX-specific configuration file (specification only).
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/builds/unix/ftsystem.c b/src/3rdparty/freetype/builds/unix/ftsystem.c
index 22bb4dab9b..e238c6083d 100644
--- a/src/3rdparty/freetype/builds/unix/ftsystem.c
+++ b/src/3rdparty/freetype/builds/unix/ftsystem.c
@@ -1,19 +1,19 @@
-/***************************************************************************/
-/* */
-/* ftsystem.c */
-/* */
-/* Unix-specific FreeType low-level system interface (body). */
-/* */
-/* Copyright (C) 1996-2020 by */
-/* David Turner, Robert Wilhelm, and Werner Lemberg. */
-/* */
-/* 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. */
-/* */
-/***************************************************************************/
+/****************************************************************************
+ *
+ * ftsystem.c
+ *
+ * Unix-specific FreeType low-level system interface (body).
+ *
+ * Copyright (C) 1996-2022 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * 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.
+ *
+ */
#include <ft2build.h>
@@ -70,30 +70,40 @@
#include <string.h>
#include <errno.h>
-
- /*************************************************************************/
- /* */
- /* MEMORY MANAGEMENT INTERFACE */
- /* */
- /*************************************************************************/
-
-
- /*************************************************************************/
- /* */
- /* <Function> */
- /* ft_alloc */
- /* */
- /* <Description> */
- /* The memory allocation function. */
- /* */
- /* <Input> */
- /* memory :: A pointer to the memory object. */
- /* */
- /* size :: The requested size in bytes. */
- /* */
- /* <Return> */
- /* The address of newly allocated block. */
- /* */
+ /**************************************************************************
+ *
+ * MEMORY MANAGEMENT INTERFACE
+ *
+ */
+
+
+ /**************************************************************************
+ *
+ * It is not necessary to do any error checking for the
+ * allocation-related functions. This will be done by the higher level
+ * routines like ft_mem_alloc() or ft_mem_realloc().
+ *
+ */
+
+
+ /**************************************************************************
+ *
+ * @Function:
+ * ft_alloc
+ *
+ * @Description:
+ * The memory allocation function.
+ *
+ * @Input:
+ * memory ::
+ * A pointer to the memory object.
+ *
+ * size ::
+ * The requested size in bytes.
+ *
+ * @Return:
+ * The address of newly allocated block.
+ */
FT_CALLBACK_DEF( void* )
ft_alloc( FT_Memory memory,
long size )
@@ -104,26 +114,30 @@
}
- /*************************************************************************/
- /* */
- /* <Function> */
- /* ft_realloc */
- /* */
- /* <Description> */
- /* The memory reallocation function. */
- /* */
- /* <Input> */
- /* memory :: A pointer to the memory object. */
- /* */
- /* cur_size :: The current size of the allocated memory block. */
- /* */
- /* new_size :: The newly requested size in bytes. */
- /* */
- /* block :: The current address of the block in memory. */
- /* */
- /* <Return> */
- /* The address of the reallocated memory block. */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * ft_realloc
+ *
+ * @Description:
+ * The memory reallocation function.
+ *
+ * @Input:
+ * memory ::
+ * A pointer to the memory object.
+ *
+ * cur_size ::
+ * The current size of the allocated memory block.
+ *
+ * new_size ::
+ * The newly requested size in bytes.
+ *
+ * block ::
+ * The current address of the block in memory.
+ *
+ * @Return:
+ * The address of the reallocated memory block.
+ */
FT_CALLBACK_DEF( void* )
ft_realloc( FT_Memory memory,
long cur_size,
@@ -137,19 +151,21 @@
}
- /*************************************************************************/
- /* */
- /* <Function> */
- /* ft_free */
- /* */
- /* <Description> */
- /* The memory release function. */
- /* */
- /* <Input> */
- /* memory :: A pointer to the memory object. */
- /* */
- /* block :: The address of block in memory to be freed. */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * ft_free
+ *
+ * @Description:
+ * The memory release function.
+ *
+ * @Input:
+ * memory ::
+ * A pointer to the memory object.
+ *
+ * block ::
+ * The address of block in memory to be freed.
+ */
FT_CALLBACK_DEF( void )
ft_free( FT_Memory memory,
void* block )
@@ -160,19 +176,19 @@
}
- /*************************************************************************/
- /* */
- /* RESOURCE MANAGEMENT INTERFACE */
- /* */
- /*************************************************************************/
+ /**************************************************************************
+ *
+ * RESOURCE MANAGEMENT INTERFACE
+ *
+ */
- /*************************************************************************/
- /* */
- /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
- /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
- /* messages during execution. */
- /* */
+ /**************************************************************************
+ *
+ * The macro FT_COMPONENT is used in trace mode. It is an implicit
+ * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
+ * messages during execution.
+ */
#undef FT_COMPONENT
#define FT_COMPONENT io
@@ -181,17 +197,17 @@
#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
- /*************************************************************************/
- /* */
- /* <Function> */
- /* ft_close_stream_by_munmap */
- /* */
- /* <Description> */
- /* The function to close a stream which is opened by mmap. */
- /* */
- /* <Input> */
- /* stream :: A pointer to the stream object. */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * ft_close_stream_by_munmap
+ *
+ * @Description:
+ * The function to close a stream which is opened by mmap.
+ *
+ * @Input:
+ * stream :: A pointer to the stream object.
+ */
FT_CALLBACK_DEF( void )
ft_close_stream_by_munmap( FT_Stream stream )
{
@@ -199,29 +215,29 @@
stream->descriptor.pointer = NULL;
stream->size = 0;
- stream->base = 0;
+ stream->base = NULL;
}
- /*************************************************************************/
- /* */
- /* <Function> */
- /* ft_close_stream_by_free */
- /* */
- /* <Description> */
- /* The function to close a stream which is created by ft_alloc. */
- /* */
- /* <Input> */
- /* stream :: A pointer to the stream object. */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * ft_close_stream_by_free
+ *
+ * @Description:
+ * The function to close a stream which is created by ft_alloc.
+ *
+ * @Input:
+ * stream :: A pointer to the stream object.
+ */
FT_CALLBACK_DEF( void )
ft_close_stream_by_free( FT_Stream stream )
{
- ft_free( NULL, stream->descriptor.pointer );
+ ft_free( stream->memory, stream->descriptor.pointer );
stream->descriptor.pointer = NULL;
stream->size = 0;
- stream->base = 0;
+ stream->base = NULL;
}
@@ -297,8 +313,7 @@
file,
0 );
- /* on some RTOS, mmap might return 0 */
- if ( (long)stream->base != -1 && stream->base != NULL )
+ if ( stream->base != MAP_FAILED )
stream->close = ft_close_stream_by_munmap;
else
{
@@ -308,7 +323,7 @@
FT_ERROR(( "FT_Stream_Open:" ));
FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
- stream->base = (unsigned char*)ft_alloc( NULL, stream->size );
+ stream->base = (unsigned char*)ft_alloc( stream->memory, stream->size );
if ( !stream->base )
{
@@ -349,7 +364,7 @@
stream->descriptor.pointer = stream->base;
stream->pathname.pointer = (char*)filepathname;
- stream->read = 0;
+ stream->read = NULL;
FT_TRACE1(( "FT_Stream_Open:" ));
FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
@@ -358,7 +373,7 @@
return FT_Err_Ok;
Fail_Read:
- ft_free( NULL, stream->base );
+ ft_free( stream->memory, stream->base );
Fail_Map:
close( file );
@@ -393,7 +408,7 @@
memory = (FT_Memory)malloc( sizeof ( *memory ) );
if ( memory )
{
- memory->user = 0;
+ memory->user = NULL;
memory->alloc = ft_alloc;
memory->realloc = ft_realloc;
memory->free = ft_free;
diff --git a/src/3rdparty/freetype/builds/windows/ftdebug.c b/src/3rdparty/freetype/builds/windows/ftdebug.c
new file mode 100644
index 0000000000..a65f544694
--- /dev/null
+++ b/src/3rdparty/freetype/builds/windows/ftdebug.c
@@ -0,0 +1,698 @@
+/****************************************************************************
+ *
+ * ftdebug.c
+ *
+ * Debugging and logging component for Win32 (body).
+ *
+ * Copyright (C) 1996-2022 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * 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.
+ *
+ */
+
+
+ /**************************************************************************
+ *
+ * This component contains various macros and functions used to ease the
+ * debugging of the FreeType engine. Its main purpose is in assertion
+ * checking, tracing, and error detection.
+ *
+ * There are now three debugging modes:
+ *
+ * - trace mode
+ *
+ * Error and trace messages are sent to the log file (which can be the
+ * standard error output).
+ *
+ * - error mode
+ *
+ * Only error messages are generated.
+ *
+ * - release mode:
+ *
+ * No error message is sent or generated. The code is free from any
+ * debugging parts.
+ *
+ */
+
+
+#include <freetype/freetype.h>
+#include <freetype/ftlogging.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
+
+
+#ifdef FT_DEBUG_LOGGING
+
+ /**************************************************************************
+ *
+ * Variables used to control logging.
+ *
+ * 1. `ft_default_trace_level` stores the value of trace levels, which are
+ * provided to FreeType using the `FT2_DEBUG` environment variable.
+ *
+ * 2. `ft_fileptr` stores the `FILE*` handle.
+ *
+ * 3. `ft_component` is a string that holds the name of `FT_COMPONENT`.
+ *
+ * 4. The flag `ft_component_flag` prints the name of `FT_COMPONENT` along
+ * with the actual log message if set to true.
+ *
+ * 5. The flag `ft_timestamp_flag` prints time along with the actual log
+ * message if set to ture.
+ *
+ * 6. `ft_have_newline_char` is used to differentiate between a log
+ * message with and without a trailing newline character.
+ *
+ * 7. `ft_custom_trace_level` stores the custom trace level value, which
+ * is provided by the user at run-time.
+ *
+ * We use `static` to avoid 'unused variable' warnings.
+ *
+ */
+ static const char* ft_default_trace_level = NULL;
+ static FILE* ft_fileptr = NULL;
+ static const char* ft_component = NULL;
+ static FT_Bool ft_component_flag = FALSE;
+ static FT_Bool ft_timestamp_flag = FALSE;
+ static FT_Bool ft_have_newline_char = TRUE;
+ static const char* ft_custom_trace_level = NULL;
+
+ /* declared in ftdebug.h */
+
+ dlg_handler ft_default_log_handler = NULL;
+ FT_Custom_Log_Handler custom_output_handler = NULL;
+
+#endif /* FT_DEBUG_LOGGING */
+
+
+#ifdef FT_DEBUG_LEVEL_ERROR
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+
+#ifdef _WIN32_WCE
+
+ FT_LOACAL_DEF( void )
+ OutputDebugStringA( LPCSTR lpOutputString )
+ {
+ int len;
+ LPWSTR lpOutputStringW;
+
+
+ /* allocate memory space for converted string */
+ len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
+ lpOutputString, -1, NULL, 0 );
+
+ lpOutputStringW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) );
+
+ if ( !len || !lpOutputStringW )
+ return;
+
+ /* now it is safe to do the translation */
+ MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
+ lpOutputString, -1, lpOutputStringW, len );
+
+ OutputDebugStringW( lpOutputStringW );
+ }
+
+#endif /* _WIN32_WCE */
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( void )
+ FT_Message( const char* fmt,
+ ... )
+ {
+ va_list ap;
+
+
+ va_start( ap, fmt );
+ vfprintf( stderr, fmt, ap );
+#if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \
+ ( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 )
+ if ( IsDebuggerPresent() )
+ {
+ static char buf[1024];
+
+
+ vsnprintf( buf, sizeof buf, fmt, ap );
+ OutputDebugStringA( buf );
+ }
+#endif
+ va_end( ap );
+ }
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( void )
+ FT_Panic( const char* fmt,
+ ... )
+ {
+ va_list ap;
+
+
+ va_start( ap, fmt );
+ vfprintf( stderr, fmt, ap );
+#if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \
+ ( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 )
+ if ( IsDebuggerPresent() )
+ {
+ static char buf[1024];
+
+
+ vsnprintf( buf, sizeof buf, fmt, ap );
+ OutputDebugStringA( buf );
+ }
+#endif
+ va_end( ap );
+
+ exit( EXIT_FAILURE );
+ }
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( int )
+ FT_Throw( FT_Error error,
+ int line,
+ const char* file )
+ {
+#if 0
+ /* activating the code in this block makes FreeType very chatty */
+ fprintf( stderr,
+ "%s:%d: error 0x%02x: %s\n",
+ file,
+ line,
+ error,
+ FT_Error_String( error ) );
+#else
+ FT_UNUSED( error );
+ FT_UNUSED( line );
+ FT_UNUSED( file );
+#endif
+
+ return 0;
+ }
+
+#endif /* FT_DEBUG_LEVEL_ERROR */
+
+
+#ifdef FT_DEBUG_LEVEL_TRACE
+
+ /* array of trace levels, initialized to 0; */
+ /* this gets adjusted at run-time */
+ static int ft_trace_levels_enabled[trace_count];
+
+ /* array of trace levels, always initialized to 0 */
+ static int ft_trace_levels_disabled[trace_count];
+
+ /* a pointer to either `ft_trace_levels_enabled' */
+ /* or `ft_trace_levels_disabled' */
+ int* ft_trace_levels;
+
+ /* define array of trace toggle names */
+#define FT_TRACE_DEF( x ) #x ,
+
+ static const char* ft_trace_toggles[trace_count + 1] =
+ {
+#include <freetype/internal/fttrace.h>
+ NULL
+ };
+
+#undef FT_TRACE_DEF
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( FT_Int )
+ FT_Trace_Get_Count( void )
+ {
+ return trace_count;
+ }
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( const char * )
+ FT_Trace_Get_Name( FT_Int idx )
+ {
+ int max = FT_Trace_Get_Count();
+
+
+ if ( idx < max )
+ return ft_trace_toggles[idx];
+ else
+ return NULL;
+ }
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( void )
+ FT_Trace_Disable( void )
+ {
+ ft_trace_levels = ft_trace_levels_disabled;
+ }
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( void )
+ FT_Trace_Enable( void )
+ {
+ ft_trace_levels = ft_trace_levels_enabled;
+ }
+
+
+ /**************************************************************************
+ *
+ * Initialize the tracing sub-system. This is done by retrieving the
+ * value of the `FT2_DEBUG' environment variable. It must be a list of
+ * toggles, separated by spaces, `;', or `,'. Example:
+ *
+ * export FT2_DEBUG="any:3 memory:7 stream:5"
+ *
+ * This requests that all levels be set to 3, except the trace level for
+ * the memory and stream components which are set to 7 and 5,
+ * respectively.
+ *
+ * See the file `include/freetype/internal/fttrace.h' for details of
+ * the available toggle names.
+ *
+ * The level must be between 0 and 7; 0 means quiet (except for serious
+ * runtime errors), and 7 means _very_ verbose.
+ */
+ FT_BASE_DEF( void )
+ ft_debug_init( void )
+ {
+ const char* ft2_debug = NULL;
+
+
+#ifdef FT_DEBUG_LOGGING
+ if ( ft_custom_trace_level != NULL )
+ ft2_debug = ft_custom_trace_level;
+ else
+ ft2_debug = ft_default_trace_level;
+#else
+ ft2_debug = ft_getenv( "FT2_DEBUG" );
+#endif
+
+ if ( ft2_debug )
+ {
+ const char* p = ft2_debug;
+ const char* q;
+
+
+ for ( ; *p; p++ )
+ {
+ /* skip leading whitespace and separators */
+ if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
+ continue;
+
+#ifdef FT_DEBUG_LOGGING
+
+ /* check extra arguments for logging */
+ if ( *p == '-' )
+ {
+ const char* r = ++p;
+
+
+ if ( *r == 'v' )
+ {
+ const char* s = ++r;
+
+
+ ft_component_flag = TRUE;
+
+ if ( *s == 't' )
+ {
+ ft_timestamp_flag = TRUE;
+ p++;
+ }
+
+ p++;
+ }
+
+ else if ( *r == 't' )
+ {
+ const char* s = ++r;
+
+
+ ft_timestamp_flag = TRUE;
+
+ if ( *s == 'v' )
+ {
+ ft_component_flag = TRUE;
+ p++;
+ }
+
+ p++;
+ }
+ }
+
+#endif /* FT_DEBUG_LOGGING */
+
+ /* read toggle name, followed by ':' */
+ q = p;
+ while ( *p && *p != ':' )
+ p++;
+
+ if ( !*p )
+ break;
+
+ if ( *p == ':' && p > q )
+ {
+ FT_Int n, i, len = (FT_Int)( p - q );
+ FT_Int level = -1, found = -1;
+
+
+ for ( n = 0; n < trace_count; n++ )
+ {
+ const char* toggle = ft_trace_toggles[n];
+
+
+ for ( i = 0; i < len; i++ )
+ {
+ if ( toggle[i] != q[i] )
+ break;
+ }
+
+ if ( i == len && toggle[i] == 0 )
+ {
+ found = n;
+ break;
+ }
+ }
+
+ /* read level */
+ p++;
+ if ( *p )
+ {
+ level = *p - '0';
+ if ( level < 0 || level > 7 )
+ level = -1;
+ }
+
+ if ( found >= 0 && level >= 0 )
+ {
+ if ( found == trace_any )
+ {
+ /* special case for `any' */
+ for ( n = 0; n < trace_count; n++ )
+ ft_trace_levels_enabled[n] = level;
+ }
+ else
+ ft_trace_levels_enabled[found] = level;
+ }
+ }
+ }
+ }
+
+ ft_trace_levels = ft_trace_levels_enabled;
+ }
+
+
+#else /* !FT_DEBUG_LEVEL_TRACE */
+
+
+ FT_BASE_DEF( void )
+ ft_debug_init( void )
+ {
+ /* nothing */
+ }
+
+
+ FT_BASE_DEF( FT_Int )
+ FT_Trace_Get_Count( void )
+ {
+ return 0;
+ }
+
+
+ FT_BASE_DEF( const char * )
+ FT_Trace_Get_Name( FT_Int idx )
+ {
+ FT_UNUSED( idx );
+
+ return NULL;
+ }
+
+
+ FT_BASE_DEF( void )
+ FT_Trace_Disable( void )
+ {
+ /* nothing */
+ }
+
+
+ /* documentation is in ftdebug.h */
+
+ FT_BASE_DEF( void )
+ FT_Trace_Enable( void )
+ {
+ /* nothing */
+ }
+
+#endif /* !FT_DEBUG_LEVEL_TRACE */
+
+
+#ifdef FT_DEBUG_LOGGING
+
+ /**************************************************************************
+ *
+ * Initialize and de-initialize 'dlg' library.
+ *
+ */
+
+ FT_BASE_DEF( void )
+ ft_logging_init( void )
+ {
+ ft_default_log_handler = ft_log_handler;
+ ft_default_trace_level = ft_getenv( "FT2_DEBUG" );
+
+ if ( ft_getenv( "FT_LOGGING_FILE" ) )
+ ft_fileptr = ft_fopen( ft_getenv( "FT_LOGGING_FILE" ), "w" );
+ else
+ ft_fileptr = stderr;
+
+ ft_debug_init();
+
+ /* Set the default output handler for 'dlg'. */
+ dlg_set_handler( ft_default_log_handler, NULL );
+ }
+
+
+ FT_BASE_DEF( void )
+ ft_logging_deinit( void )
+ {
+ if ( ft_fileptr != stderr )
+ ft_fclose( ft_fileptr );
+ }
+
+
+ /**************************************************************************
+ *
+ * An output log handler for FreeType.
+ *
+ */
+ FT_BASE_DEF( void )
+ ft_log_handler( const struct dlg_origin* origin,
+ const char* string,
+ void* data )
+ {
+ char features_buf[128];
+ char* bufp = features_buf;
+
+ FT_UNUSED( data );
+
+
+ if ( ft_have_newline_char )
+ {
+ const char* features = NULL;
+ size_t features_length = 0;
+
+
+#define FEATURES_TIMESTAMP "[%h:%m] "
+#define FEATURES_COMPONENT "[%t] "
+#define FEATURES_TIMESTAMP_COMPONENT "[%h:%m %t] "
+
+ if ( ft_timestamp_flag && ft_component_flag )
+ {
+ features = FEATURES_TIMESTAMP_COMPONENT;
+ features_length = sizeof ( FEATURES_TIMESTAMP_COMPONENT );
+ }
+ else if ( ft_timestamp_flag )
+ {
+ features = FEATURES_TIMESTAMP;
+ features_length = sizeof ( FEATURES_TIMESTAMP );
+ }
+ else if ( ft_component_flag )
+ {
+ features = FEATURES_COMPONENT;
+ features_length = sizeof ( FEATURES_COMPONENT );
+ }
+
+ if ( ft_component_flag || ft_timestamp_flag )
+ {
+ ft_strncpy( features_buf, features, features_length );
+ bufp += features_length - 1;
+ }
+
+ if ( ft_component_flag )
+ {
+ size_t tag_length = ft_strlen( *origin->tags );
+ size_t i;
+
+
+ /* To vertically align tracing messages we compensate the */
+ /* different FT_COMPONENT string lengths by inserting an */
+ /* appropriate amount of space characters. */
+ for ( i = 0;
+ i < FT_MAX_TRACE_LEVEL_LENGTH - tag_length;
+ i++ )
+ *bufp++ = ' ';
+ }
+ }
+
+ /* Finally add the format string for the tracing message. */
+ *bufp++ = '%';
+ *bufp++ = 'c';
+ *bufp = '\0';
+
+ dlg_generic_outputf_stream( ft_fileptr,
+ (const char*)features_buf,
+ origin,
+ string,
+ dlg_default_output_styles,
+ true );
+
+ if ( ft_strrchr( string, '\n' ) )
+ ft_have_newline_char = TRUE;
+ else
+ ft_have_newline_char = FALSE;
+ }
+
+
+ /* documentation is in ftdebug.h */
+ FT_BASE_DEF( void )
+ ft_add_tag( const char* tag )
+ {
+ ft_component = tag;
+
+ dlg_add_tag( tag, NULL );
+ }
+
+
+ /* documentation is in ftdebug.h */
+ FT_BASE_DEF( void )
+ ft_remove_tag( const char* tag )
+ {
+ dlg_remove_tag( tag, NULL );
+ }
+
+
+ /* documentation is in ftlogging.h */
+
+ FT_EXPORT_DEF( void )
+ FT_Trace_Set_Level( const char* level )
+ {
+ ft_component_flag = FALSE;
+ ft_timestamp_flag = FALSE;
+ ft_custom_trace_level = level;
+
+ ft_debug_init();
+ }
+
+
+ /* documentation is in ftlogging.h */
+
+ FT_EXPORT_DEF( void )
+ FT_Trace_Set_Default_Level( void )
+ {
+ ft_component_flag = FALSE;
+ ft_timestamp_flag = FALSE;
+ ft_custom_trace_level = NULL;
+
+ ft_debug_init();
+ }
+
+
+ /**************************************************************************
+ *
+ * Functions to handle a custom log handler.
+ *
+ */
+
+ /* documentation is in ftlogging.h */
+
+ FT_EXPORT_DEF( void )
+ FT_Set_Log_Handler( FT_Custom_Log_Handler handler )
+ {
+ custom_output_handler = handler;
+ }
+
+
+ /* documentation is in ftlogging.h */
+
+ FT_EXPORT_DEF( void )
+ FT_Set_Default_Log_Handler( void )
+ {
+ custom_output_handler = NULL;
+ }
+
+
+ /* documentation is in ftdebug.h */
+ FT_BASE_DEF( void )
+ FT_Logging_Callback( const char* fmt,
+ ... )
+ {
+ va_list ap;
+
+
+ va_start( ap, fmt );
+ custom_output_handler( ft_component, fmt, ap );
+ va_end( ap );
+ }
+
+#else /* !FT_DEBUG_LOGGING */
+
+ FT_EXPORT_DEF( void )
+ FT_Trace_Set_Level( const char* level )
+ {
+ FT_UNUSED( level );
+ }
+
+
+ FT_EXPORT_DEF( void )
+ FT_Trace_Set_Default_Level( void )
+ {
+ /* nothing */
+ }
+
+
+ FT_EXPORT_DEF( void )
+ FT_Set_Log_Handler( FT_Custom_Log_Handler handler )
+ {
+ FT_UNUSED( handler );
+ }
+
+
+ FT_EXPORT_DEF( void )
+ FT_Set_Default_Log_Handler( void )
+ {
+ /* nothing */
+ }
+
+#endif /* !FT_DEBUG_LOGGING */
+
+
+/* END */
diff --git a/src/3rdparty/freetype/docs/CHANGES b/src/3rdparty/freetype/docs/CHANGES
index 3bd5291ae1..3ad7ec4333 100644
--- a/src/3rdparty/freetype/docs/CHANGES
+++ b/src/3rdparty/freetype/docs/CHANGES
@@ -1,4 +1,235 @@
-CHANGES BETWEEN 2.10.3 and 2.10.4
+CHANGES BETWEEN 2.12.0 and 2.12.1
+
+ I. IMPORTANT BUG FIXES
+
+ - Loading CFF fonts sometimes made FreeType crash (bug introduced in
+ version 2.12.0)
+
+ - Loading a fully hinted TrueType glyph a second time (without
+ caching) sometimes yielded different rendering results if TrueType
+ hinting was active (bug introduced in version 2.12.0).
+
+ - The generation of the pkg-config file `freetype2.pc` was broken if
+ the build was done with cmake (bug introduced in version 2.12.0).
+
+
+ II. MISCELLANEOUS
+
+ - New option `--with-librsvg` for the `configure` script for better
+ FreeType demo support.
+
+ - The meson build no longer enforces both static and dynamic
+ versions of the library by default.
+
+ - The internal zlib library was updated to version 1.2.12. Note,
+ however, that FreeType is *not* affected by CVE-2018-25032 since
+ it only does decompression.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.11.1 and 2.12.0
+
+ I. IMPORTANT CHANGES
+
+ - FreeType now handles OT-SVG fonts, to be controlled with
+ `FT_CONFIG_OPTION_SVG` configuration macro. By default, it can
+ only load the 'SVG ' table of an OpenType font. However, by using
+ the `svg-hooks` property of the new 'ot-svg' module it is possible
+ to register an external SVG rendering engine. The FreeType demo
+ programs have been set up to use 'librsvg' as the rendering
+ library.
+
+ This work was Moazin Khatti's GSoC 2019 project.
+
+
+ II. MISCELLANEOUS
+
+ - The handling of fonts with an 'sbix' table has been improved.
+
+ - Corrected bitmap offsets.
+
+ - A new tag `FT_PARAM_TAG_IGNORE_SBIX` for `FT_Open_Face` makes
+ FreeType ignore an 'sbix' table in a font, allowing applications
+ to access the font's outline glyphs.
+
+ - `FT_FACE_FLAG_SBIX` and `FT_FACE_FLAG_SBIX_OVERLAY` together
+ with their corresponding preprocessor macros `FT_HAS_SBIX` and
+ `FT_HAS_SBIX_OVERLAY` enable applications to treat 'sbix' tables
+ as described in the OpenType specification.
+
+ - The internal 'zlib' code has been updated to be in sync with the
+ current 'zlib' version (1.2.11).
+
+ - The previously internal load flag `FT_LOAD_SBITS_ONLY` is now
+ public.
+
+ - Some minor improvements of the building systems, in particular
+ handling of the 'zlib' library (internal vs. external).
+
+ - Support for non-desktop Universal Windows Platform.
+
+ - Various other minor bug and documentation fixes.
+
+ - The `ftdump` demo program shows more information for Type1 fonts
+ if option `-n` is given.
+
+ - `ftgrid` can now display embedded bitmap strikes.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.11.0 and 2.11.1
+
+ I. IMPORTANT CHANGES
+
+ - Some fields in the `CID_FaceDictRec`, `CID_FaceInfoRec`, and
+ `FT_Data` structures have been changed from signed to unsigned
+ type, which better reflects the actual usage. It is also an
+ additional means to protect against malformed input.
+
+
+ II. MISCELLANEOUS
+
+ - Cmake support has been further improved. To do that various
+ backward-incompatible changes were necessary; please see file
+ `CMakeLists.txt` for more details.
+
+ - Since version 2.11.0, a C99 compiler is necessary to compile
+ FreeType.
+
+ - The experimental 'COLR' v1 API has been updated to the latest
+ OpenType standard 1.9.
+
+ - The `apinames` tool got a new option `-wV` to output an OpenVMS
+ Linker Option File.
+
+ - VMS support was updated.
+
+ - MS Visual Studio support was added to build the demo programs.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.4 and 2.11.0
+
+ I. IMPORTANT CHANGES
+
+ - A new rendering module has been added to create 8-bit Signed
+ Distance Field (SDF) bitmaps for both outline and bitmap glyphs.
+ The new rendering mode is called `FT_RENDER_MODE_SDF`, the pixel
+ mode is `FT_PIXEL_MODE_GRAY8`, and the corresponding raster flag
+ is `FT_RASTER_FLAG_SDF`.
+
+ This work was Anuj Verma's GSoC 2020 project.
+
+ - A new, experimental API is now available for surfacing properties
+ of 'COLR' v1 color fonts (as the name says, this is an extension
+ to the 'COLR' table for outline color fonts using the SFNT
+ container format). 'COLR' v1 fonts are a recently proposed
+ addition to OFF and OpenType; specification work currently happens
+ in
+
+ https://github.com/googlefonts/colr-gradients-spec/
+
+ 'COLR' v1 is expected to be merged to OpenType; the ISO
+ standardisation process for adding 'COLR' v1 as an amendment to
+ OFF is underway.
+
+ Functions similar to the already existing 'COLR' API have been
+ added to access the corresponding data.
+
+ FT_Get_Color_Glyph_Paint
+ Retrieve the root paint for a given glyph ID.
+
+ FT_Get_Paint_Layers
+ Access the layers of a `PaintColrLayers` table.
+
+ FT_Get_Colorline_Stops
+ Retrieve the 'color stops' on a color line. As an input, a
+ color stop iterator gets used, which in turn is retrieved from
+ a paint.
+
+ FT_Get_Paint
+ Dereference an `FT_OpaquePaint` object and retrieve the
+ corresponding `FT_COLR_Paint` object, which contains details
+ on how to draw the respective 'COLR' v1 `Paint` table.
+
+
+ II. MISCELLANEOUS
+
+ - FreeType has moved its infrastructure to
+
+ https://gitlab.freedesktop.org/freetype
+
+ A side effect is that the git repositories are now called
+ `freetype.git` and `freetype-demos.git`, which by default expand
+ to the directories `freetype` and `freetype-demos`, respectively.
+ The documentation has been updated accordingly.
+
+ FreeType's Savannah repositories will stay; they are now mirrors
+ of the 'freedesktop.org' repositories.
+
+ - A new function `FT_Get_Transform` returns the values set by
+ `FT_Set_Transform`.
+
+ - A new configuration macro `FT_DEBUG_LOGGING` is available. It
+ provides extended debugging capabilities for FreeType, for example
+ showing a time stamp or displaying the component a tracing message
+ comes from. See file `docs/DEBUG` for more information.
+
+ This work was Priyesh Kumar's GSoC 2020 project.
+
+ - The legacy Type 1 and CFF engines are further demoted due to lack
+ of CFF2 charstring support. You now need to use `FT_Property_Set`
+ to enable them besides the `T1_CONFIG_OPTION_OLD_ENGINE` and
+ `CFF_CONFIG_OPTION_OLD_ENGINE` options, respectively.
+
+ - The experimental 'warp' mode (AF_CONFIG_OPTION_USE_WARPER) for the
+ auto-hinter has been removed.
+
+ - The smooth rasterizer performance has been improved by >10%. Note
+ that due to necessary code changes there might be very subtle
+ differences in rendering. They are not visible by the eye,
+ however.
+
+ - PCF bitmap fonts compressed with LZW (these are usually files with
+ the extension `.pcf.Z`) are now handled correctly.
+
+ - Improved Meson build files, including support to build the
+ FreeType demo programs.
+
+ - A new demo program `ftsdf` is available to display Signed Distance
+ Fields of glyphs.
+
+ - The `ftlint` demo program has been extended to do more testing of
+ its input. In particular, it can display horizontal and vertical
+ acutances for quality assessment, together with computing MD5
+ checksums of rendered glyphs.
+
+ [The acutance measures how sharply the pixel coverage changes at
+ glyph edges. For monochrome bitmaps, it is always 2.0 in either
+ X or Y direction. For anti-aliased bitmaps, it depends on the
+ hinting and the shape of a glyph and might approach or even reach
+ value 2.0 for glyphs like 'I', 'L', '+', '-', or '=', while it
+ might be lower for glyphs like 'O', 'S', or 'W'.]
+
+ - The `ttdebug` demo program didn't show changed point coordinates
+ (bug introduced in version 2.10.3).
+
+ - It is now possible to adjust the axis increment for variable fonts
+ in the `ftmulti` demo program.
+
+ - It is now possible to change the hinting engine in the `ftstring`
+ demo program.
+
+ - The graphical demo programs work better now in native color depth
+ on win32 and x11.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.3 and 2.10.4 (2020-Oct-20)
I. IMPORTANT BUG FIXES
@@ -13,7 +244,7 @@ CHANGES BETWEEN 2.10.3 and 2.10.4
======================================================================
-CHANGES BETWEEN 2.10.2 and 2.10.3
+CHANGES BETWEEN 2.10.2 and 2.10.3 (2020-Oct-10)
I. IMPORTANT CHANGES
@@ -63,7 +294,7 @@ CHANGES BETWEEN 2.10.2 and 2.10.3
======================================================================
-CHANGES BETWEEN 2.10.1 and 2.10.2
+CHANGES BETWEEN 2.10.1 and 2.10.2 (2020-May-09)
I. IMPORTANT CHANGES
@@ -100,7 +331,7 @@ CHANGES BETWEEN 2.10.1 and 2.10.2
======================================================================
-CHANGES BETWEEN 2.10.0 and 2.10.1
+CHANGES BETWEEN 2.10.0 and 2.10.1 (2019-Jul-01)
I. IMPORTANT BUG FIXES
@@ -154,7 +385,7 @@ CHANGES BETWEEN 2.10.0 and 2.10.1
======================================================================
-CHANGES BETWEEN 2.9.1 and 2.10.0
+CHANGES BETWEEN 2.9.1 and 2.10.0 (2019-Mar-15)
I. IMPORTANT CHANGES
@@ -280,7 +511,7 @@ CHANGES BETWEEN 2.9.1 and 2.10.0
======================================================================
-CHANGES BETWEEN 2.9 and 2.9.1
+CHANGES BETWEEN 2.9 and 2.9.1 (2019-May-01)
I. IMPORTANT BUG FIXES
@@ -328,7 +559,7 @@ CHANGES BETWEEN 2.9 and 2.9.1
======================================================================
-CHANGES BETWEEN 2.8.1 and 2.9
+CHANGES BETWEEN 2.8.1 and 2.9 (2018-Jan-08)
I. IMPORTANT BUG FIXES
@@ -418,7 +649,7 @@ CHANGES BETWEEN 2.8.1 and 2.9
======================================================================
-CHANGES BETWEEN 2.8 and 2.8.1
+CHANGES BETWEEN 2.8 and 2.8.1 (2017-Sep-16)
I. IMPORTANT BUG FIXES
@@ -501,7 +732,7 @@ CHANGES BETWEEN 2.8 and 2.8.1
======================================================================
-CHANGES BETWEEN 2.7.1 and 2.8
+CHANGES BETWEEN 2.7.1 and 2.8 (2017-May-13)
I. IMPORTANT CHANGES
@@ -622,7 +853,7 @@ CHANGES BETWEEN 2.7.1 and 2.8
======================================================================
-CHANGES BETWEEN 2.7 and 2.7.1
+CHANGES BETWEEN 2.7 and 2.7.1 (2016-Dec-30)
I. IMPORTANT CHANGES
@@ -699,7 +930,7 @@ CHANGES BETWEEN 2.7 and 2.7.1
======================================================================
-CHANGES BETWEEN 2.6.5 and 2.7
+CHANGES BETWEEN 2.6.5 and 2.7 (2016-Sep-08)
I. IMPORTANT CHANGES
@@ -763,7 +994,7 @@ CHANGES BETWEEN 2.6.5 and 2.7
======================================================================
-CHANGES BETWEEN 2.6.4 and 2.6.5
+CHANGES BETWEEN 2.6.4 and 2.6.5 (2016-Jul-12)
I. IMPORTANT BUG FIXES
@@ -783,7 +1014,7 @@ CHANGES BETWEEN 2.6.4 and 2.6.5
======================================================================
-CHANGES BETWEEN 2.6.3 and 2.6.4
+CHANGES BETWEEN 2.6.3 and 2.6.4 (2016-Jul-05)
I. IMPORTANT CHANGES
@@ -849,7 +1080,7 @@ CHANGES BETWEEN 2.6.3 and 2.6.4
======================================================================
-CHANGES BETWEEN 2.6.2 and 2.6.3
+CHANGES BETWEEN 2.6.2 and 2.6.3 (2016-Feb-08)
I. IMPORTANT CHANGES
@@ -898,7 +1129,7 @@ CHANGES BETWEEN 2.6.2 and 2.6.3
======================================================================
-CHANGES BETWEEN 2.6.1 and 2.6.2
+CHANGES BETWEEN 2.6.1 and 2.6.2 (2015-Nov-28)
I. IMPORTANT CHANGES
@@ -958,7 +1189,7 @@ CHANGES BETWEEN 2.6.1 and 2.6.2
======================================================================
-CHANGES BETWEEN 2.6 and 2.6.1
+CHANGES BETWEEN 2.6 and 2.6.1 (2015-Oct-04)
I. IMPORTANT BUG FIXES
@@ -1039,7 +1270,7 @@ CHANGES BETWEEN 2.6 and 2.6.1
======================================================================
-CHANGES BETWEEN 2.5.5 and 2.6
+CHANGES BETWEEN 2.5.5 and 2.6 (2015-Jun-07)
I. IMPORTANT CHANGES
@@ -1145,7 +1376,7 @@ CHANGES BETWEEN 2.5.5 and 2.6
======================================================================
-CHANGES BETWEEN 2.5.4 and 2.5.5
+CHANGES BETWEEN 2.5.4 and 2.5.5 (2014-Dec-30)
I. IMPORTANT BUG FIXES
@@ -1155,7 +1386,7 @@ CHANGES BETWEEN 2.5.4 and 2.5.5
======================================================================
-CHANGES BETWEEN 2.5.3 and 2.5.4
+CHANGES BETWEEN 2.5.3 and 2.5.4 (2014-Dec-06)
I. IMPORTANT BUG FIXES
@@ -1226,7 +1457,7 @@ CHANGES BETWEEN 2.5.3 and 2.5.4
======================================================================
-CHANGES BETWEEN 2.5.2 and 2.5.3
+CHANGES BETWEEN 2.5.2 and 2.5.3 (2014-Mar-06)
I. IMPORTANT BUG FIXES
@@ -1294,7 +1525,7 @@ CHANGES BETWEEN 2.5.2 and 2.5.3
======================================================================
-CHANGES BETWEEN 2.5.1 and 2.5.2
+CHANGES BETWEEN 2.5.1 and 2.5.2 (2013-Dec-08)
I. IMPORTANT BUG FIXES
@@ -1318,7 +1549,7 @@ CHANGES BETWEEN 2.5.1 and 2.5.2
======================================================================
-CHANGES BETWEEN 2.5 and 2.5.1
+CHANGES BETWEEN 2.5 and 2.5.1 (2013-Nov-25)
I. IMPORTANT BUG FIXES
@@ -1422,7 +1653,7 @@ CHANGES BETWEEN 2.5 and 2.5.1
======================================================================
-CHANGES BETWEEN 2.4.12 and 2.5
+CHANGES BETWEEN 2.4.12 and 2.5 (2013-Jun-19)
I. IMPORTANT BUG FIXES
@@ -1502,7 +1733,7 @@ CHANGES BETWEEN 2.4.12 and 2.5
======================================================================
-CHANGES BETWEEN 2.4.11 and 2.4.12
+CHANGES BETWEEN 2.4.11 and 2.4.12 (2013-May-08)
- We have another CFF parsing and hinting engine! Written by Dave
Arnold <darnold@adobe.com>, this work has been contributed by
@@ -1590,7 +1821,7 @@ index ebcf189..3f2ce6b 100644
======================================================================
-CHANGES BETWEEN 2.4.10 and 2.4.11
+CHANGES BETWEEN 2.4.10 and 2.4.11 (2012-Dec-20)
I. IMPORTANT BUG FIXES
@@ -1650,7 +1881,7 @@ CHANGES BETWEEN 2.4.10 and 2.4.11
======================================================================
-CHANGES BETWEEN 2.4.9 and 2.4.10
+CHANGES BETWEEN 2.4.9 and 2.4.10 (2012-Jun-15)
I. IMPORTANT BUG FIXES
@@ -1675,7 +1906,7 @@ CHANGES BETWEEN 2.4.9 and 2.4.10
======================================================================
-CHANGES BETWEEN 2.4.8 and 2.4.9
+CHANGES BETWEEN 2.4.8 and 2.4.9 (2012-Mar-08)
I. IMPORTANT BUG FIXES
@@ -1703,7 +1934,7 @@ CHANGES BETWEEN 2.4.8 and 2.4.9
======================================================================
-CHANGES BETWEEN 2.4.7 and 2.4.8
+CHANGES BETWEEN 2.4.7 and 2.4.8 (2011-Nov-14)
I. IMPORTANT BUG FIXES
@@ -1719,7 +1950,7 @@ CHANGES BETWEEN 2.4.7 and 2.4.8
======================================================================
-CHANGES BETWEEN 2.4.6 and 2.4.7
+CHANGES BETWEEN 2.4.6 and 2.4.7 (2011-Oct-18)
I. IMPORTANT BUG FIXES
@@ -1736,7 +1967,7 @@ CHANGES BETWEEN 2.4.6 and 2.4.7
======================================================================
-CHANGES BETWEEN 2.4.5 and 2.4.6
+CHANGES BETWEEN 2.4.5 and 2.4.6 (2011-Jul-29)
I. IMPORTANT BUG FIXES
@@ -1775,7 +2006,7 @@ CHANGES BETWEEN 2.4.5 and 2.4.6
======================================================================
-CHANGES BETWEEN 2.4.4 and 2.4.5
+CHANGES BETWEEN 2.4.4 and 2.4.5 (2011-Jun-25)
I. IMPORTANT BUG FIXES
@@ -1822,7 +2053,7 @@ CHANGES BETWEEN 2.4.4 and 2.4.5
======================================================================
-CHANGES BETWEEN 2.4.3 and 2.4.4
+CHANGES BETWEEN 2.4.3 and 2.4.4 (2010-Nov-28)
I. IMPORTANT BUG FIXES
@@ -1847,7 +2078,7 @@ CHANGES BETWEEN 2.4.3 and 2.4.4
======================================================================
-CHANGES BETWEEN 2.4.2 and 2.4.3
+CHANGES BETWEEN 2.4.2 and 2.4.3 (2010-Oct-03)
I. IMPORTANT BUG FIXES
@@ -1866,7 +2097,7 @@ CHANGES BETWEEN 2.4.2 and 2.4.3
======================================================================
-CHANGES BETWEEN 2.4.1 and 2.4.2
+CHANGES BETWEEN 2.4.1 and 2.4.2 (2010-Aug-06)
I. IMPORTANT BUG FIXES
@@ -1890,7 +2121,7 @@ CHANGES BETWEEN 2.4.1 and 2.4.2
======================================================================
-CHANGES BETWEEN 2.4.0 and 2.4.1
+CHANGES BETWEEN 2.4.0 and 2.4.1 (2010-Jul-18)
I. IMPORTANT CHANGES
@@ -1900,7 +2131,7 @@ CHANGES BETWEEN 2.4.0 and 2.4.1
======================================================================
-CHANGES BETWEEN 2.3.12 and 2.4.0
+CHANGES BETWEEN 2.3.12 and 2.4.0 (2010-Jul-12)
I. IMPORTANT CHANGES
@@ -5299,7 +5530,7 @@ Extensions support:
------------------------------------------------------------------------
-Copyright (C) 2000-2020 by
+Copyright (C) 2000-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/docs/CUSTOMIZE b/src/3rdparty/freetype/docs/CUSTOMIZE
index 0f92e70046..1a750825b2 100644
--- a/src/3rdparty/freetype/docs/CUSTOMIZE
+++ b/src/3rdparty/freetype/docs/CUSTOMIZE
@@ -139,7 +139,7 @@ IV. Overriding default configuration and module headers
----------------------------------------------------------------------
-Copyright (C) 2003-2020 by
+Copyright (C) 2003-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/docs/DEBUG b/src/3rdparty/freetype/docs/DEBUG
index a96b5e27b8..fd2de134d5 100644
--- a/src/3rdparty/freetype/docs/DEBUG
+++ b/src/3rdparty/freetype/docs/DEBUG
@@ -44,6 +44,21 @@ located in the file `ftoption.h'. The macros are:
When `FT2_DEBUG_MEMORY' isn't defined at runtime, the debugging
memory manager is ignored, and performance is unaffected.
+ FT_DEBUG_LOGGING
+
+ #define this macro for enhanced logging support; it automatically
+ sets `FT_DEBUG_LEVEL_TRACE' and `FT_DEBUG_LEVEL_ERROR'.
+
+ If defined, `FT_TRACE' and `FT_ERROR' can send tracing and
+ debugging messages to a file. The location of the log file has to
+ be set with the `FT_LOGGING_FILE' environment variable (more on
+ this later).
+
+ The main enhancements are the possibility of logging the time and
+ the name of the `FT_COMPONENT' macro together with the affected
+ `FT_TRACE' or `FT_ERROR' calls. See below how to activate this in
+ the `FT2_DEBUG' environment variable.
+
II. Debugging macros
--------------------
@@ -150,6 +165,43 @@ behaviour of FreeType at runtime.
the memory and io components, which are set to the trace levels 5
and 4, respectively.
+ If `FT_DEBUG_LOGGING' is defined, two more options are available.
+
+ * -v: Print also the name of FreeType's component from which the
+ current log is produced, together with the tracing level.
+
+ * -t: Print also the time.
+
+ Here are some examples how the output might look like.
+
+ FT2_DEBUG="any:7 memory:5 -vt"
+
+ => [20:32:02:44969 ttload:2] table directory loaded
+
+ FT2_DEBUG="any:7 memory:5 -t"
+
+ => [20:32:02:44969] table directory loaded
+
+ FT2_DEBUG="any:7 memory:5 -v"
+
+ => [ttload:2] table directory loaded
+
+
+ FT_LOGGING_FILE
+
+ This variable is only used if FreeType is built with the
+ `FT_DEBUG_LOGGING' macro defined. It contains the path to the
+ file where the user wants to put his log file. If it is not set,
+ FreeType uses stderr.
+
+ Examples:
+
+ On UNIX-like systems with bash:
+ export FT_LOGGING_FILE="/tmp/freetype2.log"
+
+ On Windows:
+ set FT_LOGGING_FILE=C:\Users\AppData\Local\Temp\freetype2.log
+
FT2_DEBUG_MEMORY
@@ -201,9 +253,51 @@ behaviour of FreeType at runtime.
If it is undefined, or if its value is not strictly positive,
freed blocks are released at runtime.
+
+IV. Additional Capabilities with `FT_DEBUG_LOGGING'
+---------------------------------------------------
+
+If `FT_DEBUG_LOGGING' is defined, four APIs are available to provide
+additional debugging support. Use
+
+ #include <freetype/ftlogging.h>
+
+to access them.
+
+ FT_Trace_Set_Level( const char* level )
+
+ By default, FreeType uses the tracing levels set in the
+ `FT2_DEBUG' environment variable. Use this function to override
+ the value with `level'. Use value `NULL' to disable tracing.
+
+ FT_Trace_Set_Default_Level():
+
+ Reset the tracing levels to the default value, i.e., the value of
+ the `FT2_DEBUG' environment variable or no tracing if not set.
+
+ FT_Set_Log_Handler( ft_custom_log_handler handler ):
+
+ Use `handler' as a custom handler for formatting tracing and error
+ messages. The `ft_custom_log_handler' typedef has the following
+ prototype.
+
+ void
+ (*ft_custom_log_handler)( const char* ft_component,
+ const char* fmt,
+ va_list args );
+
+ `ft_component' is the current component like `ttload', `fmt' is the
+ first argument of `FT_TRACE' or `FT_ERROR', and `args' holds the
+ remaining arguments.
+
+ FT_Set_Default_Log_Handler():
+
+ Reset the log handler to the default version.
+
+
------------------------------------------------------------------------
-Copyright (C) 2002-2020 by
+Copyright (C) 2002-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/docs/LICENSE.TXT b/src/3rdparty/freetype/docs/LICENSE.TXT
deleted file mode 100644
index af5a1c50f6..0000000000
--- a/src/3rdparty/freetype/docs/LICENSE.TXT
+++ /dev/null
@@ -1,39 +0,0 @@
-
-The FreeType 2 font engine is copyrighted work and cannot be used
-legally without a software license. In order to make this project
-usable to a vast majority of developers, we distribute it under two
-mutually exclusive open-source licenses.
-
-This means that *you* must choose *one* of the two licenses described
-below, then obey all its terms and conditions when using FreeType 2 in
-any of your projects or products.
-
- - The FreeType License, found in the file `FTL.TXT', which is similar
- to the original BSD license *with* an advertising clause that forces
- you to explicitly cite the FreeType project in your product's
- documentation. All details are in the license file. This license
- is suited to products which don't use the GNU General Public
- License.
-
- Note that this license is compatible to the GNU General Public
- License version 3, but not version 2.
-
- - The GNU General Public License version 2, found in `GPLv2.TXT' (any
- later version can be used also), for programs which already use the
- GPL. Note that the FTL is incompatible with GPLv2 due to its
- advertisement clause.
-
-The contributed BDF and PCF drivers come with a license similar to that
-of the X Window System. It is compatible to the above two licenses (see
-file src/bdf/README and src/pcf/README). The same holds for the files
-`fthash.c' and `fthash.h'; their code was part of the BDF driver in
-earlier FreeType versions.
-
-The gzip module uses the zlib license (see src/gzip/zlib.h) which too is
-compatible to the above two licenses.
-
-The MD5 checksum support (only used for debugging in development builds)
-is in the public domain.
-
-
---- end of LICENSE.TXT ---
diff --git a/src/3rdparty/freetype/docs/TODO b/src/3rdparty/freetype/docs/TODO
index 8b27e269a3..623866eab9 100644
--- a/src/3rdparty/freetype/docs/TODO
+++ b/src/3rdparty/freetype/docs/TODO
@@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType.
------------------------------------------------------------------------
-Copyright (C) 2001-2020 by
+Copyright (C) 2001-2022 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/import_from_tarball.sh b/src/3rdparty/freetype/import_from_tarball.sh
index df8717d68a..e7d1bb8c37 100644
--- a/src/3rdparty/freetype/import_from_tarball.sh
+++ b/src/3rdparty/freetype/import_from_tarball.sh
@@ -78,6 +78,7 @@ copy_file_or_dir() {
FILES="
README
builds/unix/ftsystem.c
+ builds/windows/ftdebug.c
docs/CHANGES
docs/CUSTOMIZE
docs/DEBUG
@@ -85,7 +86,6 @@ FILES="
docs/TODO
docs/FTL.TXT
docs/GPLv2.TXT
- docs/LICENSE.TXT
include/
src/
"
diff --git a/src/3rdparty/freetype/include/freetype/config/ftconfig.h b/src/3rdparty/freetype/include/freetype/config/ftconfig.h
index b464e0b789..c696e900a6 100644
--- a/src/3rdparty/freetype/include/freetype/config/ftconfig.h
+++ b/src/3rdparty/freetype/include/freetype/config/ftconfig.h
@@ -4,7 +4,7 @@
*
* ANSI-specific configuration file (specification only).
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/config/ftheader.h b/src/3rdparty/freetype/include/freetype/config/ftheader.h
index 28b5cc60cf..a8c6833df7 100644
--- a/src/3rdparty/freetype/include/freetype/config/ftheader.h
+++ b/src/3rdparty/freetype/include/freetype/config/ftheader.h
@@ -4,7 +4,7 @@
*
* Build macros of the FreeType 2 library.
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -777,6 +777,18 @@
#define FT_COLOR_H <freetype/ftcolor.h>
+ /**************************************************************************
+ *
+ * @macro:
+ * FT_OTSVG_H
+ *
+ * @description:
+ * A macro used in `#include` statements to name the file containing the
+ * FreeType~2 API which handles the OpenType 'SVG~' glyphs.
+ */
+#define FT_OTSVG_H <freetype/otsvg.h>
+
+
/* */
/* These header files don't need to be included by the user. */
diff --git a/src/3rdparty/freetype/include/freetype/config/ftmodule.h b/src/3rdparty/freetype/include/freetype/config/ftmodule.h
index b5c4b1ee58..b315baba8a 100644
--- a/src/3rdparty/freetype/include/freetype/config/ftmodule.h
+++ b/src/3rdparty/freetype/include/freetype/config/ftmodule.h
@@ -19,12 +19,15 @@ FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class )
FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
+FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
FT_USE_MODULE( FT_Module_Class, psaux_module_class )
FT_USE_MODULE( FT_Module_Class, psnames_module_class )
FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
-FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
-FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_sdf_renderer_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_bitmap_sdf_renderer_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_svg_renderer_class )
/* EOF */
diff --git a/src/3rdparty/freetype/include/freetype/config/ftoption.h b/src/3rdparty/freetype/include/freetype/config/ftoption.h
index 097f19b8a5..c5bde243b1 100644
--- a/src/3rdparty/freetype/include/freetype/config/ftoption.h
+++ b/src/3rdparty/freetype/include/freetype/config/ftoption.h
@@ -4,7 +4,7 @@
*
* User-selectable configuration macros (specification only).
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -105,8 +105,7 @@ FT_BEGIN_HEADER
*
* ```
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
- * cff:no-stem-darkening=1 \
- * autofitter:warping=1
+ * cff:no-stem-darkening=1
* ```
*
*/
@@ -220,6 +219,10 @@ FT_BEGIN_HEADER
* If you use a build system like cmake or the `configure` script,
* options set by those programs have precedence, overwriting the value
* here with the configured one.
+ *
+ * If you use the GNU make build system directly (that is, without the
+ * `configure` script) and you define this macro, you also have to pass
+ * `SYSTEM_ZLIB=yes` as an argument to make.
*/
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
@@ -433,6 +436,23 @@ FT_BEGIN_HEADER
/**************************************************************************
*
+ * Logging
+ *
+ * Compiling FreeType in debug or trace mode makes FreeType write error
+ * and trace log messages to `stderr`. Enabling this macro
+ * automatically forces the `FT_DEBUG_LEVEL_ERROR` and
+ * `FT_DEBUG_LEVEL_TRACE` macros and allows FreeType to write error and
+ * trace log messages to a file instead of `stderr`. For writing logs
+ * to a file, FreeType uses an the external `dlg` library (the source
+ * code is in `src/dlg`).
+ *
+ * This option needs a C99 compiler.
+ */
+/* #define FT_DEBUG_LOGGING */
+
+
+ /**************************************************************************
+ *
* Autofitter debugging
*
* If `FT_DEBUG_AUTOFIT` is defined, FreeType provides some means to
@@ -509,6 +529,20 @@ FT_BEGIN_HEADER
/**************************************************************************
*
+ * OpenType SVG Glyph Support
+ *
+ * Setting this macro enables support for OpenType SVG glyphs. By
+ * default, FreeType can only fetch SVG documents. However, it can also
+ * render them if external rendering hook functions are plugged in at
+ * runtime.
+ *
+ * More details on the hooks can be found in file `otsvg.h`.
+ */
+#define FT_CONFIG_OPTION_SVG
+
+
+ /**************************************************************************
+ *
* Error Strings
*
* If this macro is set, `FT_Error_String` will return meaningful
@@ -894,24 +928,6 @@ FT_BEGIN_HEADER
/**************************************************************************
*
- * Compile 'autofit' module with warp hinting. The idea of the warping
- * code is to slightly scale and shift a glyph within a single dimension so
- * that as much of its segments are aligned (more or less) on the grid. To
- * find out the optimal scaling and shifting value, various parameter
- * combinations are tried and scored.
- *
- * You can switch warping on and off with the `warping` property of the
- * auto-hinter (see file `ftdriver.h` for more information; by default it
- * is switched off).
- *
- * This experimental option is not active if the rendering mode is
- * `FT_RENDER_MODE_LIGHT`.
- */
-#define AF_CONFIG_OPTION_USE_WARPER
-
-
- /**************************************************************************
- *
* Use TrueType-like size metrics for 'light' auto-hinting.
*
* It is strongly recommended to avoid this option, which exists only to
@@ -962,6 +978,21 @@ FT_BEGIN_HEADER
/*
+ * The TT_SUPPORT_COLRV1 macro is defined to indicate to clients that this
+ * version of FreeType has support for 'COLR' v1 API. This definition is
+ * useful to FreeType clients that want to build in support for 'COLR' v1
+ * depending on a tip-of-tree checkout before it is officially released in
+ * FreeType, and while the feature cannot yet be tested against using
+ * version macros. Don't change this macro. This may be removed once the
+ * feature is in a FreeType release version and version macros can be used
+ * to test for availability.
+ */
+#ifdef TT_CONFIG_OPTION_COLOR_LAYERS
+#define TT_SUPPORT_COLRV1
+#endif
+
+
+ /*
* Check CFF darkening parameters. The checks are the same as in function
* `cff_property_set` in file `cffdrivr.c`.
*/
@@ -989,8 +1020,8 @@ FT_BEGIN_HEADER
#error "Invalid CFF darkening parameters!"
#endif
-FT_END_HEADER
+FT_END_HEADER
#endif /* FTOPTION_H_ */
diff --git a/src/3rdparty/freetype/include/freetype/config/ftstdlib.h b/src/3rdparty/freetype/include/freetype/config/ftstdlib.h
index d6091f8b3d..7958c2a5f7 100644
--- a/src/3rdparty/freetype/include/freetype/config/ftstdlib.h
+++ b/src/3rdparty/freetype/include/freetype/config/ftstdlib.h
@@ -5,7 +5,7 @@
* ANSI-specific library and header configuration file (specification
* only).
*
- * Copyright (C) 2002-2020 by
+ * Copyright (C) 2002-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -43,7 +43,8 @@
*
* `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of
* `int` and `long` in bytes at compile-time. So far, this works for all
- * platforms the library has been tested on.
+ * platforms the library has been tested on. We also check `ULLONG_MAX`
+ * to see whether we can use 64-bit `long long` later on.
*
* Note that on the extremely rare platforms that do not provide integer
* types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where
@@ -66,6 +67,15 @@
#define FT_LONG_MIN LONG_MIN
#define FT_LONG_MAX LONG_MAX
#define FT_ULONG_MAX ULONG_MAX
+#ifdef LLONG_MAX
+#define FT_LLONG_MAX LLONG_MAX
+#endif
+#ifdef LLONG_MIN
+#define FT_LLONG_MIN LLONG_MIN
+#endif
+#ifdef ULLONG_MAX
+#define FT_ULLONG_MAX ULLONG_MAX
+#endif
/**************************************************************************
diff --git a/src/3rdparty/freetype/include/freetype/config/integer-types.h b/src/3rdparty/freetype/include/freetype/config/integer-types.h
index a0ca0c95e2..d9d2638d1e 100644
--- a/src/3rdparty/freetype/include/freetype/config/integer-types.h
+++ b/src/3rdparty/freetype/include/freetype/config/integer-types.h
@@ -4,7 +4,7 @@
*
* FreeType integer types definitions.
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -60,6 +60,18 @@
#endif /* !defined(FT_SIZEOF_LONG) */
+#ifndef FT_SIZEOF_LONG_LONG
+
+ /* The size of a `long long` type if available */
+#if defined( FT_ULLONG_MAX ) && FT_ULLONG_MAX >= 0xFFFFFFFFFFFFFFFFULL
+#define FT_SIZEOF_LONG_LONG ( 64 / FT_CHAR_BIT )
+#else
+#define FT_SIZEOF_LONG_LONG 0
+#endif
+
+#endif /* !defined(FT_SIZEOF_LONG_LONG) */
+
+
/**************************************************************************
*
* @section:
@@ -174,15 +186,17 @@
#endif
- /* determine whether we have a 64-bit `int` type for platforms without */
- /* Autoconf */
+ /* determine whether we have a 64-bit integer type */
#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
- /* `FT_LONG64` must be defined if a 64-bit type is available */
-#define FT_LONG64
#define FT_INT64 long
#define FT_UINT64 unsigned long
+#elif FT_SIZEOF_LONG_LONG >= ( 64 / FT_CHAR_BIT )
+
+#define FT_INT64 long long int
+#define FT_UINT64 unsigned long long int
+
/**************************************************************************
*
* A 64-bit data type may create compilation problems if you compile in
@@ -192,16 +206,9 @@
*/
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
-#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
-
-#define FT_LONG64
-#define FT_INT64 long long int
-#define FT_UINT64 unsigned long long int
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
/* this compiler provides the `__int64` type */
-#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
@@ -211,32 +218,30 @@
/* to test the compiler version. */
/* this compiler provides the `__int64` type */
-#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
-#elif defined( __WATCOMC__ ) /* Watcom C++ */
+#elif defined( __WATCOMC__ ) && __WATCOMC__ >= 1100 /* Watcom C++ */
- /* Watcom doesn't provide 64-bit data types */
+#define FT_INT64 long long int
+#define FT_UINT64 unsigned long long int
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
-#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( __GNUC__ )
/* GCC provides the `long long` type */
-#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
-#endif /* __STDC_VERSION__ >= 199901L */
+#endif /* !__STDC__ */
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
-#ifdef FT_LONG64
+#ifdef FT_INT64
typedef FT_INT64 FT_Int64;
typedef FT_UINT64 FT_UInt64;
#endif
diff --git a/src/3rdparty/freetype/include/freetype/config/mac-support.h b/src/3rdparty/freetype/include/freetype/config/mac-support.h
index 94867088e9..e42c9fe410 100644
--- a/src/3rdparty/freetype/include/freetype/config/mac-support.h
+++ b/src/3rdparty/freetype/include/freetype/config/mac-support.h
@@ -4,7 +4,7 @@
*
* Mac/OS X support configuration header.
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/config/public-macros.h b/src/3rdparty/freetype/include/freetype/config/public-macros.h
index 6aa673e807..0074134f1d 100644
--- a/src/3rdparty/freetype/include/freetype/config/public-macros.h
+++ b/src/3rdparty/freetype/include/freetype/config/public-macros.h
@@ -4,7 +4,7 @@
*
* Define a set of compiler macros used in public FreeType headers.
*
- * Copyright (C) 2020 by
+ * Copyright (C) 2020-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -103,6 +103,7 @@ FT_BEGIN_HEADER
*/
#define FT_EXPORT( x ) FT_PUBLIC_FUNCTION_ATTRIBUTE extern x
+
/*
* `FT_UNUSED` indicates that a given parameter is not used -- this is
* only used to get rid of unpleasant compiler warnings.
@@ -115,6 +116,23 @@ FT_BEGIN_HEADER
#endif
+ /*
+ * Support for casts in both C and C++.
+ */
+#ifdef __cplusplus
+#define FT_STATIC_CAST( type, var ) static_cast<type>(var)
+#define FT_REINTERPRET_CAST( type, var ) reinterpret_cast<type>(var)
+
+#define FT_STATIC_BYTE_CAST( type, var ) \
+ static_cast<type>( static_cast<unsigned char>( var ) )
+#else
+#define FT_STATIC_CAST( type, var ) (type)(var)
+#define FT_REINTERPRET_CAST( type, var ) (type)(var)
+
+#define FT_STATIC_BYTE_CAST( type, var ) (type)(unsigned char)(var)
+#endif
+
+
FT_END_HEADER
#endif /* FREETYPE_CONFIG_PUBLIC_MACROS_H_ */
diff --git a/src/3rdparty/freetype/include/freetype/freetype.h b/src/3rdparty/freetype/include/freetype/freetype.h
index be191f5aa0..aa1a4fe389 100644
--- a/src/3rdparty/freetype/include/freetype/freetype.h
+++ b/src/3rdparty/freetype/include/freetype/freetype.h
@@ -4,7 +4,7 @@
*
* FreeType high-level API and common types (specification only).
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -33,6 +33,34 @@ FT_BEGIN_HEADER
/**************************************************************************
*
* @section:
+ * preamble
+ *
+ * @title:
+ * Preamble
+ *
+ * @abstract:
+ * What FreeType is and isn't
+ *
+ * @description:
+ * FreeType is a library that provides access to glyphs in font files. It
+ * scales the glyph images and their metrics to a requested size, and it
+ * rasterizes the glyph images to produce pixel or subpixel alpha coverage
+ * bitmaps.
+ *
+ * Note that FreeType is _not_ a text layout engine. You have to use
+ * higher-level libraries like HarfBuzz, Pango, or ICU for that.
+ *
+ * Note also that FreeType does _not_ perform alpha blending or
+ * compositing the resulting bitmaps or pixmaps by itself. Use your
+ * favourite graphics library (for example, Cairo or Skia) to further
+ * process FreeType's output.
+ *
+ */
+
+
+ /**************************************************************************
+ *
+ * @section:
* header_inclusion
*
* @title:
@@ -125,6 +153,9 @@ FT_BEGIN_HEADER
* FT_FACE_FLAG_GLYPH_NAMES
* FT_FACE_FLAG_EXTERNAL_STREAM
* FT_FACE_FLAG_HINTER
+ * FT_FACE_FLAG_SVG
+ * FT_FACE_FLAG_SBIX
+ * FT_FACE_FLAG_SBIX_OVERLAY
*
* FT_HAS_HORIZONTAL
* FT_HAS_VERTICAL
@@ -133,6 +164,9 @@ FT_BEGIN_HEADER
* FT_HAS_GLYPH_NAMES
* FT_HAS_COLOR
* FT_HAS_MULTIPLE_MASTERS
+ * FT_HAS_SVG
+ * FT_HAS_SBIX
+ * FT_HAS_SBIX_OVERLAY
*
* FT_IS_SFNT
* FT_IS_SCALABLE
@@ -176,6 +210,7 @@ FT_BEGIN_HEADER
* FT_Size_RequestRec
* FT_Size_Request
* FT_Set_Transform
+ * FT_Get_Transform
* FT_Load_Glyph
* FT_Get_Char_Index
* FT_Get_First_Char
@@ -196,6 +231,7 @@ FT_BEGIN_HEADER
* FT_LOAD_NO_SCALE
* FT_LOAD_NO_HINTING
* FT_LOAD_NO_BITMAP
+ * FT_LOAD_SBITS_ONLY
* FT_LOAD_NO_AUTOHINT
* FT_LOAD_COLOR
*
@@ -493,13 +529,15 @@ FT_BEGIN_HEADER
* size.
*
* @note:
- * An @FT_Face has one _active_ @FT_Size object that is used by functions
- * like @FT_Load_Glyph to determine the scaling transformation that in
- * turn is used to load and hint glyphs and metrics.
+ * An @FT_Face has one _active_ `FT_Size` object that is used by
+ * functions like @FT_Load_Glyph to determine the scaling transformation
+ * that in turn is used to load and hint glyphs and metrics.
*
- * You can use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size
+ * A newly created `FT_Size` object contains only meaningless zero values.
+ * You must use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size
* or even @FT_Select_Size to change the content (i.e., the scaling
- * values) of the active @FT_Size.
+ * values) of the active `FT_Size`. Otherwise, the scaling and hinting
+ * will not be performed.
*
* You can use @FT_New_Size to create additional size objects for a given
* @FT_Face, but they won't be used by other functions until you activate
@@ -587,11 +625,12 @@ FT_BEGIN_HEADER
*/
#ifndef FT_ENC_TAG
-#define FT_ENC_TAG( value, a, b, c, d ) \
- value = ( ( (FT_UInt32)(a) << 24 ) | \
- ( (FT_UInt32)(b) << 16 ) | \
- ( (FT_UInt32)(c) << 8 ) | \
- (FT_UInt32)(d) )
+
+#define FT_ENC_TAG( value, a, b, c, d ) \
+ value = ( ( FT_STATIC_BYTE_CAST( FT_UInt32, a ) << 24 ) | \
+ ( FT_STATIC_BYTE_CAST( FT_UInt32, b ) << 16 ) | \
+ ( FT_STATIC_BYTE_CAST( FT_UInt32, c ) << 8 ) | \
+ FT_STATIC_BYTE_CAST( FT_UInt32, d ) )
#endif /* FT_ENC_TAG */
@@ -701,11 +740,16 @@ FT_BEGIN_HEADER
* Same as FT_ENCODING_JOHAB. Deprecated.
*
* @note:
- * By default, FreeType enables a Unicode charmap and tags it with
- * `FT_ENCODING_UNICODE` when it is either provided or can be generated
- * from PostScript glyph name dictionaries in the font file. All other
- * encodings are considered legacy and tagged only if explicitly defined
- * in the font file. Otherwise, `FT_ENCODING_NONE` is used.
+ * When loading a font, FreeType makes a Unicode charmap active if
+ * possible (either if the font provides such a charmap, or if FreeType
+ * can synthesize one from PostScript glyph name dictionaries; in either
+ * case, the charmap is tagged with `FT_ENCODING_UNICODE`). If such a
+ * charmap is synthesized, it is placed at the first position of the
+ * charmap array.
+ *
+ * All other encodings are considered legacy and tagged only if
+ * explicitly defined in the font file. Otherwise, `FT_ENCODING_NONE` is
+ * used.
*
* `FT_ENCODING_NONE` is set by the BDF and PCF drivers if the charmap is
* neither Unicode nor ISO-8859-1 (otherwise it is set to
@@ -1193,6 +1237,19 @@ FT_BEGIN_HEADER
* altered with @FT_Set_MM_Design_Coordinates,
* @FT_Set_Var_Design_Coordinates, or @FT_Set_Var_Blend_Coordinates.
* This flag is unset by a call to @FT_Set_Named_Instance.
+ *
+ * FT_FACE_FLAG_SVG ::
+ * [Since 2.12] The face has an 'SVG~' OpenType table.
+ *
+ * FT_FACE_FLAG_SBIX ::
+ * [Since 2.12] The face has an 'sbix' OpenType table *and* outlines.
+ * For such fonts, @FT_FACE_FLAG_SCALABLE is not set by default to
+ * retain backward compatibility.
+ *
+ * FT_FACE_FLAG_SBIX_OVERLAY ::
+ * [Since 2.12] The face has an 'sbix' OpenType table where outlines
+ * should be drawn on top of bitmap strikes.
+ *
*/
#define FT_FACE_FLAG_SCALABLE ( 1L << 0 )
#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 )
@@ -1210,6 +1267,9 @@ FT_BEGIN_HEADER
#define FT_FACE_FLAG_TRICKY ( 1L << 13 )
#define FT_FACE_FLAG_COLOR ( 1L << 14 )
#define FT_FACE_FLAG_VARIATION ( 1L << 15 )
+#define FT_FACE_FLAG_SVG ( 1L << 16 )
+#define FT_FACE_FLAG_SBIX ( 1L << 17 )
+#define FT_FACE_FLAG_SBIX_OVERLAY ( 1L << 18 )
/**************************************************************************
@@ -1452,6 +1512,124 @@ FT_BEGIN_HEADER
/**************************************************************************
*
+ * @macro:
+ * FT_HAS_SVG
+ *
+ * @description:
+ * A macro that returns true whenever a face object contains an 'SVG~'
+ * OpenType table.
+ *
+ * @since:
+ * 2.12
+ */
+#define FT_HAS_SVG( face ) \
+ ( !!( (face)->face_flags & FT_FACE_FLAG_SVG ) )
+
+
+ /**************************************************************************
+ *
+ * @macro:
+ * FT_HAS_SBIX
+ *
+ * @description:
+ * A macro that returns true whenever a face object contains an 'sbix'
+ * OpenType table *and* outline glyphs.
+ *
+ * Currently, FreeType only supports bitmap glyphs in PNG format for this
+ * table (i.e., JPEG and TIFF formats are unsupported, as are
+ * Apple-specific formats not part of the OpenType specification).
+ *
+ * @note:
+ * For backward compatibility, a font with an 'sbix' table is treated as
+ * a bitmap-only face. Using @FT_Open_Face with
+ * @FT_PARAM_TAG_IGNORE_SBIX, an application can switch off 'sbix'
+ * handling so that the face is treated as an ordinary outline font with
+ * scalable outlines.
+ *
+ * Here is some pseudo code that roughly illustrates how to implement
+ * 'sbix' handling according to the OpenType specification.
+ *
+ * ```
+ * if ( FT_HAS_SBIX( face ) )
+ * {
+ * // open font as a scalable one without sbix handling
+ * FT_Face face2;
+ * FT_Parameter param = { FT_PARAM_TAG_IGNORE_SBIX, NULL };
+ * FT_Open_Args args = { FT_OPEN_PARAMS | ...,
+ * ...,
+ * 1, &param };
+ *
+ *
+ * FT_Open_Face( library, &args, 0, &face2 );
+ *
+ * <sort `face->available_size` as necessary into
+ * `preferred_sizes`[*]>
+ *
+ * for ( i = 0; i < face->num_fixed_sizes; i++ )
+ * {
+ * size = preferred_sizes[i].size;
+ *
+ * error = FT_Set_Pixel_Sizes( face, size, size );
+ * <error handling omitted>
+ *
+ * // check whether we have a glyph in a bitmap strike
+ * error = FT_Load_Glyph( face,
+ * glyph_index,
+ * FT_LOAD_SBITS_ONLY |
+ * FT_LOAD_BITMAP_METRICS_ONLY );
+ * if ( error == FT_Err_Invalid_Argument )
+ * continue;
+ * else if ( error )
+ * <other error handling omitted>
+ * else
+ * break;
+ * }
+ *
+ * if ( i != face->num_fixed_sizes )
+ * <load embedded bitmap with `FT_Load_Glyph`,
+ * scale it, display it, etc.>
+ *
+ * if ( i == face->num_fixed_sizes ||
+ * FT_HAS_SBIX_OVERLAY( face ) )
+ * <use `face2` to load outline glyph with `FT_Load_Glyph`,
+ * scale it, display it on top of the bitmap, etc.>
+ * }
+ * ```
+ *
+ * [*] Assuming a target value of 400dpi and available strike sizes 100,
+ * 200, 300, and 400dpi, a possible order might be [400, 200, 300, 100]:
+ * scaling 200dpi to 400dpi usually gives better results than scaling
+ * 300dpi to 400dpi; it is also much faster. However, scaling 100dpi to
+ * 400dpi can yield a too pixelated result, thus the preference might be
+ * 300dpi over 100dpi.
+ *
+ * @since:
+ * 2.12
+ */
+#define FT_HAS_SBIX( face ) \
+ ( !!( (face)->face_flags & FT_FACE_FLAG_SBIX ) )
+
+
+ /**************************************************************************
+ *
+ * @macro:
+ * FT_HAS_SBIX_OVERLAY
+ *
+ * @description:
+ * A macro that returns true whenever a face object contains an 'sbix'
+ * OpenType table with bit~1 in its `flags` field set, instructing the
+ * application to overlay the bitmap strike with the corresponding
+ * outline glyph. See @FT_HAS_SBIX for pseudo code how to use it.
+ *
+ * @since:
+ * 2.12
+ */
+#define FT_HAS_SBIX_OVERLAY( face ) \
+ ( !!( (face)->face_flags & FT_FACE_FLAG_SBIX_OVERLAY ) )
+
+
+ /**************************************************************************
+ *
* @enum:
* FT_STYLE_FLAG_XXX
*
@@ -2065,7 +2243,8 @@ FT_BEGIN_HEADER
* The size in bytes of the file in memory.
*
* pathname ::
- * A pointer to an 8-bit file pathname. The pointer is not owned by
+ * A pointer to an 8-bit file pathname, which must be a C~string (i.e.,
+ * no null bytes except at the very end). The pointer is not owned by
* FreeType.
*
* stream ::
@@ -2084,8 +2263,7 @@ FT_BEGIN_HEADER
* Extra parameters passed to the font driver when opening a new face.
*
* @note:
- * The stream type is determined by the contents of `flags` that are
- * tested in the following order by @FT_Open_Face:
+ * The stream type is determined by the contents of `flags`:
*
* If the @FT_OPEN_MEMORY bit is set, assume that this is a memory file
* of `memory_size` bytes, located at `memory_address`. The data are not
@@ -2098,6 +2276,9 @@ FT_BEGIN_HEADER
* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a
* normal file and use `pathname` to open it.
*
+ * If none of the above bits are set or if multiple are set at the same
+ * time, the flags are invalid and @FT_Open_Face fails.
+ *
* If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to open
* the file with the driver whose handler is in `driver`.
*
@@ -2150,6 +2331,13 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success.
*
* @note:
+ * The `pathname` string should be recognizable as such by a standard
+ * `fopen` call on your system; in particular, this means that `pathname`
+ * must not contain null bytes. If that is not sufficient to address all
+ * file name possibilities (for example, to handle wide character file
+ * names on Windows in UTF-16 encoding) you might use @FT_Open_Face to
+ * pass a memory array or a stream object instead.
+ *
* Use @FT_Done_Face to destroy the created @FT_Face object (along with
* its slot and sizes).
*/
@@ -2270,6 +2458,10 @@ FT_BEGIN_HEADER
* See the discussion of reference counters in the description of
* @FT_Reference_Face.
*
+ * If `FT_OPEN_STREAM` is set in `args->flags`, the stream in
+ * `args->stream` is automatically closed before this function returns
+ * any error (including `FT_Err_Invalid_Argument`).
+ *
* @example:
* To loop over all faces, use code similar to the following snippet
* (omitting the error handling).
@@ -2428,6 +2620,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.4.2
+ *
*/
FT_EXPORT( FT_Error )
FT_Reference_Face( FT_Face face );
@@ -2652,8 +2845,8 @@ FT_BEGIN_HEADER
* 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'.
*
* Contrary to @FT_Set_Char_Size, this function doesn't have special code
- * to normalize zero-valued widths, heights, or resolutions (which lead
- * to errors in most cases).
+ * to normalize zero-valued widths, heights, or resolutions, which are
+ * treated as @FT_LOAD_NO_SCALE.
*
* Don't use this function if you are using the FreeType cache API.
*/
@@ -2769,7 +2962,7 @@ FT_BEGIN_HEADER
*
* load_flags ::
* A flag indicating what to load for this glyph. The @FT_LOAD_XXX
- * constants can be used to control the glyph loading process (e.g.,
+ * flags can be used to control the glyph loading process (e.g.,
* whether the outline should be scaled, whether to load bitmaps or
* not, whether to hint the outline, etc).
*
@@ -2777,8 +2970,10 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success.
*
* @note:
- * The loaded glyph may be transformed. See @FT_Set_Transform for the
- * details.
+ * For proper scaling and hinting, the active @FT_Size object owned by
+ * the face has to be meaningfully initialized by calling
+ * @FT_Set_Char_Size before this function, for example. The loaded
+ * glyph may be transformed. See @FT_Set_Transform for the details.
*
* For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument` is returned
* for invalid CID values (this is, for CID values that don't have a
@@ -2868,13 +3063,15 @@ FT_BEGIN_HEADER
*
* FT_LOAD_NO_SCALE ::
* Don't scale the loaded outline glyph but keep it in font units.
+ * This flag is also assumed if @FT_Size owned by the face was not
+ * properly initialized.
*
* This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and
* unsets @FT_LOAD_RENDER.
*
* If the font is 'tricky' (see @FT_FACE_FLAG_TRICKY for more), using
* `FT_LOAD_NO_SCALE` usually yields meaningless outlines because the
- * subglyphs must be scaled and positioned with hinting instructions.
+ * subglyphs must be scaled and positioned with hinting instructions.
* This can be solved by loading the font without `FT_LOAD_NO_SCALE`
* and setting the character size to `font->units_per_EM`.
*
@@ -2898,6 +3095,15 @@ FT_BEGIN_HEADER
*
* @FT_LOAD_NO_SCALE always sets this flag.
*
+ * FT_LOAD_SBITS_ONLY ::
+ * [Since 2.12] This is the opposite of @FT_LOAD_NO_BITMAP, more or
+ * less: @FT_Load_Glyph returns `FT_Err_Invalid_Argument` if the face
+ * contains a bitmap strike for the given size (or the strike selected
+ * by @FT_Select_Size) but there is no glyph in the strike.
+ *
+ * Note that this load flag was part of FreeType since version 2.0.6
+ * but previously tagged as internal.
+ *
* FT_LOAD_VERTICAL_LAYOUT ::
* Load the glyph for vertical text layout. In particular, the
* `advance` value in the @FT_GlyphSlotRec structure is set to the
@@ -2954,21 +3160,31 @@ FT_BEGIN_HEADER
* Disable the auto-hinter. See also the note below.
*
* FT_LOAD_COLOR ::
- * Load colored glyphs. There are slight differences depending on the
- * font format.
- *
- * [Since 2.5] Load embedded color bitmap images. The resulting color
- * bitmaps, if available, will have the @FT_PIXEL_MODE_BGRA format,
- * with pre-multiplied color channels. If the flag is not set and
- * color bitmaps are found, they are converted to 256-level gray
- * bitmaps, using the @FT_PIXEL_MODE_GRAY format.
- *
- * [Since 2.10, experimental] If the glyph index contains an entry in
+ * Load colored glyphs. FreeType searches in the following order;
+ * there are slight differences depending on the font format.
+ *
+ * [Since 2.5] Load embedded color bitmap images (provided
+ * @FT_LOAD_NO_BITMAP is not set). The resulting color bitmaps, if
+ * available, have the @FT_PIXEL_MODE_BGRA format, with pre-multiplied
+ * color channels. If the flag is not set and color bitmaps are found,
+ * they are converted to 256-level gray bitmaps, using the
+ * @FT_PIXEL_MODE_GRAY format.
+ *
+ * [Since 2.12] If the glyph index maps to an entry in the face's
+ * 'SVG~' table, load the associated SVG document from this table and
+ * set the `format` field of @FT_GlyphSlotRec to @FT_GLYPH_FORMAT_SVG.
+ * Note that FreeType itself can't render SVG documents; however, the
+ * library provides hooks to seamlessly integrate an external renderer.
+ * See sections @ot_svg_driver and @svg_fonts for more.
+ *
+ * [Since 2.10, experimental] If the glyph index maps to an entry in
* the face's 'COLR' table with a 'CPAL' palette table (as defined in
* the OpenType specification), make @FT_Render_Glyph provide a default
* blending of the color glyph layers associated with the glyph index,
* using the same bitmap format as embedded color bitmap images. This
- * is mainly for convenience; for full control of color layers use
+ * is mainly for convenience and works only for glyphs in 'COLR' v0
+ * tables (or glyphs in 'COLR' v1 tables that exclusively use v0
+ * features). For full control of color layers use
* @FT_Get_Color_Glyph_Layer and FreeType's color functions like
* @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering
* so that the client application can handle blending by itself.
@@ -3019,19 +3235,20 @@ FT_BEGIN_HEADER
*
*/
#define FT_LOAD_DEFAULT 0x0
-#define FT_LOAD_NO_SCALE ( 1L << 0 )
-#define FT_LOAD_NO_HINTING ( 1L << 1 )
-#define FT_LOAD_RENDER ( 1L << 2 )
-#define FT_LOAD_NO_BITMAP ( 1L << 3 )
-#define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 )
-#define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 )
-#define FT_LOAD_CROP_BITMAP ( 1L << 6 )
-#define FT_LOAD_PEDANTIC ( 1L << 7 )
-#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 )
+#define FT_LOAD_NO_SCALE ( 1L << 0 )
+#define FT_LOAD_NO_HINTING ( 1L << 1 )
+#define FT_LOAD_RENDER ( 1L << 2 )
+#define FT_LOAD_NO_BITMAP ( 1L << 3 )
+#define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 )
+#define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 )
+#define FT_LOAD_CROP_BITMAP ( 1L << 6 )
+#define FT_LOAD_PEDANTIC ( 1L << 7 )
+#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 )
#define FT_LOAD_NO_RECURSE ( 1L << 10 )
#define FT_LOAD_IGNORE_TRANSFORM ( 1L << 11 )
#define FT_LOAD_MONOCHROME ( 1L << 12 )
#define FT_LOAD_LINEAR_DESIGN ( 1L << 13 )
+#define FT_LOAD_SBITS_ONLY ( 1L << 14 )
#define FT_LOAD_NO_AUTOHINT ( 1L << 15 )
/* Bits 16-19 are used by `FT_LOAD_TARGET_` */
#define FT_LOAD_COLOR ( 1L << 20 )
@@ -3041,8 +3258,8 @@ FT_BEGIN_HEADER
/* */
/* used internally only by certain font drivers */
-#define FT_LOAD_ADVANCE_ONLY ( 1L << 8 )
-#define FT_LOAD_SBITS_ONLY ( 1L << 14 )
+#define FT_LOAD_ADVANCE_ONLY ( 1L << 8 )
+#define FT_LOAD_SVG_ONLY ( 1L << 23 )
/**************************************************************************
@@ -3132,7 +3349,7 @@ FT_BEGIN_HEADER
* necessary to empty the cache after a mode switch to avoid false hits.
*
*/
-#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 )
+#define FT_LOAD_TARGET_( x ) ( FT_STATIC_CAST( FT_Int32, (x) & 15 ) << 16 )
#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )
@@ -3151,7 +3368,8 @@ FT_BEGIN_HEADER
* @FT_LOAD_TARGET_XXX value.
*
*/
-#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
+#define FT_LOAD_TARGET_MODE( x ) \
+ FT_STATIC_CAST( FT_Render_Mode, ( (x) >> 16 ) & 15 )
/**************************************************************************
@@ -3172,11 +3390,12 @@ FT_BEGIN_HEADER
* A pointer to the transformation's 2x2 matrix. Use `NULL` for the
* identity matrix.
* delta ::
- * A pointer to the translation vector. Use `NULL` for the null vector.
+ * A pointer to the translation vector. Use `NULL` for the null
+ * vector.
*
* @note:
* This function is provided as a convenience, but keep in mind that
- * @FT_Matrix coefficients are only 16.16 fixed point values, which can
+ * @FT_Matrix coefficients are only 16.16 fixed-point values, which can
* limit the accuracy of the results. Using floating-point computations
* to perform the transform directly in client code instead will always
* yield better numbers.
@@ -3197,6 +3416,39 @@ FT_BEGIN_HEADER
/**************************************************************************
*
+ * @function:
+ * FT_Get_Transform
+ *
+ * @description:
+ * Return the transformation that is applied to glyph images when they
+ * are loaded into a glyph slot through @FT_Load_Glyph. See
+ * @FT_Set_Transform for more details.
+ *
+ * @input:
+ * face ::
+ * A handle to the source face object.
+ *
+ * @output:
+ * matrix ::
+ * A pointer to a transformation's 2x2 matrix. Set this to NULL if you
+ * are not interested in the value.
+ *
+ * delta ::
+ * A pointer a translation vector. Set this to NULL if you are not
+ * interested in the value.
+ *
+ * @since:
+ * 2.11
+ *
+ */
+ FT_EXPORT( void )
+ FT_Get_Transform( FT_Face face,
+ FT_Matrix* matrix,
+ FT_Vector* delta );
+
+
+ /**************************************************************************
+ *
* @enum:
* FT_Render_Mode
*
@@ -3213,6 +3465,10 @@ FT_BEGIN_HEADER
* correction to correctly render non-monochrome glyph bitmaps onto a
* surface; see @FT_Render_Glyph.
*
+ * The @FT_RENDER_MODE_SDF is a special render mode that uses up to 256
+ * distance values, indicating the signed distance from the grid position
+ * to the nearest outline.
+ *
* @values:
* FT_RENDER_MODE_NORMAL ::
* Default render mode; it corresponds to 8-bit anti-aliased bitmaps.
@@ -3238,11 +3494,87 @@ FT_BEGIN_HEADER
* bitmaps that are 3~times the height of the original glyph outline in
* pixels and use the @FT_PIXEL_MODE_LCD_V mode.
*
+ * FT_RENDER_MODE_SDF ::
+ * This mode corresponds to 8-bit, single-channel signed distance field
+ * (SDF) bitmaps. Each pixel in the SDF grid is the value from the
+ * pixel's position to the nearest glyph's outline. The distances are
+ * calculated from the center of the pixel and are positive if they are
+ * filled by the outline (i.e., inside the outline) and negative
+ * otherwise. Check the note below on how to convert the output values
+ * to usable data.
+ *
* @note:
* The selected render mode only affects vector glyphs of a font.
* Embedded bitmaps often have a different pixel mode like
* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them
* into 8-bit pixmaps.
+ *
+ * For @FT_RENDER_MODE_SDF the output bitmap buffer contains normalized
+ * distances that are packed into unsigned 8-bit values. To get pixel
+ * values in floating point representation use the following pseudo-C
+ * code for the conversion.
+ *
+ * ```
+ * // Load glyph and render using FT_RENDER_MODE_SDF,
+ * // then use the output buffer as follows.
+ *
+ * ...
+ * FT_Byte buffer = glyph->bitmap->buffer;
+ *
+ *
+ * for pixel in buffer
+ * {
+ * // `sd` is the signed distance and `spread` is the current spread;
+ * // the default spread is 2 and can be changed.
+ *
+ * float sd = (float)pixel - 128.0f;
+ *
+ *
+ * // Convert to pixel values.
+ * sd = ( sd / 128.0f ) * spread;
+ *
+ * // Store `sd` in a buffer or use as required.
+ * }
+ *
+ * ```
+ *
+ * FreeType has two rasterizers for generating SDF, namely:
+ *
+ * 1. `sdf` for generating SDF directly from glyph's outline, and
+ *
+ * 2. `bsdf` for generating SDF from rasterized bitmaps.
+ *
+ * Depending on the glyph type (i.e., outline or bitmap), one of the two
+ * rasterizers is chosen at runtime and used for generating SDFs. To
+ * force the use of `bsdf` you should render the glyph with any of the
+ * FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and
+ * then re-render with `FT_RENDER_MODE_SDF`.
+ *
+ * There are some issues with stability and possible failures of the SDF
+ * renderers (specifically `sdf`).
+ *
+ * 1. The `sdf` rasterizer is sensitive to really small features (e.g.,
+ * sharp turns that are less than 1~pixel) and imperfections in the
+ * glyph's outline, causing artifacts in the final output.
+ *
+ * 2. The `sdf` rasterizer has limited support for handling intersecting
+ * contours and *cannot* handle self-intersecting contours whatsoever.
+ * Self-intersection happens when a single connected contour intersect
+ * itself at some point; having these in your font definitely pose a
+ * problem to the rasterizer and cause artifacts, too.
+ *
+ * 3. Generating SDF for really small glyphs may result in undesirable
+ * output; the pixel grid (which stores distance information) becomes
+ * too coarse.
+ *
+ * 4. Since the output buffer is normalized, precision at smaller spreads
+ * is greater than precision at larger spread values because the
+ * output range of [0..255] gets mapped to a smaller SDF range. A
+ * spread of~2 should be sufficient in most cases.
+ *
+ * Points (1) and (2) can be avoided by using the `bsdf` rasterizer,
+ * which is more stable than the `sdf` rasterizer in general.
+ *
*/
typedef enum FT_Render_Mode_
{
@@ -3251,6 +3583,7 @@ FT_BEGIN_HEADER
FT_RENDER_MODE_MONO,
FT_RENDER_MODE_LCD,
FT_RENDER_MODE_LCD_V,
+ FT_RENDER_MODE_SDF,
FT_RENDER_MODE_MAX
@@ -3282,7 +3615,7 @@ FT_BEGIN_HEADER
* @FT_Render_Mode for a list of possible values.
*
* If @FT_RENDER_MODE_NORMAL is used, a previous call of @FT_Load_Glyph
- * with flag @FT_LOAD_COLOR makes FT_Render_Glyph provide a default
+ * with flag @FT_LOAD_COLOR makes `FT_Render_Glyph` provide a default
* blending of colored glyph layers associated with the current glyph
* slot (provided the font contains such layers) instead of rendering
* the glyph slot's outline. This is an experimental feature; see
@@ -3292,9 +3625,6 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success.
*
* @note:
- * To get meaningful results, font scaling values must be set with
- * functions like @FT_Set_Char_Size before calling `FT_Render_Glyph`.
- *
* When FreeType outputs a bitmap of a glyph, it really outputs an alpha
* coverage map. If a pixel is completely covered by a filled-in
* outline, the bitmap contains 0xFF at that pixel, meaning that
@@ -3338,7 +3668,8 @@ FT_BEGIN_HEADER
*
* which is known as the OVER operator.
*
- * To correctly composite an antialiased pixel of a glyph onto a surface,
+ * To correctly composite an anti-aliased pixel of a glyph onto a
+ * surface,
*
* 1. take the foreground and background colors (e.g., in sRGB space)
* and apply gamma to get them in a linear space,
@@ -4018,168 +4349,6 @@ FT_BEGIN_HEADER
/**************************************************************************
*
* @section:
- * layer_management
- *
- * @title:
- * Glyph Layer Management
- *
- * @abstract:
- * Retrieving and manipulating OpenType's 'COLR' table data.
- *
- * @description:
- * The functions described here allow access of colored glyph layer data
- * in OpenType's 'COLR' tables.
- */
-
-
- /**************************************************************************
- *
- * @struct:
- * FT_LayerIterator
- *
- * @description:
- * This iterator object is needed for @FT_Get_Color_Glyph_Layer.
- *
- * @fields:
- * num_layers ::
- * The number of glyph layers for the requested glyph index. Will be
- * set by @FT_Get_Color_Glyph_Layer.
- *
- * layer ::
- * The current layer. Will be set by @FT_Get_Color_Glyph_Layer.
- *
- * p ::
- * An opaque pointer into 'COLR' table data. The caller must set this
- * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer.
- */
- typedef struct FT_LayerIterator_
- {
- FT_UInt num_layers;
- FT_UInt layer;
- FT_Byte* p;
-
- } FT_LayerIterator;
-
-
- /**************************************************************************
- *
- * @function:
- * FT_Get_Color_Glyph_Layer
- *
- * @description:
- * This is an interface to the 'COLR' table in OpenType fonts to
- * iteratively retrieve the colored glyph layers associated with the
- * current glyph slot.
- *
- * https://docs.microsoft.com/en-us/typography/opentype/spec/colr
- *
- * The glyph layer data for a given glyph index, if present, provides an
- * alternative, multi-color glyph representation: Instead of rendering
- * the outline or bitmap with the given glyph index, glyphs with the
- * indices and colors returned by this function are rendered layer by
- * layer.
- *
- * The returned elements are ordered in the z~direction from bottom to
- * top; the 'n'th element should be rendered with the associated palette
- * color and blended on top of the already rendered layers (elements 0,
- * 1, ..., n-1).
- *
- * @input:
- * face ::
- * A handle to the parent face object.
- *
- * base_glyph ::
- * The glyph index the colored glyph layers are associated with.
- *
- * @inout:
- * iterator ::
- * An @FT_LayerIterator object. For the first call you should set
- * `iterator->p` to `NULL`. For all following calls, simply use the
- * same object again.
- *
- * @output:
- * aglyph_index ::
- * The glyph index of the current layer.
- *
- * acolor_index ::
- * The color index into the font face's color palette of the current
- * layer. The value 0xFFFF is special; it doesn't reference a palette
- * entry but indicates that the text foreground color should be used
- * instead (to be set up by the application outside of FreeType).
- *
- * The color palette can be retrieved with @FT_Palette_Select.
- *
- * @return:
- * Value~1 if everything is OK. If there are no more layers (or if there
- * are no layers at all), value~0 gets returned. In case of an error,
- * value~0 is returned also.
- *
- * @note:
- * This function is necessary if you want to handle glyph layers by
- * yourself. In particular, functions that operate with @FT_GlyphRec
- * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access
- * to this information.
- *
- * Note that @FT_Render_Glyph is able to handle colored glyph layers
- * automatically if the @FT_LOAD_COLOR flag is passed to a previous call
- * to @FT_Load_Glyph. [This is an experimental feature.]
- *
- * @example:
- * ```
- * FT_Color* palette;
- * FT_LayerIterator iterator;
- *
- * FT_Bool have_layers;
- * FT_UInt layer_glyph_index;
- * FT_UInt layer_color_index;
- *
- *
- * error = FT_Palette_Select( face, palette_index, &palette );
- * if ( error )
- * palette = NULL;
- *
- * iterator.p = NULL;
- * have_layers = FT_Get_Color_Glyph_Layer( face,
- * glyph_index,
- * &layer_glyph_index,
- * &layer_color_index,
- * &iterator );
- *
- * if ( palette && have_layers )
- * {
- * do
- * {
- * FT_Color layer_color;
- *
- *
- * if ( layer_color_index == 0xFFFF )
- * layer_color = text_foreground_color;
- * else
- * layer_color = palette[layer_color_index];
- *
- * // Load and render glyph `layer_glyph_index', then
- * // blend resulting pixmap (using color `layer_color')
- * // with previously created pixmaps.
- *
- * } while ( FT_Get_Color_Glyph_Layer( face,
- * glyph_index,
- * &layer_glyph_index,
- * &layer_color_index,
- * &iterator ) );
- * }
- * ```
- */
- FT_EXPORT( FT_Bool )
- FT_Get_Color_Glyph_Layer( FT_Face face,
- FT_UInt base_glyph,
- FT_UInt *aglyph_index,
- FT_UInt *acolor_index,
- FT_LayerIterator* iterator );
-
-
- /**************************************************************************
- *
- * @section:
* base_interface
*
*/
@@ -4267,6 +4436,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.8
+ *
*/
FT_EXPORT( FT_UShort )
FT_Get_FSType_Flags( FT_Face face );
@@ -4360,6 +4530,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.6
+ *
*/
FT_EXPORT( FT_UInt )
FT_Face_GetCharVariantIndex( FT_Face face,
@@ -4396,6 +4567,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.6
+ *
*/
FT_EXPORT( FT_Int )
FT_Face_GetCharVariantIsDefault( FT_Face face,
@@ -4427,6 +4599,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.6
+ *
*/
FT_EXPORT( FT_UInt32* )
FT_Face_GetVariantSelectors( FT_Face face );
@@ -4460,6 +4633,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.6
+ *
*/
FT_EXPORT( FT_UInt32* )
FT_Face_GetVariantsOfChar( FT_Face face,
@@ -4494,6 +4668,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.6
+ *
*/
FT_EXPORT( FT_UInt32* )
FT_Face_GetCharsOfVariant( FT_Face face,
@@ -4766,8 +4941,8 @@ FT_BEGIN_HEADER
*
*/
#define FREETYPE_MAJOR 2
-#define FREETYPE_MINOR 10
-#define FREETYPE_PATCH 4
+#define FREETYPE_MINOR 12
+#define FREETYPE_PATCH 1
/**************************************************************************
@@ -4829,6 +5004,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.5
+ *
*/
FT_EXPORT( FT_Bool )
FT_Face_CheckTrueTypePatents( FT_Face face );
@@ -4857,6 +5033,7 @@ FT_BEGIN_HEADER
*
* @since:
* 2.3.5
+ *
*/
FT_EXPORT( FT_Bool )
FT_Face_SetUnpatentedHinting( FT_Face face,
diff --git a/src/3rdparty/freetype/include/freetype/ftadvanc.h b/src/3rdparty/freetype/include/freetype/ftadvanc.h
index f166bc6f99..8ce4846668 100644
--- a/src/3rdparty/freetype/include/freetype/ftadvanc.h
+++ b/src/3rdparty/freetype/include/freetype/ftadvanc.h
@@ -4,7 +4,7 @@
*
* Quick computation of advance widths (specification only).
*
- * Copyright (C) 2008-2020 by
+ * Copyright (C) 2008-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/ftbbox.h b/src/3rdparty/freetype/include/freetype/ftbbox.h
index fda1ad94a5..768478f399 100644
--- a/src/3rdparty/freetype/include/freetype/ftbbox.h
+++ b/src/3rdparty/freetype/include/freetype/ftbbox.h
@@ -4,7 +4,7 @@
*
* FreeType exact bbox computation (specification).
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/ftbdf.h b/src/3rdparty/freetype/include/freetype/ftbdf.h
index 2e1daeeaaf..04d6094f75 100644
--- a/src/3rdparty/freetype/include/freetype/ftbdf.h
+++ b/src/3rdparty/freetype/include/freetype/ftbdf.h
@@ -4,7 +4,7 @@
*
* FreeType API for accessing BDF-specific strings (specification).
*
- * Copyright (C) 2002-2020 by
+ * Copyright (C) 2002-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/ftbitmap.h b/src/3rdparty/freetype/include/freetype/ftbitmap.h
index 282c22e1cf..c3462dadc5 100644
--- a/src/3rdparty/freetype/include/freetype/ftbitmap.h
+++ b/src/3rdparty/freetype/include/freetype/ftbitmap.h
@@ -4,7 +4,7 @@
*
* FreeType utility functions for bitmaps (specification).
*
- * Copyright (C) 2004-2020 by
+ * Copyright (C) 2004-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/ftbzip2.h b/src/3rdparty/freetype/include/freetype/ftbzip2.h
index eb6a5a55d1..c85305806f 100644
--- a/src/3rdparty/freetype/include/freetype/ftbzip2.h
+++ b/src/3rdparty/freetype/include/freetype/ftbzip2.h
@@ -4,7 +4,7 @@
*
* Bzip2-compressed stream support.
*
- * Copyright (C) 2010-2020 by
+ * Copyright (C) 2010-2022 by
* Joel Klinghed.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/ftcache.h b/src/3rdparty/freetype/include/freetype/ftcache.h
index 6047275205..ecbbd7b8fb 100644
--- a/src/3rdparty/freetype/include/freetype/ftcache.h
+++ b/src/3rdparty/freetype/include/freetype/ftcache.h
@@ -4,7 +4,7 @@
*
* FreeType Cache subsystem (specification).
*
- * Copyright (C) 1996-2020 by
+ * Copyright (C) 1996-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -86,8 +86,8 @@ FT_BEGIN_HEADER
* later use @FTC_CMapCache_Lookup to perform the equivalent of
* @FT_Get_Char_Index, only much faster.
*
- * If you want to use the @FT_Glyph caching, call @FTC_ImageCache, then
- * later use @FTC_ImageCache_Lookup to retrieve the corresponding
+ * If you want to use the @FT_Glyph caching, call @FTC_ImageCache_New,
+ * then later use @FTC_ImageCache_Lookup to retrieve the corresponding
* @FT_Glyph objects from the cache.
*
* If you need lots of small bitmaps, it is much more memory efficient to
diff --git a/src/3rdparty/freetype/include/freetype/ftchapters.h b/src/3rdparty/freetype/include/freetype/ftchapters.h
index 2ee26973e4..6a9733ad7c 100644
--- a/src/3rdparty/freetype/include/freetype/ftchapters.h
+++ b/src/3rdparty/freetype/include/freetype/ftchapters.h
@@ -15,6 +15,7 @@
* General Remarks
*
* @sections:
+ * preamble
* header_inclusion
* user_allocation
*
@@ -61,6 +62,7 @@
* cid_fonts
* pfr_fonts
* winfnt_fonts
+ * svg_fonts
* font_formats
* gasp_table
*
@@ -81,6 +83,7 @@
* t1_cid_driver
* tt_driver
* pcf_driver
+ * ot_svg_driver
* properties
* parameter_tags
* lcd_rendering
@@ -123,6 +126,7 @@
* gzip
* lzw
* bzip2
+ * debugging_apis
*
*/
diff --git a/src/3rdparty/freetype/include/freetype/ftcid.h b/src/3rdparty/freetype/include/freetype/ftcid.h
index a29fb33306..d80108387a 100644
--- a/src/3rdparty/freetype/include/freetype/ftcid.h
+++ b/src/3rdparty/freetype/include/freetype/ftcid.h
@@ -4,7 +4,7 @@
*
* FreeType API for accessing CID font information (specification).
*
- * Copyright (C) 2007-2020 by
+ * Copyright (C) 2007-2022 by
* Dereg Clegg and Michael Toftdal.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/include/freetype/ftcolor.h b/src/3rdparty/freetype/include/freetype/ftcolor.h
index ecc6485e5a..3edaee4ec1 100644
--- a/src/3rdparty/freetype/include/freetype/ftcolor.h
+++ b/src/3rdparty/freetype/include/freetype/ftcolor.h
@@ -4,7 +4,7 @@
*
* FreeType's glyph color management (specification).
*
- * Copyright (C) 2018-2020 by
+ * Copyright (C) 2018-2022 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -302,6 +302,1411 @@ FT_BEGIN_HEADER
FT_Palette_Set_Foreground_Color( FT_Face face,
FT_Color foreground_color );
+
+ /**************************************************************************
+ *
+ * @section:
+ * layer_management
+ *
+ * @title:
+ * Glyph Layer Management
+ *
+ * @abstract:
+ * Retrieving and manipulating OpenType's 'COLR' table data.
+ *
+ * @description:
+ * The functions described here allow access of colored glyph layer data
+ * in OpenType's 'COLR' tables.
+ */
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_LayerIterator
+ *
+ * @description:
+ * This iterator object is needed for @FT_Get_Color_Glyph_Layer.
+ *
+ * @fields:
+ * num_layers ::
+ * The number of glyph layers for the requested glyph index. Will be
+ * set by @FT_Get_Color_Glyph_Layer.
+ *
+ * layer ::
+ * The current layer. Will be set by @FT_Get_Color_Glyph_Layer.
+ *
+ * p ::
+ * An opaque pointer into 'COLR' table data. The caller must set this
+ * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer.
+ */
+ typedef struct FT_LayerIterator_
+ {
+ FT_UInt num_layers;
+ FT_UInt layer;
+ FT_Byte* p;
+
+ } FT_LayerIterator;
+
+
+ /**************************************************************************
+ *
+ * @function:
+ * FT_Get_Color_Glyph_Layer
+ *
+ * @description:
+ * This is an interface to the 'COLR' table in OpenType fonts to
+ * iteratively retrieve the colored glyph layers associated with the
+ * current glyph slot.
+ *
+ * https://docs.microsoft.com/en-us/typography/opentype/spec/colr
+ *
+ * The glyph layer data for a given glyph index, if present, provides an
+ * alternative, multi-color glyph representation: Instead of rendering
+ * the outline or bitmap with the given glyph index, glyphs with the
+ * indices and colors returned by this function are rendered layer by
+ * layer.
+ *
+ * The returned elements are ordered in the z~direction from bottom to
+ * top; the 'n'th element should be rendered with the associated palette
+ * color and blended on top of the already rendered layers (elements 0,
+ * 1, ..., n-1).
+ *
+ * @input:
+ * face ::
+ * A handle to the parent face object.
+ *
+ * base_glyph ::
+ * The glyph index the colored glyph layers are associated with.
+ *
+ * @inout:
+ * iterator ::
+ * An @FT_LayerIterator object. For the first call you should set
+ * `iterator->p` to `NULL`. For all following calls, simply use the
+ * same object again.
+ *
+ * @output:
+ * aglyph_index ::
+ * The glyph index of the current layer.
+ *
+ * acolor_index ::
+ * The color index into the font face's color palette of the current
+ * layer. The value 0xFFFF is special; it doesn't reference a palette
+ * entry but indicates that the text foreground color should be used
+ * instead (to be set up by the application outside of FreeType).
+ *
+ * The color palette can be retrieved with @FT_Palette_Select.
+ *
+ * @return:
+ * Value~1 if everything is OK. If there are no more layers (or if there
+ * are no layers at all), value~0 gets returned. In case of an error,
+ * value~0 is returned also.
+ *
+ * @note:
+ * This function is necessary if you want to handle glyph layers by
+ * yourself. In particular, functions that operate with @FT_GlyphRec
+ * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access
+ * to this information.
+ *
+ * Note that @FT_Render_Glyph is able to handle colored glyph layers
+ * automatically if the @FT_LOAD_COLOR flag is passed to a previous call
+ * to @FT_Load_Glyph. [This is an experimental feature.]
+ *
+ * @example:
+ * ```
+ * FT_Color* palette;
+ * FT_LayerIterator iterator;
+ *
+ * FT_Bool have_layers;
+ * FT_UInt layer_glyph_index;
+ * FT_UInt layer_color_index;
+ *
+ *
+ * error = FT_Palette_Select( face, palette_index, &palette );
+ * if ( error )
+ * palette = NULL;
+ *
+ * iterator.p = NULL;
+ * have_layers = FT_Get_Color_Glyph_Layer( face,
+ * glyph_index,
+ * &layer_glyph_index,
+ * &layer_color_index,
+ * &iterator );
+ *
+ * if ( palette && have_layers )
+ * {
+ * do
+ * {
+ * FT_Color layer_color;
+ *
+ *
+ * if ( layer_color_index == 0xFFFF )
+ * layer_color = text_foreground_color;
+ * else
+ * layer_color = palette[layer_color_index];
+ *
+ * // Load and render glyph `layer_glyph_index', then
+ * // blend resulting pixmap (using color `layer_color')
+ * // with previously created pixmaps.
+ *
+ * } while ( FT_Get_Color_Glyph_Layer( face,
+ * glyph_index,
+ * &layer_glyph_index,
+ * &layer_color_index,
+ * &iterator ) );
+ * }
+ * ```
+ */
+ FT_EXPORT( FT_Bool )
+ FT_Get_Color_Glyph_Layer( FT_Face face,
+ FT_UInt base_glyph,
+ FT_UInt *aglyph_index,
+ FT_UInt *acolor_index,
+ FT_LayerIterator* iterator );
+
+
+ /**************************************************************************
+ *
+ * @enum:
+ * FT_PaintFormat
+ *
+ * @description:
+ * Enumeration describing the different paint format types of the v1
+ * extensions to the 'COLR' table, see
+ * 'https://github.com/googlefonts/colr-gradients-spec'.
+ *
+ * The enumeration values losely correspond with the format numbers of
+ * the specification: FreeType always returns a fully specified 'Paint'
+ * structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and
+ * 'Skew' table types even though the specification has different formats
+ * depending on whether or not a center is specified, whether the scale
+ * is uniform in x and y~direction or not, etc. Also, only non-variable
+ * format identifiers are listed in this enumeration; as soon as support
+ * for variable 'COLR' v1 fonts is implemented, interpolation is
+ * performed dependent on axis coordinates, which are configured on the
+ * @FT_Face through @FT_Set_Var_Design_Coordinates. This implies that
+ * always static, readily interpolated values are returned in the 'Paint'
+ * structures.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef enum FT_PaintFormat_
+ {
+ FT_COLR_PAINTFORMAT_COLR_LAYERS = 1,
+ FT_COLR_PAINTFORMAT_SOLID = 2,
+ FT_COLR_PAINTFORMAT_LINEAR_GRADIENT = 4,
+ FT_COLR_PAINTFORMAT_RADIAL_GRADIENT = 6,
+ FT_COLR_PAINTFORMAT_SWEEP_GRADIENT = 8,
+ FT_COLR_PAINTFORMAT_GLYPH = 10,
+ FT_COLR_PAINTFORMAT_COLR_GLYPH = 11,
+ FT_COLR_PAINTFORMAT_TRANSFORM = 12,
+ FT_COLR_PAINTFORMAT_TRANSLATE = 14,
+ FT_COLR_PAINTFORMAT_SCALE = 16,
+ FT_COLR_PAINTFORMAT_ROTATE = 24,
+ FT_COLR_PAINTFORMAT_SKEW = 28,
+ FT_COLR_PAINTFORMAT_COMPOSITE = 32,
+ FT_COLR_PAINT_FORMAT_MAX = 33,
+ FT_COLR_PAINTFORMAT_UNSUPPORTED = 255
+
+ } FT_PaintFormat;
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_ColorStopIterator
+ *
+ * @description:
+ * This iterator object is needed for @FT_Get_Colorline_Stops. It keeps
+ * state while iterating over the stops of an @FT_ColorLine,
+ * representing the `ColorLine` struct of the v1 extensions to 'COLR',
+ * see 'https://github.com/googlefonts/colr-gradients-spec'.
+ *
+ * @fields:
+ * num_color_stops ::
+ * The number of color stops for the requested glyph index. Set by
+ * @FT_Get_Paint.
+ *
+ * current_color_stop ::
+ * The current color stop. Set by @FT_Get_Colorline_Stops.
+ *
+ * p ::
+ * An opaque pointer into 'COLR' table data. Set by @FT_Get_Paint.
+ * Updated by @FT_Get_Colorline_Stops.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef struct FT_ColorStopIterator_
+ {
+ FT_UInt num_color_stops;
+ FT_UInt current_color_stop;
+
+ FT_Byte* p;
+
+ } FT_ColorStopIterator;
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_ColorIndex
+ *
+ * @description:
+ * A structure representing a `ColorIndex` value of the 'COLR' v1
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
+ *
+ * @fields:
+ * palette_index ::
+ * The palette index into a 'CPAL' palette.
+ *
+ * alpha ::
+ * Alpha transparency value multiplied with the value from 'CPAL'.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef struct FT_ColorIndex_
+ {
+ FT_UInt16 palette_index;
+ FT_F2Dot14 alpha;
+
+ } FT_ColorIndex;
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_ColorStop
+ *
+ * @description:
+ * A structure representing a `ColorStop` value of the 'COLR' v1
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
+ *
+ * @fields:
+ * stop_offset ::
+ * The stop offset between 0 and 1 along the gradient.
+ *
+ * color ::
+ * The color information for this stop, see @FT_ColorIndex.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef struct FT_ColorStop_
+ {
+ FT_F2Dot14 stop_offset;
+ FT_ColorIndex color;
+
+ } FT_ColorStop;
+
+
+ /**************************************************************************
+ *
+ * @enum:
+ * FT_PaintExtend
+ *
+ * @description:
+ * An enumeration representing the 'Extend' mode of the 'COLR' v1
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
+ * It describes how the gradient fill continues at the other boundaries.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef enum FT_PaintExtend_
+ {
+ FT_COLR_PAINT_EXTEND_PAD = 0,
+ FT_COLR_PAINT_EXTEND_REPEAT = 1,
+ FT_COLR_PAINT_EXTEND_REFLECT = 2
+
+ } FT_PaintExtend;
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_ColorLine
+ *
+ * @description:
+ * A structure representing a `ColorLine` value of the 'COLR' v1
+ * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'.
+ * It describes a list of color stops along the defined gradient.
+ *
+ * @fields:
+ * extend ::
+ * The extend mode at the outer boundaries, see @FT_PaintExtend.
+ *
+ * color_stop_iterator ::
+ * The @FT_ColorStopIterator used to enumerate and retrieve the
+ * actual @FT_ColorStop's.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef struct FT_ColorLine_
+ {
+ FT_PaintExtend extend;
+ FT_ColorStopIterator color_stop_iterator;
+
+ } FT_ColorLine;
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_Affine23
+ *
+ * @description:
+ * A structure used to store a 2x3 matrix. Coefficients are in
+ * 16.16 fixed-point format. The computation performed is
+ *
+ * ```
+ * x' = x*xx + y*xy + dx
+ * y' = x*yx + y*yy + dy
+ * ```
+ *
+ * @fields:
+ * xx ::
+ * Matrix coefficient.
+ *
+ * xy ::
+ * Matrix coefficient.
+ *
+ * dx ::
+ * x translation.
+ *
+ * yx ::
+ * Matrix coefficient.
+ *
+ * yy ::
+ * Matrix coefficient.
+ *
+ * dy ::
+ * y translation.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef struct FT_Affine_23_
+ {
+ FT_Fixed xx, xy, dx;
+ FT_Fixed yx, yy, dy;
+
+ } FT_Affine23;
+
+
+ /**************************************************************************
+ *
+ * @enum:
+ * FT_Composite_Mode
+ *
+ * @description:
+ * An enumeration listing the 'COLR' v1 composite modes used in
+ * @FT_PaintComposite. For more details on each paint mode, see
+ * 'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'.
+ *
+ * @since:
+ * 2.11 -- **currently experimental only!** There might be changes
+ * without retaining backward compatibility of both the API and ABI.
+ *
+ */
+ typedef enum FT_Composite_Mode_
+ {
+ FT_COLR_COMPOSITE_CLEAR = 0,
+ FT_COLR_COMPOSITE_SRC = 1,
+ FT_COLR_COMPOSITE_DEST = 2,
+ FT_COLR_COMPOSITE_SRC_OVER = 3,
+ FT_COLR_COMPOSITE_DEST_OVER = 4,
+ FT_COLR_COMPOSITE_SRC_IN = 5,
+ FT_COLR_COMPOSITE_DEST_IN = 6,
+ FT_COLR_COMPOSITE_SRC_OUT = 7,
+ FT_COLR_COMPOSITE_DEST_OUT = 8,
+ FT_COLR_COMPOSITE_SRC_ATOP = 9,
+ FT_COLR_COMPOSITE_DEST_ATOP = 10,
+ FT_COLR_COMPOSITE_XOR = 11,
+ FT_COLR_COMPOSITE_PLUS = 12,
+ FT_COLR_COMPOSITE_SCREEN = 13,
+ FT_COLR_COMPOSITE_OVERLAY = 14,
+ FT_COLR_COMPOSITE_DARKEN = 15,
+ FT_COLR_COMPOSITE_LIGHTEN = 16,
+ FT_COLR_COMPOSITE_COLOR_DODGE = 17,
+ FT_COLR_COMPOSITE_COLOR_BURN = 18,
+ FT_COLR_COMPOSITE_HARD_LIGHT = 19,
+ FT_COLR_COMPOSITE_SOFT_LIGHT = 20,
+ FT_COLR_COMPOSITE_DIFFERENCE = 21,
+ FT_COLR_COMPOSITE_EXCLUSION = 22,
+ FT_COLR_COMPOSITE_MULTIPLY = 23,
+ FT_COLR_COMPOSITE_HSL_HUE = 24,
+ FT_COLR_COMPOSITE_HSL_SATURATION = 25,
+ FT_COLR_COMPOSITE_HSL_COLOR = 26,
+ FT_COLR_COMPOSITE_HSL_LUMINOSITY = 27,
+ FT_COLR_COMPOSITE_MAX = 28
+
+ } FT_Composite_Mode;
+
+
+ /**************************************************************************
+ *
+ * @struct:
+ * FT_OpaquePaint
+ *
+ * @description:
+ * A structure representing an offset to a `Paint` value stored in any
+ * of the paint tables of a 'COLR' v1 font. Compare Offset<24> there.
+ * When 'COLR' v1 paint tables represented by FreeType objects such as
+ * @FT_PaintColrLayers, @FT_PaintComposite, or @FT_PaintTransform
+ * reference downstream nested paint tables, we do not immediately
+ * retrieve them but encapsulate their location in this type. Use
+ * @FT_Get_Paint to retrieve the actual @FT_COLR_Paint object that
+ * describes the details of the respective paint table.
+ *
+ * @fields:
+ * p ::
+ * An internal offset to a Paint table, needs to be set to NULL before
+ * passing this struct as an argument to @FT_Get_Paint.
+ *
+ * insert_root_transform ::
+ * An internal boolean to track whether an initial root transform is
+ * to be provided. Do not set this value.
+ *
+ * @since:
+ * 2.11 -- **curren