summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--core/hq2x.cpp2636
-rw-r--r--core/hq2x.h19
-rw-r--r--core/image.cpp40
-rw-r--r--core/image.h1
-rw-r--r--drivers/SCsub2
-rw-r--r--drivers/freetype/SCsub (renamed from tools/freetype/SCsub)2
-rw-r--r--drivers/freetype/freetype/include/freetype/config/ftconfig.h (renamed from tools/freetype/freetype/include/freetype/config/ftconfig.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/config/ftheader.h (renamed from tools/freetype/freetype/include/freetype/config/ftheader.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/config/ftmodule.h (renamed from tools/freetype/freetype/include/freetype/config/ftmodule.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/config/ftoption.h (renamed from tools/freetype/freetype/include/freetype/config/ftoption.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/config/ftstdlib.h (renamed from tools/freetype/freetype/include/freetype/config/ftstdlib.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/freetype.h (renamed from tools/freetype/freetype/include/freetype/freetype.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftadvanc.h (renamed from tools/freetype/freetype/include/freetype/ftadvanc.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftautoh.h (renamed from tools/freetype/freetype/include/freetype/ftautoh.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftbbox.h (renamed from tools/freetype/freetype/include/freetype/ftbbox.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftbdf.h (renamed from tools/freetype/freetype/include/freetype/ftbdf.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftbitmap.h (renamed from tools/freetype/freetype/include/freetype/ftbitmap.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftbzip2.h (renamed from tools/freetype/freetype/include/freetype/ftbzip2.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftcache.h (renamed from tools/freetype/freetype/include/freetype/ftcache.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftcffdrv.h (renamed from tools/freetype/freetype/include/freetype/ftcffdrv.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftchapters.h (renamed from tools/freetype/freetype/include/freetype/ftchapters.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftcid.h (renamed from tools/freetype/freetype/include/freetype/ftcid.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/fterrdef.h (renamed from tools/freetype/freetype/include/freetype/fterrdef.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/fterrors.h (renamed from tools/freetype/freetype/include/freetype/fterrors.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftgasp.h (renamed from tools/freetype/freetype/include/freetype/ftgasp.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftglyph.h (renamed from tools/freetype/freetype/include/freetype/ftglyph.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftgxval.h (renamed from tools/freetype/freetype/include/freetype/ftgxval.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftgzip.h (renamed from tools/freetype/freetype/include/freetype/ftgzip.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftimage.h (renamed from tools/freetype/freetype/include/freetype/ftimage.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftincrem.h (renamed from tools/freetype/freetype/include/freetype/ftincrem.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftlcdfil.h (renamed from tools/freetype/freetype/include/freetype/ftlcdfil.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftlist.h (renamed from tools/freetype/freetype/include/freetype/ftlist.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftlzw.h (renamed from tools/freetype/freetype/include/freetype/ftlzw.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftmac.h (renamed from tools/freetype/freetype/include/freetype/ftmac.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftmm.h (renamed from tools/freetype/freetype/include/freetype/ftmm.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftmodapi.h (renamed from tools/freetype/freetype/include/freetype/ftmodapi.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftmoderr.h (renamed from tools/freetype/freetype/include/freetype/ftmoderr.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftotval.h (renamed from tools/freetype/freetype/include/freetype/ftotval.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftoutln.h (renamed from tools/freetype/freetype/include/freetype/ftoutln.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftpfr.h (renamed from tools/freetype/freetype/include/freetype/ftpfr.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftrender.h (renamed from tools/freetype/freetype/include/freetype/ftrender.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftsizes.h (renamed from tools/freetype/freetype/include/freetype/ftsizes.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftsnames.h (renamed from tools/freetype/freetype/include/freetype/ftsnames.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftstroke.h (renamed from tools/freetype/freetype/include/freetype/ftstroke.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftsynth.h (renamed from tools/freetype/freetype/include/freetype/ftsynth.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftsystem.h (renamed from tools/freetype/freetype/include/freetype/ftsystem.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/fttrigon.h (renamed from tools/freetype/freetype/include/freetype/fttrigon.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftttdrv.h (renamed from tools/freetype/freetype/include/freetype/ftttdrv.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/fttypes.h (renamed from tools/freetype/freetype/include/freetype/fttypes.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftwinfnt.h (renamed from tools/freetype/freetype/include/freetype/ftwinfnt.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ftxf86.h (renamed from tools/freetype/freetype/include/freetype/ftxf86.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/autohint.h (renamed from tools/freetype/freetype/include/freetype/internal/autohint.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftcalc.h (renamed from tools/freetype/freetype/include/freetype/internal/ftcalc.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftdebug.h (renamed from tools/freetype/freetype/include/freetype/internal/ftdebug.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftdriver.h (renamed from tools/freetype/freetype/include/freetype/internal/ftdriver.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftgloadr.h (renamed from tools/freetype/freetype/include/freetype/internal/ftgloadr.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftmemory.h (renamed from tools/freetype/freetype/include/freetype/internal/ftmemory.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftobjs.h (renamed from tools/freetype/freetype/include/freetype/internal/ftobjs.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftpic.h (renamed from tools/freetype/freetype/include/freetype/internal/ftpic.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftrfork.h (renamed from tools/freetype/freetype/include/freetype/internal/ftrfork.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftserv.h (renamed from tools/freetype/freetype/include/freetype/internal/ftserv.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftstream.h (renamed from tools/freetype/freetype/include/freetype/internal/ftstream.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/fttrace.h (renamed from tools/freetype/freetype/include/freetype/internal/fttrace.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/ftvalid.h (renamed from tools/freetype/freetype/include/freetype/internal/ftvalid.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/internal.h (renamed from tools/freetype/freetype/include/freetype/internal/internal.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/psaux.h (renamed from tools/freetype/freetype/include/freetype/internal/psaux.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/pshints.h (renamed from tools/freetype/freetype/include/freetype/internal/pshints.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svbdf.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svbdf.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svcid.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svcid.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svgldict.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svgldict.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svgxval.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svgxval.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svkern.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svkern.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svmm.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svmm.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svotval.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svotval.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svpfr.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svpfr.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svpostnm.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svpostnm.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svprop.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svprop.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svpscmap.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svpscmap.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svpsinfo.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svpsinfo.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svsfnt.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svsfnt.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svttcmap.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svttcmap.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svtteng.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svtteng.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svttglyf.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svttglyf.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svwinfnt.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svwinfnt.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/services/svxf86nm.h (renamed from tools/freetype/freetype/include/freetype/internal/services/svxf86nm.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/sfnt.h (renamed from tools/freetype/freetype/include/freetype/internal/sfnt.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/t1types.h (renamed from tools/freetype/freetype/include/freetype/internal/t1types.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/internal/tttypes.h (renamed from tools/freetype/freetype/include/freetype/internal/tttypes.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/t1tables.h (renamed from tools/freetype/freetype/include/freetype/t1tables.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ttnameid.h (renamed from tools/freetype/freetype/include/freetype/ttnameid.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/tttables.h (renamed from tools/freetype/freetype/include/freetype/tttables.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/tttags.h (renamed from tools/freetype/freetype/include/freetype/tttags.h)0
-rw-r--r--drivers/freetype/freetype/include/freetype/ttunpat.h (renamed from tools/freetype/freetype/include/freetype/ttunpat.h)0
-rw-r--r--drivers/freetype/freetype/include/ftoption.h (renamed from tools/freetype/freetype/include/ftoption.h)0
-rw-r--r--drivers/freetype/freetype/src/Jamfile (renamed from tools/freetype/freetype/src/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/autofit/Jamfile (renamed from tools/freetype/freetype/src/autofit/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afangles.c (renamed from tools/freetype/freetype/src/autofit/afangles.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afangles.h (renamed from tools/freetype/freetype/src/autofit/afangles.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afcjk.c (renamed from tools/freetype/freetype/src/autofit/afcjk.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afcjk.h (renamed from tools/freetype/freetype/src/autofit/afcjk.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afdummy.c (renamed from tools/freetype/freetype/src/autofit/afdummy.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afdummy.h (renamed from tools/freetype/freetype/src/autofit/afdummy.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/aferrors.h (renamed from tools/freetype/freetype/src/autofit/aferrors.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afglobal.c (renamed from tools/freetype/freetype/src/autofit/afglobal.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afglobal.h (renamed from tools/freetype/freetype/src/autofit/afglobal.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afhints.c (renamed from tools/freetype/freetype/src/autofit/afhints.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afhints.h (renamed from tools/freetype/freetype/src/autofit/afhints.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afindic.c (renamed from tools/freetype/freetype/src/autofit/afindic.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afindic.h (renamed from tools/freetype/freetype/src/autofit/afindic.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/aflatin.c (renamed from tools/freetype/freetype/src/autofit/aflatin.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/aflatin.h (renamed from tools/freetype/freetype/src/autofit/aflatin.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/aflatin2.c (renamed from tools/freetype/freetype/src/autofit/aflatin2.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/aflatin2.h (renamed from tools/freetype/freetype/src/autofit/aflatin2.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afloader.c (renamed from tools/freetype/freetype/src/autofit/afloader.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afloader.h (renamed from tools/freetype/freetype/src/autofit/afloader.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afmodule.c (renamed from tools/freetype/freetype/src/autofit/afmodule.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afmodule.h (renamed from tools/freetype/freetype/src/autofit/afmodule.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afpic.c (renamed from tools/freetype/freetype/src/autofit/afpic.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afpic.h (renamed from tools/freetype/freetype/src/autofit/afpic.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/aftypes.h (renamed from tools/freetype/freetype/src/autofit/aftypes.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afwarp.c (renamed from tools/freetype/freetype/src/autofit/afwarp.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/afwarp.h (renamed from tools/freetype/freetype/src/autofit/afwarp.h)0
-rw-r--r--drivers/freetype/freetype/src/autofit/autofit.c (renamed from tools/freetype/freetype/src/autofit/autofit.c)0
-rw-r--r--drivers/freetype/freetype/src/autofit/module.mk (renamed from tools/freetype/freetype/src/autofit/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/autofit/rules.mk (renamed from tools/freetype/freetype/src/autofit/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/base/Jamfile (renamed from tools/freetype/freetype/src/base/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/base/basepic.c (renamed from tools/freetype/freetype/src/base/basepic.c)0
-rw-r--r--drivers/freetype/freetype/src/base/basepic.h (renamed from tools/freetype/freetype/src/base/basepic.h)0
-rw-r--r--drivers/freetype/freetype/src/base/ftadvanc.c (renamed from tools/freetype/freetype/src/base/ftadvanc.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftapi.c (renamed from tools/freetype/freetype/src/base/ftapi.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftbase.c (renamed from tools/freetype/freetype/src/base/ftbase.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftbase.h (renamed from tools/freetype/freetype/src/base/ftbase.h)0
-rw-r--r--drivers/freetype/freetype/src/base/ftbbox.c (renamed from tools/freetype/freetype/src/base/ftbbox.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftbdf.c (renamed from tools/freetype/freetype/src/base/ftbdf.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftbitmap.c (renamed from tools/freetype/freetype/src/base/ftbitmap.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftcalc.c (renamed from tools/freetype/freetype/src/base/ftcalc.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftcid.c (renamed from tools/freetype/freetype/src/base/ftcid.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftdbgmem.c (renamed from tools/freetype/freetype/src/base/ftdbgmem.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftdebug.c (renamed from tools/freetype/freetype/src/base/ftdebug.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftfstype.c (renamed from tools/freetype/freetype/src/base/ftfstype.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftgasp.c (renamed from tools/freetype/freetype/src/base/ftgasp.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftgloadr.c (renamed from tools/freetype/freetype/src/base/ftgloadr.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftglyph.c (renamed from tools/freetype/freetype/src/base/ftglyph.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftgxval.c (renamed from tools/freetype/freetype/src/base/ftgxval.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftinit.c (renamed from tools/freetype/freetype/src/base/ftinit.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftlcdfil.c (renamed from tools/freetype/freetype/src/base/ftlcdfil.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftmac.c (renamed from tools/freetype/freetype/src/base/ftmac.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftmm.c (renamed from tools/freetype/freetype/src/base/ftmm.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftobjs.c (renamed from tools/freetype/freetype/src/base/ftobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftotval.c (renamed from tools/freetype/freetype/src/base/ftotval.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftoutln.c (renamed from tools/freetype/freetype/src/base/ftoutln.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftpatent.c (renamed from tools/freetype/freetype/src/base/ftpatent.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftpfr.c (renamed from tools/freetype/freetype/src/base/ftpfr.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftpic.c (renamed from tools/freetype/freetype/src/base/ftpic.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftrfork.c (renamed from tools/freetype/freetype/src/base/ftrfork.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftsnames.c (renamed from tools/freetype/freetype/src/base/ftsnames.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftstream.c (renamed from tools/freetype/freetype/src/base/ftstream.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftstroke.c (renamed from tools/freetype/freetype/src/base/ftstroke.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftsynth.c (renamed from tools/freetype/freetype/src/base/ftsynth.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftsystem.c (renamed from tools/freetype/freetype/src/base/ftsystem.c)0
-rw-r--r--drivers/freetype/freetype/src/base/fttrigon.c (renamed from tools/freetype/freetype/src/base/fttrigon.c)0
-rw-r--r--drivers/freetype/freetype/src/base/fttype1.c (renamed from tools/freetype/freetype/src/base/fttype1.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftutil.c (renamed from tools/freetype/freetype/src/base/ftutil.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftwinfnt.c (renamed from tools/freetype/freetype/src/base/ftwinfnt.c)0
-rw-r--r--drivers/freetype/freetype/src/base/ftxf86.c (renamed from tools/freetype/freetype/src/base/ftxf86.c)0
-rw-r--r--drivers/freetype/freetype/src/base/md5.c (renamed from tools/freetype/freetype/src/base/md5.c)0
-rw-r--r--drivers/freetype/freetype/src/base/md5.h (renamed from tools/freetype/freetype/src/base/md5.h)0
-rw-r--r--drivers/freetype/freetype/src/base/rules.mk (renamed from tools/freetype/freetype/src/base/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/bdf/Jamfile (renamed from tools/freetype/freetype/src/bdf/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/bdf/README (renamed from tools/freetype/freetype/src/bdf/README)0
-rw-r--r--drivers/freetype/freetype/src/bdf/bdf.c (renamed from tools/freetype/freetype/src/bdf/bdf.c)0
-rw-r--r--drivers/freetype/freetype/src/bdf/bdf.h (renamed from tools/freetype/freetype/src/bdf/bdf.h)0
-rw-r--r--drivers/freetype/freetype/src/bdf/bdfdrivr.c (renamed from tools/freetype/freetype/src/bdf/bdfdrivr.c)0
-rw-r--r--drivers/freetype/freetype/src/bdf/bdfdrivr.h (renamed from tools/freetype/freetype/src/bdf/bdfdrivr.h)0
-rw-r--r--drivers/freetype/freetype/src/bdf/bdferror.h (renamed from tools/freetype/freetype/src/bdf/bdferror.h)0
-rw-r--r--drivers/freetype/freetype/src/bdf/bdflib.c (renamed from tools/freetype/freetype/src/bdf/bdflib.c)0
-rw-r--r--drivers/freetype/freetype/src/bdf/module.mk (renamed from tools/freetype/freetype/src/bdf/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/bdf/rules.mk (renamed from tools/freetype/freetype/src/bdf/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/cache/Jamfile (renamed from tools/freetype/freetype/src/cache/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcache.c (renamed from tools/freetype/freetype/src/cache/ftcache.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcbasic.c (renamed from tools/freetype/freetype/src/cache/ftcbasic.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftccache.c (renamed from tools/freetype/freetype/src/cache/ftccache.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftccache.h (renamed from tools/freetype/freetype/src/cache/ftccache.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftccback.h (renamed from tools/freetype/freetype/src/cache/ftccback.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftccmap.c (renamed from tools/freetype/freetype/src/cache/ftccmap.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcerror.h (renamed from tools/freetype/freetype/src/cache/ftcerror.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcglyph.c (renamed from tools/freetype/freetype/src/cache/ftcglyph.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcglyph.h (renamed from tools/freetype/freetype/src/cache/ftcglyph.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcimage.c (renamed from tools/freetype/freetype/src/cache/ftcimage.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcimage.h (renamed from tools/freetype/freetype/src/cache/ftcimage.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcmanag.c (renamed from tools/freetype/freetype/src/cache/ftcmanag.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcmanag.h (renamed from tools/freetype/freetype/src/cache/ftcmanag.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcmru.c (renamed from tools/freetype/freetype/src/cache/ftcmru.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcmru.h (renamed from tools/freetype/freetype/src/cache/ftcmru.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcsbits.c (renamed from tools/freetype/freetype/src/cache/ftcsbits.c)0
-rw-r--r--drivers/freetype/freetype/src/cache/ftcsbits.h (renamed from tools/freetype/freetype/src/cache/ftcsbits.h)0
-rw-r--r--drivers/freetype/freetype/src/cache/rules.mk (renamed from tools/freetype/freetype/src/cache/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/cff/Jamfile (renamed from tools/freetype/freetype/src/cff/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2arrst.c (renamed from tools/freetype/freetype/src/cff/cf2arrst.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2arrst.h (renamed from tools/freetype/freetype/src/cff/cf2arrst.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2blues.c (renamed from tools/freetype/freetype/src/cff/cf2blues.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2blues.h (renamed from tools/freetype/freetype/src/cff/cf2blues.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2error.c (renamed from tools/freetype/freetype/src/cff/cf2error.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2error.h (renamed from tools/freetype/freetype/src/cff/cf2error.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2fixed.h (renamed from tools/freetype/freetype/src/cff/cf2fixed.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2font.c (renamed from tools/freetype/freetype/src/cff/cf2font.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2font.h (renamed from tools/freetype/freetype/src/cff/cf2font.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2ft.c (renamed from tools/freetype/freetype/src/cff/cf2ft.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2ft.h (renamed from tools/freetype/freetype/src/cff/cf2ft.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2glue.h (renamed from tools/freetype/freetype/src/cff/cf2glue.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2hints.c (renamed from tools/freetype/freetype/src/cff/cf2hints.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2hints.h (renamed from tools/freetype/freetype/src/cff/cf2hints.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2intrp.c (renamed from tools/freetype/freetype/src/cff/cf2intrp.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2intrp.h (renamed from tools/freetype/freetype/src/cff/cf2intrp.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2read.c (renamed from tools/freetype/freetype/src/cff/cf2read.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2read.h (renamed from tools/freetype/freetype/src/cff/cf2read.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2stack.c (renamed from tools/freetype/freetype/src/cff/cf2stack.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2stack.h (renamed from tools/freetype/freetype/src/cff/cf2stack.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cf2types.h (renamed from tools/freetype/freetype/src/cff/cf2types.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cff.c (renamed from tools/freetype/freetype/src/cff/cff.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffcmap.c (renamed from tools/freetype/freetype/src/cff/cffcmap.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffcmap.h (renamed from tools/freetype/freetype/src/cff/cffcmap.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffdrivr.c (renamed from tools/freetype/freetype/src/cff/cffdrivr.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffdrivr.h (renamed from tools/freetype/freetype/src/cff/cffdrivr.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cfferrs.h (renamed from tools/freetype/freetype/src/cff/cfferrs.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffgload.c (renamed from tools/freetype/freetype/src/cff/cffgload.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffgload.h (renamed from tools/freetype/freetype/src/cff/cffgload.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffload.c (renamed from tools/freetype/freetype/src/cff/cffload.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffload.h (renamed from tools/freetype/freetype/src/cff/cffload.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffobjs.c (renamed from tools/freetype/freetype/src/cff/cffobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffobjs.h (renamed from tools/freetype/freetype/src/cff/cffobjs.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffparse.c (renamed from tools/freetype/freetype/src/cff/cffparse.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffparse.h (renamed from tools/freetype/freetype/src/cff/cffparse.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffpic.c (renamed from tools/freetype/freetype/src/cff/cffpic.c)0
-rw-r--r--drivers/freetype/freetype/src/cff/cffpic.h (renamed from tools/freetype/freetype/src/cff/cffpic.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cfftoken.h (renamed from tools/freetype/freetype/src/cff/cfftoken.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/cfftypes.h (renamed from tools/freetype/freetype/src/cff/cfftypes.h)0
-rw-r--r--drivers/freetype/freetype/src/cff/module.mk (renamed from tools/freetype/freetype/src/cff/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/cff/rules.mk (renamed from tools/freetype/freetype/src/cff/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/cid/Jamfile (renamed from tools/freetype/freetype/src/cid/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/cid/ciderrs.h (renamed from tools/freetype/freetype/src/cid/ciderrs.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidgload.c (renamed from tools/freetype/freetype/src/cid/cidgload.c)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidgload.h (renamed from tools/freetype/freetype/src/cid/cidgload.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidload.c (renamed from tools/freetype/freetype/src/cid/cidload.c)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidload.h (renamed from tools/freetype/freetype/src/cid/cidload.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidobjs.c (renamed from tools/freetype/freetype/src/cid/cidobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidobjs.h (renamed from tools/freetype/freetype/src/cid/cidobjs.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidparse.c (renamed from tools/freetype/freetype/src/cid/cidparse.c)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidparse.h (renamed from tools/freetype/freetype/src/cid/cidparse.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidriver.c (renamed from tools/freetype/freetype/src/cid/cidriver.c)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidriver.h (renamed from tools/freetype/freetype/src/cid/cidriver.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/cidtoken.h (renamed from tools/freetype/freetype/src/cid/cidtoken.h)0
-rw-r--r--drivers/freetype/freetype/src/cid/module.mk (renamed from tools/freetype/freetype/src/cid/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/cid/rules.mk (renamed from tools/freetype/freetype/src/cid/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/cid/type1cid.c (renamed from tools/freetype/freetype/src/cid/type1cid.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/Jamfile (renamed from tools/freetype/freetype/src/gxvalid/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/README (renamed from tools/freetype/freetype/src/gxvalid/README)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvalid.c (renamed from tools/freetype/freetype/src/gxvalid/gxvalid.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvalid.h (renamed from tools/freetype/freetype/src/gxvalid/gxvalid.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvbsln.c (renamed from tools/freetype/freetype/src/gxvalid/gxvbsln.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvcommn.c (renamed from tools/freetype/freetype/src/gxvalid/gxvcommn.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvcommn.h (renamed from tools/freetype/freetype/src/gxvalid/gxvcommn.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxverror.h (renamed from tools/freetype/freetype/src/gxvalid/gxverror.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvfeat.c (renamed from tools/freetype/freetype/src/gxvalid/gxvfeat.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvfeat.h (renamed from tools/freetype/freetype/src/gxvalid/gxvfeat.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvfgen.c (renamed from tools/freetype/freetype/src/gxvalid/gxvfgen.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvjust.c (renamed from tools/freetype/freetype/src/gxvalid/gxvjust.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvkern.c (renamed from tools/freetype/freetype/src/gxvalid/gxvkern.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvlcar.c (renamed from tools/freetype/freetype/src/gxvalid/gxvlcar.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmod.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmod.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmod.h (renamed from tools/freetype/freetype/src/gxvalid/gxvmod.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmort.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort.h (renamed from tools/freetype/freetype/src/gxvalid/gxvmort.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort0.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmort0.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort1.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmort1.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort2.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmort2.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort4.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmort4.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmort5.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmort5.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx.h (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx.h)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx0.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx0.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx1.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx1.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx2.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx2.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx4.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx4.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvmorx5.c (renamed from tools/freetype/freetype/src/gxvalid/gxvmorx5.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvopbd.c (renamed from tools/freetype/freetype/src/gxvalid/gxvopbd.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvprop.c (renamed from tools/freetype/freetype/src/gxvalid/gxvprop.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/gxvtrak.c (renamed from tools/freetype/freetype/src/gxvalid/gxvtrak.c)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/module.mk (renamed from tools/freetype/freetype/src/gxvalid/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/gxvalid/rules.mk (renamed from tools/freetype/freetype/src/gxvalid/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/Jamfile (renamed from tools/freetype/freetype/src/otvalid/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/module.mk (renamed from tools/freetype/freetype/src/otvalid/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvalid.c (renamed from tools/freetype/freetype/src/otvalid/otvalid.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvalid.h (renamed from tools/freetype/freetype/src/otvalid/otvalid.h)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvbase.c (renamed from tools/freetype/freetype/src/otvalid/otvbase.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvcommn.c (renamed from tools/freetype/freetype/src/otvalid/otvcommn.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvcommn.h (renamed from tools/freetype/freetype/src/otvalid/otvcommn.h)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otverror.h (renamed from tools/freetype/freetype/src/otvalid/otverror.h)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvgdef.c (renamed from tools/freetype/freetype/src/otvalid/otvgdef.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvgpos.c (renamed from tools/freetype/freetype/src/otvalid/otvgpos.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvgpos.h (renamed from tools/freetype/freetype/src/otvalid/otvgpos.h)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvgsub.c (renamed from tools/freetype/freetype/src/otvalid/otvgsub.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvjstf.c (renamed from tools/freetype/freetype/src/otvalid/otvjstf.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvmath.c (renamed from tools/freetype/freetype/src/otvalid/otvmath.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvmod.c (renamed from tools/freetype/freetype/src/otvalid/otvmod.c)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/otvmod.h (renamed from tools/freetype/freetype/src/otvalid/otvmod.h)0
-rw-r--r--drivers/freetype/freetype/src/otvalid/rules.mk (renamed from tools/freetype/freetype/src/otvalid/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/pcf/Jamfile (renamed from tools/freetype/freetype/src/pcf/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/pcf/README (renamed from tools/freetype/freetype/src/pcf/README)0
-rw-r--r--drivers/freetype/freetype/src/pcf/module.mk (renamed from tools/freetype/freetype/src/pcf/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcf.c (renamed from tools/freetype/freetype/src/pcf/pcf.c)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcf.h (renamed from tools/freetype/freetype/src/pcf/pcf.h)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcfdrivr.c (renamed from tools/freetype/freetype/src/pcf/pcfdrivr.c)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcfdrivr.h (renamed from tools/freetype/freetype/src/pcf/pcfdrivr.h)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcferror.h (renamed from tools/freetype/freetype/src/pcf/pcferror.h)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcfread.c (renamed from tools/freetype/freetype/src/pcf/pcfread.c)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcfread.h (renamed from tools/freetype/freetype/src/pcf/pcfread.h)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcfutil.c (renamed from tools/freetype/freetype/src/pcf/pcfutil.c)0
-rw-r--r--drivers/freetype/freetype/src/pcf/pcfutil.h (renamed from tools/freetype/freetype/src/pcf/pcfutil.h)0
-rw-r--r--drivers/freetype/freetype/src/pcf/rules.mk (renamed from tools/freetype/freetype/src/pcf/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/pfr/Jamfile (renamed from tools/freetype/freetype/src/pfr/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/pfr/module.mk (renamed from tools/freetype/freetype/src/pfr/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfr.c (renamed from tools/freetype/freetype/src/pfr/pfr.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrcmap.c (renamed from tools/freetype/freetype/src/pfr/pfrcmap.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrcmap.h (renamed from tools/freetype/freetype/src/pfr/pfrcmap.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrdrivr.c (renamed from tools/freetype/freetype/src/pfr/pfrdrivr.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrdrivr.h (renamed from tools/freetype/freetype/src/pfr/pfrdrivr.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrerror.h (renamed from tools/freetype/freetype/src/pfr/pfrerror.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrgload.c (renamed from tools/freetype/freetype/src/pfr/pfrgload.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrgload.h (renamed from tools/freetype/freetype/src/pfr/pfrgload.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrload.c (renamed from tools/freetype/freetype/src/pfr/pfrload.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrload.h (renamed from tools/freetype/freetype/src/pfr/pfrload.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrobjs.c (renamed from tools/freetype/freetype/src/pfr/pfrobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrobjs.h (renamed from tools/freetype/freetype/src/pfr/pfrobjs.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrsbit.c (renamed from tools/freetype/freetype/src/pfr/pfrsbit.c)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrsbit.h (renamed from tools/freetype/freetype/src/pfr/pfrsbit.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/pfrtypes.h (renamed from tools/freetype/freetype/src/pfr/pfrtypes.h)0
-rw-r--r--drivers/freetype/freetype/src/pfr/rules.mk (renamed from tools/freetype/freetype/src/pfr/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/psaux/Jamfile (renamed from tools/freetype/freetype/src/psaux/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/psaux/afmparse.c (renamed from tools/freetype/freetype/src/psaux/afmparse.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/afmparse.h (renamed from tools/freetype/freetype/src/psaux/afmparse.h)0
-rw-r--r--drivers/freetype/freetype/src/psaux/module.mk (renamed from tools/freetype/freetype/src/psaux/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psaux.c (renamed from tools/freetype/freetype/src/psaux/psaux.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psauxerr.h (renamed from tools/freetype/freetype/src/psaux/psauxerr.h)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psauxmod.c (renamed from tools/freetype/freetype/src/psaux/psauxmod.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psauxmod.h (renamed from tools/freetype/freetype/src/psaux/psauxmod.h)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psconv.c (renamed from tools/freetype/freetype/src/psaux/psconv.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psconv.h (renamed from tools/freetype/freetype/src/psaux/psconv.h)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psobjs.c (renamed from tools/freetype/freetype/src/psaux/psobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/psobjs.h (renamed from tools/freetype/freetype/src/psaux/psobjs.h)0
-rw-r--r--drivers/freetype/freetype/src/psaux/rules.mk (renamed from tools/freetype/freetype/src/psaux/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/psaux/t1cmap.c (renamed from tools/freetype/freetype/src/psaux/t1cmap.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/t1cmap.h (renamed from tools/freetype/freetype/src/psaux/t1cmap.h)0
-rw-r--r--drivers/freetype/freetype/src/psaux/t1decode.c (renamed from tools/freetype/freetype/src/psaux/t1decode.c)0
-rw-r--r--drivers/freetype/freetype/src/psaux/t1decode.h (renamed from tools/freetype/freetype/src/psaux/t1decode.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/Jamfile (renamed from tools/freetype/freetype/src/pshinter/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/module.mk (renamed from tools/freetype/freetype/src/pshinter/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshalgo.c (renamed from tools/freetype/freetype/src/pshinter/pshalgo.c)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshalgo.h (renamed from tools/freetype/freetype/src/pshinter/pshalgo.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshglob.c (renamed from tools/freetype/freetype/src/pshinter/pshglob.c)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshglob.h (renamed from tools/freetype/freetype/src/pshinter/pshglob.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshinter.c (renamed from tools/freetype/freetype/src/pshinter/pshinter.c)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshmod.c (renamed from tools/freetype/freetype/src/pshinter/pshmod.c)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshmod.h (renamed from tools/freetype/freetype/src/pshinter/pshmod.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshnterr.h (renamed from tools/freetype/freetype/src/pshinter/pshnterr.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshpic.c (renamed from tools/freetype/freetype/src/pshinter/pshpic.c)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshpic.h (renamed from tools/freetype/freetype/src/pshinter/pshpic.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshrec.c (renamed from tools/freetype/freetype/src/pshinter/pshrec.c)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/pshrec.h (renamed from tools/freetype/freetype/src/pshinter/pshrec.h)0
-rw-r--r--drivers/freetype/freetype/src/pshinter/rules.mk (renamed from tools/freetype/freetype/src/pshinter/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/psnames/Jamfile (renamed from tools/freetype/freetype/src/psnames/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/psnames/module.mk (renamed from tools/freetype/freetype/src/psnames/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/psnames/psmodule.c (renamed from tools/freetype/freetype/src/psnames/psmodule.c)0
-rw-r--r--drivers/freetype/freetype/src/psnames/psmodule.h (renamed from tools/freetype/freetype/src/psnames/psmodule.h)0
-rw-r--r--drivers/freetype/freetype/src/psnames/psnamerr.h (renamed from tools/freetype/freetype/src/psnames/psnamerr.h)0
-rw-r--r--drivers/freetype/freetype/src/psnames/psnames.c (renamed from tools/freetype/freetype/src/psnames/psnames.c)0
-rw-r--r--drivers/freetype/freetype/src/psnames/pspic.c (renamed from tools/freetype/freetype/src/psnames/pspic.c)0
-rw-r--r--drivers/freetype/freetype/src/psnames/pspic.h (renamed from tools/freetype/freetype/src/psnames/pspic.h)0
-rw-r--r--drivers/freetype/freetype/src/psnames/pstables.h (renamed from tools/freetype/freetype/src/psnames/pstables.h)0
-rw-r--r--drivers/freetype/freetype/src/psnames/rules.mk (renamed from tools/freetype/freetype/src/psnames/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/raster/Jamfile (renamed from tools/freetype/freetype/src/raster/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/raster/ftmisc.h (renamed from tools/freetype/freetype/src/raster/ftmisc.h)0
-rw-r--r--drivers/freetype/freetype/src/raster/ftraster.c (renamed from tools/freetype/freetype/src/raster/ftraster.c)0
-rw-r--r--drivers/freetype/freetype/src/raster/ftraster.h (renamed from tools/freetype/freetype/src/raster/ftraster.h)0
-rw-r--r--drivers/freetype/freetype/src/raster/ftrend1.c (renamed from tools/freetype/freetype/src/raster/ftrend1.c)0
-rw-r--r--drivers/freetype/freetype/src/raster/ftrend1.h (renamed from tools/freetype/freetype/src/raster/ftrend1.h)0
-rw-r--r--drivers/freetype/freetype/src/raster/module.mk (renamed from tools/freetype/freetype/src/raster/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/raster/raster.c (renamed from tools/freetype/freetype/src/raster/raster.c)0
-rw-r--r--drivers/freetype/freetype/src/raster/rasterrs.h (renamed from tools/freetype/freetype/src/raster/rasterrs.h)0
-rw-r--r--drivers/freetype/freetype/src/raster/rastpic.c (renamed from tools/freetype/freetype/src/raster/rastpic.c)0
-rw-r--r--drivers/freetype/freetype/src/raster/rastpic.h (renamed from tools/freetype/freetype/src/raster/rastpic.h)0
-rw-r--r--drivers/freetype/freetype/src/raster/rules.mk (renamed from tools/freetype/freetype/src/raster/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/Jamfile (renamed from tools/freetype/freetype/src/sfnt/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/module.mk (renamed from tools/freetype/freetype/src/sfnt/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/pngshim.c (renamed from tools/freetype/freetype/src/sfnt/pngshim.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/pngshim.h (renamed from tools/freetype/freetype/src/sfnt/pngshim.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/rules.mk (renamed from tools/freetype/freetype/src/sfnt/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfdriver.c (renamed from tools/freetype/freetype/src/sfnt/sfdriver.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfdriver.h (renamed from tools/freetype/freetype/src/sfnt/sfdriver.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sferrors.h (renamed from tools/freetype/freetype/src/sfnt/sferrors.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfnt.c (renamed from tools/freetype/freetype/src/sfnt/sfnt.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfntpic.c (renamed from tools/freetype/freetype/src/sfnt/sfntpic.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfntpic.h (renamed from tools/freetype/freetype/src/sfnt/sfntpic.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfobjs.c (renamed from tools/freetype/freetype/src/sfnt/sfobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/sfobjs.h (renamed from tools/freetype/freetype/src/sfnt/sfobjs.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttbdf.c (renamed from tools/freetype/freetype/src/sfnt/ttbdf.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttbdf.h (renamed from tools/freetype/freetype/src/sfnt/ttbdf.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttcmap.c (renamed from tools/freetype/freetype/src/sfnt/ttcmap.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttcmap.h (renamed from tools/freetype/freetype/src/sfnt/ttcmap.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttcmapc.h (renamed from tools/freetype/freetype/src/sfnt/ttcmapc.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttkern.c (renamed from tools/freetype/freetype/src/sfnt/ttkern.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttkern.h (renamed from tools/freetype/freetype/src/sfnt/ttkern.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttload.c (renamed from tools/freetype/freetype/src/sfnt/ttload.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttload.h (renamed from tools/freetype/freetype/src/sfnt/ttload.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttmtx.c (renamed from tools/freetype/freetype/src/sfnt/ttmtx.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttmtx.h (renamed from tools/freetype/freetype/src/sfnt/ttmtx.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttpost.c (renamed from tools/freetype/freetype/src/sfnt/ttpost.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttpost.h (renamed from tools/freetype/freetype/src/sfnt/ttpost.h)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttsbit.c (renamed from tools/freetype/freetype/src/sfnt/ttsbit.c)0
-rw-r--r--drivers/freetype/freetype/src/sfnt/ttsbit.h (renamed from tools/freetype/freetype/src/sfnt/ttsbit.h)0
-rw-r--r--drivers/freetype/freetype/src/smooth/Jamfile (renamed from tools/freetype/freetype/src/smooth/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftgrays.c (renamed from tools/freetype/freetype/src/smooth/ftgrays.c)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftgrays.h (renamed from tools/freetype/freetype/src/smooth/ftgrays.h)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftsmerrs.h (renamed from tools/freetype/freetype/src/smooth/ftsmerrs.h)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftsmooth.c (renamed from tools/freetype/freetype/src/smooth/ftsmooth.c)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftsmooth.h (renamed from tools/freetype/freetype/src/smooth/ftsmooth.h)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftspic.c (renamed from tools/freetype/freetype/src/smooth/ftspic.c)0
-rw-r--r--drivers/freetype/freetype/src/smooth/ftspic.h (renamed from tools/freetype/freetype/src/smooth/ftspic.h)0
-rw-r--r--drivers/freetype/freetype/src/smooth/module.mk (renamed from tools/freetype/freetype/src/smooth/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/smooth/rules.mk (renamed from tools/freetype/freetype/src/smooth/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/smooth/smooth.c (renamed from tools/freetype/freetype/src/smooth/smooth.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/Jamfile (renamed from tools/freetype/freetype/src/truetype/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/truetype/module.mk (renamed from tools/freetype/freetype/src/truetype/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/truetype/rules.mk (renamed from tools/freetype/freetype/src/truetype/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/truetype/truetype.c (renamed from tools/freetype/freetype/src/truetype/truetype.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttdriver.c (renamed from tools/freetype/freetype/src/truetype/ttdriver.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttdriver.h (renamed from tools/freetype/freetype/src/truetype/ttdriver.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/tterrors.h (renamed from tools/freetype/freetype/src/truetype/tterrors.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttgload.c (renamed from tools/freetype/freetype/src/truetype/ttgload.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttgload.h (renamed from tools/freetype/freetype/src/truetype/ttgload.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttgxvar.c (renamed from tools/freetype/freetype/src/truetype/ttgxvar.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttgxvar.h (renamed from tools/freetype/freetype/src/truetype/ttgxvar.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttinterp.c (renamed from tools/freetype/freetype/src/truetype/ttinterp.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttinterp.h (renamed from tools/freetype/freetype/src/truetype/ttinterp.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttobjs.c (renamed from tools/freetype/freetype/src/truetype/ttobjs.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttobjs.h (renamed from tools/freetype/freetype/src/truetype/ttobjs.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttpic.c (renamed from tools/freetype/freetype/src/truetype/ttpic.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttpic.h (renamed from tools/freetype/freetype/src/truetype/ttpic.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttpload.c (renamed from tools/freetype/freetype/src/truetype/ttpload.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttpload.h (renamed from tools/freetype/freetype/src/truetype/ttpload.h)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttsubpix.c (renamed from tools/freetype/freetype/src/truetype/ttsubpix.c)0
-rw-r--r--drivers/freetype/freetype/src/truetype/ttsubpix.h (renamed from tools/freetype/freetype/src/truetype/ttsubpix.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/Jamfile (renamed from tools/freetype/freetype/src/type1/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/type1/module.mk (renamed from tools/freetype/freetype/src/type1/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/type1/rules.mk (renamed from tools/freetype/freetype/src/type1/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1afm.c (renamed from tools/freetype/freetype/src/type1/t1afm.c)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1afm.h (renamed from tools/freetype/freetype/src/type1/t1afm.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1driver.c (renamed from tools/freetype/freetype/src/type1/t1driver.c)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1driver.h (renamed from tools/freetype/freetype/src/type1/t1driver.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1errors.h (renamed from tools/freetype/freetype/src/type1/t1errors.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1gload.c (renamed from tools/freetype/freetype/src/type1/t1gload.c)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1gload.h (renamed from tools/freetype/freetype/src/type1/t1gload.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1load.c (renamed from tools/freetype/freetype/src/type1/t1load.c)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1load.h (renamed from tools/freetype/freetype/src/type1/t1load.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1objs.c (renamed from tools/freetype/freetype/src/type1/t1objs.c)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1objs.h (renamed from tools/freetype/freetype/src/type1/t1objs.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1parse.c (renamed from tools/freetype/freetype/src/type1/t1parse.c)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1parse.h (renamed from tools/freetype/freetype/src/type1/t1parse.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/t1tokens.h (renamed from tools/freetype/freetype/src/type1/t1tokens.h)0
-rw-r--r--drivers/freetype/freetype/src/type1/type1.c (renamed from tools/freetype/freetype/src/type1/type1.c)0
-rw-r--r--drivers/freetype/freetype/src/type42/Jamfile (renamed from tools/freetype/freetype/src/type42/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/type42/module.mk (renamed from tools/freetype/freetype/src/type42/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/type42/rules.mk (renamed from tools/freetype/freetype/src/type42/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42drivr.c (renamed from tools/freetype/freetype/src/type42/t42drivr.c)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42drivr.h (renamed from tools/freetype/freetype/src/type42/t42drivr.h)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42error.h (renamed from tools/freetype/freetype/src/type42/t42error.h)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42objs.c (renamed from tools/freetype/freetype/src/type42/t42objs.c)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42objs.h (renamed from tools/freetype/freetype/src/type42/t42objs.h)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42parse.c (renamed from tools/freetype/freetype/src/type42/t42parse.c)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42parse.h (renamed from tools/freetype/freetype/src/type42/t42parse.h)0
-rw-r--r--drivers/freetype/freetype/src/type42/t42types.h (renamed from tools/freetype/freetype/src/type42/t42types.h)0
-rw-r--r--drivers/freetype/freetype/src/type42/type42.c (renamed from tools/freetype/freetype/src/type42/type42.c)0
-rw-r--r--drivers/freetype/freetype/src/winfonts/Jamfile (renamed from tools/freetype/freetype/src/winfonts/Jamfile)0
-rw-r--r--drivers/freetype/freetype/src/winfonts/fnterrs.h (renamed from tools/freetype/freetype/src/winfonts/fnterrs.h)0
-rw-r--r--drivers/freetype/freetype/src/winfonts/module.mk (renamed from tools/freetype/freetype/src/winfonts/module.mk)0
-rw-r--r--drivers/freetype/freetype/src/winfonts/rules.mk (renamed from tools/freetype/freetype/src/winfonts/rules.mk)0
-rw-r--r--drivers/freetype/freetype/src/winfonts/winfnt.c (renamed from tools/freetype/freetype/src/winfonts/winfnt.c)0
-rw-r--r--drivers/freetype/freetype/src/winfonts/winfnt.h (renamed from tools/freetype/freetype/src/winfonts/winfnt.h)0
-rw-r--r--drivers/freetype/ft2build.h (renamed from tools/freetype/ft2build.h)0
-rw-r--r--drivers/register_driver_types.cpp3
-rw-r--r--modules/gdscript/gd_parser.cpp2
-rw-r--r--platform/windows/detect.py4
-rw-r--r--platform/x11/detect.py4
-rw-r--r--scene/gui/text_edit.cpp2
-rw-r--r--scene/register_scene_types.cpp5
-rw-r--r--scene/resources/dynamic_font.cpp301
-rw-r--r--scene/resources/dynamic_font.h76
-rw-r--r--scene/resources/dynamic_font_stb.cpp527
-rw-r--r--scene/resources/dynamic_font_stb.h178
-rw-r--r--tools/SCsub43
-rw-r--r--tools/doc/doc_data.h3
-rw-r--r--tools/editor/code_editor.cpp25
-rw-r--r--tools/editor/code_editor.h1
-rw-r--r--tools/editor/editor_fonts.cpp57
-rw-r--r--tools/editor/editor_help.cpp56
-rw-r--r--tools/editor/editor_node.cpp2
-rw-r--r--tools/editor/editor_settings.cpp8
-rw-r--r--tools/editor/icons/SCsub4
-rw-r--r--tools/editor_fonts/droid_sans.ttfbin0 -> 6314324 bytes
-rw-r--r--tools/editor_fonts/source_code_pro.otfbin0 -> 140088 bytes
511 files changed, 3795 insertions, 207 deletions
diff --git a/.gitignore b/.gitignore
index 72cc5bc11a..ef17e13534 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ tools/editor/doc_data_compressed.h
tools/editor/certs_compressed.h
tools/editor/editor_icons.cpp
tools/editor/translations.h
+tools/editor/builtin_fonts.h
-fpic
.fscache
make.bat
diff --git a/core/hq2x.cpp b/core/hq2x.cpp
new file mode 100644
index 0000000000..6495c77b2a
--- /dev/null
+++ b/core/hq2x.cpp
@@ -0,0 +1,2636 @@
+/*
+ * Copyright 2016 Bruno Ribeiro
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "hq2x.h"
+#include "math_funcs.h"
+
+
+static const uint32_t AMASK = 0xFF000000;
+static const uint32_t YMASK = 0x00FF0000;
+static const uint32_t UMASK = 0x0000FF00;
+static const uint32_t VMASK = 0x000000FF;
+
+_FORCE_INLINE_ static uint32_t ARGBtoAYUV(
+ uint32_t value )
+{
+ uint32_t A, R, G, B, Y, U, V;
+//todo big endian check
+ A = value >> 24;
+ R = (value >> 16) & 0xFF;
+ G = (value >> 8) & 0xFF;
+ B = value & 0xFF;
+
+ Y = Math::fast_ftoi( 0.299 * R + 0.587 * G + 0.114 * B);
+ U = Math::fast_ftoi(-0.169 * R - 0.331 * G + 0.5 * B) + 128;
+ V = Math::fast_ftoi( 0.5 * R - 0.419 * G - 0.081 * B) + 128;
+ return (A << 24) + (Y << 16) + (U << 8) + V;
+}
+
+
+/*
+ * Use this function for sharper images (good for cartoon style, used by DOSBOX)
+ */
+
+_FORCE_INLINE_ static bool isDifferent(
+ uint32_t color1,
+ uint32_t color2,
+ uint32_t trY,
+ uint32_t trU,
+ uint32_t trV,
+ uint32_t trA )
+{
+ color1 = ARGBtoAYUV(color1);
+ color2 = ARGBtoAYUV(color2);
+
+ uint32_t value;
+
+ value = ((color1 & YMASK) - (color2 & YMASK));
+ value = (value ^ (value >> 31)) - (value >> 31);
+ if (value > trY) return true;
+
+ value = ((color1 & UMASK) - (color2 & UMASK));
+ value = (value ^ (value >> 31)) - (value >> 31);
+ if (value > trU) return true;
+
+ value = ((color1 & VMASK) - (color2 & VMASK));
+ value = (value ^ (value >> 31)) - (value >> 31);
+ if (value > trV) return true;
+
+ value = ((color1 & AMASK) - (color2 & AMASK));
+ value = (value ^ (value >> 31)) - (value >> 31);
+ if (value > trA) return true;
+
+ return false;
+
+}
+
+
+
+#define MASK_RB 0x00FF00FF
+#define MASK_G 0x0000FF00
+#define MASK_A 0xFF000000
+
+
+/**
+ * @brief Mixes two colors using the given weights.
+ */
+#define HQX_MIX_2(C0,C1,W0,W1) \
+ ((((C0 & MASK_RB) * W0 + (C1 & MASK_RB) * W1) / (W0 + W1)) & MASK_RB) | \
+ ((((C0 & MASK_G) * W0 + (C1 & MASK_G) * W1) / (W0 + W1)) & MASK_G) | \
+ (((((C0 & MASK_A) >> 8) * W0 + ((C1 & MASK_A) >> 8) * W1) / (W0 + W1)) << 8) & MASK_A
+
+/**
+ * @brief Mixes three colors using the given weights.
+ */
+#define HQX_MIX_3(C0,C1,C2,W0,W1,W2) \
+ ((((C0 & MASK_RB) * W0 + (C1 & MASK_RB) * W1 + (C2 & MASK_RB) * W2) / (W0 + W1 + W2)) & MASK_RB) | \
+ ((((C0 & MASK_G) * W0 + (C1 & MASK_G) * W1 + (C2 & MASK_G) * W2) / (W0 + W1 + W2)) & MASK_G) | \
+ (((((C0 & MASK_A) >> 8) * W0 + ((C1 & MASK_A) >> 8) * W1 + ((C2 & MASK_A) >> 8) * W2) / (W0 + W1 + W2)) << 8) & MASK_A
+
+
+#define MIX_00_4 *output = w[4];
+#define MIX_00_MIX_00_4_0_3_1 *output = HQX_MIX_2(w[4],w[0],3U,1U);
+#define MIX_00_4_3_3_1 *output = HQX_MIX_2(w[4],w[3],3U,1U);
+#define MIX_00_4_1_3_1 *output = HQX_MIX_2(w[4],w[1],3U,1U);
+#define MIX_00_3_1_1_1 *output = HQX_MIX_2(w[3],w[1],1U,1U);
+#define MIX_00_4_3_1_2_1_1 *output = HQX_MIX_3(w[4],w[3],w[1],2U,1U,1U);
+#define MIX_00_4_3_1_2_7_7 *output = HQX_MIX_3(w[4],w[3],w[1],2U,7U,7U);
+#define MIX_00_4_0_1_2_1_1 *output = HQX_MIX_3(w[4],w[0],w[1],2U,1U,1U);
+#define MIX_00_4_0_3_2_1_1 *output = HQX_MIX_3(w[4],w[0],w[3],2U,1U,1U);
+#define MIX_00_4_1_3_5_2_1 *output = HQX_MIX_3(w[4],w[1],w[3],5U,2U,1U);
+#define MIX_00_4_3_1_5_2_1 *output = HQX_MIX_3(w[4],w[3],w[1],5U,2U,1U);
+#define MIX_00_4_3_1_6_1_1 *output = HQX_MIX_3(w[4],w[3],w[1],6U,1U,1U);
+#define MIX_00_4_3_1_2_3_3 *output = HQX_MIX_3(w[4],w[3],w[1],2U,3U,3U);
+#define MIX_00_MIX_00_4_0_3_10 *output = HQX_MIX_3(w[4],w[3],w[1],14U,1U,1U);
+
+#define MIX_01_4 *(output + 1) = w[4];
+#define MIX_01_4_2_3_1 *(output + 1) = HQX_MIX_2(w[4],w[2],3U,1U);
+#define MIX_01_4_1_3_1 *(output + 1) = HQX_MIX_2(w[4],w[1],3U,1U);
+#define MIX_01_1_4_3_1 *(output + 1) = HQX_MIX_2(w[1],w[4],3U,1U);
+#define MIX_01_4_5_3_1 *(output + 1) = HQX_MIX_2(w[4],w[5],3U,1U);
+#define MIX_01_4_1_7_1 *(output + 1) = HQX_MIX_2(w[4],w[1],7U,1U);
+#define MIX_01_4_1_5_2_1_1 *(output + 1) = HQX_MIX_3(w[4],w[1],w[5],2U,1U,1U);
+#define MIX_01_4_2_5_2_1_1 *(output + 1) = HQX_MIX_3(w[4],w[2],w[5],2U,1U,1U);
+#define MIX_01_4_2_1_2_1_1 *(output + 1) = HQX_MIX_3(w[4],w[2],w[1],2U,1U,1U);
+#define MIX_01_4_5_1_5_2_1 *(output + 1) = HQX_MIX_3(w[4],w[5],w[1],5U,2U,1U);
+#define MIX_01_4_1_5_5_2_1 *(output + 1) = HQX_MIX_3(w[4],w[1],w[5],5U,2U,1U);
+#define MIX_01_4_1_5_6_1_1 *(output + 1) = HQX_MIX_3(w[4],w[1],w[5],6U,1U,1U);
+#define MIX_01_4_1_5_2_3_3 *(output + 1) = HQX_MIX_3(w[4],w[1],w[5],2U,3U,3U);
+#define MIX_01_4_2_3_10 *(output + 1) = HQX_MIX_3(w[4],w[1],w[5],14U,1U,1U);
+
+#define MIX_02_4 *(output + 2) = w[4];
+#define MIX_02_4_2_3_1 *(output + 2) = HQX_MIX_2(w[4],w[2],3U,1U);
+#define MIX_02_4_1_3_1 *(output + 2) = HQX_MIX_2(w[4],w[1],3U,1U);
+#define MIX_02_4_5_3_1 *(output + 2) = HQX_MIX_2(w[4],w[5],3U,1U);
+#define MIX_02_4_1_5_2_1_1 *(output + 2) = HQX_MIX_3(w[4],w[1],w[5],2U,1U,1U);
+#define MIX_02_4_1_5_2_7_7 *(output + 2) = HQX_MIX_3(w[4],w[1],w[5],2U,7U,7U);
+#define MIX_02_1_5_1_1 *(output + 2) = HQX_MIX_2(w[1],w[5],1U,1U);
+
+#define MIX_10_4 *(output + lineSize) = w[4];
+#define MIX_10_4_6_3_1 *(output + lineSize) = HQX_MIX_2(w[4],w[6],3U,1U);
+#define MIX_10_4_7_3_1 *(output + lineSize) = HQX_MIX_2(w[4],w[7],3U,1U);
+#define MIX_10_4_3_3_1 *(output + lineSize) = HQX_MIX_2(w[4],w[3],3U,1U);
+#define MIX_10_4_7_3_2_1_1 *(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,1U,1U);
+#define MIX_10_4_6_3_2_1_1 *(output + lineSize) = HQX_MIX_3(w[4],w[6],w[3],2U,1U,1U);
+#define MIX_10_4_6_7_2_1_1 *(output + lineSize) = HQX_MIX_3(w[4],w[6],w[7],2U,1U,1U);
+#define MIX_10_4_3_7_5_2_1 *(output + lineSize) = HQX_MIX_3(w[4],w[3],w[7],5U,2U,1U);
+#define MIX_10_4_7_3_5_2_1 *(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],5U,2U,1U);
+#define MIX_10_4_7_3_6_1_1 *(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],6U,1U,1U);
+#define MIX_10_4_7_3_2_3_3 *(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,3U,3U);
+#define MIX_10_4_6_3_10 *(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],14U,1U,1U);
+#define MIX_10_4_3_7_1 *(output + lineSize) = HQX_MIX_2(w[4],w[3],7U,1U);
+#define MIX_10_3_4_3_1 *(output + lineSize) = HQX_MIX_2(w[3],w[4],3U,1U);
+
+#define MIX_11_4 *(output + lineSize + 1) = w[4];
+#define MIX_11_4_8_3_1 *(output + lineSize + 1) = HQX_MIX_2(w[4],w[8],3U,1U);
+#define MIX_11_4_5_3_1 *(output + lineSize + 1) = HQX_MIX_2(w[4],w[5],3U,1U);
+#define MIX_11_4_7_3_1 *(output + lineSize + 1) = HQX_MIX_2(w[4],w[7],3U,1U);
+#define MIX_11_4_5_7_2_1_1 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],2U,1U,1U);
+#define MIX_11_4_8_7_2_1_1 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[8],w[7],2U,1U,1U);
+#define MIX_11_4_8_5_2_1_1 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[8],w[5],2U,1U,1U);
+#define MIX_11_4_7_5_5_2_1 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[7],w[5],5U,2U,1U);
+#define MIX_11_4_5_7_5_2_1 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],5U,2U,1U);
+#define MIX_11_4_5_7_6_1_1 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],6U,1U,1U);
+#define MIX_11_4_5_7_2_3_3 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],2U,3U,3U);
+#define MIX_11_4_8_3_10 *(output + lineSize + 1) = HQX_MIX_3(w[4],w[5],w[7],14U,1U,1U);
+
+#define MIX_12_4 *(output + lineSize + 2) = w[4];
+#define MIX_12_4_5_3_1 *(output + lineSize + 2) = HQX_MIX_2(w[4],w[5],3U,1U);
+#define MIX_12_4_5_7_1 *(output + lineSize + 2) = HQX_MIX_2(w[4],w[5],7U,1U);
+#define MIX_12_5_4_3_1 *(output + lineSize + 2) = HQX_MIX_2(w[5],w[4],3U,1U);
+
+#define MIX_20_4 *(output + lineSize + lineSize) = w[4];
+#define MIX_20_4_6_3_1 *(output + lineSize + lineSize) = HQX_MIX_2(w[4],w[6],3U,1U);
+#define MIX_20_4_7_3_1 *(output + lineSize + lineSize) = HQX_MIX_2(w[4],w[7],3U,1U);
+#define MIX_20_4_3_3_1 *(output + lineSize + lineSize) = HQX_MIX_2(w[4],w[3],3U,1U);
+#define MIX_20_4_7_3_2_1_1 *(output + lineSize + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,1U,1U);
+#define MIX_20_4_7_3_2_7_7 *(output + lineSize + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,7U,7U);
+#define MIX_20_7_3_1_1 *(output + lineSize + lineSize) = HQX_MIX_2(w[7],w[3],1U,1U);
+
+#define MIX_21_4 *(output + lineSize + lineSize + 1) = w[4];
+#define MIX_21_4_7_3_1 *(output + lineSize + lineSize + 1) = HQX_MIX_2(w[4],w[7],3U,1U);
+#define MIX_21_4_7_7_1 *(output + lineSize + lineSize + 1) = HQX_MIX_2(w[4],w[7],7U,1U);
+#define MIX_21_7_4_3_1 *(output + lineSize + lineSize + 1) = HQX_MIX_2(w[7],w[4],3U,1U);
+
+#define MIX_22_4 *(output + lineSize + lineSize + 2) = w[4];
+#define MIX_22_4_8_3_1 *(output + lineSize + lineSize + 2) = HQX_MIX_2(w[4],w[8],3U,1U);
+#define MIX_22_4_7_3_1 *(output + lineSize + lineSize + 2) = HQX_MIX_2(w[4],w[7],3U,1U);
+#define MIX_22_4_5_3_1 *(output + lineSize + lineSize + 2) = HQX_MIX_2(w[4],w[5],3U,1U);
+#define MIX_22_4_5_7_2_1_1 *(output + lineSize + lineSize + 2) = HQX_MIX_3(w[4],w[5],w[7],2U,1U,1U);
+#define MIX_22_4_5_7_2_7_7 *(output + lineSize + lineSize + 2) = HQX_MIX_3(w[4],w[5],w[7],2U,7U,7U);
+#define MIX_22_5_7_1_1 *(output + lineSize + lineSize + 2) = HQX_MIX_2(w[5],w[7],1U,1U);
+
+
+
+uint32_t *hq2x_resize(
+ const uint32_t *image,
+ uint32_t width,
+ uint32_t height,
+ uint32_t *output,
+ uint32_t trY,
+ uint32_t trU,
+ uint32_t trV,
+ uint32_t trA,
+ bool wrapX,
+ bool wrapY )
+{
+ int lineSize = width * 2;
+
+ int previous, next;
+ uint32_t w[9];
+
+ trY <<= 16;
+ trU <<= 8;
+ trA <<= 24;
+
+ // iterates between the lines
+ for (uint32_t row = 0; row < height; row++)
+ {
+ /*
+ * Note: this function uses a 3x3 sliding window over the original image.
+ *
+ * +----+----+----+
+ * | | | |
+ * | w0 | w1 | w2 |
+ * +----+----+----+
+ * | | | |
+ * | w3 | w4 | w5 |
+ * +----+----+----+
+ * | | | |
+ * | w6 | w7 | w8 |
+ * +----+----+----+
+ */
+
+ // adjusts the previous and next line pointers
+ if (row > 0)
+ previous = -width;
+ else
+ {
+ if (wrapY)
+ previous = width * (height - 1);
+ else
+ previous = 0;
+ }
+ if (row < height - 1)
+ next = width;
+ else
+ {
+ if (wrapY)
+ next = -(width * (height - 1));
+ else
+ next = 0;
+ }
+
+ // iterates between the columns
+ for (uint32_t col = 0; col < width; col++)
+ {
+ w[1] = *(image + previous);
+ w[4] = *image;
+ w[7] = *(image + next);
+
+ if (col > 0)
+ {
+ w[0] = *(image + previous - 1);
+ w[3] = *(image - 1);
+ w[6] = *(image + next - 1);
+ }
+ else
+ {
+ if (wrapX)
+ {
+ w[0] = *(image + previous + width - 1);
+ w[3] = *(image + width - 1);
+ w[6] = *(image + next + width - 1);
+ }
+ else
+ {
+ w[0] = w[1];
+ w[3] = w[4];
+ w[6] = w[7];
+ }
+ }
+
+ if (col < width - 1)
+ {
+ w[2] = *(image + previous + 1);
+ w[5] = *(image + 1);
+ w[8] = *(image + next + 1);
+ }
+ else
+ {
+ if (wrapX)
+ {
+ w[2] = *(image + previous - width + 1);
+ w[5] = *(image - width + 1);
+ w[8] = *(image + next - width + 1);
+ }
+ else
+ {
+ w[2] = w[1];
+ w[5] = w[4];
+ w[8] = w[7];
+ }
+ }
+
+ int pattern = 0;
+
+ // computes the pattern to be used considering the neighbor pixels
+ for (int k = 0, flag = 1; k < 9; k++)
+ {
+ // ignores the central pixel
+ if (k == 4) continue;
+
+ if (w[k] != w[4])
+ if (isDifferent(w[4], w[k], trY, trU, trV, trA)) pattern |= flag;
+ flag <<= 1;
+ }
+
+ switch (pattern)
+ {
+ case 0:
+ case 1:
+ case 4:
+ case 32:
+ case 128:
+ case 5:
+ case 132:
+ case 160:
+ case 33:
+ case 129:
+ case 36:
+ case 133:
+ case 164:
+ case 161:
+ case 37:
+ case 165:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 2:
+ case 34:
+ case 130:
+ case 162:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 16:
+ case 17:
+ case 48:
+ case 49:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 64:
+ case 65:
+ case 68:
+ case 69:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 8:
+ case 12:
+ case 136:
+ case 140:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 3:
+ case 35:
+ case 131:
+ case 163:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 6:
+ case 38:
+ case 134:
+ case 166:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_5_3_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 20:
+ case 21:
+ case 52:
+ case 53:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 144:
+ case 145:
+ case 176:
+ case 177:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 192:
+ case 193:
+ case 196:
+ case 197:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_5_3_1
+ break;
+ case 96:
+ case 97:
+ case 100:
+ case 101:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 40:
+ case 44:
+ case 168:
+ case 172:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 9:
+ case 13:
+ case 137:
+ case 141:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 18:
+ case 50:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 80:
+ case 81:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 72:
+ case 76:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 10:
+ case 138:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 66:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 24:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 7:
+ case 39:
+ case 135:
+ MIX_00_4_3_3_1
+ MIX_01_4_5_3_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 148:
+ case 149:
+ case 180:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 224:
+ case 228:
+ case 225:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 41:
+ case 169:
+ case 45:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 22:
+ case 54:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 208:
+ case 209:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 104:
+ case 108:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 11:
+ case 139:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 19:
+ case 51:
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_00_4_3_3_1
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_00_4_1_3_5_2_1
+ MIX_01_4_1_5_2_3_3
+ }
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 146:
+ case 178:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ MIX_11_4_7_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_2_3_3
+ MIX_11_4_5_7_5_2_1
+ }
+ MIX_10_4_7_3_2_1_1
+ break;
+ case 84:
+ case 85:
+ MIX_00_4_3_1_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_01_4_1_3_1
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_01_4_5_1_5_2_1
+ MIX_11_4_5_7_2_3_3
+ }
+ MIX_10_4_6_3_2_1_1
+ break;
+ case 112:
+ case 113:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_10_4_3_3_1
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_5_2_1
+ MIX_11_4_5_7_2_3_3
+ }
+ break;
+ case 200:
+ case 204:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ MIX_11_4_5_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_2_3_3
+ MIX_11_4_7_5_5_2_1
+ }
+ break;
+ case 73:
+ case 77:
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_00_4_1_3_1
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_5_2_1
+ MIX_10_4_7_3_2_3_3
+ }
+ MIX_01_4_1_5_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 42:
+ case 170:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ MIX_10_4_7_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_3_3
+ MIX_10_4_3_7_5_2_1
+ }
+ MIX_01_4_2_5_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 14:
+ case 142:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ MIX_01_4_5_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_3_3
+ MIX_01_4_1_5_5_2_1
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 67:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 70:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_5_3_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 28:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 152:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 194:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_5_3_1
+ break;
+ case 98:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 56:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 25:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 26:
+ case 31:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 82:
+ case 214:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 88:
+ case 248:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 74:
+ case 107:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 27:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_3_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 86:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_8_3_1
+ break;
+ case 216:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 106:
+ MIX_00_MIX_00_4_0_3_1
+ MIX_01_4_2_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 30:
+ MIX_00_MIX_00_4_0_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 210:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_2_3_1
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 120:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_3_1
+ break;
+ case 75:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_3_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 29:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_3_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 198:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_5_3_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_5_3_1
+ break;
+ case 184:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 99:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 57:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 71:
+ MIX_00_4_3_3_1
+ MIX_01_4_5_3_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 156:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 226:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 60:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 195:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_5_3_1
+ break;
+ case 102:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_5_3_1
+ MIX_10_4_3_3_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 153:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 58:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 83:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 92:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 202:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 78:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 154:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 114:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 89:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 90:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 55:
+ case 23:
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_00_4_3_3_1
+ MIX_01_4
+ }
+ else
+ {
+ MIX_00_4_1_3_5_2_1
+ MIX_01_4_1_5_2_3_3
+ }
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 182:
+ case 150:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ MIX_11_4_7_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_2_3_3
+ MIX_11_4_5_7_5_2_1
+ }
+ MIX_10_4_7_3_2_1_1
+ break;
+ case 213:
+ case 212:
+ MIX_00_4_3_1_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_01_4_1_3_1
+ MIX_11_4
+ }
+ else
+ {
+ MIX_01_4_5_1_5_2_1
+ MIX_11_4_5_7_2_3_3
+ }
+ MIX_10_4_6_3_2_1_1
+ break;
+ case 241:
+ case 240:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_10_4_3_3_1
+ MIX_11_4
+ }
+ else
+ {
+ MIX_10_4_7_3_5_2_1
+ MIX_11_4_5_7_2_3_3
+ }
+ break;
+ case 236:
+ case 232:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ MIX_11_4_5_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_2_3_3
+ MIX_11_4_7_5_5_2_1
+ }
+ break;
+ case 109:
+ case 105:
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_00_4_1_3_1
+ MIX_10_4
+ }
+ else
+ {
+ MIX_00_4_3_1_5_2_1
+ MIX_10_4_7_3_2_3_3
+ }
+ MIX_01_4_1_5_2_1_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 171:
+ case 43:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ MIX_10_4_7_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_3_3
+ MIX_10_4_3_7_5_2_1
+ }
+ MIX_01_4_2_5_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 143:
+ case 15:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ MIX_01_4_5_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_3_3
+ MIX_01_4_1_5_5_2_1
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 124:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_3_1
+ break;
+ case 203:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_6_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 62:
+ MIX_00_MIX_00_4_0_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 211:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_3_1
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 118:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_3_3_1
+ MIX_11_4_8_3_1
+ break;
+ case 217:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_6_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 110:
+ MIX_00_MIX_00_4_0_3_1
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 155:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_3_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 188:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 185:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 61:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 157:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_3_1
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 103:
+ MIX_00_4_3_3_1
+ MIX_01_4_5_3_1
+ MIX_10_4_3_3_1
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 227:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 230:
+ MIX_00_4_0_3_2_1_1
+ MIX_01_4_5_3_1
+ MIX_10_4_3_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 199:
+ MIX_00_4_3_3_1
+ MIX_01_4_5_3_1
+ MIX_10_4_6_3_2_1_1
+ MIX_11_4_5_3_1
+ break;
+ case 220:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 158:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 234:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 242:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 59:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 121:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 87:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 79:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 122:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 94:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 218:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 91:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 229:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_3_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 167:
+ MIX_00_4_3_3_1
+ MIX_01_4_5_3_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 173:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_5_2_1_1
+ MIX_10_4_7_3_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 181:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 186:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_7_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 115:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 93:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 206:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 205:
+ case 201:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4_6_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_6_1_1
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 174:
+ case 46:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_MIX_00_4_0_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_6_1_1
+ }
+ MIX_01_4_5_3_1
+ MIX_10_4_7_3_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 179:
+ case 147:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4_2_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_6_1_1
+ }
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 117:
+ case 116:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4_8_3_1
+ }
+ else
+ {
+ MIX_11_4_5_7_6_1_1
+ }
+ break;
+ case 189:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_3_1
+ MIX_10_4_7_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 231:
+ MIX_00_4_3_3_1
+ MIX_01_4_5_3_1
+ MIX_10_4_3_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 126:
+ MIX_00_MIX_00_4_0_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_3_1
+ break;
+ case 219:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_3_1
+ MIX_10_4_6_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 125:
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_00_4_1_3_1
+ MIX_10_4
+ }
+ else
+ {
+ MIX_00_4_3_1_5_2_1
+ MIX_10_4_7_3_2_3_3
+ }
+ MIX_01_4_1_3_1
+ MIX_11_4_8_3_1
+ break;
+ case 221:
+ MIX_00_4_1_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_01_4_1_3_1
+ MIX_11_4
+ }
+ else
+ {
+ MIX_01_4_5_1_5_2_1
+ MIX_11_4_5_7_2_3_3
+ }
+ MIX_10_4_6_3_1
+ break;
+ case 207:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ MIX_01_4_5_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_3_3
+ MIX_01_4_1_5_5_2_1
+ }
+ MIX_10_4_6_3_1
+ MIX_11_4_5_3_1
+ break;
+ case 238:
+ MIX_00_MIX_00_4_0_3_1
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ MIX_11_4_5_3_1
+ }
+ else
+ {
+ MIX_10_4_7_3_2_3_3
+ MIX_11_4_7_5_5_2_1
+ }
+ break;
+ case 190:
+ MIX_00_MIX_00_4_0_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ MIX_11_4_7_3_1
+ }
+ else
+ {
+ MIX_01_4_1_5_2_3_3
+ MIX_11_4_5_7_5_2_1
+ }
+ MIX_10_4_7_3_1
+ break;
+ case 187:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ MIX_10_4_7_3_1
+ }
+ else
+ {
+ MIX_00_4_3_1_2_3_3
+ MIX_10_4_3_7_5_2_1
+ }
+ MIX_01_4_2_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 243:
+ MIX_00_4_3_3_1
+ MIX_01_4_2_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_10_4_3_3_1
+ MIX_11_4
+ }
+ else
+ {
+ MIX_10_4_7_3_5_2_1
+ MIX_11_4_5_7_2_3_3
+ }
+ break;
+ case 119:
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_00_4_3_3_1
+ MIX_01_4
+ }
+ else
+ {
+ MIX_00_4_1_3_5_2_1
+ MIX_01_4_1_5_2_3_3
+ }
+ MIX_10_4_3_3_1
+ MIX_11_4_8_3_1
+ break;
+ case 237:
+ case 233:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_6_3_10
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 175:
+ case 47:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_MIX_00_4_0_3_10
+ }
+ MIX_01_4_5_3_1
+ MIX_10_4_7_3_1
+ MIX_11_4_5_7_2_1_1
+ break;
+ case 183:
+ case 151:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_2_3_10
+ }
+ MIX_10_4_7_3_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 245:
+ case 244:
+ MIX_00_4_3_1_2_1_1
+ MIX_01_4_1_3_1
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_8_3_10
+ }
+ break;
+ case 250:
+ MIX_00_MIX_00_4_0_3_1
+ MIX_01_4_2_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 123:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_3_1
+ break;
+ case 95:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_3_1
+ MIX_11_4_8_3_1
+ break;
+ case 222:
+ MIX_00_MIX_00_4_0_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_6_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 252:
+ MIX_00_4_0_1_2_1_1
+ MIX_01_4_1_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_8_3_10
+ }
+ break;
+ case 249:
+ MIX_00_4_1_3_1
+ MIX_01_4_2_1_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_6_3_10
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 235:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_5_2_1_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_6_3_10
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 111:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_MIX_00_4_0_3_10
+ }
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_5_2_1_1
+ break;
+ case 63:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_MIX_00_4_0_3_10
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_7_3_1
+ MIX_11_4_8_7_2_1_1
+ break;
+ case 159:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_2_3_10
+ }
+ MIX_10_4_6_7_2_1_1
+ MIX_11_4_7_3_1
+ break;
+ case 215:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_2_3_10
+ }
+ MIX_10_4_6_3_2_1_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 246:
+ MIX_00_4_0_3_2_1_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_8_3_10
+ }
+ break;
+ case 254:
+ MIX_00_MIX_00_4_0_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_8_3_10
+ }
+ break;
+ case 253:
+ MIX_00_4_1_3_1
+ MIX_01_4_1_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_6_3_10
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_8_3_10
+ }
+ break;
+ case 251:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ MIX_01_4_2_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_6_3_10
+ }
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 239:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_MIX_00_4_0_3_10
+ }
+ MIX_01_4_5_3_1
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_6_3_10
+ }
+ MIX_11_4_5_3_1
+ break;
+ case 127:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_MIX_00_4_0_3_10
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_1_5_2_1_1
+ }
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ {
+ MIX_10_4
+ }
+ else
+ {
+ MIX_10_4_7_3_2_1_1
+ }
+ MIX_11_4_8_3_1
+ break;
+ case 191:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_MIX_00_4_0_3_10
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_2_3_10
+ }
+ MIX_10_4_7_3_1
+ MIX_11_4_7_3_1
+ break;
+ case 223:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ {
+ MIX_00_4
+ }
+ else
+ {
+ MIX_00_4_3_1_2_1_1
+ }
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_2_3_10
+ }
+ MIX_10_4_6_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_5_7_2_1_1
+ }
+ break;
+ case 247:
+ MIX_00_4_3_3_1
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ {
+ MIX_01_4
+ }
+ else
+ {
+ MIX_01_4_2_3_10
+ }
+ MIX_10_4_3_3_1
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ {
+ MIX_11_4
+ }
+ else
+ {
+ MIX_11_4_8_3_10
+ }
+ break;
+ case 255:
+ if (isDifferent(w[3], w[1], trY, trU, trV, trA))
+ MIX_00_4
+ else
+ MIX_00_MIX_00_4_0_3_10
+
+ if (isDifferent(w[1], w[5], trY, trU, trV, trA))
+ MIX_01_4
+ else
+ MIX_01_4_2_3_10
+
+ if (isDifferent(w[7], w[3], trY, trU, trV, trA))
+ MIX_10_4
+ else
+ MIX_10_4_6_3_10
+
+ if (isDifferent(w[5], w[7], trY, trU, trV, trA))
+ MIX_11_4
+ else
+ MIX_11_4_8_3_10
+ break;
+ }
+ image++;
+ output += 2;
+ }
+ output += lineSize;
+ }
+
+ return output;
+}
diff --git a/core/hq2x.h b/core/hq2x.h
new file mode 100644
index 0000000000..8f119d2a01
--- /dev/null
+++ b/core/hq2x.h
@@ -0,0 +1,19 @@
+#ifndef HQ2X_H
+#define HQ2X_H
+
+#include "typedefs.h"
+
+
+uint32_t *hq2x_resize(
+ const uint32_t *image,
+ uint32_t width,
+ uint32_t height,
+ uint32_t *output,
+ uint32_t trY = 0x30,
+ uint32_t trU = 0x07,
+ uint32_t trV = 0x06,
+ uint32_t trA = 0x50,
+ bool wrapX = false,
+ bool wrapY = false );
+
+#endif // HQ2X_H
diff --git a/core/image.cpp b/core/image.cpp
index 8635aa1b29..57496683ef 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -30,7 +30,7 @@
#include "hash_map.h"
#include "core/io/image_loader.h"
#include "core/os/copymem.h"
-
+#include "hq2x.h"
#include "print_string.h"
#include <stdio.h>
@@ -901,6 +901,44 @@ static void _generate_po2_mipmap(const uint8_t* p_src, uint8_t* p_dst, uint32_t
}
+void Image::expand_x2_hq2x() {
+
+ ERR_FAIL_COND(format>=FORMAT_INDEXED);
+
+ Format current = format;
+ bool mipmaps=get_mipmaps();
+ if (mipmaps) {
+ clear_mipmaps();
+ }
+
+ if (current!=FORMAT_RGBA)
+ convert(FORMAT_RGBA);
+
+ DVector<uint8_t> dest;
+ dest.resize(width*2*height*2*4);
+
+ {
+ DVector<uint8_t>::Read r = data.read();
+ DVector<uint8_t>::Write w = dest.write();
+
+ hq2x_resize((const uint32_t*)r.ptr(),width,height,(uint32_t*)w.ptr());
+
+ }
+
+ width*=2;
+ height*=2;
+ data=dest;
+
+
+ if (current!=FORMAT_RGBA)
+ convert(current);
+
+ if (mipmaps) {
+ generate_mipmaps();
+ }
+
+}
+
void Image::shrink_x2() {
ERR_FAIL_COND(format==FORMAT_INDEXED || format==FORMAT_INDEXED_ALPHA);
diff --git a/core/image.h b/core/image.h
index 35bbd1a684..0f0b345eb9 100644
--- a/core/image.h
+++ b/core/image.h
@@ -250,6 +250,7 @@ public:
void resize( int p_width, int p_height, Interpolation p_interpolation=INTERPOLATE_BILINEAR );
Image resized( int p_width, int p_height, int p_interpolation=INTERPOLATE_BILINEAR );
void shrink_x2();
+ void expand_x2_hq2x();
/**
* Crop the image to a specific size, if larger, then the image is filled by black
*/
diff --git a/drivers/SCsub b/drivers/SCsub
index 7337482628..79cbe50685 100644
--- a/drivers/SCsub
+++ b/drivers/SCsub
@@ -59,6 +59,8 @@ if (env['musepack']=='yes'):
SConscript("mpc/SCsub");
if (env["squish"]=="yes" and env["tools"]=="yes"):
SConscript("squish/SCsub");
+if (env["freetype"]!="no"):
+ SConscript("freetype/SCsub");
num = 0
cur_base = ""
diff --git a/tools/freetype/SCsub b/drivers/freetype/SCsub
index 65b4827f9c..75e872a06f 100644
--- a/tools/freetype/SCsub
+++ b/drivers/freetype/SCsub
@@ -66,4 +66,6 @@ if (env["freetype"]=="builtin"):
# lib = env.Library("freetype_builtin",ft_sources)
# env.Prepend(LIBS=[lib])
+
+
Export('env')
diff --git a/tools/freetype/freetype/include/freetype/config/ftconfig.h b/drivers/freetype/freetype/include/freetype/config/ftconfig.h
index 5dce30ef3e..5dce30ef3e 100644
--- a/tools/freetype/freetype/include/freetype/config/ftconfig.h
+++ b/drivers/freetype/freetype/include/freetype/config/ftconfig.h
diff --git a/tools/freetype/freetype/include/freetype/config/ftheader.h b/drivers/freetype/freetype/include/freetype/config/ftheader.h
index 8371a31611..8371a31611 100644
--- a/tools/freetype/freetype/include/freetype/config/ftheader.h
+++ b/drivers/freetype/freetype/include/freetype/config/ftheader.h
diff --git a/tools/freetype/freetype/include/freetype/config/ftmodule.h b/drivers/freetype/freetype/include/freetype/config/ftmodule.h
index 76d271a74b..76d271a74b 100644
--- a/tools/freetype/freetype/include/freetype/config/ftmodule.h
+++ b/drivers/freetype/freetype/include/freetype/config/ftmodule.h
diff --git a/tools/freetype/freetype/include/freetype/config/ftoption.h b/drivers/freetype/freetype/include/freetype/config/ftoption.h
index d162780665..d162780665 100644
--- a/tools/freetype/freetype/include/freetype/config/ftoption.h
+++ b/drivers/freetype/freetype/include/freetype/config/ftoption.h
diff --git a/tools/freetype/freetype/include/freetype/config/ftstdlib.h b/drivers/freetype/freetype/include/freetype/config/ftstdlib.h
index b940efc427..b940efc427 100644
--- a/tools/freetype/freetype/include/freetype/config/ftstdlib.h
+++ b/drivers/freetype/freetype/include/freetype/config/ftstdlib.h
diff --git a/tools/freetype/freetype/include/freetype/freetype.h b/drivers/freetype/freetype/include/freetype/freetype.h
index fe46d22978..fe46d22978 100644
--- a/tools/freetype/freetype/include/freetype/freetype.h
+++ b/drivers/freetype/freetype/include/freetype/freetype.h
diff --git a/tools/freetype/freetype/include/freetype/ftadvanc.h b/drivers/freetype/freetype/include/freetype/ftadvanc.h
index 012b74b812..012b74b812 100644
--- a/tools/freetype/freetype/include/freetype/ftadvanc.h
+++ b/drivers/freetype/freetype/include/freetype/ftadvanc.h
diff --git a/tools/freetype/freetype/include/freetype/ftautoh.h b/drivers/freetype/freetype/include/freetype/ftautoh.h
index 5e1153a1c1..5e1153a1c1 100644
--- a/tools/freetype/freetype/include/freetype/ftautoh.h
+++ b/drivers/freetype/freetype/include/freetype/ftautoh.h
diff --git a/tools/freetype/freetype/include/freetype/ftbbox.h b/drivers/freetype/freetype/include/freetype/ftbbox.h
index 976691956f..976691956f 100644
--- a/tools/freetype/freetype/include/freetype/ftbbox.h
+++ b/drivers/freetype/freetype/include/freetype/ftbbox.h
diff --git a/tools/freetype/freetype/include/freetype/ftbdf.h b/drivers/freetype/freetype/include/freetype/ftbdf.h
index 4f8baf8401..4f8baf8401 100644
--- a/tools/freetype/freetype/include/freetype/ftbdf.h
+++ b/drivers/freetype/freetype/include/freetype/ftbdf.h
diff --git a/tools/freetype/freetype/include/freetype/ftbitmap.h b/drivers/freetype/freetype/include/freetype/ftbitmap.h
index 7dbf5ba3fe..7dbf5ba3fe 100644
--- a/tools/freetype/freetype/include/freetype/ftbitmap.h
+++ b/drivers/freetype/freetype/include/freetype/ftbitmap.h
diff --git a/tools/freetype/freetype/include/freetype/ftbzip2.h b/drivers/freetype/freetype/include/freetype/ftbzip2.h
index 1bf81b15e8..1bf81b15e8 100644
--- a/tools/freetype/freetype/include/freetype/ftbzip2.h
+++ b/drivers/freetype/freetype/include/freetype/ftbzip2.h
diff --git a/tools/freetype/freetype/include/freetype/ftcache.h b/drivers/freetype/freetype/include/freetype/ftcache.h
index 4ec9587cf6..4ec9587cf6 100644
--- a/tools/freetype/freetype/include/freetype/ftcache.h
+++ b/drivers/freetype/freetype/include/freetype/ftcache.h
diff --git a/tools/freetype/freetype/include/freetype/ftcffdrv.h b/drivers/freetype/freetype/include/freetype/ftcffdrv.h
index ccbcbccaa8..ccbcbccaa8 100644
--- a/tools/freetype/freetype/include/freetype/ftcffdrv.h
+++ b/drivers/freetype/freetype/include/freetype/ftcffdrv.h
diff --git a/tools/freetype/freetype/include/freetype/ftchapters.h b/drivers/freetype/freetype/include/freetype/ftchapters.h
index c55670d1d2..c55670d1d2 100644
--- a/tools/freetype/freetype/include/freetype/ftchapters.h
+++ b/drivers/freetype/freetype/include/freetype/ftchapters.h
diff --git a/tools/freetype/freetype/include/freetype/ftcid.h b/drivers/freetype/freetype/include/freetype/ftcid.h
index 203a30caf8..203a30caf8 100644
--- a/tools/freetype/freetype/include/freetype/ftcid.h
+++ b/drivers/freetype/freetype/include/freetype/ftcid.h
diff --git a/tools/freetype/freetype/include/freetype/fterrdef.h b/drivers/freetype/freetype/include/freetype/fterrdef.h
index 76c7b9e36f..76c7b9e36f 100644
--- a/tools/freetype/freetype/include/freetype/fterrdef.h
+++ b/drivers/freetype/freetype/include/freetype/fterrdef.h
diff --git a/tools/freetype/freetype/include/freetype/fterrors.h b/drivers/freetype/freetype/include/freetype/fterrors.h
index 0fa3e4dce1..0fa3e4dce1 100644
--- a/tools/freetype/freetype/include/freetype/fterrors.h
+++ b/drivers/freetype/freetype/include/freetype/fterrors.h
diff --git a/tools/freetype/freetype/include/freetype/ftgasp.h b/drivers/freetype/freetype/include/freetype/ftgasp.h
index 453d4fa42c..453d4fa42c 100644
--- a/tools/freetype/freetype/include/freetype/ftgasp.h
+++ b/drivers/freetype/freetype/include/freetype/ftgasp.h
diff --git a/tools/freetype/freetype/include/freetype/ftglyph.h b/drivers/freetype/freetype/include/freetype/ftglyph.h
index 31dc33187d..31dc33187d 100644
--- a/tools/freetype/freetype/include/freetype/ftglyph.h
+++ b/drivers/freetype/freetype/include/freetype/ftglyph.h
diff --git a/tools/freetype/freetype/include/freetype/ftgxval.h b/drivers/freetype/freetype/include/freetype/ftgxval.h
index 497015c101..497015c101 100644
--- a/tools/freetype/freetype/include/freetype/ftgxval.h
+++ b/drivers/freetype/freetype/include/freetype/ftgxval.h
diff --git a/tools/freetype/freetype/include/freetype/ftgzip.h b/drivers/freetype/freetype/include/freetype/ftgzip.h
index acbc4f0327..acbc4f0327 100644
--- a/tools/freetype/freetype/include/freetype/ftgzip.h
+++ b/drivers/freetype/freetype/include/freetype/ftgzip.h
diff --git a/tools/freetype/freetype/include/freetype/ftimage.h b/drivers/freetype/freetype/include/freetype/ftimage.h
index 3b826b1d32..3b826b1d32 100644
--- a/tools/freetype/freetype/include/freetype/ftimage.h
+++ b/drivers/freetype/freetype/include/freetype/ftimage.h
diff --git a/tools/freetype/freetype/include/freetype/ftincrem.h b/drivers/freetype/freetype/include/freetype/ftincrem.h
index aaf689ff16..aaf689ff16 100644
--- a/tools/freetype/freetype/include/freetype/ftincrem.h
+++ b/drivers/freetype/freetype/include/freetype/ftincrem.h
diff --git a/tools/freetype/freetype/include/freetype/ftlcdfil.h b/drivers/freetype/freetype/include/freetype/ftlcdfil.h
index 8b253f118b..8b253f118b 100644
--- a/tools/freetype/freetype/include/freetype/ftlcdfil.h
+++ b/drivers/freetype/freetype/include/freetype/ftlcdfil.h
diff --git a/tools/freetype/freetype/include/freetype/ftlist.h b/drivers/freetype/freetype/include/freetype/ftlist.h
index bb6f7f119d..bb6f7f119d 100644
--- a/tools/freetype/freetype/include/freetype/ftlist.h
+++ b/drivers/freetype/freetype/include/freetype/ftlist.h
diff --git a/tools/freetype/freetype/include/freetype/ftlzw.h b/drivers/freetype/freetype/include/freetype/ftlzw.h
index 00d40169a7..00d40169a7 100644
--- a/tools/freetype/freetype/include/freetype/ftlzw.h
+++ b/drivers/freetype/freetype/include/freetype/ftlzw.h
diff --git a/tools/freetype/freetype/include/freetype/ftmac.h b/drivers/freetype/freetype/include/freetype/ftmac.h
index ab5bab5170..ab5bab5170 100644
--- a/tools/freetype/freetype/include/freetype/ftmac.h
+++ b/drivers/freetype/freetype/include/freetype/ftmac.h
diff --git a/tools/freetype/freetype/include/freetype/ftmm.h b/drivers/freetype/freetype/include/freetype/ftmm.h
index 3aefb9e4f2..3aefb9e4f2 100644
--- a/tools/freetype/freetype/include/freetype/ftmm.h
+++ b/drivers/freetype/freetype/include/freetype/ftmm.h
diff --git a/tools/freetype/freetype/include/freetype/ftmodapi.h b/drivers/freetype/freetype/include/freetype/ftmodapi.h
index 8abffb558f..8abffb558f 100644
--- a/tools/freetype/freetype/include/freetype/ftmodapi.h
+++ b/drivers/freetype/freetype/include/freetype/ftmodapi.h
diff --git a/tools/freetype/freetype/include/freetype/ftmoderr.h b/drivers/freetype/freetype/include/freetype/ftmoderr.h
index 5a27db151a..5a27db151a 100644
--- a/tools/freetype/freetype/include/freetype/ftmoderr.h
+++ b/drivers/freetype/freetype/include/freetype/ftmoderr.h
diff --git a/tools/freetype/freetype/include/freetype/ftotval.h b/drivers/freetype/freetype/include/freetype/ftotval.h
index 027f2e8865..027f2e8865 100644
--- a/tools/freetype/freetype/include/freetype/ftotval.h
+++ b/drivers/freetype/freetype/include/freetype/ftotval.h
diff --git a/tools/freetype/freetype/include/freetype/ftoutln.h b/drivers/freetype/freetype/include/freetype/ftoutln.h
index fd69f28292..fd69f28292 100644
--- a/tools/freetype/freetype/include/freetype/ftoutln.h
+++ b/drivers/freetype/freetype/include/freetype/ftoutln.h
diff --git a/tools/freetype/freetype/include/freetype/ftpfr.h b/drivers/freetype/freetype/include/freetype/ftpfr.h
index 0b7b7d427c..0b7b7d427c 100644
--- a/tools/freetype/freetype/include/freetype/ftpfr.h
+++ b/drivers/freetype/freetype/include/freetype/ftpfr.h
diff --git a/tools/freetype/freetype/include/freetype/ftrender.h b/drivers/freetype/freetype/include/freetype/ftrender.h
index dd0229b815..dd0229b815 100644
--- a/tools/freetype/freetype/include/freetype/ftrender.h
+++ b/drivers/freetype/freetype/include/freetype/ftrender.h
diff --git a/tools/freetype/freetype/include/freetype/ftsizes.h b/drivers/freetype/freetype/include/freetype/ftsizes.h
index 3e548cc39f..3e548cc39f 100644
--- a/tools/freetype/freetype/include/freetype/ftsizes.h
+++ b/drivers/freetype/freetype/include/freetype/ftsizes.h
diff --git a/tools/freetype/freetype/include/freetype/ftsnames.h b/drivers/freetype/freetype/include/freetype/ftsnames.h
index 485e4e162e..485e4e162e 100644
--- a/tools/freetype/freetype/include/freetype/ftsnames.h
+++ b/drivers/freetype/freetype/include/freetype/ftsnames.h
diff --git a/tools/freetype/freetype/include/freetype/ftstroke.h b/drivers/freetype/freetype/include/freetype/ftstroke.h
index a498e4a883..a498e4a883 100644
--- a/tools/freetype/freetype/include/freetype/ftstroke.h
+++ b/drivers/freetype/freetype/include/freetype/ftstroke.h
diff --git a/tools/freetype/freetype/include/freetype/ftsynth.h b/drivers/freetype/freetype/include/freetype/ftsynth.h
index 2074503cf6..2074503cf6 100644
--- a/tools/freetype/freetype/include/freetype/ftsynth.h
+++ b/drivers/freetype/freetype/include/freetype/ftsynth.h
diff --git a/tools/freetype/freetype/include/freetype/ftsystem.h b/drivers/freetype/freetype/include/freetype/ftsystem.h
index e07460c55d..e07460c55d 100644
--- a/tools/freetype/freetype/include/freetype/ftsystem.h
+++ b/drivers/freetype/freetype/include/freetype/ftsystem.h
diff --git a/tools/freetype/freetype/include/freetype/fttrigon.h b/drivers/freetype/freetype/include/freetype/fttrigon.h
index 65143cb8c8..65143cb8c8 100644
--- a/tools/freetype/freetype/include/freetype/fttrigon.h
+++ b/drivers/freetype/freetype/include/freetype/fttrigon.h
diff --git a/tools/freetype/freetype/include/freetype/ftttdrv.h b/drivers/freetype/freetype/include/freetype/ftttdrv.h
index d5d3f1ccc1..d5d3f1ccc1 100644
--- a/tools/freetype/freetype/include/freetype/ftttdrv.h
+++ b/drivers/freetype/freetype/include/freetype/ftttdrv.h
diff --git a/tools/freetype/freetype/include/freetype/fttypes.h b/drivers/freetype/freetype/include/freetype/fttypes.h
index 027e59ce11..027e59ce11 100644
--- a/tools/freetype/freetype/include/freetype/fttypes.h
+++ b/drivers/freetype/freetype/include/freetype/fttypes.h
diff --git a/tools/freetype/freetype/include/freetype/ftwinfnt.h b/drivers/freetype/freetype/include/freetype/ftwinfnt.h
index ea33353536..ea33353536 100644
--- a/tools/freetype/freetype/include/freetype/ftwinfnt.h
+++ b/drivers/freetype/freetype/include/freetype/ftwinfnt.h
diff --git a/tools/freetype/freetype/include/freetype/ftxf86.h b/drivers/freetype/freetype/include/freetype/ftxf86.h
index 8c68afdcc5..8c68afdcc5 100644
--- a/tools/freetype/freetype/include/freetype/ftxf86.h
+++ b/drivers/freetype/freetype/include/freetype/ftxf86.h
diff --git a/tools/freetype/freetype/include/freetype/internal/autohint.h b/drivers/freetype/freetype/include/freetype/internal/autohint.h
index 545de938c2..545de938c2 100644
--- a/tools/freetype/freetype/include/freetype/internal/autohint.h
+++ b/drivers/freetype/freetype/include/freetype/internal/autohint.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftcalc.h b/drivers/freetype/freetype/include/freetype/internal/ftcalc.h
index faac3a3867..faac3a3867 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftcalc.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftcalc.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftdebug.h b/drivers/freetype/freetype/include/freetype/internal/ftdebug.h
index 58a3916d7e..58a3916d7e 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftdebug.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftdebug.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftdriver.h b/drivers/freetype/freetype/include/freetype/internal/ftdriver.h
index 940218e62d..940218e62d 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftdriver.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftdriver.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftgloadr.h b/drivers/freetype/freetype/include/freetype/internal/ftgloadr.h
index ce4dc6c9cc..ce4dc6c9cc 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftgloadr.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftgloadr.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftmemory.h b/drivers/freetype/freetype/include/freetype/internal/ftmemory.h
index 3d51aeec69..3d51aeec69 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftmemory.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftmemory.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftobjs.h b/drivers/freetype/freetype/include/freetype/internal/ftobjs.h
index 701c850eb7..701c850eb7 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftobjs.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftobjs.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftpic.h b/drivers/freetype/freetype/include/freetype/internal/ftpic.h
index 485ce7a24e..485ce7a24e 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftpic.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftpic.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftrfork.h b/drivers/freetype/freetype/include/freetype/internal/ftrfork.h
index 6307f2d0c5..6307f2d0c5 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftrfork.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftrfork.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftserv.h b/drivers/freetype/freetype/include/freetype/internal/ftserv.h
index cd5fbd0fac..cd5fbd0fac 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftserv.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftserv.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftstream.h b/drivers/freetype/freetype/include/freetype/internal/ftstream.h
index 2661858320..2661858320 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftstream.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftstream.h
diff --git a/tools/freetype/freetype/include/freetype/internal/fttrace.h b/drivers/freetype/freetype/include/freetype/internal/fttrace.h
index a9d98b60aa..a9d98b60aa 100644
--- a/tools/freetype/freetype/include/freetype/internal/fttrace.h
+++ b/drivers/freetype/freetype/include/freetype/internal/fttrace.h
diff --git a/tools/freetype/freetype/include/freetype/internal/ftvalid.h b/drivers/freetype/freetype/include/freetype/internal/ftvalid.h
index 12ad03685a..12ad03685a 100644
--- a/tools/freetype/freetype/include/freetype/internal/ftvalid.h
+++ b/drivers/freetype/freetype/include/freetype/internal/ftvalid.h
diff --git a/tools/freetype/freetype/include/freetype/internal/internal.h b/drivers/freetype/freetype/include/freetype/internal/internal.h
index 262afcfa8a..262afcfa8a 100644
--- a/tools/freetype/freetype/include/freetype/internal/internal.h
+++ b/drivers/freetype/freetype/include/freetype/internal/internal.h
diff --git a/tools/freetype/freetype/include/freetype/internal/psaux.h b/drivers/freetype/freetype/include/freetype/internal/psaux.h
index e903114f84..e903114f84 100644
--- a/tools/freetype/freetype/include/freetype/internal/psaux.h
+++ b/drivers/freetype/freetype/include/freetype/internal/psaux.h
diff --git a/tools/freetype/freetype/include/freetype/internal/pshints.h b/drivers/freetype/freetype/include/freetype/internal/pshints.h
index 3fb18dc2d5..3fb18dc2d5 100644
--- a/tools/freetype/freetype/include/freetype/internal/pshints.h
+++ b/drivers/freetype/freetype/include/freetype/internal/pshints.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svbdf.h b/drivers/freetype/freetype/include/freetype/internal/services/svbdf.h
index 0974752a79..0974752a79 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svbdf.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svbdf.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svcid.h b/drivers/freetype/freetype/include/freetype/internal/services/svcid.h
index 6be3f9374d..6be3f9374d 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svcid.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svcid.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svgldict.h b/drivers/freetype/freetype/include/freetype/internal/services/svgldict.h
index 1d12534725..1d12534725 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svgldict.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svgldict.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svgxval.h b/drivers/freetype/freetype/include/freetype/internal/services/svgxval.h
index 2cdab50655..2cdab50655 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svgxval.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svgxval.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svkern.h b/drivers/freetype/freetype/include/freetype/internal/services/svkern.h
index 1488adf493..1488adf493 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svkern.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svkern.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svmm.h b/drivers/freetype/freetype/include/freetype/internal/services/svmm.h
index b08a663d66..b08a663d66 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svmm.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svmm.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svotval.h b/drivers/freetype/freetype/include/freetype/internal/services/svotval.h
index 970bbd5759..970bbd5759 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svotval.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svotval.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svpfr.h b/drivers/freetype/freetype/include/freetype/internal/services/svpfr.h
index 462786f9ce..462786f9ce 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svpfr.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svpfr.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svpostnm.h b/drivers/freetype/freetype/include/freetype/internal/services/svpostnm.h
index a76b4fe057..a76b4fe057 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svpostnm.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svpostnm.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svprop.h b/drivers/freetype/freetype/include/freetype/internal/services/svprop.h
index 22da0bbc69..22da0bbc69 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svprop.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svprop.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svpscmap.h b/drivers/freetype/freetype/include/freetype/internal/services/svpscmap.h
index 030948ea64..030948ea64 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svpscmap.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svpscmap.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svpsinfo.h b/drivers/freetype/freetype/include/freetype/internal/services/svpsinfo.h
index 4bfb506711..4bfb506711 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svpsinfo.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svpsinfo.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svsfnt.h b/drivers/freetype/freetype/include/freetype/internal/services/svsfnt.h
index d3835aa1c2..d3835aa1c2 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svsfnt.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svsfnt.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svttcmap.h b/drivers/freetype/freetype/include/freetype/internal/services/svttcmap.h
index 83994aaf8a..83994aaf8a 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svttcmap.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svttcmap.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svtteng.h b/drivers/freetype/freetype/include/freetype/internal/services/svtteng.h
index 58e02a6f9d..58e02a6f9d 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svtteng.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svtteng.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svttglyf.h b/drivers/freetype/freetype/include/freetype/internal/services/svttglyf.h
index 369eb8421b..369eb8421b 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svttglyf.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svttglyf.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svwinfnt.h b/drivers/freetype/freetype/include/freetype/internal/services/svwinfnt.h
index 57f7765d92..57f7765d92 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svwinfnt.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svwinfnt.h
diff --git a/tools/freetype/freetype/include/freetype/internal/services/svxf86nm.h b/drivers/freetype/freetype/include/freetype/internal/services/svxf86nm.h
index ca5d884a83..ca5d884a83 100644
--- a/tools/freetype/freetype/include/freetype/internal/services/svxf86nm.h
+++ b/drivers/freetype/freetype/include/freetype/internal/services/svxf86nm.h
diff --git a/tools/freetype/freetype/include/freetype/internal/sfnt.h b/drivers/freetype/freetype/include/freetype/internal/sfnt.h
index 6b5e41f1ad..6b5e41f1ad 100644
--- a/tools/freetype/freetype/include/freetype/internal/sfnt.h
+++ b/drivers/freetype/freetype/include/freetype/internal/sfnt.h
diff --git a/tools/freetype/freetype/include/freetype/internal/t1types.h b/drivers/freetype/freetype/include/freetype/internal/t1types.h
index e20237c14d..e20237c14d 100644
--- a/tools/freetype/freetype/include/freetype/internal/t1types.h
+++ b/drivers/freetype/freetype/include/freetype/internal/t1types.h
diff --git a/tools/freetype/freetype/include/freetype/internal/tttypes.h b/drivers/freetype/freetype/include/freetype/internal/tttypes.h
index 1bbfe499c5..1bbfe499c5 100644
--- a/tools/freetype/freetype/include/freetype/internal/tttypes.h
+++ b/drivers/freetype/freetype/include/freetype/internal/tttypes.h
diff --git a/tools/freetype/freetype/include/freetype/t1tables.h b/drivers/freetype/freetype/include/freetype/t1tables.h
index a14255e5f5..a14255e5f5 100644
--- a/tools/freetype/freetype/include/freetype/t1tables.h
+++ b/drivers/freetype/freetype/include/freetype/t1tables.h
diff --git a/tools/freetype/freetype/include/freetype/ttnameid.h b/drivers/freetype/freetype/include/freetype/ttnameid.h
index 173f88c950..173f88c950 100644
--- a/tools/freetype/freetype/include/freetype/ttnameid.h
+++ b/drivers/freetype/freetype/include/freetype/ttnameid.h
diff --git a/tools/freetype/freetype/include/freetype/tttables.h b/drivers/freetype/freetype/include/freetype/tttables.h
index fe07117b0b..fe07117b0b 100644
--- a/tools/freetype/freetype/include/freetype/tttables.h
+++ b/drivers/freetype/freetype/include/freetype/tttables.h
diff --git a/tools/freetype/freetype/include/freetype/tttags.h b/drivers/freetype/freetype/include/freetype/tttags.h
index be8c524edb..be8c524edb 100644
--- a/tools/freetype/freetype/include/freetype/tttags.h
+++ b/drivers/freetype/freetype/include/freetype/tttags.h
diff --git a/tools/freetype/freetype/include/freetype/ttunpat.h b/drivers/freetype/freetype/include/freetype/ttunpat.h
index a0162759b7..a0162759b7 100644
--- a/tools/freetype/freetype/include/freetype/ttunpat.h
+++ b/drivers/freetype/freetype/include/freetype/ttunpat.h
diff --git a/tools/freetype/freetype/include/ftoption.h b/drivers/freetype/freetype/include/ftoption.h
index c9f4708691..c9f4708691 100644
--- a/tools/freetype/freetype/include/ftoption.h
+++ b/drivers/freetype/freetype/include/ftoption.h
diff --git a/tools/freetype/freetype/src/Jamfile b/drivers/freetype/freetype/src/Jamfile
index 76ee0f46e6..76ee0f46e6 100644
--- a/tools/freetype/freetype/src/Jamfile
+++ b/drivers/freetype/freetype/src/Jamfile
diff --git a/tools/freetype/freetype/src/autofit/Jamfile b/drivers/freetype/freetype/src/autofit/Jamfile
index 2714765b5b..2714765b5b 100644
--- a/tools/freetype/freetype/src/autofit/Jamfile
+++ b/drivers/freetype/freetype/src/autofit/Jamfile
diff --git a/tools/freetype/freetype/src/autofit/afangles.c b/drivers/freetype/freetype/src/autofit/afangles.c
index b44a5ba2c6..b44a5ba2c6 100644
--- a/tools/freetype/freetype/src/autofit/afangles.c
+++ b/drivers/freetype/freetype/src/autofit/afangles.c
diff --git a/tools/freetype/freetype/src/autofit/afangles.h b/drivers/freetype/freetype/src/autofit/afangles.h
index f33f9e108e..f33f9e108e 100644
--- a/tools/freetype/freetype/src/autofit/afangles.h
+++ b/drivers/freetype/freetype/src/autofit/afangles.h
diff --git a/tools/freetype/freetype/src/autofit/afcjk.c b/drivers/freetype/freetype/src/autofit/afcjk.c
index f69a528e3b..f69a528e3b 100644
--- a/tools/freetype/freetype/src/autofit/afcjk.c
+++ b/drivers/freetype/freetype/src/autofit/afcjk.c
diff --git a/tools/freetype/freetype/src/autofit/afcjk.h b/drivers/freetype/freetype/src/autofit/afcjk.h
index ab816f20b1..ab816f20b1 100644
--- a/tools/freetype/freetype/src/autofit/afcjk.h
+++ b/drivers/freetype/freetype/src/autofit/afcjk.h
diff --git a/tools/freetype/freetype/src/autofit/afdummy.c b/drivers/freetype/freetype/src/autofit/afdummy.c
index 22944559da..22944559da 100644
--- a/tools/freetype/freetype/src/autofit/afdummy.c
+++ b/drivers/freetype/freetype/src/autofit/afdummy.c
diff --git a/tools/freetype/freetype/src/autofit/afdummy.h b/drivers/freetype/freetype/src/autofit/afdummy.h
index 95d8f8cf19..95d8f8cf19 100644
--- a/tools/freetype/freetype/src/autofit/afdummy.h
+++ b/drivers/freetype/freetype/src/autofit/afdummy.h
diff --git a/tools/freetype/freetype/src/autofit/aferrors.h b/drivers/freetype/freetype/src/autofit/aferrors.h
index 50e1a22dd5..50e1a22dd5 100644
--- a/tools/freetype/freetype/src/autofit/aferrors.h
+++ b/drivers/freetype/freetype/src/autofit/aferrors.h
diff --git a/tools/freetype/freetype/src/autofit/afglobal.c b/drivers/freetype/freetype/src/autofit/afglobal.c
index 3e41465756..3e41465756 100644
--- a/tools/freetype/freetype/src/autofit/afglobal.c
+++ b/drivers/freetype/freetype/src/autofit/afglobal.c
diff --git a/tools/freetype/freetype/src/autofit/afglobal.h b/drivers/freetype/freetype/src/autofit/afglobal.h
index 2e24900822..2e24900822 100644
--- a/tools/freetype/freetype/src/autofit/afglobal.h
+++ b/drivers/freetype/freetype/src/autofit/afglobal.h
diff --git a/tools/freetype/freetype/src/autofit/afhints.c b/drivers/freetype/freetype/src/autofit/afhints.c
index e8defaa88d..e8defaa88d 100644
--- a/tools/freetype/freetype/src/autofit/afhints.c
+++ b/drivers/freetype/freetype/src/autofit/afhints.c
diff --git a/tools/freetype/freetype/src/autofit/afhints.h b/drivers/freetype/freetype/src/autofit/afhints.h
index 776b3c844e..776b3c844e 100644
--- a/tools/freetype/freetype/src/autofit/afhints.h
+++ b/drivers/freetype/freetype/src/autofit/afhints.h
diff --git a/tools/freetype/freetype/src/autofit/afindic.c b/drivers/freetype/freetype/src/autofit/afindic.c
index 8c24972598..8c24972598 100644
--- a/tools/freetype/freetype/src/autofit/afindic.c
+++ b/drivers/freetype/freetype/src/autofit/afindic.c
diff --git a/tools/freetype/freetype/src/autofit/afindic.h b/drivers/freetype/freetype/src/autofit/afindic.h
index c252cf20da..c252cf20da 100644
--- a/tools/freetype/freetype/src/autofit/afindic.h
+++ b/drivers/freetype/freetype/src/autofit/afindic.h
diff --git a/tools/freetype/freetype/src/autofit/aflatin.c b/drivers/freetype/freetype/src/autofit/aflatin.c
index ef0157a13e..ef0157a13e 100644
--- a/tools/freetype/freetype/src/autofit/aflatin.c
+++ b/drivers/freetype/freetype/src/autofit/aflatin.c
diff --git a/tools/freetype/freetype/src/autofit/aflatin.h b/drivers/freetype/freetype/src/autofit/aflatin.h
index d9170b3dcc..d9170b3dcc 100644
--- a/tools/freetype/freetype/src/autofit/aflatin.h
+++ b/drivers/freetype/freetype/src/autofit/aflatin.h
diff --git a/tools/freetype/freetype/src/autofit/aflatin2.c b/drivers/freetype/freetype/src/autofit/aflatin2.c
index b1e9658d5d..b1e9658d5d 100644
--- a/tools/freetype/freetype/src/autofit/aflatin2.c
+++ b/drivers/freetype/freetype/src/autofit/aflatin2.c
diff --git a/tools/freetype/freetype/src/autofit/aflatin2.h b/drivers/freetype/freetype/src/autofit/aflatin2.h
index cbfa395522..cbfa395522 100644
--- a/tools/freetype/freetype/src/autofit/aflatin2.h
+++ b/drivers/freetype/freetype/src/autofit/aflatin2.h
diff --git a/tools/freetype/freetype/src/autofit/afloader.c b/drivers/freetype/freetype/src/autofit/afloader.c
index 17a6fb7c3b..17a6fb7c3b 100644
--- a/tools/freetype/freetype/src/autofit/afloader.c
+++ b/drivers/freetype/freetype/src/autofit/afloader.c
diff --git a/tools/freetype/freetype/src/autofit/afloader.h b/drivers/freetype/freetype/src/autofit/afloader.h
index 1f34d17cce..1f34d17cce 100644
--- a/tools/freetype/freetype/src/autofit/afloader.h
+++ b/drivers/freetype/freetype/src/autofit/afloader.h
diff --git a/tools/freetype/freetype/src/autofit/afmodule.c b/drivers/freetype/freetype/src/autofit/afmodule.c
index b1bb5ee0ed..b1bb5ee0ed 100644
--- a/tools/freetype/freetype/src/autofit/afmodule.c
+++ b/drivers/freetype/freetype/src/autofit/afmodule.c
diff --git a/tools/freetype/freetype/src/autofit/afmodule.h b/drivers/freetype/freetype/src/autofit/afmodule.h
index c4e8f8f66a..c4e8f8f66a 100644
--- a/tools/freetype/freetype/src/autofit/afmodule.h
+++ b/drivers/freetype/freetype/src/autofit/afmodule.h
diff --git a/tools/freetype/freetype/src/autofit/afpic.c b/drivers/freetype/freetype/src/autofit/afpic.c
index 45e1448c08..45e1448c08 100644
--- a/tools/freetype/freetype/src/autofit/afpic.c
+++ b/drivers/freetype/freetype/src/autofit/afpic.c
diff --git a/tools/freetype/freetype/src/autofit/afpic.h b/drivers/freetype/freetype/src/autofit/afpic.h
index 0acf803894..0acf803894 100644
--- a/tools/freetype/freetype/src/autofit/afpic.h
+++ b/drivers/freetype/freetype/src/autofit/afpic.h
diff --git a/tools/freetype/freetype/src/autofit/aftypes.h b/drivers/freetype/freetype/src/autofit/aftypes.h
index 9acd7ad6d2..9acd7ad6d2 100644
--- a/tools/freetype/freetype/src/autofit/aftypes.h
+++ b/drivers/freetype/freetype/src/autofit/aftypes.h
diff --git a/tools/freetype/freetype/src/autofit/afwarp.c b/drivers/freetype/freetype/src/autofit/afwarp.c
index 34a97ffc57..34a97ffc57 100644
--- a/tools/freetype/freetype/src/autofit/afwarp.c
+++ b/drivers/freetype/freetype/src/autofit/afwarp.c
diff --git a/tools/freetype/freetype/src/autofit/afwarp.h b/drivers/freetype/freetype/src/autofit/afwarp.h
index 7343fdd5ef..7343fdd5ef 100644
--- a/tools/freetype/freetype/src/autofit/afwarp.h
+++ b/drivers/freetype/freetype/src/autofit/afwarp.h
diff --git a/tools/freetype/freetype/src/autofit/autofit.c b/drivers/freetype/freetype/src/autofit/autofit.c
index 3883a0a706..3883a0a706 100644
--- a/tools/freetype/freetype/src/autofit/autofit.c
+++ b/drivers/freetype/freetype/src/autofit/autofit.c
diff --git a/tools/freetype/freetype/src/autofit/module.mk b/drivers/freetype/freetype/src/autofit/module.mk
index 6ec60912ab..6ec60912ab 100644
--- a/tools/freetype/freetype/src/autofit/module.mk
+++ b/drivers/freetype/freetype/src/autofit/module.mk
diff --git a/tools/freetype/freetype/src/autofit/rules.mk b/drivers/freetype/freetype/src/autofit/rules.mk
index b76bb79ab4..b76bb79ab4 100644
--- a/tools/freetype/freetype/src/autofit/rules.mk
+++ b/drivers/freetype/freetype/src/autofit/rules.mk
diff --git a/tools/freetype/freetype/src/base/Jamfile b/drivers/freetype/freetype/src/base/Jamfile
index 832e8b8424..832e8b8424 100644
--- a/tools/freetype/freetype/src/base/Jamfile
+++ b/drivers/freetype/freetype/src/base/Jamfile
diff --git a/tools/freetype/freetype/src/base/basepic.c b/drivers/freetype/freetype/src/base/basepic.c
index 0af770ebc2..0af770ebc2 100644
--- a/tools/freetype/freetype/src/base/basepic.c
+++ b/drivers/freetype/freetype/src/base/basepic.c
diff --git a/tools/freetype/freetype/src/base/basepic.h b/drivers/freetype/freetype/src/base/basepic.h
index 329d7c8fd6..329d7c8fd6 100644
--- a/tools/freetype/freetype/src/base/basepic.h
+++ b/drivers/freetype/freetype/src/base/basepic.h
diff --git a/tools/freetype/freetype/src/base/ftadvanc.c b/drivers/freetype/freetype/src/base/ftadvanc.c
index 52078478df..52078478df 100644
--- a/tools/freetype/freetype/src/base/ftadvanc.c
+++ b/drivers/freetype/freetype/src/base/ftadvanc.c
diff --git a/tools/freetype/freetype/src/base/ftapi.c b/drivers/freetype/freetype/src/base/ftapi.c
index 8914d1f4e9..8914d1f4e9 100644
--- a/tools/freetype/freetype/src/base/ftapi.c
+++ b/drivers/freetype/freetype/src/base/ftapi.c
diff --git a/tools/freetype/freetype/src/base/ftbase.c b/drivers/freetype/freetype/src/base/ftbase.c
index 5e5d70ec4b..5e5d70ec4b 100644
--- a/tools/freetype/freetype/src/base/ftbase.c
+++ b/drivers/freetype/freetype/src/base/ftbase.c
diff --git a/tools/freetype/freetype/src/base/ftbase.h b/drivers/freetype/freetype/src/base/ftbase.h
index 51a1db18b8..51a1db18b8 100644
--- a/tools/freetype/freetype/src/base/ftbase.h
+++ b/drivers/freetype/freetype/src/base/ftbase.h
diff --git a/tools/freetype/freetype/src/base/ftbbox.c b/drivers/freetype/freetype/src/base/ftbbox.c
index 6d1c44cb2e..6d1c44cb2e 100644
--- a/tools/freetype/freetype/src/base/ftbbox.c
+++ b/drivers/freetype/freetype/src/base/ftbbox.c
diff --git a/tools/freetype/freetype/src/base/ftbdf.c b/drivers/freetype/freetype/src/base/ftbdf.c
index 5755f8558d..5755f8558d 100644
--- a/tools/freetype/freetype/src/base/ftbdf.c
+++ b/drivers/freetype/freetype/src/base/ftbdf.c
diff --git a/tools/freetype/freetype/src/base/ftbitmap.c b/drivers/freetype/freetype/src/base/ftbitmap.c
index 975818e14f..975818e14f 100644
--- a/tools/freetype/freetype/src/base/ftbitmap.c
+++ b/drivers/freetype/freetype/src/base/ftbitmap.c
diff --git a/tools/freetype/freetype/src/base/ftcalc.c b/drivers/freetype/freetype/src/base/ftcalc.c
index 0ec0d78930..0ec0d78930 100644
--- a/tools/freetype/freetype/src/base/ftcalc.c
+++ b/drivers/freetype/freetype/src/base/ftcalc.c
diff --git a/tools/freetype/freetype/src/base/ftcid.c b/drivers/freetype/freetype/src/base/ftcid.c
index 741879d922..741879d922 100644
--- a/tools/freetype/freetype/src/base/ftcid.c
+++ b/drivers/freetype/freetype/src/base/ftcid.c
diff --git a/tools/freetype/freetype/src/base/ftdbgmem.c b/drivers/freetype/freetype/src/base/ftdbgmem.c
index 6fb86fe77d..6fb86fe77d 100644
--- a/tools/freetype/freetype/src/base/ftdbgmem.c
+++ b/drivers/freetype/freetype/src/base/ftdbgmem.c
diff --git a/tools/freetype/freetype/src/base/ftdebug.c b/drivers/freetype/freetype/src/base/ftdebug.c
index b9156d15ee..b9156d15ee 100644
--- a/tools/freetype/freetype/src/base/ftdebug.c
+++ b/drivers/freetype/freetype/src/base/ftdebug.c
diff --git a/tools/freetype/freetype/src/base/ftfstype.c b/drivers/freetype/freetype/src/base/ftfstype.c
index d0ef7b7c1b..d0ef7b7c1b 100644
--- a/tools/freetype/freetype/src/base/ftfstype.c
+++ b/drivers/freetype/freetype/src/base/ftfstype.c
diff --git a/tools/freetype/freetype/src/base/ftgasp.c b/drivers/freetype/freetype/src/base/ftgasp.c
index 8485d29259..8485d29259 100644
--- a/tools/freetype/freetype/src/base/ftgasp.c
+++ b/drivers/freetype/freetype/src/base/ftgasp.c
diff --git a/tools/freetype/freetype/src/base/ftgloadr.c b/drivers/freetype/freetype/src/base/ftgloadr.c
index 3cc5c7a805..3cc5c7a805 100644
--- a/tools/freetype/freetype/src/base/ftgloadr.c
+++ b/drivers/freetype/freetype/src/base/ftgloadr.c
diff --git a/tools/freetype/freetype/src/base/ftglyph.c b/drivers/freetype/freetype/src/base/ftglyph.c
index 5dd28a8c52..5dd28a8c52 100644
--- a/tools/freetype/freetype/src/base/ftglyph.c
+++ b/drivers/freetype/freetype/src/base/ftglyph.c
diff --git a/tools/freetype/freetype/src/base/ftgxval.c b/drivers/freetype/freetype/src/base/ftgxval.c
index a8ec44ac00..a8ec44ac00 100644
--- a/tools/freetype/freetype/src/base/ftgxval.c
+++ b/drivers/freetype/freetype/src/base/ftgxval.c
diff --git a/tools/freetype/freetype/src/base/ftinit.c b/drivers/freetype/freetype/src/base/ftinit.c
index 85f321fd2d..85f321fd2d 100644
--- a/tools/freetype/freetype/src/base/ftinit.c
+++ b/drivers/freetype/freetype/src/base/ftinit.c
diff --git a/tools/freetype/freetype/src/base/ftlcdfil.c b/drivers/freetype/freetype/src/base/ftlcdfil.c
index 852fb32982..852fb32982 100644
--- a/tools/freetype/freetype/src/base/ftlcdfil.c
+++ b/drivers/freetype/freetype/src/base/ftlcdfil.c
diff --git a/tools/freetype/freetype/src/base/ftmac.c b/drivers/freetype/freetype/src/base/ftmac.c
index 5b5aae61cc..5b5aae61cc 100644
--- a/tools/freetype/freetype/src/base/ftmac.c
+++ b/drivers/freetype/freetype/src/base/ftmac.c
diff --git a/tools/freetype/freetype/src/base/ftmm.c b/drivers/freetype/freetype/src/base/ftmm.c
index 18ff879bfc..18ff879bfc 100644
--- a/tools/freetype/freetype/src/base/ftmm.c
+++ b/drivers/freetype/freetype/src/base/ftmm.c
diff --git a/tools/freetype/freetype/src/base/ftobjs.c b/drivers/freetype/freetype/src/base/ftobjs.c
index 157bf45634..157bf45634 100644
--- a/tools/freetype/freetype/src/base/ftobjs.c
+++ b/drivers/freetype/freetype/src/base/ftobjs.c
diff --git a/tools/freetype/freetype/src/base/ftotval.c b/drivers/freetype/freetype/src/base/ftotval.c
index 5fc73d76ab..5fc73d76ab 100644
--- a/tools/freetype/freetype/src/base/ftotval.c
+++ b/drivers/freetype/freetype/src/base/ftotval.c
diff --git a/tools/freetype/freetype/src/base/ftoutln.c b/drivers/freetype/freetype/src/base/ftoutln.c
index 54ca5cdcf6..54ca5cdcf6 100644
--- a/tools/freetype/freetype/src/base/ftoutln.c
+++ b/drivers/freetype/freetype/src/base/ftoutln.c
diff --git a/tools/freetype/freetype/src/base/ftpatent.c b/drivers/freetype/freetype/src/base/ftpatent.c
index 82b42f0343..82b42f0343 100644
--- a/tools/freetype/freetype/src/base/ftpatent.c
+++ b/drivers/freetype/freetype/src/base/ftpatent.c
diff --git a/tools/freetype/freetype/src/base/ftpfr.c b/drivers/freetype/freetype/src/base/ftpfr.c
index 0ba955f01f..0ba955f01f 100644
--- a/tools/freetype/freetype/src/base/ftpfr.c
+++ b/drivers/freetype/freetype/src/base/ftpfr.c
diff --git a/tools/freetype/freetype/src/base/ftpic.c b/drivers/freetype/freetype/src/base/ftpic.c
index 1c87101696..1c87101696 100644
--- a/tools/freetype/freetype/src/base/ftpic.c
+++ b/drivers/freetype/freetype/src/base/ftpic.c
diff --git a/tools/freetype/freetype/src/base/ftrfork.c b/drivers/freetype/freetype/src/base/ftrfork.c
index 804911721d..804911721d 100644
--- a/tools/freetype/freetype/src/base/ftrfork.c
+++ b/drivers/freetype/freetype/src/base/ftrfork.c
diff --git a/tools/freetype/freetype/src/base/ftsnames.c b/drivers/freetype/freetype/src/base/ftsnames.c
index 260e91c148..260e91c148 100644
--- a/tools/freetype/freetype/src/base/ftsnames.c
+++ b/drivers/freetype/freetype/src/base/ftsnames.c
diff --git a/tools/freetype/freetype/src/base/ftstream.c b/drivers/freetype/freetype/src/base/ftstream.c
index d965333daa..d965333daa 100644
--- a/tools/freetype/freetype/src/base/ftstream.c
+++ b/drivers/freetype/freetype/src/base/ftstream.c
diff --git a/tools/freetype/freetype/src/base/ftstroke.c b/drivers/freetype/freetype/src/base/ftstroke.c
index ee61ceca0e..ee61ceca0e 100644
--- a/tools/freetype/freetype/src/base/ftstroke.c
+++ b/drivers/freetype/freetype/src/base/ftstroke.c
diff --git a/tools/freetype/freetype/src/base/ftsynth.c b/drivers/freetype/freetype/src/base/ftsynth.c
index 241d37f426..241d37f426 100644
--- a/tools/freetype/freetype/src/base/ftsynth.c
+++ b/drivers/freetype/freetype/src/base/ftsynth.c
diff --git a/tools/freetype/freetype/src/base/ftsystem.c b/drivers/freetype/freetype/src/base/ftsystem.c
index 2c6ddac10c..2c6ddac10c 100644
--- a/tools/freetype/freetype/src/base/ftsystem.c
+++ b/drivers/freetype/freetype/src/base/ftsystem.c
diff --git a/tools/freetype/freetype/src/base/fttrigon.c b/drivers/freetype/freetype/src/base/fttrigon.c
index 4ffdcb77f1..4ffdcb77f1 100644
--- a/tools/freetype/freetype/src/base/fttrigon.c
+++ b/drivers/freetype/freetype/src/base/fttrigon.c
diff --git a/tools/freetype/freetype/src/base/fttype1.c b/drivers/freetype/freetype/src/base/fttype1.c
index c1f9931dbb..c1f9931dbb 100644
--- a/tools/freetype/freetype/src/base/fttype1.c
+++ b/drivers/freetype/freetype/src/base/fttype1.c
diff --git a/tools/freetype/freetype/src/base/ftutil.c b/drivers/freetype/freetype/src/base/ftutil.c
index 879d027529..879d027529 100644
--- a/tools/freetype/freetype/src/base/ftutil.c
+++ b/drivers/freetype/freetype/src/base/ftutil.c
diff --git a/tools/freetype/freetype/src/base/ftwinfnt.c b/drivers/freetype/freetype/src/base/ftwinfnt.c
index 463ae761d8..463ae761d8 100644
--- a/tools/freetype/freetype/src/base/ftwinfnt.c
+++ b/drivers/freetype/freetype/src/base/ftwinfnt.c
diff --git a/tools/freetype/freetype/src/base/ftxf86.c b/drivers/freetype/freetype/src/base/ftxf86.c
index a4bf767dfa..a4bf767dfa 100644
--- a/tools/freetype/freetype/src/base/ftxf86.c
+++ b/drivers/freetype/freetype/src/base/ftxf86.c
diff --git a/tools/freetype/freetype/src/base/md5.c b/drivers/freetype/freetype/src/base/md5.c
index 2f01c9302c..2f01c9302c 100644
--- a/tools/freetype/freetype/src/base/md5.c
+++ b/drivers/freetype/freetype/src/base/md5.c
diff --git a/tools/freetype/freetype/src/base/md5.h b/drivers/freetype/freetype/src/base/md5.h
index f1a6857640..f1a6857640 100644
--- a/tools/freetype/freetype/src/base/md5.h
+++ b/drivers/freetype/freetype/src/base/md5.h
diff --git a/tools/freetype/freetype/src/base/rules.mk b/drivers/freetype/freetype/src/base/rules.mk
index e932191157..e932191157 100644
--- a/tools/freetype/freetype/src/base/rules.mk
+++ b/drivers/freetype/freetype/src/base/rules.mk
diff --git a/tools/freetype/freetype/src/bdf/Jamfile b/drivers/freetype/freetype/src/bdf/Jamfile
index da23ccd0ad..da23ccd0ad 100644
--- a/tools/freetype/freetype/src/bdf/Jamfile
+++ b/drivers/freetype/freetype/src/bdf/Jamfile
diff --git a/tools/freetype/freetype/src/bdf/README b/drivers/freetype/freetype/src/bdf/README
index b761aba2b2..b761aba2b2 100644
--- a/tools/freetype/freetype/src/bdf/README
+++ b/drivers/freetype/freetype/src/bdf/README
diff --git a/tools/freetype/freetype/src/bdf/bdf.c b/drivers/freetype/freetype/src/bdf/bdf.c
index f95fb76225..f95fb76225 100644
--- a/tools/freetype/freetype/src/bdf/bdf.c
+++ b/drivers/freetype/freetype/src/bdf/bdf.c
diff --git a/tools/freetype/freetype/src/bdf/bdf.h b/drivers/freetype/freetype/src/bdf/bdf.h
index d11be6f147..d11be6f147 100644
--- a/tools/freetype/freetype/src/bdf/bdf.h
+++ b/drivers/freetype/freetype/src/bdf/bdf.h
diff --git a/tools/freetype/freetype/src/bdf/bdfdrivr.c b/drivers/freetype/freetype/src/bdf/bdfdrivr.c
index 0ea0a5ea5e..0ea0a5ea5e 100644
--- a/tools/freetype/freetype/src/bdf/bdfdrivr.c
+++ b/drivers/freetype/freetype/src/bdf/bdfdrivr.c
diff --git a/tools/freetype/freetype/src/bdf/bdfdrivr.h b/drivers/freetype/freetype/src/bdf/bdfdrivr.h
index ca0dae50d2..ca0dae50d2 100644
--- a/tools/freetype/freetype/src/bdf/bdfdrivr.h
+++ b/drivers/freetype/freetype/src/bdf/bdfdrivr.h
diff --git a/tools/freetype/freetype/src/bdf/bdferror.h b/drivers/freetype/freetype/src/bdf/bdferror.h
index ea545aca06..ea545aca06 100644
--- a/tools/freetype/freetype/src/bdf/bdferror.h
+++ b/drivers/freetype/freetype/src/bdf/bdferror.h
diff --git a/tools/freetype/freetype/src/bdf/bdflib.c b/drivers/freetype/freetype/src/bdf/bdflib.c
index 0b8412d9eb..0b8412d9eb 100644
--- a/tools/freetype/freetype/src/bdf/bdflib.c
+++ b/drivers/freetype/freetype/src/bdf/bdflib.c
diff --git a/tools/freetype/freetype/src/bdf/module.mk b/drivers/freetype/freetype/src/bdf/module.mk
index fe06ae8e06..fe06ae8e06 100644
--- a/tools/freetype/freetype/src/bdf/module.mk
+++ b/drivers/freetype/freetype/src/bdf/module.mk
diff --git a/tools/freetype/freetype/src/bdf/rules.mk b/drivers/freetype/freetype/src/bdf/rules.mk
index 6ff1614dde..6ff1614dde 100644
--- a/tools/freetype/freetype/src/bdf/rules.mk
+++ b/drivers/freetype/freetype/src/bdf/rules.mk
diff --git a/tools/freetype/freetype/src/cache/Jamfile b/drivers/freetype/freetype/src/cache/Jamfile
index 340cff7742..340cff7742 100644
--- a/tools/freetype/freetype/src/cache/Jamfile
+++ b/drivers/freetype/freetype/src/cache/Jamfile
diff --git a/tools/freetype/freetype/src/cache/ftcache.c b/drivers/freetype/freetype/src/cache/ftcache.c
index d41e91e5ec..d41e91e5ec 100644
--- a/tools/freetype/freetype/src/cache/ftcache.c
+++ b/drivers/freetype/freetype/src/cache/ftcache.c
diff --git a/tools/freetype/freetype/src/cache/ftcbasic.c b/drivers/freetype/freetype/src/cache/ftcbasic.c
index 84d336d5d6..84d336d5d6 100644
--- a/tools/freetype/freetype/src/cache/ftcbasic.c
+++ b/drivers/freetype/freetype/src/cache/ftcbasic.c
diff --git a/tools/freetype/freetype/src/cache/ftccache.c b/drivers/freetype/freetype/src/cache/ftccache.c
index f20dd4502c..f20dd4502c 100644
--- a/tools/freetype/freetype/src/cache/ftccache.c
+++ b/drivers/freetype/freetype/src/cache/ftccache.c
diff --git a/tools/freetype/freetype/src/cache/ftccache.h b/drivers/freetype/freetype/src/cache/ftccache.h
index 4155f320e0..4155f320e0 100644
--- a/tools/freetype/freetype/src/cache/ftccache.h
+++ b/drivers/freetype/freetype/src/cache/ftccache.h
diff --git a/tools/freetype/freetype/src/cache/ftccback.h b/drivers/freetype/freetype/src/cache/ftccback.h
index 9528279273..9528279273 100644
--- a/tools/freetype/freetype/src/cache/ftccback.h
+++ b/drivers/freetype/freetype/src/cache/ftccback.h
diff --git a/tools/freetype/freetype/src/cache/ftccmap.c b/drivers/freetype/freetype/src/cache/ftccmap.c
index 848349be2d..848349be2d 100644
--- a/tools/freetype/freetype/src/cache/ftccmap.c
+++ b/drivers/freetype/freetype/src/cache/ftccmap.c
diff --git a/tools/freetype/freetype/src/cache/ftcerror.h b/drivers/freetype/freetype/src/cache/ftcerror.h
index 0e055709bb..0e055709bb 100644
--- a/tools/freetype/freetype/src/cache/ftcerror.h
+++ b/drivers/freetype/freetype/src/cache/ftcerror.h
diff --git a/tools/freetype/freetype/src/cache/ftcglyph.c b/drivers/freetype/freetype/src/cache/ftcglyph.c
index 441e177238..441e177238 100644
--- a/tools/freetype/freetype/src/cache/ftcglyph.c
+++ b/drivers/freetype/freetype/src/cache/ftcglyph.c
diff --git a/tools/freetype/freetype/src/cache/ftcglyph.h b/drivers/freetype/freetype/src/cache/ftcglyph.h
index 5fed19cb8f..5fed19cb8f 100644
--- a/tools/freetype/freetype/src/cache/ftcglyph.h
+++ b/drivers/freetype/freetype/src/cache/ftcglyph.h
diff --git a/tools/freetype/freetype/src/cache/ftcimage.c b/drivers/freetype/freetype/src/cache/ftcimage.c
index c242ece021..c242ece021 100644
--- a/tools/freetype/freetype/src/cache/ftcimage.c
+++ b/drivers/freetype/freetype/src/cache/ftcimage.c
diff --git a/tools/freetype/freetype/src/cache/ftcimage.h b/drivers/freetype/freetype/src/cache/ftcimage.h
index 20d5d3e07d..20d5d3e07d 100644
--- a/tools/freetype/freetype/src/cache/ftcimage.h
+++ b/drivers/freetype/freetype/src/cache/ftcimage.h
diff --git a/tools/freetype/freetype/src/cache/ftcmanag.c b/drivers/freetype/freetype/src/cache/ftcmanag.c
index 4eb2c5bfd6..4eb2c5bfd6 100644
--- a/tools/freetype/freetype/src/cache/ftcmanag.c
+++ b/drivers/freetype/freetype/src/cache/ftcmanag.c
diff --git a/tools/freetype/freetype/src/cache/ftcmanag.h b/drivers/freetype/freetype/src/cache/ftcmanag.h
index 0aec33c584..0aec33c584 100644
--- a/tools/freetype/freetype/src/cache/ftcmanag.h
+++ b/drivers/freetype/freetype/src/cache/ftcmanag.h
diff --git a/tools/freetype/freetype/src/cache/ftcmru.c b/drivers/freetype/freetype/src/cache/ftcmru.c
index dc8b4cc397..dc8b4cc397 100644
--- a/tools/freetype/freetype/src/cache/ftcmru.c
+++ b/drivers/freetype/freetype/src/cache/ftcmru.c
diff --git a/tools/freetype/freetype/src/cache/ftcmru.h b/drivers/freetype/freetype/src/cache/ftcmru.h
index 6fccf11781..6fccf11781 100644
--- a/tools/freetype/freetype/src/cache/ftcmru.h
+++ b/drivers/freetype/freetype/src/cache/ftcmru.h
diff --git a/tools/freetype/freetype/src/cache/ftcsbits.c b/drivers/freetype/freetype/src/cache/ftcsbits.c
index 6df1c19930..6df1c19930 100644
--- a/tools/freetype/freetype/src/cache/ftcsbits.c
+++ b/drivers/freetype/freetype/src/cache/ftcsbits.c
diff --git a/tools/freetype/freetype/src/cache/ftcsbits.h b/drivers/freetype/freetype/src/cache/ftcsbits.h
index df55dca806..df55dca806 100644
--- a/tools/freetype/freetype/src/cache/ftcsbits.h
+++ b/drivers/freetype/freetype/src/cache/ftcsbits.h
diff --git a/tools/freetype/freetype/src/cache/rules.mk b/drivers/freetype/freetype/src/cache/rules.mk
index ed75a6a91f..ed75a6a91f 100644
--- a/tools/freetype/freetype/src/cache/rules.mk
+++ b/drivers/freetype/freetype/src/cache/rules.mk
diff --git a/tools/freetype/freetype/src/cff/Jamfile b/drivers/freetype/freetype/src/cff/Jamfile
index 6705d3cfdb..6705d3cfdb 100644
--- a/tools/freetype/freetype/src/cff/Jamfile
+++ b/drivers/freetype/freetype/src/cff/Jamfile
diff --git a/tools/freetype/freetype/src/cff/cf2arrst.c b/drivers/freetype/freetype/src/cff/cf2arrst.c
index c8d6f13098..c8d6f13098 100644
--- a/tools/freetype/freetype/src/cff/cf2arrst.c
+++ b/drivers/freetype/freetype/src/cff/cf2arrst.c
diff --git a/tools/freetype/freetype/src/cff/cf2arrst.h b/drivers/freetype/freetype/src/cff/cf2arrst.h
index ff5ad8b126..ff5ad8b126 100644
--- a/tools/freetype/freetype/src/cff/cf2arrst.h
+++ b/drivers/freetype/freetype/src/cff/cf2arrst.h
diff --git a/tools/freetype/freetype/src/cff/cf2blues.c b/drivers/freetype/freetype/src/cff/cf2blues.c
index 5b348398af..5b348398af 100644
--- a/tools/freetype/freetype/src/cff/cf2blues.c
+++ b/drivers/freetype/freetype/src/cff/cf2blues.c
diff --git a/tools/freetype/freetype/src/cff/cf2blues.h b/drivers/freetype/freetype/src/cff/cf2blues.h
index 2f38fcad8f..2f38fcad8f 100644
--- a/tools/freetype/freetype/src/cff/cf2blues.h
+++ b/drivers/freetype/freetype/src/cff/cf2blues.h
diff --git a/tools/freetype/freetype/src/cff/cf2error.c b/drivers/freetype/freetype/src/cff/cf2error.c
index b5595a3d1f..b5595a3d1f 100644
--- a/tools/freetype/freetype/src/cff/cf2error.c
+++ b/drivers/freetype/freetype/src/cff/cf2error.c
diff --git a/tools/freetype/freetype/src/cff/cf2error.h b/drivers/freetype/freetype/src/cff/cf2error.h
index 6453ebcb7b..6453ebcb7b 100644
--- a/tools/freetype/freetype/src/cff/cf2error.h
+++ b/drivers/freetype/freetype/src/cff/cf2error.h
diff --git a/tools/freetype/freetype/src/cff/cf2fixed.h b/drivers/freetype/freetype/src/cff/cf2fixed.h
index ed1452a7da..ed1452a7da 100644
--- a/tools/freetype/freetype/src/cff/cf2fixed.h
+++ b/drivers/freetype/freetype/src/cff/cf2fixed.h
diff --git a/tools/freetype/freetype/src/cff/cf2font.c b/drivers/freetype/freetype/src/cff/cf2font.c
index 479d9125d1..479d9125d1 100644
--- a/tools/freetype/freetype/src/cff/cf2font.c
+++ b/drivers/freetype/freetype/src/cff/cf2font.c
diff --git a/tools/freetype/freetype/src/cff/cf2font.h b/drivers/freetype/freetype/src/cff/cf2font.h
index f9dd1bbd40..f9dd1bbd40 100644
--- a/tools/freetype/freetype/src/cff/cf2font.h
+++ b/drivers/freetype/freetype/src/cff/cf2font.h
diff --git a/tools/freetype/freetype/src/cff/cf2ft.c b/drivers/freetype/freetype/src/cff/cf2ft.c
index c09a0244a8..c09a0244a8 100644
--- a/tools/freetype/freetype/src/cff/cf2ft.c
+++ b/drivers/freetype/freetype/src/cff/cf2ft.c
diff --git a/tools/freetype/freetype/src/cff/cf2ft.h b/drivers/freetype/freetype/src/cff/cf2ft.h
index 731da3ca8c..731da3ca8c 100644
--- a/tools/freetype/freetype/src/cff/cf2ft.h
+++ b/drivers/freetype/freetype/src/cff/cf2ft.h
diff --git a/tools/freetype/freetype/src/cff/cf2glue.h b/drivers/freetype/freetype/src/cff/cf2glue.h
index a24da39e93..a24da39e93 100644
--- a/tools/freetype/freetype/src/cff/cf2glue.h
+++ b/drivers/freetype/freetype/src/cff/cf2glue.h
diff --git a/tools/freetype/freetype/src/cff/cf2hints.c b/drivers/freetype/freetype/src/cff/cf2hints.c
index 96bd49f186..96bd49f186 100644
--- a/tools/freetype/freetype/src/cff/cf2hints.c
+++ b/drivers/freetype/freetype/src/cff/cf2hints.c
diff --git a/tools/freetype/freetype/src/cff/cf2hints.h b/drivers/freetype/freetype/src/cff/cf2hints.h
index c4fa922a39..c4fa922a39 100644
--- a/tools/freetype/freetype/src/cff/cf2hints.h
+++ b/drivers/freetype/freetype/src/cff/cf2hints.h
diff --git a/tools/freetype/freetype/src/cff/cf2intrp.c b/drivers/freetype/freetype/src/cff/cf2intrp.c
index 5610917cc3..5610917cc3 100644
--- a/tools/freetype/freetype/src/cff/cf2intrp.c
+++ b/drivers/freetype/freetype/src/cff/cf2intrp.c
diff --git a/tools/freetype/freetype/src/cff/cf2intrp.h b/drivers/freetype/freetype/src/cff/cf2intrp.h
index b5d8947838..b5d8947838 100644
--- a/tools/freetype/freetype/src/cff/cf2intrp.h
+++ b/drivers/freetype/freetype/src/cff/cf2intrp.h
diff --git a/tools/freetype/freetype/src/cff/cf2read.c b/drivers/freetype/freetype/src/cff/cf2read.c
index 2b429e3eeb..2b429e3eeb 100644
--- a/tools/freetype/freetype/src/cff/cf2read.c
+++ b/drivers/freetype/freetype/src/cff/cf2read.c
diff --git a/tools/freetype/freetype/src/cff/cf2read.h b/drivers/freetype/freetype/src/cff/cf2read.h
index 7ef7c8c149..7ef7c8c149 100644
--- a/tools/freetype/freetype/src/cff/cf2read.h
+++ b/drivers/freetype/freetype/src/cff/cf2read.h
diff --git a/tools/freetype/freetype/src/cff/cf2stack.c b/drivers/freetype/freetype/src/cff/cf2stack.c
index 8332b5d91a..8332b5d91a 100644
--- a/tools/freetype/freetype/src/cff/cf2stack.c
+++ b/drivers/freetype/freetype/src/cff/cf2stack.c
diff --git a/tools/freetype/freetype/src/cff/cf2stack.h b/drivers/freetype/freetype/src/cff/cf2stack.h
index 7d6d1961fe..7d6d1961fe 100644
--- a/tools/freetype/freetype/src/cff/cf2stack.h
+++ b/drivers/freetype/freetype/src/cff/cf2stack.h
diff --git a/tools/freetype/freetype/src/cff/cf2types.h b/drivers/freetype/freetype/src/cff/cf2types.h
index ac6a02266e..ac6a02266e 100644
--- a/tools/freetype/freetype/src/cff/cf2types.h
+++ b/drivers/freetype/freetype/src/cff/cf2types.h
diff --git a/tools/freetype/freetype/src/cff/cff.c b/drivers/freetype/freetype/src/cff/cff.c
index c3840b5838..c3840b5838 100644
--- a/tools/freetype/freetype/src/cff/cff.c
+++ b/drivers/freetype/freetype/src/cff/cff.c
diff --git a/tools/freetype/freetype/src/cff/cffcmap.c b/drivers/freetype/freetype/src/cff/cffcmap.c
index f6e03c6420..f6e03c6420 100644
--- a/tools/freetype/freetype/src/cff/cffcmap.c
+++ b/drivers/freetype/freetype/src/cff/cffcmap.c
diff --git a/tools/freetype/freetype/src/cff/cffcmap.h b/drivers/freetype/freetype/src/cff/cffcmap.h
index 3f7f67bbe0..3f7f67bbe0 100644
--- a/tools/freetype/freetype/src/cff/cffcmap.h
+++ b/drivers/freetype/freetype/src/cff/cffcmap.h
diff --git a/tools/freetype/freetype/src/cff/cffdrivr.c b/drivers/freetype/freetype/src/cff/cffdrivr.c
index c8ca96ba49..c8ca96ba49 100644
--- a/tools/freetype/freetype/src/cff/cffdrivr.c
+++ b/drivers/freetype/freetype/src/cff/cffdrivr.c
diff --git a/tools/freetype/freetype/src/cff/cffdrivr.h b/drivers/freetype/freetype/src/cff/cffdrivr.h
index 50e8138701..50e8138701 100644
--- a/tools/freetype/freetype/src/cff/cffdrivr.h
+++ b/drivers/freetype/freetype/src/cff/cffdrivr.h
diff --git a/tools/freetype/freetype/src/cff/cfferrs.h b/drivers/freetype/freetype/src/cff/cfferrs.h
index 801d73ec6b..801d73ec6b 100644
--- a/tools/freetype/freetype/src/cff/cfferrs.h
+++ b/drivers/freetype/freetype/src/cff/cfferrs.h
diff --git a/tools/freetype/freetype/src/cff/cffgload.c b/drivers/freetype/freetype/src/cff/cffgload.c
index 6a8494fa9f..6a8494fa9f 100644
--- a/tools/freetype/freetype/src/cff/cffgload.c
+++ b/drivers/freetype/freetype/src/cff/cffgload.c
diff --git a/tools/freetype/freetype/src/cff/cffgload.h b/drivers/freetype/freetype/src/cff/cffgload.h
index 41df7db692..41df7db692 100644
--- a/tools/freetype/freetype/src/cff/cffgload.h
+++ b/drivers/freetype/freetype/src/cff/cffgload.h
diff --git a/tools/freetype/freetype/src/cff/cffload.c b/drivers/freetype/freetype/src/cff/cffload.c
index 64b497168d..64b497168d 100644
--- a/tools/freetype/freetype/src/cff/cffload.c
+++ b/drivers/freetype/freetype/src/cff/cffload.c
diff --git a/tools/freetype/freetype/src/cff/cffload.h b/drivers/freetype/freetype/src/cff/cffload.h
index 804961964b..804961964b 100644
--- a/tools/freetype/freetype/src/cff/cffload.h
+++ b/drivers/freetype/freetype/src/cff/cffload.h
diff --git a/tools/freetype/freetype/src/cff/cffobjs.c b/drivers/freetype/freetype/src/cff/cffobjs.c
index dd750d1041..dd750d1041 100644
--- a/tools/freetype/freetype/src/cff/cffobjs.c
+++ b/drivers/freetype/freetype/src/cff/cffobjs.c
diff --git a/tools/freetype/freetype/src/cff/cffobjs.h b/drivers/freetype/freetype/src/cff/cffobjs.h
index b375c20c74..b375c20c74 100644
--- a/tools/freetype/freetype/src/cff/cffobjs.h
+++ b/drivers/freetype/freetype/src/cff/cffobjs.h
diff --git a/tools/freetype/freetype/src/cff/cffparse.c b/drivers/freetype/freetype/src/cff/cffparse.c
index 96222120b0..96222120b0 100644
--- a/tools/freetype/freetype/src/cff/cffparse.c
+++ b/drivers/freetype/freetype/src/cff/cffparse.c
diff --git a/tools/freetype/freetype/src/cff/cffparse.h b/drivers/freetype/freetype/src/cff/cffparse.h
index 61d91ed2e2..61d91ed2e2 100644
--- a/tools/freetype/freetype/src/cff/cffparse.h
+++ b/drivers/freetype/freetype/src/cff/cffparse.h
diff --git a/tools/freetype/freetype/src/cff/cffpic.c b/drivers/freetype/freetype/src/cff/cffpic.c
index f22e4f0d53..f22e4f0d53 100644
--- a/tools/freetype/freetype/src/cff/cffpic.c
+++ b/drivers/freetype/freetype/src/cff/cffpic.c
diff --git a/tools/freetype/freetype/src/cff/cffpic.h b/drivers/freetype/freetype/src/cff/cffpic.h
index 50bab4c173..50bab4c173 100644
--- a/tools/freetype/freetype/src/cff/cffpic.h
+++ b/drivers/freetype/freetype/src/cff/cffpic.h
diff --git a/tools/freetype/freetype/src/cff/cfftoken.h b/drivers/freetype/freetype/src/cff/cfftoken.h
index bcb4276a78..bcb4276a78 100644
--- a/tools/freetype/freetype/src/cff/cfftoken.h
+++ b/drivers/freetype/freetype/src/cff/cfftoken.h
diff --git a/tools/freetype/freetype/src/cff/cfftypes.h b/drivers/freetype/freetype/src/cff/cfftypes.h
index 8727446664..8727446664 100644
--- a/tools/freetype/freetype/src/cff/cfftypes.h
+++ b/drivers/freetype/freetype/src/cff/cfftypes.h
diff --git a/tools/freetype/freetype/src/cff/module.mk b/drivers/freetype/freetype/src/cff/module.mk
index ef1391c279..ef1391c279 100644
--- a/tools/freetype/freetype/src/cff/module.mk
+++ b/drivers/freetype/freetype/src/cff/module.mk
diff --git a/tools/freetype/freetype/src/cff/rules.mk b/drivers/freetype/freetype/src/cff/rules.mk
index 13115c2550..13115c2550 100644
--- a/tools/freetype/freetype/src/cff/rules.mk
+++ b/drivers/freetype/freetype/src/cff/rules.mk
diff --git a/tools/freetype/freetype/src/cid/Jamfile b/drivers/freetype/freetype/src/cid/Jamfile
index ebeaed54ea..ebeaed54ea 100644
--- a/tools/freetype/freetype/src/cid/Jamfile
+++ b/drivers/freetype/freetype/src/cid/Jamfile
diff --git a/tools/freetype/freetype/src/cid/ciderrs.h b/drivers/freetype/freetype/src/cid/ciderrs.h
index ef13155504..ef13155504 100644
--- a/tools/freetype/freetype/src/cid/ciderrs.h
+++ b/drivers/freetype/freetype/src/cid/ciderrs.h
diff --git a/tools/freetype/freetype/src/cid/cidgload.c b/drivers/freetype/freetype/src/cid/cidgload.c
index a1a8658693..a1a8658693 100644
--- a/tools/freetype/freetype/src/cid/cidgload.c
+++ b/drivers/freetype/freetype/src/cid/cidgload.c
diff --git a/tools/freetype/freetype/src/cid/cidgload.h b/drivers/freetype/freetype/src/cid/cidgload.h
index a0a91bfea8..a0a91bfea8 100644
--- a/tools/freetype/freetype/src/cid/cidgload.h
+++ b/drivers/freetype/freetype/src/cid/cidgload.h
diff --git a/tools/freetype/freetype/src/cid/cidload.c b/drivers/freetype/freetype/src/cid/cidload.c
index f2a18ea510..f2a18ea510 100644
--- a/tools/freetype/freetype/src/cid/cidload.c
+++ b/drivers/freetype/freetype/src/cid/cidload.c
diff --git a/tools/freetype/freetype/src/cid/cidload.h b/drivers/freetype/freetype/src/cid/cidload.h
index 8c172ffee2..8c172ffee2 100644
--- a/tools/freetype/freetype/src/cid/cidload.h
+++ b/drivers/freetype/freetype/src/cid/cidload.h
diff --git a/tools/freetype/freetype/src/cid/cidobjs.c b/drivers/freetype/freetype/src/cid/cidobjs.c
index 46555e2dc8..46555e2dc8 100644
--- a/tools/freetype/freetype/src/cid/cidobjs.c
+++ b/drivers/freetype/freetype/src/cid/cidobjs.c
diff --git a/tools/freetype/freetype/src/cid/cidobjs.h b/drivers/freetype/freetype/src/cid/cidobjs.h
index aee346d1c8..aee346d1c8 100644
--- a/tools/freetype/freetype/src/cid/cidobjs.h
+++ b/drivers/freetype/freetype/src/cid/cidobjs.h
diff --git a/tools/freetype/freetype/src/cid/cidparse.c b/drivers/freetype/freetype/src/cid/cidparse.c
index 53df3155d1..53df3155d1 100644
--- a/tools/freetype/freetype/src/cid/cidparse.c
+++ b/drivers/freetype/freetype/src/cid/cidparse.c
diff --git a/tools/freetype/freetype/src/cid/cidparse.h b/drivers/freetype/freetype/src/cid/cidparse.h
index ca37deab93..ca37deab93 100644
--- a/tools/freetype/freetype/src/cid/cidparse.h
+++ b/drivers/freetype/freetype/src/cid/cidparse.h
diff --git a/tools/freetype/freetype/src/cid/cidriver.c b/drivers/freetype/freetype/src/cid/cidriver.c
index 6132a27763..6132a27763 100644
--- a/tools/freetype/freetype/src/cid/cidriver.c
+++ b/drivers/freetype/freetype/src/cid/cidriver.c
diff --git a/tools/freetype/freetype/src/cid/cidriver.h b/drivers/freetype/freetype/src/cid/cidriver.h
index 3c45e06886..3c45e06886 100644
--- a/tools/freetype/freetype/src/cid/cidriver.h
+++ b/drivers/freetype/freetype/src/cid/cidriver.h
diff --git a/tools/freetype/freetype/src/cid/cidtoken.h b/drivers/freetype/freetype/src/cid/cidtoken.h
index 904cb09cf4..904cb09cf4 100644
--- a/tools/freetype/freetype/src/cid/cidtoken.h
+++ b/drivers/freetype/freetype/src/cid/cidtoken.h
diff --git a/tools/freetype/freetype/src/cid/module.mk b/drivers/freetype/freetype/src/cid/module.mk
index ce30bfd7ae..ce30bfd7ae 100644
--- a/tools/freetype/freetype/src/cid/module.mk
+++ b/drivers/freetype/freetype/src/cid/module.mk
diff --git a/tools/freetype/freetype/src/cid/rules.mk b/drivers/freetype/freetype/src/cid/rules.mk
index f362744612..f362744612 100644
--- a/tools/freetype/freetype/src/cid/rules.mk
+++ b/drivers/freetype/freetype/src/cid/rules.mk
diff --git a/tools/freetype/freetype/src/cid/type1cid.c b/drivers/freetype/freetype/src/cid/type1cid.c
index 0b866e97c4..0b866e97c4 100644
--- a/tools/freetype/freetype/src/cid/type1cid.c
+++ b/drivers/freetype/freetype/src/cid/type1cid.c
diff --git a/tools/freetype/freetype/src/gxvalid/Jamfile b/drivers/freetype/freetype/src/gxvalid/Jamfile
index 88049a625d..88049a625d 100644
--- a/tools/freetype/freetype/src/gxvalid/Jamfile
+++ b/drivers/freetype/freetype/src/gxvalid/Jamfile
diff --git a/tools/freetype/freetype/src/gxvalid/README b/drivers/freetype/freetype/src/gxvalid/README
index 28e535b0bc..28e535b0bc 100644
--- a/tools/freetype/freetype/src/gxvalid/README
+++ b/drivers/freetype/freetype/src/gxvalid/README
diff --git a/tools/freetype/freetype/src/gxvalid/gxvalid.c b/drivers/freetype/freetype/src/gxvalid/gxvalid.c
index bc36e675d1..bc36e675d1 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvalid.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvalid.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvalid.h b/drivers/freetype/freetype/src/gxvalid/gxvalid.h
index 27be9ecca8..27be9ecca8 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvalid.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxvalid.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxvbsln.c b/drivers/freetype/freetype/src/gxvalid/gxvbsln.c
index 3d10031563..3d10031563 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvbsln.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvbsln.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvcommn.c b/drivers/freetype/freetype/src/gxvalid/gxvcommn.c
index 2ac80be8c7..2ac80be8c7 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvcommn.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvcommn.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvcommn.h b/drivers/freetype/freetype/src/gxvalid/gxvcommn.h
index 1ff87e4423..1ff87e4423 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvcommn.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxvcommn.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxverror.h b/drivers/freetype/freetype/src/gxvalid/gxverror.h
index c573b72de7..c573b72de7 100644
--- a/tools/freetype/freetype/src/gxvalid/gxverror.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxverror.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxvfeat.c b/drivers/freetype/freetype/src/gxvalid/gxvfeat.c
index 6f75650991..6f75650991 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvfeat.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvfeat.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvfeat.h b/drivers/freetype/freetype/src/gxvalid/gxvfeat.h
index 049d23a0b9..049d23a0b9 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvfeat.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxvfeat.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxvfgen.c b/drivers/freetype/freetype/src/gxvalid/gxvfgen.c
index e48778a2a1..e48778a2a1 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvfgen.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvfgen.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvjust.c b/drivers/freetype/freetype/src/gxvalid/gxvjust.c
index 7816e0b7fb..7816e0b7fb 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvjust.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvjust.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvkern.c b/drivers/freetype/freetype/src/gxvalid/gxvkern.c
index 557c5f1fe4..557c5f1fe4 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvkern.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvkern.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvlcar.c b/drivers/freetype/freetype/src/gxvalid/gxvlcar.c
index f14fa5b131..f14fa5b131 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvlcar.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvlcar.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmod.c b/drivers/freetype/freetype/src/gxvalid/gxvmod.c
index 278d47688a..278d47688a 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmod.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmod.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmod.h b/drivers/freetype/freetype/src/gxvalid/gxvmod.h
index 22732ba992..22732ba992 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmod.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmod.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort.c b/drivers/freetype/freetype/src/gxvalid/gxvmort.c
index 5356e67ca7..5356e67ca7 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort.h b/drivers/freetype/freetype/src/gxvalid/gxvmort.h
index 1e5a1f5ab6..1e5a1f5ab6 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort0.c b/drivers/freetype/freetype/src/gxvalid/gxvmort0.c
index b136ceda27..b136ceda27 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort0.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort0.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort1.c b/drivers/freetype/freetype/src/gxvalid/gxvmort1.c
index 1c17a5d92a..1c17a5d92a 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort1.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort1.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort2.c b/drivers/freetype/freetype/src/gxvalid/gxvmort2.c
index 9e08fb792a..9e08fb792a 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort2.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort2.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort4.c b/drivers/freetype/freetype/src/gxvalid/gxvmort4.c
index 83470988c0..83470988c0 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort4.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort4.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmort5.c b/drivers/freetype/freetype/src/gxvalid/gxvmort5.c
index 32cfb03639..32cfb03639 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmort5.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmort5.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx.c b/drivers/freetype/freetype/src/gxvalid/gxvmorx.c
index 5ae04d3212..5ae04d3212 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx.h b/drivers/freetype/freetype/src/gxvalid/gxvmorx.h
index 28c1a44f6f..28c1a44f6f 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx.h
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx.h
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx0.c b/drivers/freetype/freetype/src/gxvalid/gxvmorx0.c
index 6a736c1775..6a736c1775 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx0.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx0.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx1.c b/drivers/freetype/freetype/src/gxvalid/gxvmorx1.c
index ce0009a16f..ce0009a16f 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx1.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx1.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx2.c b/drivers/freetype/freetype/src/gxvalid/gxvmorx2.c
index 9d2b0bc4af..9d2b0bc4af 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx2.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx2.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx4.c b/drivers/freetype/freetype/src/gxvalid/gxvmorx4.c
index c0d2f78e39..c0d2f78e39 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx4.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx4.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvmorx5.c b/drivers/freetype/freetype/src/gxvalid/gxvmorx5.c
index d8cf700797..d8cf700797 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvmorx5.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvmorx5.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvopbd.c b/drivers/freetype/freetype/src/gxvalid/gxvopbd.c
index e125060946..e125060946 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvopbd.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvopbd.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvprop.c b/drivers/freetype/freetype/src/gxvalid/gxvprop.c
index 0be21336f8..0be21336f8 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvprop.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvprop.c
diff --git a/tools/freetype/freetype/src/gxvalid/gxvtrak.c b/drivers/freetype/freetype/src/gxvalid/gxvtrak.c
index 11fbd7ccfb..11fbd7ccfb 100644
--- a/tools/freetype/freetype/src/gxvalid/gxvtrak.c
+++ b/drivers/freetype/freetype/src/gxvalid/gxvtrak.c
diff --git a/tools/freetype/freetype/src/gxvalid/module.mk b/drivers/freetype/freetype/src/gxvalid/module.mk
index 9fd098e2c5..9fd098e2c5 100644
--- a/tools/freetype/freetype/src/gxvalid/module.mk
+++ b/drivers/freetype/freetype/src/gxvalid/module.mk
diff --git a/tools/freetype/freetype/src/gxvalid/rules.mk b/drivers/freetype/freetype/src/gxvalid/rules.mk
index 57bc0823db..57bc0823db 100644
--- a/tools/freetype/freetype/src/gxvalid/rules.mk
+++ b/drivers/freetype/freetype/src/gxvalid/rules.mk
diff --git a/tools/freetype/freetype/src/otvalid/Jamfile b/drivers/freetype/freetype/src/otvalid/Jamfile
index b457143de4..b457143de4 100644
--- a/tools/freetype/freetype/src/otvalid/Jamfile
+++ b/drivers/freetype/freetype/src/otvalid/Jamfile
diff --git a/tools/freetype/freetype/src/otvalid/module.mk b/drivers/freetype/freetype/src/otvalid/module.mk
index 9cadde55e4..9cadde55e4 100644
--- a/tools/freetype/freetype/src/otvalid/module.mk
+++ b/drivers/freetype/freetype/src/otvalid/module.mk
diff --git a/tools/freetype/freetype/src/otvalid/otvalid.c b/drivers/freetype/freetype/src/otvalid/otvalid.c
index d5c2b75abb..d5c2b75abb 100644
--- a/tools/freetype/freetype/src/otvalid/otvalid.c
+++ b/drivers/freetype/freetype/src/otvalid/otvalid.c
diff --git a/tools/freetype/freetype/src/otvalid/otvalid.h b/drivers/freetype/freetype/src/otvalid/otvalid.h
index eb99b9cc48..eb99b9cc48 100644
--- a/tools/freetype/freetype/src/otvalid/otvalid.h
+++ b/drivers/freetype/freetype/src/otvalid/otvalid.h
diff --git a/tools/freetype/freetype/src/otvalid/otvbase.c b/drivers/freetype/freetype/src/otvalid/otvbase.c
index d742d2dc95..d742d2dc95 100644
--- a/tools/freetype/freetype/src/otvalid/otvbase.c
+++ b/drivers/freetype/freetype/src/otvalid/otvbase.c
diff --git a/tools/freetype/freetype/src/otvalid/otvcommn.c b/drivers/freetype/freetype/src/otvalid/otvcommn.c
index a4f885b51f..a4f885b51f 100644
--- a/tools/freetype/freetype/src/otvalid/otvcommn.c
+++ b/drivers/freetype/freetype/src/otvalid/otvcommn.c
diff --git a/tools/freetype/freetype/src/otvalid/otvcommn.h b/drivers/freetype/freetype/src/otvalid/otvcommn.h
index 898887fc95..898887fc95 100644
--- a/tools/freetype/freetype/src/otvalid/otvcommn.h
+++ b/drivers/freetype/freetype/src/otvalid/otvcommn.h
diff --git a/tools/freetype/freetype/src/otvalid/otverror.h b/drivers/freetype/freetype/src/otvalid/otverror.h
index b6f00c9dba..b6f00c9dba 100644
--- a/tools/freetype/freetype/src/otvalid/otverror.h
+++ b/drivers/freetype/freetype/src/otvalid/otverror.h
diff --git a/tools/freetype/freetype/src/otvalid/otvgdef.c b/drivers/freetype/freetype/src/otvalid/otvgdef.c
index 3633ad0de1..3633ad0de1 100644
--- a/tools/freetype/freetype/src/otvalid/otvgdef.c
+++ b/drivers/freetype/freetype/src/otvalid/otvgdef.c
diff --git a/tools/freetype/freetype/src/otvalid/otvgpos.c b/drivers/freetype/freetype/src/otvalid/otvgpos.c
index 49b46183a3..49b46183a3 100644
--- a/tools/freetype/freetype/src/otvalid/otvgpos.c
+++ b/drivers/freetype/freetype/src/otvalid/otvgpos.c
diff --git a/tools/freetype/freetype/src/otvalid/otvgpos.h b/drivers/freetype/freetype/src/otvalid/otvgpos.h
index 14ca408261..14ca408261 100644
--- a/tools/freetype/freetype/src/otvalid/otvgpos.h
+++ b/drivers/freetype/freetype/src/otvalid/otvgpos.h
diff --git a/tools/freetype/freetype/src/otvalid/otvgsub.c b/drivers/freetype/freetype/src/otvalid/otvgsub.c
index ed499d1e92..ed499d1e92 100644
--- a/tools/freetype/freetype/src/otvalid/otvgsub.c
+++ b/drivers/freetype/freetype/src/otvalid/otvgsub.c
diff --git a/tools/freetype/freetype/src/otvalid/otvjstf.c b/drivers/freetype/freetype/src/otvalid/otvjstf.c
index a616a23432..a616a23432 100644
--- a/tools/freetype/freetype/src/otvalid/otvjstf.c
+++ b/drivers/freetype/freetype/src/otvalid/otvjstf.c
diff --git a/tools/freetype/freetype/src/otvalid/otvmath.c b/drivers/freetype/freetype/src/otvalid/otvmath.c
index 96f841f2a9..96f841f2a9 100644
--- a/tools/freetype/freetype/src/otvalid/otvmath.c
+++ b/drivers/freetype/freetype/src/otvalid/otvmath.c
diff --git a/tools/freetype/freetype/src/otvalid/otvmod.c b/drivers/freetype/freetype/src/otvalid/otvmod.c
index 37c6e869dd..37c6e869dd 100644
--- a/tools/freetype/freetype/src/otvalid/otvmod.c
+++ b/drivers/freetype/freetype/src/otvalid/otvmod.c
diff --git a/tools/freetype/freetype/src/otvalid/otvmod.h b/drivers/freetype/freetype/src/otvalid/otvmod.h
index f7e1550787..f7e1550787 100644
--- a/tools/freetype/freetype/src/otvalid/otvmod.h
+++ b/drivers/freetype/freetype/src/otvalid/otvmod.h
diff --git a/tools/freetype/freetype/src/otvalid/rules.mk b/drivers/freetype/freetype/src/otvalid/rules.mk
index 53bd41e5e7..53bd41e5e7 100644
--- a/tools/freetype/freetype/src/otvalid/rules.mk
+++ b/drivers/freetype/freetype/src/otvalid/rules.mk
diff --git a/tools/freetype/freetype/src/pcf/Jamfile b/drivers/freetype/freetype/src/pcf/Jamfile
index 752fcac2a1..752fcac2a1 100644
--- a/tools/freetype/freetype/src/pcf/Jamfile
+++ b/drivers/freetype/freetype/src/pcf/Jamfile
diff --git a/tools/freetype/freetype/src/pcf/README b/drivers/freetype/freetype/src/pcf/README
index 10eff15fbe..10eff15fbe 100644
--- a/tools/freetype/freetype/src/pcf/README
+++ b/drivers/freetype/freetype/src/pcf/README
diff --git a/tools/freetype/freetype/src/pcf/module.mk b/drivers/freetype/freetype/src/pcf/module.mk
index df383ff0fb..df383ff0fb 100644
--- a/tools/freetype/freetype/src/pcf/module.mk
+++ b/drivers/freetype/freetype/src/pcf/module.mk
diff --git a/tools/freetype/freetype/src/pcf/pcf.c b/drivers/freetype/freetype/src/pcf/pcf.c
index 11d5b7b2a0..11d5b7b2a0 100644
--- a/tools/freetype/freetype/src/pcf/pcf.c
+++ b/drivers/freetype/freetype/src/pcf/pcf.c
diff --git a/tools/freetype/freetype/src/pcf/pcf.h b/drivers/freetype/freetype/src/pcf/pcf.h
index af0ffc3378..af0ffc3378 100644
--- a/tools/freetype/freetype/src/pcf/pcf.h
+++ b/drivers/freetype/freetype/src/pcf/pcf.h
diff --git a/tools/freetype/freetype/src/pcf/pcfdrivr.c b/drivers/freetype/freetype/src/pcf/pcfdrivr.c
index df25a645a0..df25a645a0 100644
--- a/tools/freetype/freetype/src/pcf/pcfdrivr.c
+++ b/drivers/freetype/freetype/src/pcf/pcfdrivr.c
diff --git a/tools/freetype/freetype/src/pcf/pcfdrivr.h b/drivers/freetype/freetype/src/pcf/pcfdrivr.h
index 54614951b5..54614951b5 100644
--- a/tools/freetype/freetype/src/pcf/pcfdrivr.h
+++ b/drivers/freetype/freetype/src/pcf/pcfdrivr.h
diff --git a/tools/freetype/freetype/src/pcf/pcferror.h b/drivers/freetype/freetype/src/pcf/pcferror.h
index e51fff8ea6..e51fff8ea6 100644
--- a/tools/freetype/freetype/src/pcf/pcferror.h
+++ b/drivers/freetype/freetype/src/pcf/pcferror.h
diff --git a/tools/freetype/freetype/src/pcf/pcfread.c b/drivers/freetype/freetype/src/pcf/pcfread.c
index 3c1bb7dfa2..3c1bb7dfa2 100644
--- a/tools/freetype/freetype/src/pcf/pcfread.c
+++ b/drivers/freetype/freetype/src/pcf/pcfread.c
diff --git a/tools/freetype/freetype/src/pcf/pcfread.h b/drivers/freetype/freetype/src/pcf/pcfread.h
index c9524f1346..c9524f1346 100644
--- a/tools/freetype/freetype/src/pcf/pcfread.h
+++ b/drivers/freetype/freetype/src/pcf/pcfread.h
diff --git a/tools/freetype/freetype/src/pcf/pcfutil.c b/drivers/freetype/freetype/src/pcf/pcfutil.c
index b91274f935..b91274f935 100644
--- a/tools/freetype/freetype/src/pcf/pcfutil.c
+++ b/drivers/freetype/freetype/src/pcf/pcfutil.c
diff --git a/tools/freetype/freetype/src/pcf/pcfutil.h b/drivers/freetype/freetype/src/pcf/pcfutil.h
index ce10fb541d..ce10fb541d 100644
--- a/tools/freetype/freetype/src/pcf/pcfutil.h
+++ b/drivers/freetype/freetype/src/pcf/pcfutil.h
diff --git a/tools/freetype/freetype/src/pcf/rules.mk b/drivers/freetype/freetype/src/pcf/rules.mk
index 78641528fa..78641528fa 100644
--- a/tools/freetype/freetype/src/pcf/rules.mk
+++ b/drivers/freetype/freetype/src/pcf/rules.mk
diff --git a/tools/freetype/freetype/src/pfr/Jamfile b/drivers/freetype/freetype/src/pfr/Jamfile
index 9e2f2b8d05..9e2f2b8d05 100644
--- a/tools/freetype/freetype/src/pfr/Jamfile
+++ b/drivers/freetype/freetype/src/pfr/Jamfile
diff --git a/tools/freetype/freetype/src/pfr/module.mk b/drivers/freetype/freetype/src/pfr/module.mk
index 8d1d28a9d2..8d1d28a9d2 100644
--- a/tools/freetype/freetype/src/pfr/module.mk
+++ b/drivers/freetype/freetype/src/pfr/module.mk
diff --git a/tools/freetype/freetype/src/pfr/pfr.c b/drivers/freetype/freetype/src/pfr/pfr.c
index eb2c4edb7e..eb2c4edb7e 100644
--- a/tools/freetype/freetype/src/pfr/pfr.c
+++ b/drivers/freetype/freetype/src/pfr/pfr.c
diff --git a/tools/freetype/freetype/src/pfr/pfrcmap.c b/drivers/freetype/freetype/src/pfr/pfrcmap.c
index 740c433d66..740c433d66 100644
--- a/tools/freetype/freetype/src/pfr/pfrcmap.c
+++ b/drivers/freetype/freetype/src/pfr/pfrcmap.c
diff --git a/tools/freetype/freetype/src/pfr/pfrcmap.h b/drivers/freetype/freetype/src/pfr/pfrcmap.h
index a626953054..a626953054 100644
--- a/tools/freetype/freetype/src/pfr/pfrcmap.h
+++ b/drivers/freetype/freetype/src/pfr/pfrcmap.h
diff --git a/tools/freetype/freetype/src/pfr/pfrdrivr.c b/drivers/freetype/freetype/src/pfr/pfrdrivr.c
index 4c43947bf4..4c43947bf4 100644
--- a/tools/freetype/freetype/src/pfr/pfrdrivr.c
+++ b/drivers/freetype/freetype/src/pfr/pfrdrivr.c
diff --git a/tools/freetype/freetype/src/pfr/pfrdrivr.h b/drivers/freetype/freetype/src/pfr/pfrdrivr.h
index 75f86c5cdd..75f86c5cdd 100644
--- a/tools/freetype/freetype/src/pfr/pfrdrivr.h
+++ b/drivers/freetype/freetype/src/pfr/pfrdrivr.h
diff --git a/tools/freetype/freetype/src/pfr/pfrerror.h b/drivers/freetype/freetype/src/pfr/pfrerror.h
index 94dc8c5e1c..94dc8c5e1c 100644
--- a/tools/freetype/freetype/src/pfr/pfrerror.h
+++ b/drivers/freetype/freetype/src/pfr/pfrerror.h
diff --git a/tools/freetype/freetype/src/pfr/pfrgload.c b/drivers/freetype/freetype/src/pfr/pfrgload.c
index 88b4d66a13..88b4d66a13 100644
--- a/tools/freetype/freetype/src/pfr/pfrgload.c
+++ b/drivers/freetype/freetype/src/pfr/pfrgload.c
diff --git a/tools/freetype/freetype/src/pfr/pfrgload.h b/drivers/freetype/freetype/src/pfr/pfrgload.h
index 7cc7a8702a..7cc7a8702a 100644
--- a/tools/freetype/freetype/src/pfr/pfrgload.h
+++ b/drivers/freetype/freetype/src/pfr/pfrgload.h
diff --git a/tools/freetype/freetype/src/pfr/pfrload.c b/drivers/freetype/freetype/src/pfr/pfrload.c
index c19fceb1ee..c19fceb1ee 100644
--- a/tools/freetype/freetype/src/pfr/pfrload.c
+++ b/drivers/freetype/freetype/src/pfr/pfrload.c
diff --git a/tools/freetype/freetype/src/pfr/pfrload.h b/drivers/freetype/freetype/src/pfr/pfrload.h
index ed010715d1..ed010715d1 100644
--- a/tools/freetype/freetype/src/pfr/pfrload.h
+++ b/drivers/freetype/freetype/src/pfr/pfrload.h
diff --git a/tools/freetype/freetype/src/pfr/pfrobjs.c b/drivers/freetype/freetype/src/pfr/pfrobjs.c
index 75fc4c3f1f..75fc4c3f1f 100644
--- a/tools/freetype/freetype/src/pfr/pfrobjs.c
+++ b/drivers/freetype/freetype/src/pfr/pfrobjs.c
diff --git a/tools/freetype/freetype/src/pfr/pfrobjs.h b/drivers/freetype/freetype/src/pfr/pfrobjs.h
index f6aa8b44cc..f6aa8b44cc 100644
--- a/tools/freetype/freetype/src/pfr/pfrobjs.h
+++ b/drivers/freetype/freetype/src/pfr/pfrobjs.h
diff --git a/tools/freetype/freetype/src/pfr/pfrsbit.c b/drivers/freetype/freetype/src/pfr/pfrsbit.c
index 2da1500707..2da1500707 100644
--- a/tools/freetype/freetype/src/pfr/pfrsbit.c
+++ b/drivers/freetype/freetype/src/pfr/pfrsbit.c
diff --git a/tools/freetype/freetype/src/pfr/pfrsbit.h b/drivers/freetype/freetype/src/pfr/pfrsbit.h
index 015e9e6dad..015e9e6dad 100644
--- a/tools/freetype/freetype/src/pfr/pfrsbit.h
+++ b/drivers/freetype/freetype/src/pfr/pfrsbit.h
diff --git a/tools/freetype/freetype/src/pfr/pfrtypes.h b/drivers/freetype/freetype/src/pfr/pfrtypes.h
index 918310814c..918310814c 100644
--- a/tools/freetype/freetype/src/pfr/pfrtypes.h
+++ b/drivers/freetype/freetype/src/pfr/pfrtypes.h
diff --git a/tools/freetype/freetype/src/pfr/rules.mk b/drivers/freetype/freetype/src/pfr/rules.mk
index 60b96c7415..60b96c7415 100644
--- a/tools/freetype/freetype/src/pfr/rules.mk
+++ b/drivers/freetype/freetype/src/pfr/rules.mk
diff --git a/tools/freetype/freetype/src/psaux/Jamfile b/drivers/freetype/freetype/src/psaux/Jamfile
index faeded9044..faeded9044 100644
--- a/tools/freetype/freetype/src/psaux/Jamfile
+++ b/drivers/freetype/freetype/src/psaux/Jamfile
diff --git a/tools/freetype/freetype/src/psaux/afmparse.c b/drivers/freetype/freetype/src/psaux/afmparse.c
index 6a40e110dc..6a40e110dc 100644
--- a/tools/freetype/freetype/src/psaux/afmparse.c
+++ b/drivers/freetype/freetype/src/psaux/afmparse.c
diff --git a/tools/freetype/freetype/src/psaux/afmparse.h b/drivers/freetype/freetype/src/psaux/afmparse.h
index 35d96046c5..35d96046c5 100644
--- a/tools/freetype/freetype/src/psaux/afmparse.h
+++ b/drivers/freetype/freetype/src/psaux/afmparse.h
diff --git a/tools/freetype/freetype/src/psaux/module.mk b/drivers/freetype/freetype/src/psaux/module.mk
index 42bf6f5199..42bf6f5199 100644
--- a/tools/freetype/freetype/src/psaux/module.mk
+++ b/drivers/freetype/freetype/src/psaux/module.mk
diff --git a/tools/freetype/freetype/src/psaux/psaux.c b/drivers/freetype/freetype/src/psaux/psaux.c
index a4b9c5c6e4..a4b9c5c6e4 100644
--- a/tools/freetype/freetype/src/psaux/psaux.c
+++ b/drivers/freetype/freetype/src/psaux/psaux.c
diff --git a/tools/freetype/freetype/src/psaux/psauxerr.h b/drivers/freetype/freetype/src/psaux/psauxerr.h
index d52375f8cb..d52375f8cb 100644
--- a/tools/freetype/freetype/src/psaux/psauxerr.h
+++ b/drivers/freetype/freetype/src/psaux/psauxerr.h
diff --git a/tools/freetype/freetype/src/psaux/psauxmod.c b/drivers/freetype/freetype/src/psaux/psauxmod.c
index 4b1249d49b..4b1249d49b 100644
--- a/tools/freetype/freetype/src/psaux/psauxmod.c
+++ b/drivers/freetype/freetype/src/psaux/psauxmod.c
diff --git a/tools/freetype/freetype/src/psaux/psauxmod.h b/drivers/freetype/freetype/src/psaux/psauxmod.h
index 1217236924..1217236924 100644
--- a/tools/freetype/freetype/src/psaux/psauxmod.h
+++ b/drivers/freetype/freetype/src/psaux/psauxmod.h
diff --git a/tools/freetype/freetype/src/psaux/psconv.c b/drivers/freetype/freetype/src/psaux/psconv.c
index d0d8861c22..d0d8861c22 100644
--- a/tools/freetype/freetype/src/psaux/psconv.c
+++ b/drivers/freetype/freetype/src/psaux/psconv.c
diff --git a/tools/freetype/freetype/src/psaux/psconv.h b/drivers/freetype/freetype/src/psaux/psconv.h
index d91c762210..d91c762210 100644
--- a/tools/freetype/freetype/src/psaux/psconv.h
+++ b/drivers/freetype/freetype/src/psaux/psconv.h
diff --git a/tools/freetype/freetype/src/psaux/psobjs.c b/drivers/freetype/freetype/src/psaux/psobjs.c
index dd976d3a96..dd976d3a96 100644
--- a/tools/freetype/freetype/src/psaux/psobjs.c
+++ b/drivers/freetype/freetype/src/psaux/psobjs.c
diff --git a/tools/freetype/freetype/src/psaux/psobjs.h b/drivers/freetype/freetype/src/psaux/psobjs.h
index e380c60dab..e380c60dab 100644
--- a/tools/freetype/freetype/src/psaux/psobjs.h
+++ b/drivers/freetype/freetype/src/psaux/psobjs.h
diff --git a/tools/freetype/freetype/src/psaux/rules.mk b/drivers/freetype/freetype/src/psaux/rules.mk
index 7a1be37b69..7a1be37b69 100644
--- a/tools/freetype/freetype/src/psaux/rules.mk
+++ b/drivers/freetype/freetype/src/psaux/rules.mk
diff --git a/tools/freetype/freetype/src/psaux/t1cmap.c b/drivers/freetype/freetype/src/psaux/t1cmap.c
index 9e5bd34ffe..9e5bd34ffe 100644
--- a/tools/freetype/freetype/src/psaux/t1cmap.c
+++ b/drivers/freetype/freetype/src/psaux/t1cmap.c
diff --git a/tools/freetype/freetype/src/psaux/t1cmap.h b/drivers/freetype/freetype/src/psaux/t1cmap.h
index 7ae65d2fa1..7ae65d2fa1 100644
--- a/tools/freetype/freetype/src/psaux/t1cmap.h
+++ b/drivers/freetype/freetype/src/psaux/t1cmap.h
diff --git a/tools/freetype/freetype/src/psaux/t1decode.c b/drivers/freetype/freetype/src/psaux/t1decode.c
index 6ce370bfaa..6ce370bfaa 100644
--- a/tools/freetype/freetype/src/psaux/t1decode.c
+++ b/drivers/freetype/freetype/src/psaux/t1decode.c
diff --git a/tools/freetype/freetype/src/psaux/t1decode.h b/drivers/freetype/freetype/src/psaux/t1decode.h
index 00728db501..00728db501 100644
--- a/tools/freetype/freetype/src/psaux/t1decode.h
+++ b/drivers/freetype/freetype/src/psaux/t1decode.h
diff --git a/tools/freetype/freetype/src/pshinter/Jamfile b/drivers/freetype/freetype/src/pshinter/Jamfile
index 779f1b0b82..779f1b0b82 100644
--- a/tools/freetype/freetype/src/pshinter/Jamfile
+++ b/drivers/freetype/freetype/src/pshinter/Jamfile
diff --git a/tools/freetype/freetype/src/pshinter/module.mk b/drivers/freetype/freetype/src/pshinter/module.mk
index ed24eb7fa8..ed24eb7fa8 100644
--- a/tools/freetype/freetype/src/pshinter/module.mk
+++ b/drivers/freetype/freetype/src/pshinter/module.mk
diff --git a/tools/freetype/freetype/src/pshinter/pshalgo.c b/drivers/freetype/freetype/src/pshinter/pshalgo.c
index 343472ddb3..343472ddb3 100644
--- a/tools/freetype/freetype/src/pshinter/pshalgo.c
+++ b/drivers/freetype/freetype/src/pshinter/pshalgo.c
diff --git a/tools/freetype/freetype/src/pshinter/pshalgo.h b/drivers/freetype/freetype/src/pshinter/pshalgo.h
index c70f31ea94..c70f31ea94 100644
--- a/tools/freetype/freetype/src/pshinter/pshalgo.h
+++ b/drivers/freetype/freetype/src/pshinter/pshalgo.h
diff --git a/tools/freetype/freetype/src/pshinter/pshglob.c b/drivers/freetype/freetype/src/pshinter/pshglob.c
index 9285efc9e1..9285efc9e1 100644
--- a/tools/freetype/freetype/src/pshinter/pshglob.c
+++ b/drivers/freetype/freetype/src/pshinter/pshglob.c
diff --git a/tools/freetype/freetype/src/pshinter/pshglob.h b/drivers/freetype/freetype/src/pshinter/pshglob.h
index c511626157..c511626157 100644
--- a/tools/freetype/freetype/src/pshinter/pshglob.h
+++ b/drivers/freetype/freetype/src/pshinter/pshglob.h
diff --git a/tools/freetype/freetype/src/pshinter/pshinter.c b/drivers/freetype/freetype/src/pshinter/pshinter.c
index b35a2a91c5..b35a2a91c5 100644
--- a/tools/freetype/freetype/src/pshinter/pshinter.c
+++ b/drivers/freetype/freetype/src/pshinter/pshinter.c
diff --git a/tools/freetype/freetype/src/pshinter/pshmod.c b/drivers/freetype/freetype/src/pshinter/pshmod.c
index cdeaca18c9..cdeaca18c9 100644
--- a/tools/freetype/freetype/src/pshinter/pshmod.c
+++ b/drivers/freetype/freetype/src/pshinter/pshmod.c
diff --git a/tools/freetype/freetype/src/pshinter/pshmod.h b/drivers/freetype/freetype/src/pshinter/pshmod.h
index 0ae7e96f54..0ae7e96f54 100644
--- a/tools/freetype/freetype/src/pshinter/pshmod.h
+++ b/drivers/freetype/freetype/src/pshinter/pshmod.h
diff --git a/tools/freetype/freetype/src/pshinter/pshnterr.h b/drivers/freetype/freetype/src/pshinter/pshnterr.h
index 7cc180f0ca..7cc180f0ca 100644
--- a/tools/freetype/freetype/src/pshinter/pshnterr.h
+++ b/drivers/freetype/freetype/src/pshinter/pshnterr.h
diff --git a/tools/freetype/freetype/src/pshinter/pshpic.c b/drivers/freetype/freetype/src/pshinter/pshpic.c
index 568f4ac4b0..568f4ac4b0 100644
--- a/tools/freetype/freetype/src/pshinter/pshpic.c
+++ b/drivers/freetype/freetype/src/pshinter/pshpic.c
diff --git a/tools/freetype/freetype/src/pshinter/pshpic.h b/drivers/freetype/freetype/src/pshinter/pshpic.h
index b46f853113..b46f853113 100644
--- a/tools/freetype/freetype/src/pshinter/pshpic.h
+++ b/drivers/freetype/freetype/src/pshinter/pshpic.h
diff --git a/tools/freetype/freetype/src/pshinter/pshrec.c b/drivers/freetype/freetype/src/pshinter/pshrec.c
index cd66ea869a..cd66ea869a 100644
--- a/tools/freetype/freetype/src/pshinter/pshrec.c
+++ b/drivers/freetype/freetype/src/pshinter/pshrec.c
diff --git a/tools/freetype/freetype/src/pshinter/pshrec.h b/drivers/freetype/freetype/src/pshinter/pshrec.h
index dcb3197f94..dcb3197f94 100644
--- a/tools/freetype/freetype/src/pshinter/pshrec.h
+++ b/drivers/freetype/freetype/src/pshinter/pshrec.h
diff --git a/tools/freetype/freetype/src/pshinter/rules.mk b/drivers/freetype/freetype/src/pshinter/rules.mk
index 888ece1058..888ece1058 100644
--- a/tools/freetype/freetype/src/pshinter/rules.mk
+++ b/drivers/freetype/freetype/src/pshinter/rules.mk
diff --git a/tools/freetype/freetype/src/psnames/Jamfile b/drivers/freetype/freetype/src/psnames/Jamfile
index 06c0dda66f..06c0dda66f 100644
--- a/tools/freetype/freetype/src/psnames/Jamfile
+++ b/drivers/freetype/freetype/src/psnames/Jamfile
diff --git a/tools/freetype/freetype/src/psnames/module.mk b/drivers/freetype/freetype/src/psnames/module.mk
index a6e908257c..a6e908257c 100644
--- a/tools/freetype/freetype/src/psnames/module.mk
+++ b/drivers/freetype/freetype/src/psnames/module.mk
diff --git a/tools/freetype/freetype/src/psnames/psmodule.c b/drivers/freetype/freetype/src/psnames/psmodule.c
index 0a5bcb7d2a..0a5bcb7d2a 100644
--- a/tools/freetype/freetype/src/psnames/psmodule.c
+++ b/drivers/freetype/freetype/src/psnames/psmodule.c
diff --git a/tools/freetype/freetype/src/psnames/psmodule.h b/drivers/freetype/freetype/src/psnames/psmodule.h
index 28fa14807c..28fa14807c 100644
--- a/tools/freetype/freetype/src/psnames/psmodule.h
+++ b/drivers/freetype/freetype/src/psnames/psmodule.h
diff --git a/tools/freetype/freetype/src/psnames/psnamerr.h b/drivers/freetype/freetype/src/psnames/psnamerr.h
index acda7f967e..acda7f967e 100644
--- a/tools/freetype/freetype/src/psnames/psnamerr.h
+++ b/drivers/freetype/freetype/src/psnames/psnamerr.h
diff --git a/tools/freetype/freetype/src/psnames/psnames.c b/drivers/freetype/freetype/src/psnames/psnames.c
index 1ede225dc9..1ede225dc9 100644
--- a/tools/freetype/freetype/src/psnames/psnames.c
+++ b/drivers/freetype/freetype/src/psnames/psnames.c
diff --git a/tools/freetype/freetype/src/psnames/pspic.c b/drivers/freetype/freetype/src/psnames/pspic.c
index 3820f65a74..3820f65a74 100644
--- a/tools/freetype/freetype/src/psnames/pspic.c
+++ b/drivers/freetype/freetype/src/psnames/pspic.c
diff --git a/tools/freetype/freetype/src/psnames/pspic.h b/drivers/freetype/freetype/src/psnames/pspic.h
index 6ff002c603..6ff002c603 100644
--- a/tools/freetype/freetype/src/psnames/pspic.h
+++ b/drivers/freetype/freetype/src/psnames/pspic.h
diff --git a/tools/freetype/freetype/src/psnames/pstables.h b/drivers/freetype/freetype/src/psnames/pstables.h
index 0a6637f985..0a6637f985 100644
--- a/tools/freetype/freetype/src/psnames/pstables.h
+++ b/drivers/freetype/freetype/src/psnames/pstables.h
diff --git a/tools/freetype/freetype/src/psnames/rules.mk b/drivers/freetype/freetype/src/psnames/rules.mk
index 4cd39a8ccf..4cd39a8ccf 100644
--- a/tools/freetype/freetype/src/psnames/rules.mk
+++ b/drivers/freetype/freetype/src/psnames/rules.mk
diff --git a/tools/freetype/freetype/src/raster/Jamfile b/drivers/freetype/freetype/src/raster/Jamfile
index 4f60e87c78..4f60e87c78 100644
--- a/tools/freetype/freetype/src/raster/Jamfile
+++ b/drivers/freetype/freetype/src/raster/Jamfile
diff --git a/tools/freetype/freetype/src/raster/ftmisc.h b/drivers/freetype/freetype/src/raster/ftmisc.h
index 703155a429..703155a429 100644
--- a/tools/freetype/freetype/src/raster/ftmisc.h
+++ b/drivers/freetype/freetype/src/raster/ftmisc.h
diff --git a/tools/freetype/freetype/src/raster/ftraster.c b/drivers/freetype/freetype/src/raster/ftraster.c
index bbd503d97d..bbd503d97d 100644
--- a/tools/freetype/freetype/src/raster/ftraster.c
+++ b/drivers/freetype/freetype/src/raster/ftraster.c
diff --git a/tools/freetype/freetype/src/raster/ftraster.h b/drivers/freetype/freetype/src/raster/ftraster.h
index 80fe46deba..80fe46deba 100644
--- a/tools/freetype/freetype/src/raster/ftraster.h
+++ b/drivers/freetype/freetype/src/raster/ftraster.h
diff --git a/tools/freetype/freetype/src/raster/ftrend1.c b/drivers/freetype/freetype/src/raster/ftrend1.c
index aa7f6d5664..aa7f6d5664 100644
--- a/tools/freetype/freetype/src/raster/ftrend1.c
+++ b/drivers/freetype/freetype/src/raster/ftrend1.c
diff --git a/tools/freetype/freetype/src/raster/ftrend1.h b/drivers/freetype/freetype/src/raster/ftrend1.h
index 4cf128622a..4cf128622a 100644
--- a/tools/freetype/freetype/src/raster/ftrend1.h
+++ b/drivers/freetype/freetype/src/raster/ftrend1.h
diff --git a/tools/freetype/freetype/src/raster/module.mk b/drivers/freetype/freetype/src/raster/module.mk
index cbff5df96e..cbff5df96e 100644
--- a/tools/freetype/freetype/src/raster/module.mk
+++ b/drivers/freetype/freetype/src/raster/module.mk
diff --git a/tools/freetype/freetype/src/raster/raster.c b/drivers/freetype/freetype/src/raster/raster.c
index 1202a116cd..1202a116cd 100644
--- a/tools/freetype/freetype/src/raster/raster.c
+++ b/drivers/freetype/freetype/src/raster/raster.c
diff --git a/tools/freetype/freetype/src/raster/rasterrs.h b/drivers/freetype/freetype/src/raster/rasterrs.h
index ab85c002a3..ab85c002a3 100644
--- a/tools/freetype/freetype/src/raster/rasterrs.h
+++ b/drivers/freetype/freetype/src/raster/rasterrs.h
diff --git a/tools/freetype/freetype/src/raster/rastpic.c b/drivers/freetype/freetype/src/raster/rastpic.c
index 5e9f7cc9c4..5e9f7cc9c4 100644
--- a/tools/freetype/freetype/src/raster/rastpic.c
+++ b/drivers/freetype/freetype/src/raster/rastpic.c
diff --git a/tools/freetype/freetype/src/raster/rastpic.h b/drivers/freetype/freetype/src/raster/rastpic.h
index e0ddba624e..e0ddba624e 100644
--- a/tools/freetype/freetype/src/raster/rastpic.h
+++ b/drivers/freetype/freetype/src/raster/rastpic.h
diff --git a/tools/freetype/freetype/src/raster/rules.mk b/drivers/freetype/freetype/src/raster/rules.mk
index 0e0b5e4ebd..0e0b5e4ebd 100644
--- a/tools/freetype/freetype/src/raster/rules.mk
+++ b/drivers/freetype/freetype/src/raster/rules.mk
diff --git a/tools/freetype/freetype/src/sfnt/Jamfile b/drivers/freetype/freetype/src/sfnt/Jamfile
index cb20b1b04b..cb20b1b04b 100644
--- a/tools/freetype/freetype/src/sfnt/Jamfile
+++ b/drivers/freetype/freetype/src/sfnt/Jamfile
diff --git a/tools/freetype/freetype/src/sfnt/module.mk b/drivers/freetype/freetype/src/sfnt/module.mk
index 95fd6a3143..95fd6a3143 100644
--- a/tools/freetype/freetype/src/sfnt/module.mk
+++ b/drivers/freetype/freetype/src/sfnt/module.mk
diff --git a/tools/freetype/freetype/src/sfnt/pngshim.c b/drivers/freetype/freetype/src/sfnt/pngshim.c
index 408f879c34..408f879c34 100644
--- a/tools/freetype/freetype/src/sfnt/pngshim.c
+++ b/drivers/freetype/freetype/src/sfnt/pngshim.c
diff --git a/tools/freetype/freetype/src/sfnt/pngshim.h b/drivers/freetype/freetype/src/sfnt/pngshim.h
index 8a2e69ccf9..8a2e69ccf9 100644
--- a/tools/freetype/freetype/src/sfnt/pngshim.h
+++ b/drivers/freetype/freetype/src/sfnt/pngshim.h
diff --git a/tools/freetype/freetype/src/sfnt/rules.mk b/drivers/freetype/freetype/src/sfnt/rules.mk
index a6c956ab65..a6c956ab65 100644
--- a/tools/freetype/freetype/src/sfnt/rules.mk
+++ b/drivers/freetype/freetype/src/sfnt/rules.mk
diff --git a/tools/freetype/freetype/src/sfnt/sfdriver.c b/drivers/freetype/freetype/src/sfnt/sfdriver.c
index a368b8caea..a368b8caea 100644
--- a/tools/freetype/freetype/src/sfnt/sfdriver.c
+++ b/drivers/freetype/freetype/src/sfnt/sfdriver.c
diff --git a/tools/freetype/freetype/src/sfnt/sfdriver.h b/drivers/freetype/freetype/src/sfnt/sfdriver.h
index 5de25d51ca..5de25d51ca 100644
--- a/tools/freetype/freetype/src/sfnt/sfdriver.h
+++ b/drivers/freetype/freetype/src/sfnt/sfdriver.h
diff --git a/tools/freetype/freetype/src/sfnt/sferrors.h b/drivers/freetype/freetype/src/sfnt/sferrors.h
index e981e1d26f..e981e1d26f 100644
--- a/tools/freetype/freetype/src/sfnt/sferrors.h
+++ b/drivers/freetype/freetype/src/sfnt/sferrors.h
diff --git a/tools/freetype/freetype/src/sfnt/sfnt.c b/drivers/freetype/freetype/src/sfnt/sfnt.c
index d62ed4e0b5..d62ed4e0b5 100644
--- a/tools/freetype/freetype/src/sfnt/sfnt.c
+++ b/drivers/freetype/freetype/src/sfnt/sfnt.c
diff --git a/tools/freetype/freetype/src/sfnt/sfntpic.c b/drivers/freetype/freetype/src/sfnt/sfntpic.c
index b3fb24b3f0..b3fb24b3f0 100644
--- a/tools/freetype/freetype/src/sfnt/sfntpic.c
+++ b/drivers/freetype/freetype/src/sfnt/sfntpic.c
diff --git a/tools/freetype/freetype/src/sfnt/sfntpic.h b/drivers/freetype/freetype/src/sfnt/sfntpic.h
index b09a9141e0..b09a9141e0 100644
--- a/tools/freetype/freetype/src/sfnt/sfntpic.h
+++ b/drivers/freetype/freetype/src/sfnt/sfntpic.h
diff --git a/tools/freetype/freetype/src/sfnt/sfobjs.c b/drivers/freetype/freetype/src/sfnt/sfobjs.c
index f975e71c3b..f975e71c3b 100644
--- a/tools/freetype/freetype/src/sfnt/sfobjs.c
+++ b/drivers/freetype/freetype/src/sfnt/sfobjs.c
diff --git a/tools/freetype/freetype/src/sfnt/sfobjs.h b/drivers/freetype/freetype/src/sfnt/sfobjs.h
index 6241c93b39..6241c93b39 100644
--- a/tools/freetype/freetype/src/sfnt/sfobjs.h
+++ b/drivers/freetype/freetype/src/sfnt/sfobjs.h
diff --git a/tools/freetype/freetype/src/sfnt/ttbdf.c b/drivers/freetype/freetype/src/sfnt/ttbdf.c
index 9401dae5f8..9401dae5f8 100644
--- a/tools/freetype/freetype/src/sfnt/ttbdf.c
+++ b/drivers/freetype/freetype/src/sfnt/ttbdf.c
diff --git a/tools/freetype/freetype/src/sfnt/ttbdf.h b/drivers/freetype/freetype/src/sfnt/ttbdf.h
index 48a10d6e9b..48a10d6e9b 100644
--- a/tools/freetype/freetype/src/sfnt/ttbdf.h
+++ b/drivers/freetype/freetype/src/sfnt/ttbdf.h
diff --git a/tools/freetype/freetype/src/sfnt/ttcmap.c b/drivers/freetype/freetype/src/sfnt/ttcmap.c
index 1507202ea8..1507202ea8 100644
--- a/tools/freetype/freetype/src/sfnt/ttcmap.c
+++ b/drivers/freetype/freetype/src/sfnt/ttcmap.c
diff --git a/tools/freetype/freetype/src/sfnt/ttcmap.h b/drivers/freetype/freetype/src/sfnt/ttcmap.h
index 0fde1676bf..0fde1676bf 100644
--- a/tools/freetype/freetype/src/sfnt/ttcmap.h
+++ b/drivers/freetype/freetype/src/sfnt/ttcmap.h
diff --git a/tools/freetype/freetype/src/sfnt/ttcmapc.h b/drivers/freetype/freetype/src/sfnt/ttcmapc.h
index 2ea204309c..2ea204309c 100644
--- a/tools/freetype/freetype/src/sfnt/ttcmapc.h
+++ b/drivers/freetype/freetype/src/sfnt/ttcmapc.h
diff --git a/tools/freetype/freetype/src/sfnt/ttkern.c b/drivers/freetype/freetype/src/sfnt/ttkern.c
index 60ee546d79..60ee546d79 100644
--- a/tools/freetype/freetype/src/sfnt/ttkern.c
+++ b/drivers/freetype/freetype/src/sfnt/ttkern.c
diff --git a/tools/freetype/freetype/src/sfnt/ttkern.h b/drivers/freetype/freetype/src/sfnt/ttkern.h
index df1da9b273..df1da9b273 100644
--- a/tools/freetype/freetype/src/sfnt/ttkern.h
+++ b/drivers/freetype/freetype/src/sfnt/ttkern.h
diff --git a/tools/freetype/freetype/src/sfnt/ttload.c b/drivers/freetype/freetype/src/sfnt/ttload.c
index fbe70f7974..fbe70f7974 100644
--- a/tools/freetype/freetype/src/sfnt/ttload.c
+++ b/drivers/freetype/freetype/src/sfnt/ttload.c
diff --git a/tools/freetype/freetype/src/sfnt/ttload.h b/drivers/freetype/freetype/src/sfnt/ttload.h
index 49a1aee163..49a1aee163 100644
--- a/tools/freetype/freetype/src/sfnt/ttload.h
+++ b/drivers/freetype/freetype/src/sfnt/ttload.h
diff --git a/tools/freetype/freetype/src/sfnt/ttmtx.c b/drivers/freetype/freetype/src/sfnt/ttmtx.c
index 371a9edabe..371a9edabe 100644
--- a/tools/freetype/freetype/src/sfnt/ttmtx.c
+++ b/drivers/freetype/freetype/src/sfnt/ttmtx.c
diff --git a/tools/freetype/freetype/src/sfnt/ttmtx.h b/drivers/freetype/freetype/src/sfnt/ttmtx.h
index 8b91a113d8..8b91a113d8 100644
--- a/tools/freetype/freetype/src/sfnt/ttmtx.h
+++ b/drivers/freetype/freetype/src/sfnt/ttmtx.h
diff --git a/tools/freetype/freetype/src/sfnt/ttpost.c b/drivers/freetype/freetype/src/sfnt/ttpost.c
index 47a85c0c9f..47a85c0c9f 100644
--- a/tools/freetype/freetype/src/sfnt/ttpost.c
+++ b/drivers/freetype/freetype/src/sfnt/ttpost.c
diff --git a/tools/freetype/freetype/src/sfnt/ttpost.h b/drivers/freetype/freetype/src/sfnt/ttpost.h
index 6f06d75a71..6f06d75a71 100644
--- a/tools/freetype/freetype/src/sfnt/ttpost.h
+++ b/drivers/freetype/freetype/src/sfnt/ttpost.h
diff --git a/tools/freetype/freetype/src/sfnt/ttsbit.c b/drivers/freetype/freetype/src/sfnt/ttsbit.c
index cd3e5a4a00..cd3e5a4a00 100644
--- a/tools/freetype/freetype/src/sfnt/ttsbit.c
+++ b/drivers/freetype/freetype/src/sfnt/ttsbit.c
diff --git a/tools/freetype/freetype/src/sfnt/ttsbit.h b/drivers/freetype/freetype/src/sfnt/ttsbit.h
index ea0b5f8ada..ea0b5f8ada 100644
--- a/tools/freetype/freetype/src/sfnt/ttsbit.h
+++ b/drivers/freetype/freetype/src/sfnt/ttsbit.h
diff --git a/tools/freetype/freetype/src/smooth/Jamfile b/drivers/freetype/freetype/src/smooth/Jamfile
index a8496aa2c2..a8496aa2c2 100644
--- a/tools/freetype/freetype/src/smooth/Jamfile
+++ b/drivers/freetype/freetype/src/smooth/Jamfile
diff --git a/tools/freetype/freetype/src/smooth/ftgrays.c b/drivers/freetype/freetype/src/smooth/ftgrays.c
index 7532a35829..7532a35829 100644
--- a/tools/freetype/freetype/src/smooth/ftgrays.c
+++ b/drivers/freetype/freetype/src/smooth/ftgrays.c
diff --git a/tools/freetype/freetype/src/smooth/ftgrays.h b/drivers/freetype/freetype/src/smooth/ftgrays.h
index f20f55f14b..f20f55f14b 100644
--- a/tools/freetype/freetype/src/smooth/ftgrays.h
+++ b/drivers/freetype/freetype/src/smooth/ftgrays.h
diff --git a/tools/freetype/freetype/src/smooth/ftsmerrs.h b/drivers/freetype/freetype/src/smooth/ftsmerrs.h
index 413d2f1f70..413d2f1f70 100644
--- a/tools/freetype/freetype/src/smooth/ftsmerrs.h
+++ b/drivers/freetype/freetype/src/smooth/ftsmerrs.h
diff --git a/tools/freetype/freetype/src/smooth/ftsmooth.c b/drivers/freetype/freetype/src/smooth/ftsmooth.c
index 89088cd091..89088cd091 100644
--- a/tools/freetype/freetype/src/smooth/ftsmooth.c
+++ b/drivers/freetype/freetype/src/smooth/ftsmooth.c
diff --git a/tools/freetype/freetype/src/smooth/ftsmooth.h b/drivers/freetype/freetype/src/smooth/ftsmooth.h
index 3708790df1..3708790df1 100644
--- a/tools/freetype/freetype/src/smooth/ftsmooth.h
+++ b/drivers/freetype/freetype/src/smooth/ftsmooth.h
diff --git a/tools/freetype/freetype/src/smooth/ftspic.c b/drivers/freetype/freetype/src/smooth/ftspic.c
index 67a2b8310c..67a2b8310c 100644
--- a/tools/freetype/freetype/src/smooth/ftspic.c
+++ b/drivers/freetype/freetype/src/smooth/ftspic.c
diff --git a/tools/freetype/freetype/src/smooth/ftspic.h b/drivers/freetype/freetype/src/smooth/ftspic.h
index 334b51c3f1..334b51c3f1 100644
--- a/tools/freetype/freetype/src/smooth/ftspic.h
+++ b/drivers/freetype/freetype/src/smooth/ftspic.h
diff --git a/tools/freetype/freetype/src/smooth/module.mk b/drivers/freetype/freetype/src/smooth/module.mk
index 47f6c04076..47f6c04076 100644
--- a/tools/freetype/freetype/src/smooth/module.mk
+++ b/drivers/freetype/freetype/src/smooth/module.mk
diff --git a/tools/freetype/freetype/src/smooth/rules.mk b/drivers/freetype/freetype/src/smooth/rules.mk
index 88d0aa53ac..88d0aa53ac 100644
--- a/tools/freetype/freetype/src/smooth/rules.mk
+++ b/drivers/freetype/freetype/src/smooth/rules.mk
diff --git a/tools/freetype/freetype/src/smooth/smooth.c b/drivers/freetype/freetype/src/smooth/smooth.c
index a8ac51f9f8..a8ac51f9f8 100644
--- a/tools/freetype/freetype/src/smooth/smooth.c
+++ b/drivers/freetype/freetype/src/smooth/smooth.c
diff --git a/tools/freetype/freetype/src/truetype/Jamfile b/drivers/freetype/freetype/src/truetype/Jamfile
index a8cccfe137..a8cccfe137 100644
--- a/tools/freetype/freetype/src/truetype/Jamfile
+++ b/drivers/freetype/freetype/src/truetype/Jamfile
diff --git a/tools/freetype/freetype/src/truetype/module.mk b/drivers/freetype/freetype/src/truetype/module.mk
index baee81a773..baee81a773 100644
--- a/tools/freetype/freetype/src/truetype/module.mk
+++ b/drivers/freetype/freetype/src/truetype/module.mk
diff --git a/tools/freetype/freetype/src/truetype/rules.mk b/drivers/freetype/freetype/src/truetype/rules.mk
index d4b69f578b..d4b69f578b 100644
--- a/tools/freetype/freetype/src/truetype/rules.mk
+++ b/drivers/freetype/freetype/src/truetype/rules.mk
diff --git a/tools/freetype/freetype/src/truetype/truetype.c b/drivers/freetype/freetype/src/truetype/truetype.c
index 576912b219..576912b219 100644
--- a/tools/freetype/freetype/src/truetype/truetype.c
+++ b/drivers/freetype/freetype/src/truetype/truetype.c
diff --git a/tools/freetype/freetype/src/truetype/ttdriver.c b/drivers/freetype/freetype/src/truetype/ttdriver.c
index fb25706ab8..fb25706ab8 100644
--- a/tools/freetype/freetype/src/truetype/ttdriver.c
+++ b/drivers/freetype/freetype/src/truetype/ttdriver.c
diff --git a/tools/freetype/freetype/src/truetype/ttdriver.h b/drivers/freetype/freetype/src/truetype/ttdriver.h
index aae00f2617..aae00f2617 100644
--- a/tools/freetype/freetype/src/truetype/ttdriver.h
+++ b/drivers/freetype/freetype/src/truetype/ttdriver.h
diff --git a/tools/freetype/freetype/src/truetype/tterrors.h b/drivers/freetype/freetype/src/truetype/tterrors.h
index 78d138fab2..78d138fab2 100644
--- a/tools/freetype/freetype/src/truetype/tterrors.h
+++ b/drivers/freetype/freetype/src/truetype/tterrors.h
diff --git a/tools/freetype/freetype/src/truetype/ttgload.c b/drivers/freetype/freetype/src/truetype/ttgload.c
index f640a6c78e..f640a6c78e 100644
--- a/tools/freetype/freetype/src/truetype/ttgload.c
+++ b/drivers/freetype/freetype/src/truetype/ttgload.c
diff --git a/tools/freetype/freetype/src/truetype/ttgload.h b/drivers/freetype/freetype/src/truetype/ttgload.h
index 05f75882dc..05f75882dc 100644
--- a/tools/freetype/freetype/src/truetype/ttgload.h
+++ b/drivers/freetype/freetype/src/truetype/ttgload.h
diff --git a/tools/freetype/freetype/src/truetype/ttgxvar.c b/drivers/freetype/freetype/src/truetype/ttgxvar.c
index 7899d3671d..7899d3671d 100644
--- a/tools/freetype/freetype/src/truetype/ttgxvar.c
+++ b/drivers/freetype/freetype/src/truetype/ttgxvar.c
diff --git a/tools/freetype/freetype/src/truetype/ttgxvar.h b/drivers/freetype/freetype/src/truetype/ttgxvar.h
index 82dfc4431f..82dfc4431f 100644
--- a/tools/freetype/freetype/src/truetype/ttgxvar.h
+++ b/drivers/freetype/freetype/src/truetype/ttgxvar.h
diff --git a/tools/freetype/freetype/src/truetype/ttinterp.c b/drivers/freetype/freetype/src/truetype/ttinterp.c
index e7ffb987ce..e7ffb987ce 100644
--- a/tools/freetype/freetype/src/truetype/ttinterp.c
+++ b/drivers/freetype/freetype/src/truetype/ttinterp.c
diff --git a/tools/freetype/freetype/src/truetype/ttinterp.h b/drivers/freetype/freetype/src/truetype/ttinterp.h
index 69f5011ed4..69f5011ed4 100644
--- a/tools/freetype/freetype/src/truetype/ttinterp.h
+++ b/drivers/freetype/freetype/src/truetype/ttinterp.h
diff --git a/tools/freetype/freetype/src/truetype/ttobjs.c b/drivers/freetype/freetype/src/truetype/ttobjs.c
index 7897efa77a..7897efa77a 100644
--- a/tools/freetype/freetype/src/truetype/ttobjs.c
+++ b/drivers/freetype/freetype/src/truetype/ttobjs.c
diff --git a/tools/freetype/freetype/src/truetype/ttobjs.h b/drivers/freetype/freetype/src/truetype/ttobjs.h
index a11dd3752a..a11dd3752a 100644
--- a/tools/freetype/freetype/src/truetype/ttobjs.h
+++ b/drivers/freetype/freetype/src/truetype/ttobjs.h
diff --git a/tools/freetype/freetype/src/truetype/ttpic.c b/drivers/freetype/freetype/src/truetype/ttpic.c
index edefae72c5..edefae72c5 100644
--- a/tools/freetype/freetype/src/truetype/ttpic.c
+++ b/drivers/freetype/freetype/src/truetype/ttpic.c
diff --git a/tools/freetype/freetype/src/truetype/ttpic.h b/drivers/freetype/freetype/src/truetype/ttpic.h
index cfb4ee6281..cfb4ee6281 100644
--- a/tools/freetype/freetype/src/truetype/ttpic.h
+++ b/drivers/freetype/freetype/src/truetype/ttpic.h
diff --git a/tools/freetype/freetype/src/truetype/ttpload.c b/drivers/freetype/freetype/src/truetype/ttpload.c
index 9723a515b9..9723a515b9 100644
--- a/tools/freetype/freetype/src/truetype/ttpload.c
+++ b/drivers/freetype/freetype/src/truetype/ttpload.c
diff --git a/tools/freetype/freetype/src/truetype/ttpload.h b/drivers/freetype/freetype/src/truetype/ttpload.h
index f61ac079ce..f61ac079ce 100644
--- a/tools/freetype/freetype/src/truetype/ttpload.h
+++ b/drivers/freetype/freetype/src/truetype/ttpload.h
diff --git a/tools/freetype/freetype/src/truetype/ttsubpix.c b/drivers/freetype/freetype/src/truetype/ttsubpix.c
index 28470ad655..28470ad655 100644
--- a/tools/freetype/freetype/src/truetype/ttsubpix.c
+++ b/drivers/freetype/freetype/src/truetype/ttsubpix.c
diff --git a/tools/freetype/freetype/src/truetype/ttsubpix.h b/drivers/freetype/freetype/src/truetype/ttsubpix.h
index 8a54fc7cc7..8a54fc7cc7 100644
--- a/tools/freetype/freetype/src/truetype/ttsubpix.h
+++ b/drivers/freetype/freetype/src/truetype/ttsubpix.h
diff --git a/tools/freetype/freetype/src/type1/Jamfile b/drivers/freetype/freetype/src/type1/Jamfile
index 8e366baae5..8e366baae5 100644
--- a/tools/freetype/freetype/src/type1/Jamfile
+++ b/drivers/freetype/freetype/src/type1/Jamfile
diff --git a/tools/freetype/freetype/src/type1/module.mk b/drivers/freetype/freetype/src/type1/module.mk
index ade0210d76..ade0210d76 100644
--- a/tools/freetype/freetype/src/type1/module.mk
+++ b/drivers/freetype/freetype/src/type1/module.mk
diff --git a/tools/freetype/freetype/src/type1/rules.mk b/drivers/freetype/freetype/src/type1/rules.mk
index 15087b0304..15087b0304 100644
--- a/tools/freetype/freetype/src/type1/rules.mk
+++ b/drivers/freetype/freetype/src/type1/rules.mk
diff --git a/tools/freetype/freetype/src/type1/t1afm.c b/drivers/freetype/freetype/src/type1/t1afm.c
index de9c1997c4..de9c1997c4 100644
--- a/tools/freetype/freetype/src/type1/t1afm.c
+++ b/drivers/freetype/freetype/src/type1/t1afm.c
diff --git a/tools/freetype/freetype/src/type1/t1afm.h b/drivers/freetype/freetype/src/type1/t1afm.h
index 8eb1764de7..8eb1764de7 100644
--- a/tools/freetype/freetype/src/type1/t1afm.h
+++ b/drivers/freetype/freetype/src/type1/t1afm.h
diff --git a/tools/freetype/freetype/src/type1/t1driver.c b/drivers/freetype/freetype/src/type1/t1driver.c
index 697288d66d..697288d66d 100644
--- a/tools/freetype/freetype/src/type1/t1driver.c
+++ b/drivers/freetype/freetype/src/type1/t1driver.c
diff --git a/tools/freetype/freetype/src/type1/t1driver.h b/drivers/freetype/freetype/src/type1/t1driver.h
index 639cd4a7ad..639cd4a7ad 100644
--- a/tools/freetype/freetype/src/type1/t1driver.h
+++ b/drivers/freetype/freetype/src/type1/t1driver.h
diff --git a/tools/freetype/freetype/src/type1/t1errors.h b/drivers/freetype/freetype/src/type1/t1errors.h
index 8740530eef..8740530eef 100644
--- a/tools/freetype/freetype/src/type1/t1errors.h
+++ b/drivers/freetype/freetype/src/type1/t1errors.h
diff --git a/tools/freetype/freetype/src/type1/t1gload.c b/drivers/freetype/freetype/src/type1/t1gload.c
index 23478d1288..23478d1288 100644
--- a/tools/freetype/freetype/src/type1/t1gload.c
+++ b/drivers/freetype/freetype/src/type1/t1gload.c
diff --git a/tools/freetype/freetype/src/type1/t1gload.h b/drivers/freetype/freetype/src/type1/t1gload.h
index 0bdea3a8d5..0bdea3a8d5 100644
--- a/tools/freetype/freetype/src/type1/t1gload.h
+++ b/drivers/freetype/freetype/src/type1/t1gload.h
diff --git a/tools/freetype/freetype/src/type1/t1load.c b/drivers/freetype/freetype/src/type1/t1load.c
index 1c834a17bb..1c834a17bb 100644
--- a/tools/freetype/freetype/src/type1/t1load.c
+++ b/drivers/freetype/freetype/src/type1/t1load.c
diff --git a/tools/freetype/freetype/src/type1/t1load.h b/drivers/freetype/freetype/src/type1/t1load.h
index 546fc33530..546fc33530 100644
--- a/tools/freetype/freetype/src/type1/t1load.h
+++ b/drivers/freetype/freetype/src/type1/t1load.h
diff --git a/tools/freetype/freetype/src/type1/t1objs.c b/drivers/freetype/freetype/src/type1/t1objs.c
index 837b7911d4..837b7911d4 100644
--- a/tools/freetype/freetype/src/type1/t1objs.c
+++ b/drivers/freetype/freetype/src/type1/t1objs.c
diff --git a/tools/freetype/freetype/src/type1/t1objs.h b/drivers/freetype/freetype/src/type1/t1objs.h
index 54ccbb996a..54ccbb996a 100644
--- a/tools/freetype/freetype/src/type1/t1objs.h
+++ b/drivers/freetype/freetype/src/type1/t1objs.h
diff --git a/tools/freetype/freetype/src/type1/t1parse.c b/drivers/freetype/freetype/src/type1/t1parse.c
index 106e4e7ecd..106e4e7ecd 100644
--- a/tools/freetype/freetype/src/type1/t1parse.c
+++ b/drivers/freetype/freetype/src/type1/t1parse.c
diff --git a/tools/freetype/freetype/src/type1/t1parse.h b/drivers/freetype/freetype/src/type1/t1parse.h
index fb1c8a8830..fb1c8a8830 100644
--- a/tools/freetype/freetype/src/type1/t1parse.h
+++ b/drivers/freetype/freetype/src/type1/t1parse.h
diff --git a/tools/freetype/freetype/src/type1/t1tokens.h b/drivers/freetype/freetype/src/type1/t1tokens.h
index e37276b908..e37276b908 100644
--- a/tools/freetype/freetype/src/type1/t1tokens.h
+++ b/drivers/freetype/freetype/src/type1/t1tokens.h
diff --git a/tools/freetype/freetype/src/type1/type1.c b/drivers/freetype/freetype/src/type1/type1.c
index ccc12be103..ccc12be103 100644
--- a/tools/freetype/freetype/src/type1/type1.c
+++ b/drivers/freetype/freetype/src/type1/type1.c
diff --git a/tools/freetype/freetype/src/type42/Jamfile b/drivers/freetype/freetype/src/type42/Jamfile
index 00371d54f3..00371d54f3 100644
--- a/tools/freetype/freetype/src/type42/Jamfile
+++ b/drivers/freetype/freetype/src/type42/Jamfile
diff --git a/tools/freetype/freetype/src/type42/module.mk b/drivers/freetype/freetype/src/type42/module.mk
index b3f10a8d3c..b3f10a8d3c 100644
--- a/tools/freetype/freetype/src/type42/module.mk
+++ b/drivers/freetype/freetype/src/type42/module.mk
diff --git a/tools/freetype/freetype/src/type42/rules.mk b/drivers/freetype/freetype/src/type42/rules.mk
index eac1081eb1..eac1081eb1 100644
--- a/tools/freetype/freetype/src/type42/rules.mk
+++ b/drivers/freetype/freetype/src/type42/rules.mk
diff --git a/tools/freetype/freetype/src/type42/t42drivr.c b/drivers/freetype/freetype/src/type42/t42drivr.c
index 3ad1bde79f..3ad1bde79f 100644
--- a/tools/freetype/freetype/src/type42/t42drivr.c
+++ b/drivers/freetype/freetype/src/type42/t42drivr.c
diff --git a/tools/freetype/freetype/src/type42/t42drivr.h b/drivers/freetype/freetype/src/type42/t42drivr.h
index 9a1e97e30e..9a1e97e30e 100644
--- a/tools/freetype/freetype/src/type42/t42drivr.h
+++ b/drivers/freetype/freetype/src/type42/t42drivr.h
diff --git a/tools/freetype/freetype/src/type42/t42error.h b/drivers/freetype/freetype/src/type42/t42error.h
index 217ae8bd52..217ae8bd52 100644
--- a/tools/freetype/freetype/src/type42/t42error.h
+++ b/drivers/freetype/freetype/src/type42/t42error.h
diff --git a/tools/freetype/freetype/src/type42/t42objs.c b/drivers/freetype/freetype/src/type42/t42objs.c
index 18e2c0b625..18e2c0b625 100644
--- a/tools/freetype/freetype/src/type42/t42objs.c
+++ b/drivers/freetype/freetype/src/type42/t42objs.c
diff --git a/tools/freetype/freetype/src/type42/t42objs.h b/drivers/freetype/freetype/src/type42/t42objs.h
index 02d13259be..02d13259be 100644
--- a/tools/freetype/freetype/src/type42/t42objs.h
+++ b/drivers/freetype/freetype/src/type42/t42objs.h
diff --git a/tools/freetype/freetype/src/type42/t42parse.c b/drivers/freetype/freetype/src/type42/t42parse.c
index 3cdd8a1acf..3cdd8a1acf 100644
--- a/tools/freetype/freetype/src/type42/t42parse.c
+++ b/drivers/freetype/freetype/src/type42/t42parse.c
diff --git a/tools/freetype/freetype/src/type42/t42parse.h b/drivers/freetype/freetype/src/type42/t42parse.h
index f77ec4af4f..f77ec4af4f 100644
--- a/tools/freetype/freetype/src/type42/t42parse.h
+++ b/drivers/freetype/freetype/src/type42/t42parse.h
diff --git a/tools/freetype/freetype/src/type42/t42types.h b/drivers/freetype/freetype/src/type42/t42types.h
index c7c2db490d..c7c2db490d 100644
--- a/tools/freetype/freetype/src/type42/t42types.h
+++ b/drivers/freetype/freetype/src/type42/t42types.h
diff --git a/tools/freetype/freetype/src/type42/type42.c b/drivers/freetype/freetype/src/type42/type42.c
index d13df56b10..d13df56b10 100644
--- a/tools/freetype/freetype/src/type42/type42.c
+++ b/drivers/freetype/freetype/src/type42/type42.c
diff --git a/tools/freetype/freetype/src/winfonts/Jamfile b/drivers/freetype/freetype/src/winfonts/Jamfile
index 71cf5678e8..71cf5678e8 100644
--- a/tools/freetype/freetype/src/winfonts/Jamfile
+++ b/drivers/freetype/freetype/src/winfonts/Jamfile
diff --git a/tools/freetype/freetype/src/winfonts/fnterrs.h b/drivers/freetype/freetype/src/winfonts/fnterrs.h
index 463ba77ee2..463ba77ee2 100644
--- a/tools/freetype/freetype/src/winfonts/fnterrs.h
+++ b/drivers/freetype/freetype/src/winfonts/fnterrs.h
diff --git a/tools/freetype/freetype/src/winfonts/module.mk b/drivers/freetype/freetype/src/winfonts/module.mk
index b44d7f0570..b44d7f0570 100644
--- a/tools/freetype/freetype/src/winfonts/module.mk
+++ b/drivers/freetype/freetype/src/winfonts/module.mk
diff --git a/tools/freetype/freetype/src/winfonts/rules.mk b/drivers/freetype/freetype/src/winfonts/rules.mk
index 71a7df2d8a..71a7df2d8a 100644
--- a/tools/freetype/freetype/src/winfonts/rules.mk
+++ b/drivers/freetype/freetype/src/winfonts/rules.mk
diff --git a/tools/freetype/freetype/src/winfonts/winfnt.c b/drivers/freetype/freetype/src/winfonts/winfnt.c
index e8055c0898..e8055c0898 100644
--- a/tools/freetype/freetype/src/winfonts/winfnt.c
+++ b/drivers/freetype/freetype/src/winfonts/winfnt.c
diff --git a/tools/freetype/freetype/src/winfonts/winfnt.h b/drivers/freetype/freetype/src/winfonts/winfnt.h
index b7a80736d8..b7a80736d8 100644
--- a/tools/freetype/freetype/src/winfonts/winfnt.h
+++ b/drivers/freetype/freetype/src/winfonts/winfnt.h
diff --git a/tools/freetype/ft2build.h b/drivers/freetype/ft2build.h
index 5137b50f38..5137b50f38 100644
--- a/tools/freetype/ft2build.h
+++ b/drivers/freetype/ft2build.h
diff --git a/drivers/register_driver_types.cpp b/drivers/register_driver_types.cpp
index 235438f126..afa5f34bea 100644
--- a/drivers/register_driver_types.cpp
+++ b/drivers/register_driver_types.cpp
@@ -113,6 +113,7 @@ static ResourceFormatLoaderAudioStreamMPC * mpc_stream_loader=NULL;
#endif
+
static ResourceFormatPBM * pbm_loader=NULL;
void register_core_driver_types() {
@@ -141,6 +142,7 @@ void register_core_driver_types() {
ImageLoader::add_image_format_loader( image_loader_jpg );
#endif
+
pbm_loader = memnew( ResourceFormatPBM );
ResourceLoader::add_resource_format_loader(pbm_loader);
@@ -250,6 +252,7 @@ void register_driver_types() {
void unregister_driver_types() {
+
#ifdef TREMOR_ENABLED
memdelete( vorbis_stream_loader );
#endif
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp
index b713dc318f..9e90027a70 100644
--- a/modules/gdscript/gd_parser.cpp
+++ b/modules/gdscript/gd_parser.cpp
@@ -86,7 +86,7 @@ bool GDParser::_enter_indent_block(BlockNode* p_block) {
while(true) {
if (tokenizer->get_token()!=GDTokenizer::TK_NEWLINE) {
- print_line("no newline");
+
return false; //wtf
} else if (tokenizer->get_token(1)!=GDTokenizer::TK_NEWLINE) {
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index 56e8a5d45d..ed0049b362 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -204,8 +204,8 @@ def configure(env):
if (env["freetype"]!="no"):
env.Append(CCFLAGS=['/DFREETYPE_ENABLED'])
- env.Append(CPPPATH=['#tools/freetype'])
- env.Append(CPPPATH=['#tools/freetype/freetype/include'])
+ env.Append(CPPPATH=['#drivers/freetype'])
+ env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
if (env["target"]=="release"):
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 6b3f7147ef..5a43bf9323 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -143,8 +143,8 @@ def configure(env):
if (env["freetype"]!="no"):
env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
if (env["freetype"]=="builtin"):
- env.Append(CPPPATH=['#tools/freetype'])
- env.Append(CPPPATH=['#tools/freetype/freetype/include'])
+ env.Append(CPPPATH=['#drivers/freetype'])
+ env.Append(CPPPATH=['#drivers/freetype/freetype/include'])
env.Append(CPPFLAGS=['-DOPENGL_ENABLED','-DGLEW_ENABLED'])
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 03024daff5..d021c7b40e 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -412,7 +412,7 @@ void TextEdit::_notification(int p_what) {
case NOTIFICATION_THEME_CHANGED: {
_update_caches();
- };
+ } break;
case NOTIFICATION_DRAW: {
int line_number_char_count=0;
diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp
index 8327473a60..1fd1c77dca 100644
--- a/scene/register_scene_types.cpp
+++ b/scene/register_scene_types.cpp
@@ -133,6 +133,7 @@
#include "scene/resources/mesh_data_tool.h"
#include "scene/resources/scene_preloader.h"
#include "scene/resources/dynamic_font.h"
+#include "scene/resources/dynamic_font_stb.h"
#include "scene/main/timer.h"
@@ -254,7 +255,6 @@ void register_scene_types() {
resource_loader_wav = memnew( ResourceFormatLoaderWAV );
ResourceLoader::add_resource_format_loader( resource_loader_wav );
-
resource_loader_dynamic_font = memnew( ResourceFormatLoaderDynamicFont );
ResourceLoader::add_resource_format_loader( resource_loader_dynamic_font );
@@ -578,8 +578,10 @@ void register_scene_types() {
ObjectTypeDB::register_type<Animation>();
ObjectTypeDB::register_virtual_type<Font>();
ObjectTypeDB::register_type<BitmapFont>();
+
ObjectTypeDB::register_type<DynamicFontData>();
ObjectTypeDB::register_type<DynamicFont>();
+
ObjectTypeDB::register_type<StyleBoxEmpty>();
ObjectTypeDB::register_type<StyleBoxTexture>();
ObjectTypeDB::register_type<StyleBoxFlat>();
@@ -647,6 +649,7 @@ void unregister_scene_types() {
memdelete( resource_loader_image );
memdelete( resource_loader_wav );
memdelete( resource_loader_dynamic_font );
+
#ifdef TOOLS_ENABLED
diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp
index 19aa0e79cc..c76b5f3d3a 100644
--- a/scene/resources/dynamic_font.cpp
+++ b/scene/resources/dynamic_font.cpp
@@ -1,65 +1,11 @@
+#ifdef FREETYPE_ENABLED
#include "dynamic_font.h"
-#define STB_TRUETYPE_IMPLEMENTATION
-#include "stb_truetype.h"
#include "os/file_access.h"
-void DynamicFontData::lock() {
- fr=font_data.read();
-
- if (fr.ptr()!=last_data_ptr) {
-
- last_data_ptr=fr.ptr();
-
- if (!stbtt_InitFont(&info, last_data_ptr, 0)) {
- valid=false;
- } else {
- valid=true;
- }
-
- last_data_ptr=fr.ptr();
- }
-}
-
-void DynamicFontData::unlock() {
-
- fr = DVector<uint8_t>::Read();
-}
-
-void DynamicFontData::set_font_data(const DVector<uint8_t>& p_font) {
- //clear caches and stuff
- ERR_FAIL_COND(font_data.size()) ;
- font_data=p_font;
-
- lock();
-
- if (valid) {
- stbtt_GetFontVMetrics(&info, &ascent, &descent, &linegap);
- descent=-descent + linegap;
-
- for(int i=32;i<1024;i++) {
- for(int j=32;j<1024;j++) {
-
- int kern = stbtt_GetCodepointKernAdvance(&info, i,j);
- if (kern!=0) {
- KerningPairKey kpk;
- kpk.A=i;
- kpk.B=j;
- kerning_map[kpk]=kern;
- }
- }
- }
- }
-
- unlock();
- //clear existing stuff
-
- ERR_FAIL_COND(!valid);
-}
Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(int p_size) {
- ERR_FAIL_COND_V(!valid,Ref<DynamicFontAtSize>());
if (size_cache.has(p_size)) {
return Ref<DynamicFontAtSize>( size_cache[p_size] );
@@ -67,6 +13,7 @@ Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(int p_size) {
Ref<DynamicFontAtSize> dfas;
+
dfas.instance();
dfas->font=Ref<DynamicFontData>( this );
@@ -74,21 +21,34 @@ Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(int p_size) {
size_cache[p_size]=dfas.ptr();
dfas->size=p_size;
+ dfas->_load();
+
+ return dfas;
- lock();
+}
- dfas->scale = stbtt_ScaleForPixelHeight(&info, p_size);
+void DynamicFontData::set_font_ptr(const uint8_t* p_font_mem,int p_font_mem_size) {
- unlock();
+ font_mem=p_font_mem;
+ font_mem_size=p_font_mem_size;
+}
- return dfas;
+void DynamicFontData::set_font_path(const String& p_path) {
+
+ font_path=p_path;
+}
+
+void DynamicFontData::set_force_autohinter(bool p_force) {
+ force_autohinter=p_force;
}
DynamicFontData::DynamicFontData()
{
- last_data_ptr=NULL;
- valid=false;
+
+ force_autohinter=false;
+ font_mem=NULL;
+ font_mem_size=0;
}
DynamicFontData::~DynamicFontData()
@@ -100,22 +60,106 @@ DynamicFontData::~DynamicFontData()
////////////////////
+Error DynamicFontAtSize::_load() {
+
+
+ int error = FT_Init_FreeType( &library );
+
+ ERR_EXPLAIN(TTR("Error initializing FreeType."));
+ ERR_FAIL_COND_V( error !=0, ERR_CANT_CREATE );
+
+ if (font->font_path!=String()) {
+
+ FileAccess *f=FileAccess::open(font->font_path,FileAccess::READ);
+ ERR_FAIL_COND_V(!f,ERR_CANT_OPEN);
+
+ memset(&stream,0,sizeof(FT_StreamRec));
+ stream.base=NULL;
+ stream.size=f->get_len();
+ stream.pos=0;
+ stream.descriptor.pointer=f;
+ stream.read=_ft_stream_io;
+ stream.close=_ft_stream_close;
+
+ FT_Open_Args fargs;
+ memset(&fargs,0,sizeof(FT_Open_Args));
+ fargs.flags=FT_OPEN_STREAM;
+ fargs.stream=&stream;
+ error = FT_Open_Face( library,&fargs,0,&face);
+ } else if (font->font_mem) {
+
+ memset(&stream,0,sizeof(FT_StreamRec));
+ stream.base=(unsigned char*)font->font_mem;
+ stream.size=font->font_mem_size;
+ stream.pos=0;
+
+ FT_Open_Args fargs;
+ memset(&fargs,0,sizeof(FT_Open_Args));
+ fargs.memory_base=(unsigned char*)font->font_mem;
+ fargs.memory_size=font->font_mem_size;
+ fargs.flags= FT_OPEN_MEMORY;
+ fargs.stream=&stream;
+ error = FT_Open_Face( library,&fargs,0,&face);
+
+ } else {
+ ERR_EXPLAIN("DynamicFont uninitialized");
+ ERR_FAIL_V(ERR_UNCONFIGURED);
+ }
+
+ //error = FT_New_Face( library, src_path.utf8().get_data(),0,&face );
+
+ if ( error == FT_Err_Unknown_File_Format ) {
+ ERR_EXPLAIN(TTR("Unknown font format."));
+ FT_Done_FreeType( library );
+
+ } else if ( error ) {
+
+ ERR_EXPLAIN(TTR("Error loading font."));
+ FT_Done_FreeType( library );
+
+ }
+
+ ERR_FAIL_COND_V(error,ERR_FILE_CANT_OPEN);
+
+
+ /*error = FT_Set_Char_Size(face,0,64*size,512,512);
+
+ if ( error ) {
+ FT_Done_FreeType( library );
+ ERR_EXPLAIN(TTR("Invalid font size."));
+ ERR_FAIL_COND_V( error, ERR_INVALID_PARAMETER );
+ }*/
+
+ error = FT_Set_Pixel_Sizes(face,0,size);
+
+ ascent=face->size->metrics.ascender>>6;
+ descent=-face->size->metrics.descender>>6;
+ linegap=0;
+
+ //print_line("ASCENT: "+itos(ascent)+" descent "+itos(descent)+" hinted: "+itos(face->face_flags&FT_FACE_FLAG_HINTER));
+
+ valid=true;
+ return OK;
+}
+
float DynamicFontAtSize::get_height() const {
- return (font->ascent+font->descent)*scale;
+ return ascent+descent;
}
float DynamicFontAtSize::get_ascent() const {
- return font->ascent*scale;
+ return ascent;
}
float DynamicFontAtSize::get_descent() const {
- return font->descent*scale;
+ return descent;
}
Size2 DynamicFontAtSize::get_char_size(CharType p_char,CharType p_next) const {
+ if (!valid)
+ return Size2(1,1);
const_cast<DynamicFontAtSize*>(this)->_update_char(p_char);
const Character *c = char_map.getptr(p_char);
@@ -124,14 +168,9 @@ Size2 DynamicFontAtSize::get_char_size(CharType p_char,CharType p_next) const {
Size2 ret( c->advance, get_height());
if (p_next) {
- DynamicFontData::KerningPairKey kpk;
- kpk.A=p_char;
- kpk.B=p_next;
-
- const Map<DynamicFontData::KerningPairKey,int>::Element *K=font->kerning_map.find(kpk);
- if (K) {
- ret.x+=K->get()*scale;
- }
+ FT_Vector delta;
+ FT_Get_Kerning( face, p_char,p_next, FT_KERNING_DEFAULT, &delta );
+ ret.x+=delta.x>>6;
}
@@ -141,6 +180,9 @@ Size2 DynamicFontAtSize::get_char_size(CharType p_char,CharType p_next) const {
float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next,const Color& p_modulate) const {
+ if (!valid)
+ return 0;
+
const_cast<DynamicFontAtSize*>(this)->_update_char(p_char);
const Character * c = char_map.getptr(p_char);
@@ -161,58 +203,84 @@ float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2& p_pos, const
float ret = c->advance;
if (p_next) {
- DynamicFontData::KerningPairKey kpk;
- kpk.A=p_char;
- kpk.B=p_next;
- const Map<DynamicFontData::KerningPairKey,int>::Element *K=font->kerning_map.find(kpk);
- if (K) {
- ret+=K->get()*scale;
- }
+ FT_Vector delta;
+ FT_Get_Kerning( face, p_char,p_next, FT_KERNING_DEFAULT, &delta );
+ ret+=delta.x>>6;
}
return ret;
}
+unsigned long DynamicFontAtSize::_ft_stream_io(FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count ) {
+
+
+ FileAccess *f=(FileAccess*)stream->descriptor.pointer;
+
+ if (f->get_pos()!=offset) {
+ f->seek(offset);
+
+ }
+
+ if (count==0)
+ return 0;
+
+ return f->get_buffer(buffer,count);
+}
+void DynamicFontAtSize::_ft_stream_close(FT_Stream stream) {
+
+ FileAccess *f=(FileAccess*)stream->descriptor.pointer;
+ f->close();
+ memdelete(f);
+}
+
void DynamicFontAtSize::_update_char(CharType p_char) {
if (char_map.has(p_char))
return;
- font->lock();
-
+ _THREAD_SAFE_METHOD_
- int w,h,xofs,yofs;
- unsigned char * cpbitmap = stbtt_GetCodepointBitmap(&font->info, scale, scale, p_char, &w, &h, &xofs, &yofs );
+ FT_GlyphSlot slot = face->glyph;
- if (!cpbitmap) {
- //no glyph
+ int error = FT_Load_Char( face, p_char, FT_LOAD_RENDER|(font->force_autohinter?FT_LOAD_FORCE_AUTOHINT:0) );
+ if (!error) {
+ error = FT_Render_Glyph( face->glyph, ft_render_mode_normal );
+ }
+ if (error) {
- int advance;
- stbtt_GetCodepointHMetrics(&font->info, p_char, &advance, 0);
+ int advance=0;
+ //stbtt_GetCodepointHMetrics(&font->info, p_char, &advance, 0);
//print_line("char has no bitmap: "+itos(p_char)+" but advance is "+itos(advance*scale));
Character ch;
ch.texture_idx=-1;
- ch.advance=advance*scale;
+ ch.advance=advance;
ch.h_align=0;
ch.v_align=0;
char_map[p_char]=ch;
- font->unlock();
return;
}
+
+
+ int w = slot->bitmap.width;
+ int h = slot->bitmap.rows;
+ int p = slot->bitmap.pitch;
+ int yofs=slot->bitmap_top;
+ int xofs=slot->bitmap_left;
+ int advance=slot->advance.x>>6;
+
+
int mw=w+rect_margin*2;
int mh=h+rect_margin*2;
if (mw>4096 || mh>4096) {
- stbtt_FreeBitmap(cpbitmap,NULL);
- font->unlock();
ERR_FAIL_COND(mw>4096);
ERR_FAIL_COND(mh>4096);
}
@@ -304,13 +372,14 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
{
DVector<uint8_t>::Write wr = tex.imgdata.write();
+
for(int i=0;i<h;i++) {
for(int j=0;j<w;j++) {
int ofs = ( (i+tex_y+rect_margin)*tex.texture_size+j+tex_x+rect_margin)*2;
ERR_FAIL_COND(ofs >= tex.imgdata.size());
wr[ofs+0]=255; //grayscale as 1
- wr[ofs+1]=cpbitmap[i*w+j]; //alpha as 0
+ wr[ofs+1]=slot->bitmap.buffer[i*slot->bitmap.width+j];
}
}
}
@@ -322,7 +391,7 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
if (tex.texture.is_null()) {
tex.texture.instance();
- tex.texture->create_from_image(img,Texture::FLAG_FILTER);
+ tex.texture->create_from_image(img,0/*Texture::FLAG_FILTER*/);
} else {
tex.texture->set_data(img); //update
}
@@ -337,13 +406,11 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
tex.offsets[k]=tex_y+mh;
}
- int advance;
- stbtt_GetCodepointHMetrics(&font->info, p_char, &advance, 0);
Character chr;
chr.h_align=xofs;
- chr.v_align=yofs + get_ascent();
- chr.advance=advance*scale;
+ chr.v_align=ascent-yofs;// + ascent - descent;
+ chr.advance=advance;
chr.texture_idx=tex_index;
@@ -353,21 +420,24 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
char_map[p_char]=chr;
- stbtt_FreeBitmap(cpbitmap,NULL);
-
- font->unlock();
}
DynamicFontAtSize::DynamicFontAtSize() {
+ valid=false;
rect_margin=1;
+ ascent=1;
+ descent=1;
+ linegap=1;
}
DynamicFontAtSize::~DynamicFontAtSize(){
- ERR_FAIL_COND(!font.ptr());
- font->size_cache.erase(size);
+ if (valid) {
+ FT_Done_FreeType( library );
+ font->size_cache.erase(size);
+ }
}
/////////////////////////
@@ -478,34 +548,21 @@ RES ResourceFormatLoaderDynamicFont::load(const String &p_path, const String& p_
if (r_error)
*r_error=ERR_FILE_CANT_OPEN;
+ Ref<DynamicFontData> dfont;
+ dfont.instance();;
+ dfont->set_font_path(p_path);
- FileAccess *f = FileAccess::open(p_path,FileAccess::READ);
- ERR_FAIL_COND_V(!f,RES());
-
- DVector<uint8_t> data;
-
- data.resize(f->get_len());
-
- ERR_FAIL_COND_V(data.size()==0,RES());
-
- {
- DVector<uint8_t>::Write w = data.write();
- f->get_buffer(w.ptr(),data.size());
- }
-
- Ref<DynamicFontData> dfd;
- dfd.instance();
- dfd->set_font_data(data);
if (r_error)
*r_error=OK;
- return dfd;
+ return dfont;
}
void ResourceFormatLoaderDynamicFont::get_recognized_extensions(List<String> *p_extensions) const {
p_extensions->push_back("ttf");
+ p_extensions->push_back("otf");
}
bool ResourceFormatLoaderDynamicFont::handles_type(const String& p_type) const {
@@ -516,8 +573,10 @@ bool ResourceFormatLoaderDynamicFont::handles_type(const String& p_type) const {
String ResourceFormatLoaderDynamicFont::get_resource_type(const String &p_path) const {
String el = p_path.extension().to_lower();
- if (el=="ttf")
+ if (el=="ttf" || el=="otf")
return "DynamicFontData";
return "";
}
+
+#endif
diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h
index ba7249a7b7..f0cf80b042 100644
--- a/scene/resources/dynamic_font.h
+++ b/scene/resources/dynamic_font.h
@@ -1,10 +1,14 @@
-#ifndef DYNAMICFONT_H
-#define DYNAMICFONT_H
+#ifndef DYNAMIC_FONT_H
+#define DYNAMIC_FONT_H
-#include "font.h"
-#include "stb_truetype.h"
+#ifdef FREETYPE_ENABLED
+#include "scene/resources/font.h"
+#include "os/thread_safe.h"
#include "io/resource_loader.h"
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
class DynamicFontAtSize;
class DynamicFont;
@@ -13,39 +17,16 @@ class DynamicFontData : public Resource {
OBJ_TYPE(DynamicFontData,Resource);
- bool valid;
-
- DVector<uint8_t> font_data;
- DVector<uint8_t>::Read fr;
- const uint8_t* last_data_ptr;
-
- struct KerningPairKey {
-
- union {
- struct {
- uint32_t A,B;
- };
-
- uint64_t pair;
- };
-
- _FORCE_INLINE_ bool operator<(const KerningPairKey& p_r) const { return pair<p_r.pair; }
- };
- Map<KerningPairKey,int> kerning_map;
+ const uint8_t *font_mem;
+ int font_mem_size;
+ bool force_autohinter;
+ String font_path;
Map<int,DynamicFontAtSize*> size_cache;
-friend class DynamicFontAtSize;
-
- stbtt_fontinfo info;
- int ascent;
- int descent;
- int linegap;
-
- void lock();
- void unlock();
+ friend class DynamicFontAtSize;
friend class DynamicFont;
@@ -53,7 +34,10 @@ friend class DynamicFont;
Ref<DynamicFontAtSize> _get_dynamic_font_at_size(int p_size);
public:
- void set_font_data(const DVector<uint8_t>& p_font);
+ void set_font_ptr(const uint8_t* p_font_mem,int p_font_mem_size);
+ void set_font_path(const String& p_path);
+ void set_force_autohinter(bool p_force);
+
DynamicFontData();
~DynamicFontData();
};
@@ -61,11 +45,21 @@ public:
class DynamicFontAtSize : public Reference {
- OBJ_TYPE(DynamicFontAtSize,Reference);
+ OBJ_TYPE(DynamicFontAtSize,Reference)
+ _THREAD_SAFE_CLASS_
+ FT_Library library; /* handle to library */
+ FT_Face face; /* handle to face object */
+ FT_StreamRec stream;
+
+ int ascent;
+ int descent;
+ int linegap;
int rect_margin;
+ bool valid;
+
struct CharTexture {
DVector<uint8_t> imgdata;
@@ -88,6 +82,8 @@ class DynamicFontAtSize : public Reference {
};
+ static unsigned long _ft_stream_io(FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count );
+ static void _ft_stream_close(FT_Stream stream);
HashMap< CharType, Character > char_map;
@@ -95,13 +91,18 @@ class DynamicFontAtSize : public Reference {
friend class DynamicFontData;
Ref<DynamicFontData> font;
- float scale;
int size;
+
+
+ Error _load();
protected:
+
+
public:
+
float get_height() const;
float get_ascent() const;
@@ -126,7 +127,7 @@ class DynamicFont : public Font {
Ref<DynamicFontData> data;
Ref<DynamicFontAtSize> data_at_size;
int size;
-
+ bool valid;
protected:
@@ -171,5 +172,6 @@ public:
};
+#endif
-#endif // DYNAMICFONT_H
+#endif
diff --git a/scene/resources/dynamic_font_stb.cpp b/scene/resources/dynamic_font_stb.cpp
new file mode 100644
index 0000000000..344043fcdd
--- /dev/null
+++ b/scene/resources/dynamic_font_stb.cpp
@@ -0,0 +1,527 @@
+#include "dynamic_font_stb.h"
+
+#ifndef FREETYPE_ENABLED
+
+#define STB_TRUETYPE_IMPLEMENTATION
+#include "stb_truetype.h"
+#include "os/file_access.h"
+
+void DynamicFontData::lock() {
+
+ fr=font_data.read();
+
+ if (fr.ptr()!=last_data_ptr) {
+
+ last_data_ptr=fr.ptr();
+
+ if (!stbtt_InitFont(&info, last_data_ptr, 0)) {
+ valid=false;
+ } else {
+ valid=true;
+ }
+
+ last_data_ptr=fr.ptr();
+ }
+}
+
+void DynamicFontData::unlock() {
+
+ fr = DVector<uint8_t>::Read();
+}
+
+void DynamicFontData::set_font_data(const DVector<uint8_t>& p_font) {
+ //clear caches and stuff
+ ERR_FAIL_COND(font_data.size()) ;
+ font_data=p_font;
+
+ lock();
+
+ if (valid) {
+ stbtt_GetFontVMetrics(&info, &ascent, &descent, &linegap);
+ descent=-descent + linegap;
+
+ for(int i=32;i<1024;i++) {
+ for(int j=32;j<1024;j++) {
+
+ int kern = stbtt_GetCodepointKernAdvance(&info, i,j);
+ if (kern!=0) {
+ KerningPairKey kpk;
+ kpk.A=i;
+ kpk.B=j;
+ kerning_map[kpk]=kern;
+ }
+ }
+ }
+ }
+
+ unlock();
+ //clear existing stuff
+
+ ERR_FAIL_COND(!valid);
+}
+
+Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(int p_size) {
+
+ ERR_FAIL_COND_V(!valid,Ref<DynamicFontAtSize>());
+
+ if (size_cache.has(p_size)) {
+ return Ref<DynamicFontAtSize>( size_cache[p_size] );
+ }
+
+
+ Ref<DynamicFontAtSize> dfas;
+ dfas.instance();
+
+ dfas->font=Ref<DynamicFontData>( this );
+
+ size_cache[p_size]=dfas.ptr();
+
+ dfas->size=p_size;
+
+ lock();
+
+ dfas->scale = stbtt_ScaleForPixelHeight(&info, p_size);
+
+ unlock();
+
+ return dfas;
+
+}
+
+DynamicFontData::DynamicFontData()
+{
+ last_data_ptr=NULL;
+ valid=false;
+}
+
+DynamicFontData::~DynamicFontData()
+{
+
+}
+
+
+
+////////////////////
+
+float DynamicFontAtSize::get_height() const {
+
+ return (font->ascent+font->descent)*scale;
+}
+
+float DynamicFontAtSize::get_ascent() const {
+
+ return font->ascent*scale;
+}
+float DynamicFontAtSize::get_descent() const {
+
+ return font->descent*scale;
+}
+
+Size2 DynamicFontAtSize::get_char_size(CharType p_char,CharType p_next) const {
+
+ const_cast<DynamicFontAtSize*>(this)->_update_char(p_char);
+
+ const Character *c = char_map.getptr(p_char);
+ ERR_FAIL_COND_V(!c,Size2());
+
+ Size2 ret( c->advance, get_height());
+
+ if (p_next) {
+ DynamicFontData::KerningPairKey kpk;
+ kpk.A=p_char;
+ kpk.B=p_next;
+
+ const Map<DynamicFontData::KerningPairKey,int>::Element *K=font->kerning_map.find(kpk);
+ if (K) {
+ ret.x+=K->get()*scale;
+ }
+
+ }
+
+ return ret;
+}
+
+
+float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next,const Color& p_modulate) const {
+
+ const_cast<DynamicFontAtSize*>(this)->_update_char(p_char);
+
+ const Character * c = char_map.getptr(p_char);
+
+ if (!c) {
+ return 0;
+ }
+
+ Point2 cpos=p_pos;
+ cpos.x+=c->h_align;
+ cpos.y-=get_ascent();
+ cpos.y+=c->v_align;
+ ERR_FAIL_COND_V( c->texture_idx<-1 || c->texture_idx>=textures.size(),0);
+ if (c->texture_idx!=-1)
+ VisualServer::get_singleton()->canvas_item_add_texture_rect_region( p_canvas_item, Rect2( cpos, c->rect.size ), textures[c->texture_idx].texture->get_rid(),c->rect, p_modulate );
+
+ //textures[c->texture_idx].texture->draw(p_canvas_item,Vector2());
+
+ float ret = c->advance;
+ if (p_next) {
+ DynamicFontData::KerningPairKey kpk;
+ kpk.A=p_char;
+ kpk.B=p_next;
+
+ const Map<DynamicFontData::KerningPairKey,int>::Element *K=font->kerning_map.find(kpk);
+ if (K) {
+ ret+=K->get()*scale;
+ }
+
+ }
+
+ return ret;
+}
+
+
+void DynamicFontAtSize::_update_char(CharType p_char) {
+
+ if (char_map.has(p_char))
+ return;
+
+ font->lock();
+
+
+ int w,h,xofs,yofs;
+ unsigned char * cpbitmap = stbtt_GetCodepointBitmap(&font->info, scale, scale, p_char, &w, &h, &xofs, &yofs );
+
+ if (!cpbitmap) {
+ //no glyph
+
+ int advance;
+ stbtt_GetCodepointHMetrics(&font->info, p_char, &advance, 0);
+ //print_line("char has no bitmap: "+itos(p_char)+" but advance is "+itos(advance*scale));
+ Character ch;
+ ch.texture_idx=-1;
+ ch.advance=advance*scale;
+ ch.h_align=0;
+ ch.v_align=0;
+
+ char_map[p_char]=ch;
+
+ font->unlock();
+
+ return;
+ }
+
+ int mw=w+rect_margin*2;
+ int mh=h+rect_margin*2;
+
+ if (mw>4096 || mh>4096) {
+
+ stbtt_FreeBitmap(cpbitmap,NULL);
+ font->unlock();
+ ERR_FAIL_COND(mw>4096);
+ ERR_FAIL_COND(mh>4096);
+ }
+
+ //find a texture to fit this...
+
+ int tex_index=-1;
+ int tex_x=0;
+ int tex_y=0;
+
+ for(int i=0;i<textures.size();i++) {
+
+ CharTexture &ct=textures[i];
+
+ if (mw > ct.texture_size || mh > ct.texture_size) //too big for this texture
+ continue;
+
+ tex_y=0x7FFFFFFF;
+ tex_x=0;
+
+ for(int j=0;j<ct.texture_size-mw;j++) {
+
+ int max_y=0;
+
+ for(int k=j;k<j+mw;k++) {
+
+ int y = ct.offsets[k];
+ if (y>max_y)
+ max_y=y;
+ }
+
+ if (max_y<tex_y) {
+ tex_y=max_y;
+ tex_x=j;
+ }
+ }
+
+ if (tex_y==0x7FFFFFFF || tex_y+mh > ct.texture_size)
+ continue; //fail, could not fit it here
+
+ tex_index=i;
+ break;
+ }
+
+// print_line("CHAR: "+String::chr(p_char)+" TEX INDEX: "+itos(tex_index)+" X: "+itos(tex_x)+" Y: "+itos(tex_y));
+
+ if (tex_index==-1) {
+ //could not find texture to fit, create one
+ tex_x = 0;
+ tex_y = 0;
+
+ int texsize = MAX(size*8,256);
+ if (mw>texsize)
+ texsize=mw; //special case, adapt to it?
+ if (mh>texsize)
+ texsize=mh; //special case, adapt to it?
+
+ texsize=nearest_power_of_2(texsize);
+
+ texsize=MIN(texsize,4096);
+
+
+ CharTexture tex;
+ tex.texture_size=texsize;
+ tex.imgdata.resize(texsize*texsize*2); //grayscale alpha
+
+ {
+ //zero texture
+ DVector<uint8_t>::Write w = tex.imgdata.write();
+ ERR_FAIL_COND(texsize*texsize*2 > tex.imgdata.size());
+ for(int i=0;i<texsize*texsize*2;i++) {
+ w[i]=0;
+ }
+ }
+ tex.offsets.resize(texsize);
+ for(int i=0;i<texsize;i++) //zero offsets
+ tex.offsets[i]=0;
+
+ textures.push_back(tex);
+ tex_index=textures.size()-1;
+
+ }
+
+
+ //fit character in char texture
+
+ CharTexture &tex=textures[tex_index];
+
+ {
+ DVector<uint8_t>::Write wr = tex.imgdata.write();
+
+ for(int i=0;i<h;i++) {
+ for(int j=0;j<w;j++) {
+
+ int ofs = ( (i+tex_y+rect_margin)*tex.texture_size+j+tex_x+rect_margin)*2;
+ ERR_FAIL_COND(ofs >= tex.imgdata.size());
+ wr[ofs+0]=255; //grayscale as 1
+ wr[ofs+1]=cpbitmap[i*w+j]; //alpha as 0
+ }
+ }
+ }
+
+ //blit to image and texture
+ {
+
+ Image img(tex.texture_size,tex.texture_size,0,Image::FORMAT_GRAYSCALE_ALPHA,tex.imgdata);
+
+ if (tex.texture.is_null()) {
+ tex.texture.instance();
+ tex.texture->create_from_image(img,Texture::FLAG_FILTER);
+ } else {
+ tex.texture->set_data(img); //update
+ }
+
+ }
+
+
+ // update height array
+
+ for(int k=tex_x;k<tex_x+mw;k++) {
+
+ tex.offsets[k]=tex_y+mh;
+ }
+
+ int advance;
+ stbtt_GetCodepointHMetrics(&font->info, p_char, &advance, 0);
+
+ Character chr;
+ chr.h_align=xofs;
+ chr.v_align=yofs + get_ascent();
+ chr.advance=advance*scale;
+ chr.texture_idx=tex_index;
+
+
+ chr.rect=Rect2(tex_x+rect_margin,tex_y+rect_margin,w,h);
+
+ //print_line("CHAR: "+String::chr(p_char)+" TEX INDEX: "+itos(tex_index)+" RECT: "+chr.rect+" X OFS: "+itos(xofs)+" Y OFS: "+itos(yofs));
+
+ char_map[p_char]=chr;
+
+ stbtt_FreeBitmap(cpbitmap,NULL);
+
+ font->unlock();
+
+}
+
+DynamicFontAtSize::DynamicFontAtSize() {
+
+ rect_margin=1;
+}
+
+DynamicFontAtSize::~DynamicFontAtSize(){
+
+ ERR_FAIL_COND(!font.ptr());
+ font->size_cache.erase(size);
+}
+
+/////////////////////////
+
+
+void DynamicFont::_bind_methods() {
+
+ ObjectTypeDB::bind_method(_MD("set_font_data","data:DynamicFontData"),&DynamicFont::set_font_data);
+ ObjectTypeDB::bind_method(_MD("get_font_data:DynamicFontData"),&DynamicFont::get_font_data);
+
+ ObjectTypeDB::bind_method(_MD("set_size","data"),&DynamicFont::set_size);
+ ObjectTypeDB::bind_method(_MD("get_size"),&DynamicFont::get_size);
+
+ ADD_PROPERTY(PropertyInfo(Variant::INT,"size"),_SCS("set_size"),_SCS("get_size"));
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT,"font",PROPERTY_HINT_RESOURCE_TYPE,"DynamicFontData"),_SCS("set_font_data"),_SCS("get_font_data"));
+}
+
+
+void DynamicFont::set_font_data(const Ref<DynamicFontData>& p_data) {
+
+ data=p_data;
+ data_at_size=data->_get_dynamic_font_at_size(size);
+}
+
+Ref<DynamicFontData> DynamicFont::get_font_data() const{
+
+ return data;
+}
+
+void DynamicFont::set_size(int p_size){
+
+ if (size==p_size)
+ return;
+ size=p_size;
+ ERR_FAIL_COND(p_size<1);
+ if (!data.is_valid())
+ return;
+ data_at_size=data->_get_dynamic_font_at_size(size);
+
+}
+int DynamicFont::get_size() const{
+
+ return size;
+}
+
+float DynamicFont::get_height() const{
+
+ if (!data_at_size.is_valid())
+ return 1;
+
+ return data_at_size->get_height();
+}
+
+float DynamicFont::get_ascent() const{
+
+ if (!data_at_size.is_valid())
+ return 1;
+
+ return data_at_size->get_ascent();
+}
+
+float DynamicFont::get_descent() const{
+
+ if (!data_at_size.is_valid())
+ return 1;
+
+ return data_at_size->get_descent();
+
+}
+
+Size2 DynamicFont::get_char_size(CharType p_char,CharType p_next) const{
+
+ if (!data_at_size.is_valid())
+ return Size2(1,1);
+
+ return data_at_size->get_char_size(p_char,p_next);
+
+}
+
+bool DynamicFont::is_distance_field_hint() const{
+
+ return false;
+}
+
+float DynamicFont::draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next,const Color& p_modulate) const {
+
+ if (!data_at_size.is_valid())
+ return 0;
+
+ return data_at_size->draw_char(p_canvas_item,p_pos,p_char,p_next,p_modulate);
+
+}
+
+DynamicFont::DynamicFont() {
+
+ size=16;
+}
+
+DynamicFont::~DynamicFont() {
+
+}
+
+/////////////////////////
+
+
+RES ResourceFormatLoaderDynamicFont::load(const String &p_path, const String& p_original_path, Error *r_error) {
+
+ if (r_error)
+ *r_error=ERR_FILE_CANT_OPEN;
+
+
+ FileAccess *f = FileAccess::open(p_path,FileAccess::READ);
+ ERR_FAIL_COND_V(!f,RES());
+
+ DVector<uint8_t> data;
+
+ data.resize(f->get_len());
+
+ ERR_FAIL_COND_V(data.size()==0,RES());
+
+ {
+ DVector<uint8_t>::Write w = data.write();
+ f->get_buffer(w.ptr(),data.size());
+ }
+
+ Ref<DynamicFontData> dfd;
+ dfd.instance();
+ dfd->set_font_data(data);
+
+ if (r_error)
+ *r_error=OK;
+
+ return dfd;
+}
+
+void ResourceFormatLoaderDynamicFont::get_recognized_extensions(List<String> *p_extensions) const {
+
+ p_extensions->push_back("ttf");
+}
+
+bool ResourceFormatLoaderDynamicFont::handles_type(const String& p_type) const {
+
+ return (p_type=="DynamicFontData");
+}
+
+String ResourceFormatLoaderDynamicFont::get_resource_type(const String &p_path) const {
+
+ String el = p_path.extension().to_lower();
+ if (el=="ttf")
+ return "DynamicFontData";
+ return "";
+}
+
+#endif
diff --git a/scene/resources/dynamic_font_stb.h b/scene/resources/dynamic_font_stb.h
new file mode 100644
index 0000000000..6b72fb3703
--- /dev/null
+++ b/scene/resources/dynamic_font_stb.h
@@ -0,0 +1,178 @@
+#ifndef DYNAMICFONT_STB_H
+#define DYNAMICFONT_STB_H
+
+#ifndef FREETYPE_ENABLED
+
+#include "font.h"
+#include "stb_truetype.h"
+#include "io/resource_loader.h"
+
+
+
+class DynamicFontAtSize;
+class DynamicFont;
+
+class DynamicFontData : public Resource {
+
+ OBJ_TYPE(DynamicFontData,Resource);
+
+ bool valid;
+
+ DVector<uint8_t> font_data;
+ DVector<uint8_t>::Read fr;
+ const uint8_t* last_data_ptr;
+
+ struct KerningPairKey {
+
+ union {
+ struct {
+ uint32_t A,B;
+ };
+
+ uint64_t pair;
+ };
+
+ _FORCE_INLINE_ bool operator<(const KerningPairKey& p_r) const { return pair<p_r.pair; }
+ };
+
+ Map<KerningPairKey,int> kerning_map;
+
+
+ Map<int,DynamicFontAtSize*> size_cache;
+
+friend class DynamicFontAtSize;
+
+ stbtt_fontinfo info;
+ int ascent;
+ int descent;
+ int linegap;
+
+ void lock();
+ void unlock();
+
+friend class DynamicFont;
+
+
+ Ref<DynamicFontAtSize> _get_dynamic_font_at_size(int p_size);
+public:
+
+ void set_font_data(const DVector<uint8_t>& p_font);
+ DynamicFontData();
+ ~DynamicFontData();
+};
+
+
+class DynamicFontAtSize : public Reference {
+
+ OBJ_TYPE(DynamicFontAtSize,Reference);
+
+
+ int rect_margin;
+
+ struct CharTexture {
+
+ DVector<uint8_t> imgdata;
+ int texture_size;
+ Vector<int> offsets;
+ Ref<ImageTexture> texture;
+ };
+
+ Vector<CharTexture> textures;
+
+ struct Character {
+
+ int texture_idx;
+ Rect2 rect;
+ float v_align;
+ float h_align;
+ float advance;
+
+ Character() { texture_idx=0; v_align=0; }
+ };
+
+
+
+ HashMap< CharType, Character > char_map;
+
+ _FORCE_INLINE_ void _update_char(CharType p_char);
+
+friend class DynamicFontData;
+ Ref<DynamicFontData> font;
+ float scale;
+ int size;
+
+protected:
+
+public:
+
+ float get_height() const;
+
+ float get_ascent() const;
+ float get_descent() const;
+
+ Size2 get_char_size(CharType p_char,CharType p_next=0) const;
+
+ float draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next=0,const Color& p_modulate=Color(1,1,1)) const;
+
+
+
+ DynamicFontAtSize();
+ ~DynamicFontAtSize();
+};
+
+///////////////
+
+class DynamicFont : public Font {
+
+ OBJ_TYPE( DynamicFont, Font );
+
+ Ref<DynamicFontData> data;
+ Ref<DynamicFontAtSize> data_at_size;
+ int size;
+
+
+protected:
+
+ static void _bind_methods();
+
+public:
+
+ void set_font_data(const Ref<DynamicFontData>& p_data);
+ Ref<DynamicFontData> get_font_data() const;
+
+ void set_size(int p_size);
+ int get_size() const;
+
+ virtual float get_height() const;
+
+ virtual float get_ascent() const;
+ virtual float get_descent() const;
+
+ virtual Size2 get_char_size(CharType p_char,CharType p_next=0) const;
+
+ virtual bool is_distance_field_hint() const;
+
+ virtual float draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next=0,const Color& p_modulate=Color(1,1,1)) const;
+
+ DynamicFont();
+ ~DynamicFont();
+
+};
+
+
+
+/////////////
+
+class ResourceFormatLoaderDynamicFont : public ResourceFormatLoader {
+public:
+
+ virtual RES load(const String &p_path,const String& p_original_path="",Error *r_error=NULL);
+ virtual void get_recognized_extensions(List<String> *p_extensions) const;
+ virtual bool handles_type(const String& p_type) const;
+ virtual String get_resource_type(const String &p_path) const;
+
+};
+
+
+#endif
+#endif // DYNAMICFONT_H
diff --git a/tools/SCsub b/tools/SCsub
index 2210538a25..7a0feb6e3d 100644
--- a/tools/SCsub
+++ b/tools/SCsub
@@ -58,7 +58,41 @@ def make_translations_header(target,source,env):
g.write("#endif")
+def make_fonts_header(target,source,env):
+
+ dst = target[0].srcnode().abspath
+
+ g = open(dst,"wb")
+
+
+ """"
+ """
+
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef _EDITOR_FONTS_H\n")
+ g.write("#define _EDITOR_FONTS_H\n")
+
+ #saving uncompressed, since freetype will reference from memory pointer
+ xl_names=[]
+ for i in range(len(source)):
+ print("Appending font: "+source[i].srcnode().abspath)
+ f = open(source[i].srcnode().abspath,"rb")
+ buf = f.read()
+ import os.path
+
+ name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
+
+ g.write("static const int _font_"+name+"_size="+str(len(buf))+";\n")
+ g.write("static const unsigned char _font_"+name+"[]={\n")
+ for i in range(len(buf)):
+ g.write(str(ord(buf[i]))+",\n")
+
+ g.write("};\n")
+
+ g.write("#endif")
+
+
if (env["tools"]!="no"):
import glob
@@ -70,11 +104,18 @@ if (env["tools"]!="no"):
env.Depends('#tools/editor/translations.h',tlist)
env.Command('#tools/editor/translations.h',tlist,make_translations_header)
+ flist = glob.glob(dir + "/editor_fonts/*.ttf")
+ flist.append( glob.glob(dir + "/editor_fonts/*.otf") )
+
+ print("fonts: ",flist)
+ env.Depends('#tools/editor/builtin_fonts.h',flist)
+ env.Command('#tools/editor/builtin_fonts.h',flist,make_fonts_header)
+
SConscript('editor/SCsub');
#SConscript('scintilla/SCsub');
SConscript('collada/SCsub');
SConscript('docdump/SCsub');
- SConscript('freetype/SCsub');
+ #SConscript('freetype/SCsub');
SConscript('doc/SCsub')
SConscript('pck/SCsub')
diff --git a/tools/doc/doc_data.h b/tools/doc/doc_data.h
index 877f30defb..d1aebff4ce 100644
--- a/tools/doc/doc_data.h
+++ b/tools/doc/doc_data.h
@@ -50,6 +50,9 @@ public:
String qualifiers;
String description;
Vector<ArgumentDoc> arguments;
+ bool operator<(const MethodDoc& p_md) const {
+ return name<p_md.name;
+ }
};
struct ConstantDoc {
diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp
index c92b40628c..d605a41600 100644
--- a/tools/editor/code_editor.cpp
+++ b/tools/editor/code_editor.cpp
@@ -544,7 +544,7 @@ void CodeTextEditor::set_error(const String& p_error) {
}
-void CodeTextEditor::_on_settings_change() {
+void CodeTextEditor::_update_font() {
// FONTS
String editor_font = EDITOR_DEF("text_editor/font", "");
@@ -557,7 +557,12 @@ void CodeTextEditor::_on_settings_change() {
}
}
if(!font_overrode)
- text_editor->add_font_override("font",get_font("source","Fonts"));
+ text_editor->add_font_override("font",get_font("source","EditorFonts"));
+}
+
+void CodeTextEditor::_on_settings_change() {
+
+ _update_font();
// AUTO BRACE COMPLETION
text_editor->set_auto_brace_completion(
@@ -588,6 +593,9 @@ void CodeTextEditor::_notification(int p_what) {
if (p_what==EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED)
_load_theme_settings();
+ if (p_what==NOTIFICATION_ENTER_TREE) {
+ _update_font();
+ }
}
void CodeTextEditor::_bind_methods() {
@@ -607,19 +615,6 @@ CodeTextEditor::CodeTextEditor() {
text_editor->set_area_as_parent_rect();
text_editor->set_margin(MARGIN_BOTTOM,20);
- String editor_font = EDITOR_DEF("text_editor/font", "");
- bool font_overrode = false;
- if (editor_font!="") {
- Ref<Font> fnt = ResourceLoader::load(editor_font);
- if (fnt.is_valid()) {
- text_editor->add_font_override("font",fnt);
- font_overrode = true;
- }
- }
-
- if (!font_overrode)
- text_editor->add_font_override("font",get_font("source","Fonts"));
-
text_editor->set_show_line_numbers(true);
text_editor->set_brace_matching(true);
text_editor->set_auto_indent(true);
diff --git a/tools/editor/code_editor.h b/tools/editor/code_editor.h
index e28517c601..f1a1a7072f 100644
--- a/tools/editor/code_editor.h
+++ b/tools/editor/code_editor.h
@@ -135,6 +135,7 @@ class CodeTextEditor : public Control {
void _on_settings_change();
+ void _update_font();
void _complete_request();
protected:
diff --git a/tools/editor/editor_fonts.cpp b/tools/editor/editor_fonts.cpp
index a3ec08f986..e04dce294a 100644
--- a/tools/editor/editor_fonts.cpp
+++ b/tools/editor/editor_fonts.cpp
@@ -30,6 +30,9 @@
#include "doc_font.h"
#include "doc_title_font.h"
#include "doc_code_font.h"
+#include "builtin_fonts.h"
+#include "editor_settings.h"
+#include "scene/resources/dynamic_font.h"
static Ref<BitmapFont> make_font(int p_height,int p_ascent, int p_valign, int p_charcount, const int *p_chars,const Ref<Texture> &p_texture) {
@@ -64,12 +67,54 @@ static Ref<BitmapFont> make_font(int p_height,int p_ascent, int p_valign, int p_
void editor_register_fonts(Ref<Theme> p_theme) {
+ Ref<DynamicFontData> dfd;
+ dfd.instance();
+ dfd->set_font_ptr(_font_droid_sans,_font_droid_sans_size);
+ dfd->set_force_autohinter(true); //just looks better..i think?
- Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons"));
- Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
- Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
- p_theme->set_font("doc","EditorFonts",doc_font);
- p_theme->set_font("doc_code","EditorFonts",doc_code_font);
- p_theme->set_font("doc_title","EditorFonts",doc_title_font);
+ Ref<DynamicFontData> dfmono;
+ dfmono.instance();
+ dfmono->set_font_ptr(_font_source_code_pro,_font_source_code_pro_size);
+ //dfd->set_force_autohinter(true); //just looks better..i think?
+
+ Ref<DynamicFont> df;
+ df.instance();
+ df->set_size(int(EditorSettings::get_singleton()->get("global/font_size")));
+ df->set_font_data(dfd);
+
+
+ p_theme->set_default_theme_font(df);
+
+// Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons"));
+// Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
+// Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
+
+ Ref<DynamicFont> df_title;
+ df_title.instance();
+ df_title->set_size(int(EDITOR_DEF("help/help_title_font_size",18)));
+ df_title->set_font_data(dfd);
+
+ Ref<DynamicFont> df_doc;
+ df_doc.instance();
+ df_doc->set_size(int(EDITOR_DEF("help/help_font_size",16)));
+ df_doc->set_font_data(dfd);
+
+ p_theme->set_font("doc","EditorFonts",df_doc);
+ p_theme->set_font("doc_title","EditorFonts",df_title);
+
+
+ Ref<DynamicFont> df_code;
+ df_code.instance();
+ df_code->set_size(int(EditorSettings::get_singleton()->get("global/source_font_size")));
+ df_code->set_font_data(dfmono);
+
+ p_theme->set_font("source","EditorFonts",df_code);
+
+ Ref<DynamicFont> df_doc_code;
+ df_doc_code.instance();
+ df_doc_code->set_size(int(EDITOR_DEF("help/help_source_font_size",14)));
+ df_doc_code->set_font_data(dfmono);
+
+ p_theme->set_font("doc_source","EditorFonts",df_doc_code);
}
diff --git a/tools/editor/editor_help.cpp b/tools/editor/editor_help.cpp
index 616037c545..b426def503 100644
--- a/tools/editor/editor_help.cpp
+++ b/tools/editor/editor_help.cpp
@@ -130,6 +130,7 @@ void EditorHelpSearch::_update_search() {
else
cicon=def_icon;
+
for(int i=0;i<c.methods.size();i++) {
if( (term.begins_with(".") && c.methods[i].name.begins_with(term.right(1)))
|| (term.ends_with("(") && c.methods[i].name.ends_with(term.left(term.length()-1).strip_edges()))
@@ -697,13 +698,13 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
//edited_class->show();
- DocData::ClassDoc &cd=doc->class_list[p_class];
+ DocData::ClassDoc cd=doc->class_list[p_class]; //make a copy, so we can sort without worrying
Color h_color;
- Ref<Font> doc_font = get_font("normal","Fonts");
- Ref<Font> doc_code_font = get_font("source","Fonts");
- Ref<Font> doc_title_font = get_font("large","Fonts");
+ Ref<Font> doc_font = get_font("doc","EditorFonts");
+ Ref<Font> doc_title_font = get_font("doc_title","EditorFonts");
+ Ref<Font> doc_code_font = get_font("doc_source","EditorFonts");
h_color=Color(1,1,1,1);
@@ -794,7 +795,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
//class_desc->add_newline();
class_desc->add_newline();
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->push_font( get_font("normal","Fonts") );
+ class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.brief_description);
class_desc->pop();
@@ -805,9 +806,14 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
}
bool method_descr=false;
+ bool sort_methods = EditorSettings::get_singleton()->get("help/sort_functions_alphabetically");
+
if (cd.methods.size()) {
+ if (sort_methods)
+ cd.methods.sort();
+
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Public Methods:"));
@@ -979,6 +985,9 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
}
if (cd.signals.size()) {
+ if (sort_methods) {
+ cd.signals.sort();
+ }
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Signals:"));
@@ -1098,7 +1107,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
class_desc->add_newline();
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->push_font( get_font("normal","Fonts") );
+ class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.description);
class_desc->pop();
@@ -1168,7 +1177,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->push_font( get_font("normal","Fonts") );
+ class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.methods[i].description);
class_desc->pop();
@@ -1248,9 +1257,12 @@ void EditorHelp::_add_text(const String& p_bbcode) {
class_desc->push_indent(1);*/
int pos = 0;
+ Ref<Font> doc_font = get_font("doc","EditorFonts");
+ Ref<Font> doc_code_font = get_font("doc_source","EditorFonts");
+
String bbcode=p_bbcode.replace("\t"," ").replace("\r"," ").strip_edges();
- //find double newlines, keep them
+ //change newlines for double newlines
for(int i=0;i<bbcode.length();i++) {
//find valid newlines (double)
@@ -1269,10 +1281,13 @@ void EditorHelp::_add_text(const String& p_bbcode) {
if (dnl) {
bbcode[i]=0xFFFF;
+ //keep
i=j;
} else {
- bbcode[i]=' ';
- i=j-1;
+ bbcode=bbcode.insert(i,"\n");
+ i++;
+ //bbcode[i]=' ';
+ //i=j-1;
}
}
}
@@ -1280,7 +1295,7 @@ void EditorHelp::_add_text(const String& p_bbcode) {
//remove double spaces or spaces after newlines
for(int i=0;i<bbcode.length();i++) {
- if (bbcode[i]==' ' || bbcode[i]==0xFFFF) {
+ if (bbcode[i]==' ' || bbcode[i]=='\n' || bbcode[i]==0xFFFF) {
for(int j=i+1;j<p_bbcode.length();j++) {
if (bbcode[j]==' ') {
@@ -1353,35 +1368,45 @@ void EditorHelp::_add_text(const String& p_bbcode) {
} else if (tag.begins_with("method ")) {
String m = tag.substr(7,tag.length());
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_meta("@"+m);
class_desc->add_text(m+"()");
class_desc->pop();
+ class_desc->pop();
pos=brk_end+1;
} else if (doc->class_list.has(tag)) {
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_meta("#"+tag);
class_desc->add_text(tag);
class_desc->pop();
+ class_desc->pop();
pos=brk_end+1;
} else if (tag=="b") {
//use bold font
- class_desc->push_font(get_font("source","Fonts"));
+ class_desc->push_font(doc_code_font);
pos=brk_end+1;
tag_stack.push_front(tag);
} else if (tag=="i") {
//use italics font
- class_desc->push_font(get_font("italic","Fonts"));
+ Color text_color = EditorSettings::get_singleton()->get("text_editor/text_color");
+ //no italics so emphasize with color
+ text_color.r*=1.1;
+ text_color.g*=1.1;
+ text_color.b*=1.1;
+ class_desc->push_color(text_color);
+ //class_desc->push_font(get_font("italic","Fonts"));
pos=brk_end+1;
tag_stack.push_front(tag);
} else if (tag=="code" || tag=="codeblock") {
//use monospace font
- class_desc->push_font(get_font("source","EditorFonts"));
+ class_desc->push_font(doc_code_font);
pos=brk_end+1;
tag_stack.push_front(tag);
} else if (tag=="center") {
@@ -1496,7 +1521,7 @@ void EditorHelp::_add_text(const String& p_bbcode) {
if (font.is_valid())
class_desc->push_font(font);
else {
- class_desc->push_font(get_font("source","rFonts"));
+ class_desc->push_font(doc_font);
}
pos=brk_end+1;
@@ -1618,6 +1643,7 @@ EditorHelp::EditorHelp() {
VBoxContainer *vbc = this;
+ EDITOR_DEF("help/sort_functions_alphabetically",true);
//class_list->connect("meta_clicked",this,"_class_list_select");
//class_list->set_selection_enabled(true);
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index fedf738af4..8313e38f02 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -5225,7 +5225,7 @@ EditorNode::EditorNode() {
//theme->set_icon("folder","EditorFileDialog",Theme::get_default()->get_icon("folder","EditorFileDialog"));
//theme->set_color("files_disabled","EditorFileDialog",Color(0,0,0,0.7));
- String global_font = EditorSettings::get_singleton()->get("global/font");
+ String global_font = EditorSettings::get_singleton()->get("global/custom_font");
if (global_font!="") {
Ref<Font> fnt = ResourceLoader::load(global_font);
if (fnt.is_valid()) {
diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp
index 0b7e389773..96ced0d5e3 100644
--- a/tools/editor/editor_settings.cpp
+++ b/tools/editor/editor_settings.cpp
@@ -443,8 +443,12 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
}
set("global/show_script_in_scene_tabs",false);
- set("global/font","");
- hints["global/font"]=PropertyInfo(Variant::STRING,"global/font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt");
+ set("global/font_size",14);
+ hints["global/font_size"]=PropertyInfo(Variant::INT,"global/font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("global/source_font_size",14);
+ hints["global/source_font_size"]=PropertyInfo(Variant::INT,"global/source_font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("global/custom_font","");
+ hints["global/custom_font"]=PropertyInfo(Variant::STRING,"global/custom_font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
set("global/autoscan_project_path","");
hints["global/autoscan_project_path"]=PropertyInfo(Variant::STRING,"global/autoscan_project_path",PROPERTY_HINT_GLOBAL_DIR);
set("global/default_project_path","");
diff --git a/tools/editor/icons/SCsub b/tools/editor/icons/SCsub
index addf6879a2..14d2be66f6 100644
--- a/tools/editor/icons/SCsub
+++ b/tools/editor/icons/SCsub
@@ -35,7 +35,9 @@ def make_editor_icons_action(target, source, env):
s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png) {\n")
s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n")
- s.write("\ttexture->create_from_image( Image(p_png),ImageTexture::FLAG_FILTER );\n")
+ s.write("\tImage img(p_png);\n")
+ #s.write("\timg.expand_x2_hq2x();\n")
+ s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n")
s.write("\treturn texture;\n")
s.write("}\n\n")
diff --git a/tools/editor_fonts/droid_sans.ttf b/tools/editor_fonts/droid_sans.ttf
new file mode 100644
index 0000000000..a117feac85
--- /dev/null
+++ b/tools/editor_fonts/droid_sans.ttf
Binary files differ
diff --git a/tools/editor_fonts/source_code_pro.otf b/tools/editor_fonts/source_code_pro.otf
new file mode 100644
index 0000000000..4e3b9d0bcd
--- /dev/null
+++ b/tools/editor_fonts/source_code_pro.otf
Binary files differ