Alexei Podtelezhnikov
fcfd6c17ff
Thinko.
2018-04-30 00:07:36 -04:00
Alexei Podtelezhnikov
d526705f5e
API for Harmony LCD rendering.
...
This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary
LCD subpixel geometry including non-striped patterns.
2018-04-30 00:02:33 -04:00
Alexei Podtelezhnikov
11ffff2c91
Formulate Harmony LCD rendering.
...
This generalizes magic outline shifts that make Harmony LCD
rendering work in terms of precise two-dimensional RGB subpixel
positions. These coordinates are now set in time of the `smooth'
module initialization and later used to shift a glyph outline for
rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same
coordinates. The letter, however, rotates them before using.
The LCD bitmap padding is also calculated using these coordinates.
There should be rendering changes resuting from this commit.
2018-04-28 23:01:44 -04:00
Alexei Podtelezhnikov
b5a29cce2f
Merge branch 'master' into Harmony
2018-04-28 22:58:51 -04:00
Werner Lemberg
ac97a29653
Another fix for handling invalid format 2 cmaps.
...
Sigh.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
an endless loop.
2018-04-26 09:04:39 +02:00
Ben Wagner
2157d8fa6f
[base] Avoid undefined behaviour in lcd filtering code ( #53727 ).
...
* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
Ensure `height > 0'.
2018-04-24 10:29:19 +02:00
Werner Lemberg
67697d0076
* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
2018-04-22 21:15:10 +02:00
Alexei Podtelezhnikov
3b88576ba0
[base] Fix bitmap emboldening.
...
Bug introduced after release 2.8.
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
`FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the
bitmap copying code to take care of this fact.
2018-04-22 17:22:35 +02:00
Werner Lemberg
c2e2a8e5d9
Revert "[base] Fix bitmap copying where the new pitch is smaller."
...
This reverts commit c0f1adedcf
.
2018-04-22 17:13:50 +02:00
Werner Lemberg
c0f1adedcf
[base] Fix bitmap copying where the new pitch is smaller.
...
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Handle it.
2018-04-22 11:44:24 +02:00
Werner Lemberg
38ecc949ce
Another fix for handling invalid format 2 cmaps.
...
The previous commit was incomplete.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
an endless loop.
2018-04-22 10:14:03 +02:00
Werner Lemberg
e4b6d85326
[autofit] Add support for Georgian Mtavruli characters.
...
This will be part of the forthcoming Unicode 11.0.
* src/autofit/afblue.dat: Add blue zone data for Mtavruli.
* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
* src/autofit/afscript.h: Add Mtavruli standard character.
2018-04-19 17:43:03 +02:00
Werner Lemberg
1655e00fce
Fix handling of invalid format 2 cmaps.
...
The problem was introduced after the last release.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop.
2018-04-19 14:45:19 +02:00
Werner Lemberg
2a1597826a
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739
* src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG.
2018-04-17 12:25:17 +02:00
Werner Lemberg
70ac167c47
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718
* src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG.
2018-04-16 10:39:10 +02:00
Ankit Dhankhar
939bbee1c0
[docmaker] Make it work with python3.
...
* src/tools/docmaker (*.py): Use parentheses around arguments of `print'.
Remove unused imports.
2018-04-15 22:35:40 +02:00
Werner Lemberg
235b1e2fe6
[truetype]: Limit `SLOOP' bytecode argument to 16 bits.
...
This fixes
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707
* src/truetype/ttinterp.c (Ins_SLOOP): Do it.
2018-04-15 21:55:04 +02:00
Werner Lemberg
827ca3bcf2
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652
* src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG.
2018-04-14 07:20:31 +02:00
Werner Lemberg
576670b779
[autofit] Update to Unicode 11.0.0.
...
But no support new scripts (volunteers welcomed).
* src/autofit/afranges.c (af_arab_nonbase_uniranges,
af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges,
af_deva_nonbase_uniranges, af_geor_uniranges,
af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges,
af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges,
af_hani_uniranges): Add new data.
2018-04-14 07:00:30 +02:00
Werner Lemberg
bd9400bd46
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453
* src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use
ADD_LONG and SUB_LONG.
2018-04-09 21:28:37 +02:00
Werner Lemberg
3b8f16803c
[cff, type1] Sanitize `BlueFuzz' and `BlueShift'.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371
* src/cff/cffload.c (cff_load_private_dict): Sanitize
`priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later
on.
* src/type1/t1load.c (T1_Open_Face): Ditto.
2018-04-04 20:26:08 +02:00
suzuki toshiya
26ad1acbcb
* src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts ( #53554 ),
...
`DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'.
(tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts
in above.
2018-04-04 16:39:42 +09:00
Werner Lemberg
597cb3b442
[truetype] Fix memory leak (only if tracing is on).
...
* src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix
it.
2018-03-30 13:46:03 +02:00
Ben Wagner
34e467332b
[sfnt] Correctly handle missing bitmaps in sbix format ( #53404 ).
...
* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
2018-03-23 06:13:25 +01:00
Ben Wagner
43d4852ec6
[truetype] Fix advance of empty glyphs in bitmap fonts ( #53393 ).
...
* src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics
for empty bitmaps.
2018-03-23 06:07:24 +01:00
Werner Lemberg
5bd76524ef
* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
...
overflow.
2018-03-13 11:11:16 +01:00
Werner Lemberg
78cded2c5c
Fix cmap format 2 handling ( #53320 ).
...
The patch introduced for #52646 was not correct.
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
2018-03-13 11:09:44 +01:00
Werner Lemberg
733a21bdbc
Make `ftlcdfil.c' part of the `base' module.
...
`ftobjs.c' needs `ft_lcd_padding'.
Problem reported by duhuanpeng <548708880@qq.com>.
* modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'.
* src/base/ftbase.c: Include `ftlcdfil.c'.
* src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'.
* src/base/Jamfile (_sources): Adjusted.
* docs/INSTALL.ANY: Updated.
2018-03-05 23:37:17 +01:00
Werner Lemberg
f4a3531655
Make `ftfntfmt.c' part of the `base' module.
...
`ftobjs.c' needs `FT_Get_Font_Format'.
Problem reported by duhuanpeng <548708880@qq.com>.
* modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'.
* src/base/ftbase.c: Include `ftfntfmt.c'.
* src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'.
* src/base/Jamfile (_sources): Adjusted.
* docs/INSTALL.ANY: Updated.
2018-03-05 20:45:12 +01:00
Werner Lemberg
efd13c5d1b
* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
2018-03-01 22:17:54 +01:00
Werner Lemberg
713d68ee9f
[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table ( #53154 ).
2018-02-17 18:35:15 +01:00
Werner Lemberg
63aaf89cec
s/sub-pixel/subpixel/.
2018-02-17 10:34:47 +01:00
Werner Lemberg
4a03f17449
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027
* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use
SUB_LONG; avoid FT_ABS.
2018-02-06 02:23:19 +01:00
Werner Lemberg
036bdc0c9a
[truetype] Minor typo.
2018-01-28 00:05:46 +01:00
Werner Lemberg
68dddcdcbe
[truetype] Better protection against invalid VF data.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
Bug introduced in commit 08cd62deed
.
* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
`normalizedcoords'.
2018-01-27 23:59:30 +01:00
Werner Lemberg
29c759284e
* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
2018-01-27 14:43:43 +01:00
Werner Lemberg
f438e06972
* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
2018-01-27 14:39:15 +01:00
Werner Lemberg
ef48653023
[truetype] Better trace VF instances.
...
* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
of coordinates.
(TT_Get_MM_Var): Trace instance indices names.
(TT_Set_Var_Design): Updated.
2018-01-27 13:58:02 +01:00
Werner Lemberg
5f94c90f19
Fix comment.
2018-01-27 10:52:13 +01:00
Werner Lemberg
50f693a78b
[truetype] Beautify tracing of VF axis records.
...
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
table-like manner.
2018-01-27 10:15:58 +01:00
Werner Lemberg
994eb2b349
[truetype] Fix multiple calls of `FT_Get_MM_Var' ( #52955 ).
...
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
`face->blend->num_axis' in case we have to initialize the
`face->blend'.
2018-01-26 23:17:43 +01:00
Alexei Podtelezhnikov
b1e0209829
[apinames] Anonymous version map for GNU linker.
...
* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
(names_dump): Handle it.
(usage): Updated.
(main): Handle new command line flag `-wL'.
2018-01-23 22:29:45 -05:00
Alexei Podtelezhnikov
6ce6685659
* src/base/ftver.rc: Fix mingw-w64 compilation.
2018-01-18 21:29:48 -05:00
Alexei Podtelezhnikov
4b8ccc56d8
[build] Enable VERSIONINFO resource for Cygwin/MinGW.
...
* builds/unix/configure.raw: Check for resource compiler.
* builds/unix/unix-cc.in: Conditionally set up resource compiler.
* builds/freetype.mk: Add conditional rule for `ftver.rc'.
* src/base/ftver.rc: Copyright notice and year update.
2018-01-18 04:32:52 -05:00
Alexei Podtelezhnikov
fd8000f040
[build] Move VERSIONINFO resource.
...
* builds/windows/vc2010/freetype.vcxproj: Updated.
* builds/windows/ftver.rc: Move file from here...
* src/base/ftver.rc: ... to here.
2018-01-18 03:58:34 -05:00
Ewald Hew
cc2f3cdecf
[psaux] Correctly handle Flex features ( #52846 ).
...
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
cf2_cmdHMOVETO>: Do not move if doing Flex.
2018-01-10 13:28:36 +08:00
Ewald Hew
21bd9c2f8c
[psaux] Fix Type 1 glyphs with too many stem hints.
...
According to the CFF specification, charstrings can have up to 96 stem
hints. Due to hint replacement routines in Type 1 charstrings, some
glyphs are rejected by the Adobe engine, which implements the above
limit. This fix turns off hinting for such glyphs.
* src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling
`cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off
hinting.
2018-01-07 16:38:54 +08:00
Werner Lemberg
3758aed760
Add `FT_Done_MM_Var'.
...
This is necessary in case the application's memory routines differ
from FreeType. A typical example is a Python application on Windows
that calls FreeType compiled as a DLL via the `ctypes' interface.
* include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
and define.
* docs/CHANGES: Updated.
2018-01-06 08:39:36 +01:00
Werner Lemberg
029c9b2391
[truetype] Round offsets of glyph components only if hinting is on.
...
* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
it.
2018-01-03 19:05:20 +01:00
Werner Lemberg
55d6abea5d
* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
...
This is a better fix than the previous commit, which is now
reverted.
2018-01-03 19:01:15 +01:00