freemint / fvdi

fVDI fork with additional fixes and drivers.
https://fvdi.sourceforge.io
7 stars 6 forks source link

Update Freetype from 2.10.2 to 2.10.3 (and everything after) #27

Closed chrisridd closed 2 years ago

chrisridd commented 2 years ago

The ftconfig.h file changed significantly in 2.10.3 in a way that I could not find a way to detect in the preprocessor. Defining the FREETYPE_VERSION symbol in FT_CFLAGS makes the subsequent changes easier and relatively readable. The same value format is used as in the Freetype/fVDI code. This is a little tacky IMO, but only needed because of the need to test versions quite early during preprocessing.

(In 2.5.x the freetype.h header moved, hence the checks in the Makefile. Sanity prevailed in 2.6.1.)

Most of the ftconfig.h definitions are now in the new internal compiler-macros.h. Thew new defs include the use of __attribute__(( visibility( "hidden" ) )) which doesn't work with m68k-atari-mint-gcc10. Adding -Wno-attributes to FT2_WARNINGS mutes this apparently harmless warning.

Two lcd smoothing modules have been retired.

After porting to 2.10.3, I found that all subsequent versions now build cleanly. Existing builds of 2.2.1, 2.5.2, 2.8.1 and 2.10.2 still build.

fvdi_gnu.prg sizes with gcc10 are:

Version Binary
2.2.1 413489
2.5.2 552275
2.8.1 544862
2.10.2 571212
2.10.3 572855
2.10.4 572851
2.11.0 577312
2.11.1 572461
chrisridd commented 2 years ago

This addresses #9

chrisridd commented 2 years ago

Updated commit just fixes indentation on a few changed lines.