Official mirror of https://gitlab.freedesktop.org/freetype/freetype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3556 lines
106 KiB
3556 lines
106 KiB
2018-07-30 Werner Lemberg <wl@gnu.org> |
|
|
|
[cff] Fix typo. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409 |
|
|
|
* src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary |
|
check. |
|
|
|
2018-07-29 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/pcf/pcfread.c (pcf_get_encodings): Another thinko. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608 |
|
|
|
2018-07-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[smooth] Fix Harmony memory management. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501 |
|
|
|
* src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer |
|
after each rendering in case of failure. |
|
|
|
2018-07-28 Werner Lemberg <wl@gnu.org> |
|
|
|
[type1] Avoid segfaults with `FT_Get_PS_Font_Value'. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610 |
|
|
|
* src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL. |
|
|
|
2018-07-27 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Make `TT_Set_MM_Blend' idempotent (#54388). |
|
|
|
* src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set |
|
`face->doblend' if the current call to the function yields the same |
|
blend coordinates as the previous call. |
|
|
|
2018-07-27 Werner Lemberg <wl@gnu.org> |
|
|
|
[psaux, type1]: More tracing improvements. |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped |
|
outline commands. |
|
|
|
* src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix |
|
missing case. |
|
(t1_decoder_parse_metrics): Make tracing output more compact. |
|
|
|
* src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose. |
|
(T1_Get_Advances): Add tracing. |
|
|
|
2018-07-25 Werner Lemberg <wl@gnu.org> |
|
|
|
[psaux, type1] Trace PostScript dictionaries and other things. |
|
|
|
The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary |
|
right now. |
|
|
|
* src/psaux/psobjs.c (ps_parser_load_field, |
|
ps_parser_load_field_table): Add tracing calls. |
|
|
|
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing |
|
output more compact. |
|
|
|
* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add |
|
tracing messages. |
|
|
|
* src/type1/t1load.c (parse_blend_axis_types, |
|
parse_blend_design_positions, parse_blend_design_map, |
|
parse_weight_vector, t1_load_keyword, t1_parse_font_matrix, |
|
parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add |
|
tracing calls. |
|
|
|
* src/type1/t1objs.c (T1_Face_Init): Add tracing call. |
|
|
|
* src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more |
|
verbose. |
|
|
|
2018-07-25 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix minor ASAN run-time warnings. |
|
|
|
* src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call |
|
`FT_MEM_ZERO' if we actually have a buffer. |
|
(ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer. |
|
|
|
2018-07-24 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Fortify dllexport/dllimport attributes (#53969,#54330). |
|
|
|
We no longer use predefined _DLL, which can be defined for static |
|
builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead, |
|
following libtool convention. |
|
|
|
* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj: |
|
Define DLL_EXPORT manually. |
|
|
|
* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in, |
|
builds/vms/ftconfig.h, builds/windows/vc2010/index.html, |
|
src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/. |
|
|
|
2018-07-24 Werner Lemberg <wl@gnu.org> |
|
|
|
[type1] Check relationship between number of axes and designs. |
|
|
|
For Multiple Masters fonts We don't support intermediate designs; |
|
this implies that |
|
|
|
number_of_designs == 2 ^^ number_of_axes |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557 |
|
|
|
* src/type1/t1load.c (T1_Open_Face): Ensure above constraint. |
|
(T1_Get_MM_Var): Remove now redundant test. |
|
|
|
2018-07-24 Hin-Tak Leung <htl10@users.sourceforge.net> |
|
|
|
[truetype] Match ttdebug's naming of instruction mnemonics. |
|
|
|
* src/truetype/ttinterp.c: The form used in ttdebug, |
|
"MDRP[G,B,W,?]", etc., is slightly more readable than |
|
"MDRP[00,01,02,03]". |
|
|
|
2018-07-24 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/pcf/pcfread.c (pcf_get_encodings): Thinko. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561 |
|
|
|
2018-07-22 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527 |
|
|
|
2018-07-22 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs. |
|
|
|
This is an oversight of the module change 2018-07-21. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524 |
|
|
|
2018-07-22 Werner Lemberg <wl@gnu.org> |
|
|
|
[cid] Sanitize `BlueShift' and `BlueFuzz'. |
|
|
|
This code is taken from the type1 module. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510 |
|
|
|
* src/cid/cidload.c (parse_fd_array): Set some private dict default |
|
values. |
|
(cid_face_open): Do the sanitizing. |
|
Fix some tracing messages. |
|
|
|
2018-07-21 Werner Lemberg <wl@gnu.org> |
|
|
|
[pcf] Fix handling of the undefined glyph. |
|
|
|
This change makes the driver use the `defaultChar' property of PCF |
|
files. |
|
|
|
* src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to |
|
unsigned. |
|
|
|
* src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as |
|
unsigned. |
|
Validate `defaultChar'. |
|
If `defaultChar' doesn't point to glyph index zero, swap glyphs with |
|
index zero and index `defaultChar' and adjust the encodings |
|
accordingly. |
|
|
|
* src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next, |
|
PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced |
|
the first character in the font to be the default character. |
|
|
|
2018-07-20 Armin Hasitzka <prince.cherusker@gmail.com> |
|
|
|
Move the legacy fuzz target to the `freetype-testing' repository. |
|
|
|
It can now be found at |
|
|
|
https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy |
|
|
|
* src/tools/ftfuzzer: Remove this folder and its contents from the |
|
repository. |
|
|
|
2018-07-20 Werner Lemberg <wl@gnu.org> |
|
|
|
[cff] Avoid left-shift of negative numbers (#54322). |
|
|
|
* src/cff/cffgload.c (cff_slot_load): Use multiplication. |
|
|
|
2018-07-17 Werner Lemberg <wl@gnu.org> |
|
|
|
Allow FT_ENCODING_NONE for `FT_Select_Charmap'. |
|
|
|
This is a valid encoding tag for BDF, PCF, and Windows FNT, and |
|
there is no reason to disallow it for these formats. |
|
|
|
* src/base/ftobjs.c (FT_Select_Charmap): Implement it. |
|
|
|
2018-07-17 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'. |
|
|
|
2018-07-16 Armin Hasitzka <prince.cherusker@gmail.com> |
|
|
|
* include/freetype/internal/ftcalc.h: Add macros for handling |
|
harmless over-/underflowing `FT_Int' values. |
|
|
|
* src/sfnt/sfdriver.c (fixed2float): Fix negation of |
|
`(int)(-2147483648)'. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423 |
|
|
|
2018-07-16 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412 |
|
|
|
2018-07-12 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'. |
|
|
|
Taken from patch #9667, written by Steve Langasek |
|
<vorlon@debian.org>. |
|
|
|
This fixes a build failure (most probably a bug in gcc) on ppc64el |
|
when building with -O3. |
|
|
|
2018-07-05 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix typo (#54238). |
|
|
|
* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color) |
|
[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value. |
|
|
|
2018-07-05 Werner Lemberg <wl@gnu.org> |
|
|
|
Adjust table size comparisons (#54242). |
|
|
|
* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it. |
|
|
|
2018-07-05 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix more 32bit issues (#54208). |
|
|
|
* src/cff/cffload.c (cff_blend_build_vector): Convert assertion into |
|
run-time error. |
|
|
|
* src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against |
|
numeric overflow. |
|
|
|
2018-07-04 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix 32bit build warnings (#54239). |
|
|
|
* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed |
|
vs. unsigned comparisons. |
|
|
|
* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto. |
|
|
|
2018-07-02 Jeff Carey <Jeff.Carey@monotype.com> |
|
|
|
* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging. |
|
|
|
2018-07-02 Werner Lemberg <wl@gnu.org> |
|
|
|
s/palette_types/palette_flags/. |
|
|
|
Suggested by Behdad. |
|
|
|
2018-07-02 Werner Lemberg <wl@gnu.org> |
|
|
|
Make `FT_Get_Color_Glyph_Layer' return FT_Bool. |
|
|
|
* include/freetype/freetype.h, src/base/ftobjs.c |
|
(FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated. |
|
|
|
* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func), |
|
src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer): |
|
Updated. |
|
|
|
2018-07-01 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function. |
|
|
|
Reported by Behdad. |
|
|
|
2018-06-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* src/base/fttrigon.c (FT_Tan): Improve accuracy. |
|
(FT_Vector_Rotate): Simplify. |
|
|
|
2018-06-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* src/base/ftobjs.c (FT_Set_Charmap): Robustify. |
|
|
|
2018-06-25 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Fix memory leak. |
|
|
|
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers. |
|
Fix typo in `goto' destination. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071 |
|
|
|
2018-06-25 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070 |
|
|
|
2018-06-24 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Increase precision while applying VF deltas. |
|
|
|
It turned out that we incorrectly round CVT and glyph point deltas |
|
before accumulation, leading to severe positioning errors if there |
|
are many delta values to sum up. |
|
|
|
Problem reported by Akiem Helmling <akiem@underware.nl> and analyzed |
|
by Behdad. |
|
|
|
* src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in |
|
16.16 format. |
|
(tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16 |
|
format array, and add the accumulated values to the CVT at the end |
|
of the function. |
|
(TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and |
|
`points_out' in 16.16 format. |
|
Collect deltas in `point_deltas_x' and `point_deltas_y', which are |
|
16.16 format arrays, and add the accumulated values to the glyph |
|
coordinates at the end of the function. |
|
|
|
2018-06-24 Werner Lemberg <wl@gnu.org> |
|
|
|
New base function `FT_Matrix_Check' (#54019). |
|
|
|
* src/base/ftcalc.c (FT_Matrix_Check): New base function to properly |
|
reject degenerate font matrices. |
|
|
|
* include/freetype/internal/ftcalc.h: Updated. |
|
|
|
* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c |
|
(cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix), |
|
src/type42/t42parse.c (t42_parse_font_matrix): Use |
|
`FT_Matrix_Check'. |
|
|
|
2018-06-23 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix typo. |
|
|
|
Reported by Behdad. |
|
|
|
* src/base/ftcolor.c (FT_Palette_Data_Get) |
|
[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/. |
|
|
|
2018-06-21 Werner Lemberg <wl@gnu.org> |
|
|
|
s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/. |
|
|
|
* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h, |
|
src/sfnt/ttcolr.c: Do it. |
|
|
|
2018-06-19 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix CPAL heap buffer overflow. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968 |
|
|
|
* src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1 |
|
offsets. |
|
|
|
2018-06-19 Werner Lemberg <wl@gnu.org> |
|
|
|
Doh. Don't use CPAL or COLR data if tables are missing. |
|
|
|
Reported by Alexei. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if |
|
`colr' is NULL. |
|
|
|
* src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if |
|
`cpal' is NULL. |
|
|
|
2018-06-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base] Introduce `FT_New_Glyph'. |
|
|
|
This function facilitates access to full capabilities of FreeType |
|
rendering engine for custom glyphs. This can be quite useful for |
|
consistent rendering of mathematical and chemical formulas, e.g. |
|
|
|
https://bugs.chromium.org/p/chromium/issues/detail?id=757078 |
|
|
|
* include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New |
|
function. |
|
|
|
2018-06-17 Armin Hasitzka <prince.cherusker@gmail.com> |
|
|
|
[bdf] Fix underflow of an unsigned value. |
|
|
|
bdflib.c:1562 could be reached with `font->glyphs_used == 0'. That |
|
caused an underflow of the unsigned value which results in undefined |
|
behaviour. |
|
|
|
* src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before |
|
if the `ENCODING' keyword cannot be found. |
|
|
|
2018-06-17 Werner Lemberg <wl@gnu.org> |
|
|
|
[base] Add tracing for `FT_Bitmap_Blend'. |
|
|
|
* include/freetype/internal/fttrace.h (trace_bitmap): New |
|
enumeration. |
|
|
|
* src/base/ftbitmap.c (FT_COMPONENT): Define. |
|
(FT_Bitmap_Blend): Add `FT_TRACE5' calls. |
|
|
|
2018-06-17 Werner Lemberg <wl@gnu.org> |
|
|
|
s/trace_bitmap/trace_checksum/. |
|
|
|
* include/freetype/internal/fttrace.h: s/bitmap/checksum/. |
|
|
|
* src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/. |
|
Adjust code. |
|
|
|
2018-06-16 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix color glyph layer loading. |
|
|
|
* src/sfnt/ttcolr.c (Colr): Add `table_size' field. |
|
(tt_face_load_colr): Set it. |
|
(tt_face_get_colr_layer): Check pointer limit for layer entries. |
|
|
|
2018-06-16 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix color palette loading. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933 |
|
|
|
* src/sfnt/ttcpal.c (Cpal): Add `table_size' field. |
|
(tt_face_load_cpal): Set it. |
|
(tt_face_palette_set): Check pointer limit for color entries. |
|
|
|
2018-06-16 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow. |
|
|
|
2018-06-16 Werner Lemberg <wl@gnu.org> |
|
|
|
Add `FT_Bitmap_Blend' API. |
|
|
|
Still missing: Support for negative bitmap pitch and subpixel offset |
|
of source bitmap. |
|
|
|
* include/freetype/ftbitmap.h, src/base/ftbitmap.c |
|
(FT_Bitmap_Blend): New function. |
|
|
|
2018-06-14 Werner Lemberg <wl@gnu.org> |
|
|
|
Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'. |
|
|
|
This avoids any additional allocation of COLR related structures in |
|
a glyph slot. |
|
|
|
* include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec, |
|
FT_Get_GlyphLayers): Removed. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed. |
|
(FT_Slot_InternalRec): Remove `color_layers'. |
|
|
|
* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): |
|
Removed. |
|
(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove |
|
`load_colr_layer'. |
|
|
|
* src/base/ftobjs.c (ft_glyph_slot_done): Updated. |
|
(FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'. |
|
(FT_Get_GlyphLayers): Removed. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_interface): Updated. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed. |
|
* src/sfnt/ttcolr.h: Updated. |
|
|
|
* src/truetype/ttgload.c (TT_Load_Glyph): Updated. |
|
|
|
2018-06-14 Werner Lemberg <wl@gnu.org> |
|
|
|
Provide iterative API to access `COLR' data. |
|
|
|
This solution doesn't store any data in an `FT_GlyphSlot' object. |
|
|
|
* include/freetype/freetype.h (FT_LayerIterator): New structure. |
|
(FT_Get_Color_Glyph_Layer): New function. |
|
|
|
* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New |
|
function type. |
|
(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. |
|
|
|
* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function. |
|
* src/sfnt/ttcolr.h: Updated. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_interface): Updated. |
|
|
|
2018-06-14 Werner Lemberg <wl@gnu.org> |
|
|
|
Add glyph index and glyph load flags to glyph slot. |
|
|
|
* include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused |
|
`reserved' field to `glyph_index'. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add |
|
`load_flags' field. |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Set new fields. |
|
|
|
2018-06-14 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Move `CPAL' stuff into separate files. |
|
|
|
* src/sfnt/sfdriver.c: Include `ttcpal.h'. |
|
* src/sfnt/sfnt.c: Include `ttcpal.c'. |
|
|
|
* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ... |
|
* src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files. |
|
|
|
* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): |
|
Updated. |
|
|
|
* include/freetype/internal/fttrace.h: Add support for `colr' and |
|
`cpal'. |
|
Sort entries. |
|
|
|
2018-06-13 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Separate `CPAL' and `COLR' table handling. |
|
|
|
Later on we want to support the `SVG' table also, which needs `CPAL' |
|
(but not `COLR'). |
|
|
|
* include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal' |
|
and `free_cpal' fields. |
|
(FT_DEFINE_SFNT_INTERFACE): Updated. |
|
|
|
* include/freetype/internal/tttypes.h (TT_FaceRec): Replace |
|
`colr_and_cpal' fields with `cpal' and `colr'. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_interface): Updated. |
|
|
|
* src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated. |
|
|
|
* src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field. |
|
(ColrCpal): Removed. |
|
(tt_face_load_colr): Split off CPAL handling into... |
|
(tt_face_load_cpal): ... this new function. |
|
(tt_face_free_colr): Split off CPAL handling into... |
|
(tt_face_free_cpal): ... this new function. |
|
(tt_face_load_colr_layers, tt_face_palette_set): Updated. |
|
|
|
* src/sfnt/ttcolr.h: Updated. |
|
|
|
* src/truetype/ttgload.c (TT_Load_Glyph): Updated. |
|
|
|
2018-06-12 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix `sizeof' thinko. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't |
|
use `sizeof' for computing array limit. |
|
|
|
2018-06-12 Werner Lemberg <wl@gnu.org> |
|
|
|
Finish CPAL/COLR support (4/4). |
|
|
|
* src/sfnt/ttcolr.c (tt_face_find_color): Removed. |
|
(tt_face_colr_blend_layer): Use `face->palette' instead of calling |
|
`tt_face_find_color'. |
|
Use and set text foreground color. |
|
|
|
2018-06-12 Werner Lemberg <wl@gnu.org> |
|
|
|
Finish CPAL/COLR support (3/4). |
|
|
|
* src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H. |
|
(FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement |
|
functions. |
|
|
|
2018-06-12 Werner Lemberg <wl@gnu.org> |
|
|
|
Finish CPAL/COLR support (2/4). |
|
|
|
* src/sfnt/ttcolr.c (tt_face_palette_set): New function. |
|
(tt_face_load_colr): Allocate `face->palette' and call |
|
`tt_face_palette_set'. |
|
Adjust return error code in case of error. |
|
|
|
* src/sfnt/ttcolr.h: Updated. |
|
|
|
* include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New |
|
function type. |
|
(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c |
|
(sfnt_done_face): Updated. |
|
|
|
2018-06-12 Werner Lemberg <wl@gnu.org> |
|
|
|
Finish CPAL/COLR support (1/4). |
|
|
|
* include/freetype/internal/tttypes.h (TT_FaceRec): New fields |
|
`palette_index', `palette', `have_foreground_color' and |
|
`foreground_color'. |
|
|
|
2018-06-12 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Minor. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr_layers): |
|
s/palette_index/palette_entry_index/ for consistency. |
|
Adjust return error code in case of error. |
|
|
|
2018-06-11 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[raster] Clean up. |
|
|
|
* src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision): |
|
Clean up after 5-level gray removal (8dc8635874). |
|
(Vertical_Sweep_Span): Be brief. |
|
|
|
2018-06-10 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix compiler warnings. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers, |
|
tt_face_colr_blend_layer): Add `NULL' initializers. |
|
|
|
2018-06-10 Werner Lemberg <wl@gnu.org> |
|
|
|
s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/. |
|
|
|
* include/freetype/ftcolor.h, include/freetype/internal/tttypes.h, |
|
src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated. |
|
|
|
2018-06-10 Nikolaus Waxweiler <madigens@gmail.com> |
|
|
|
CMakeLists: also accept IOS_PLATFORM=SIMULATOR64 |
|
|
|
This might be needed to build FreeType for the iOS simulator. See |
|
https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed |
|
by Steve Robinson. |
|
|
|
* CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64 |
|
|
|
2018-06-10 Werner Lemberg <wl@gnu.org> |
|
|
|
Implement `FT_Palette_Get'. |
|
|
|
* src/base/ftcolor.c: New file. |
|
|
|
* src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC), |
|
src/base/ftbase.c: Add `ftcolor.c'. |
|
|
|
2018-06-10 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks. |
|
|
|
2018-06-09 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[raster] Deal with pitch sign earlier. |
|
|
|
* src/raster/ftraster.c (black_TWorker): Remove unused `traceG', |
|
s/bTarget/bOrigin/. |
|
(Render_Glyph): Set `ras.bOrigin' at the bottom-left corner. |
|
(Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}): |
|
Updated accordingly. |
|
|
|
2018-06-09 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Read `CPAL' version 1 tables. |
|
|
|
* include/freetype/internal.tttypes.h: Include FT_COLOR_H. |
|
(TT_FaceRec): Add `palette' field. |
|
|
|
* src/sfnt/ttcolr.c: Include FT_COLOR_H. |
|
(Cpal): Remove all data covered by the new `palette' field in |
|
`TT_FaceRec'. |
|
(tt_face_load_colr): Updated. |
|
Read `CPAL' version 1 data. |
|
(tt_face_load_colr_layers, tt_face_find_color): Updated. |
|
|
|
* src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data. |
|
|
|
2018-06-07 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base] API for Harmony LCD rendering. |
|
|
|
This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary |
|
LCD subpixel geometry including non-striped patterns. |
|
|
|
* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function. |
|
* include/freetype/ftlcdfil.h: Document it. |
|
* include/freetype/freetype.h: Minor. |
|
* include/freetype/ftchapters.h: Minor. |
|
|
|
2018-06-06 Werner Lemberg <wl@gnu.org> |
|
|
|
ftcolor.h: Redesign API. |
|
|
|
While going to implement it I noticed that I need access to most of |
|
the `CPAL' elements; I thus plan to add a `cpal' field to |
|
`TT_FaceRec', which makes most of the previously suggested API |
|
functions obsolete because the fields will be directly accessible. |
|
|
|
2018-06-06 Parth Wazurkar <parthwazurkar@gmail.com> |
|
|
|
[bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag. |
|
|
|
* src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated |
|
FT_FACE_FLAG_FAST_GLYPHS flag. |
|
|
|
* src/pcf/pcfread.c (pcf_load_font): Remove deprecated |
|
FT_FACE_FLAG_FAST_GLYPHS flag. |
|
|
|
2018-06-06 Werner Lemberg <wl@gnu.org> |
|
|
|
[smooth, raster] Limit bitmap size (#54019). |
|
|
|
* src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add |
|
function. |
|
[!STANDALONE]: Include FT_OUTLINE_H. |
|
(ft_black_render): Compute CBox and reject glyphs larger than |
|
0xFFFF x 0xFFFF. |
|
|
|
* src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger |
|
than 0xFFFF x 0xFFFF. |
|
|
|
2018-06-03 Armin Hasitzka <prince.cherusker@gmail.com> |
|
|
|
* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables. |
|
|
|
2018-06-03 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/tools/glnames.py (main): Emit header in `light' comment style. |
|
|
|
2018-06-02 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[smooth] Attempt to mitigate bug #54019. |
|
|
|
The robust rendering of estra large glyphs came with unbearable cost. |
|
The old way of bisecting should fail but fail faster. |
|
|
|
* src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting |
|
in y-direction. |
|
|
|
2018-06-02 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706 |
|
|
|
2018-06-02 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033). |
|
|
|
2018-05-31 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field. |
|
|
|
This is no longer used. |
|
|
|
2018-05-31 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Get colors from `CPAL' table in right order (#54015). |
|
|
|
* src/sfnt/ttcolr.c (tt_face_find_color): Fix it. |
|
|
|
2018-05-30 Werner Lemberg <wl@gnu.org> |
|
|
|
ftcolor.h: Improve API design, fix typos (#54011, #54014). |
|
|
|
* include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with... |
|
(FT_Palette_Get_Name_IDs): ... this function. |
|
(FT_Palette_Get_Entry_Names): Replace with... |
|
(FT_Palette_Get_Entry_Name_IDs): ... this function |
|
s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/. |
|
|
|
2018-05-30 Armin Hasitzka <prince.cherusker@gmail.com> |
|
|
|
Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b. |
|
|
|
* src/autofit/afloader.c (af_loader_load_glyph): Move the |
|
initialisationand declaration of variables into the if-block. |
|
|
|
2018-05-30 Armin Hasitzka <prince.cherusker@gmail.com> |
|
|
|
Fix pointer underflow. |
|
|
|
The declaration of `edge2' can be reached with `edge1 == NULL' and |
|
`axis->edges == 0' which results in undefined behaviour. |
|
|
|
* src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2' |
|
after checking `axis->num_edges > 1'. `edge1 != NULL' can be assumed. |
|
|
|
2018-05-30 Werner Lemberg <wl@gnu.org> |
|
|
|
Various minor color fixes. |
|
|
|
* include/freetype/config/ftheader.h (FT_COLOR_H): New macro. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change |
|
type of `load_flags' to `FT_Int32'. |
|
|
|
* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change |
|
type of `idx' to `FT_UInt'. |
|
(TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'. |
|
|
|
* src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of |
|
`load_flags' to `FT_Int32'. |
|
|
|
* src/sfnt/ttcolr.c (find_base_glyph_record, |
|
tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'. |
|
(tt_face_find_color, tt_face_colr_blend_layer): Change type of |
|
`color_index' to `FT_UInt'. |
|
Fix signedness and type issues. |
|
|
|
* src/sfnt/ttcolr.h: Updated. |
|
|
|
2018-05-25 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com> |
|
|
|
[docmaker] Fix missing `Defined in (...)' under Windows/Cygwin. |
|
|
|
This platform uses backslashes for paths, which docmaker didn't |
|
understand correctly. |
|
|
|
* src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use |
|
`os.path.normpath' to normalize the path for the platform being |
|
used. |
|
|
|
2018-05-24 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[smooth] Formalize 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. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field |
|
`lcd_geometry'. |
|
* src/base/ftlcdfil.c (ft_lcd_padding): Reworked. |
|
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly. |
|
|
|
* src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING] |
|
(ft_smooth_init): Initialize `lcd_geometry'. |
|
(ft_smooth_render_generic): Formalize outline shifts. |
|
|
|
2018-05-22 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Reject elements of composites with invalid glyph indices. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413 |
|
|
|
* src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it. |
|
|
|
2018-05-22 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points. |
|
|
|
2018-05-20 Werner Lemberg <wl@gnu.org> |
|
|
|
* include/freetype/ftcolor.h: New file. |
|
|
|
This is an interface to the `CPAL' OpenType table. No |
|
implementation yet. |
|
|
|
2018-05-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'. |
|
|
|
Actually `_BitScanReverse' is available since VS2005. |
|
|
|
2018-05-18 Werner Lemberg <wl@gnu.org> |
|
|
|
* include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value. |
|
|
|
Older VC versions don't provide `_BitScanReverse'. We test for VC |
|
2013. |
|
|
|
Reported by John Emmas <john@creativepost.co.uk>. |
|
|
|
2018-05-17 Werner Lemberg <wl@gnu.org> |
|
|
|
s/inline/__inline/ for MSVC. |
|
|
|
Reported by John Emmas <john@creativepost.co.uk>. |
|
|
|
* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it. |
|
|
|
2018-05-16 Werner Lemberg <wl@gnu.org> |
|
|
|
Add function `FT_Get_GlyphLayers' to access `COLR' table data. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this |
|
structure to... |
|
* include/freetype/freetype.h (FT_Glyph_LayerRec): ... this |
|
header file. |
|
(FT_Glyph_Layer): New typedef. |
|
Update code to use it where appropriate. |
|
|
|
* src/base/ftobjs.c (FT_Get_GlyphLayers): New function. |
|
|
|
2018-05-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base] Fix mono bitmap presetting (#53896). |
|
|
|
It is rather fundamental to set monochrome bitmap based on rounded |
|
CBox because the b/w rasterizer turns on pixels when their centers are |
|
inside the glyph outline. The dropout control is unpredictable and can |
|
distort narrow glyphs if the bitmap is too wide. |
|
|
|
Reported by Chris Liddell. |
|
|
|
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries |
|
are too close, adjust them before rounding. |
|
|
|
2018-05-15 Werner Lemberg <wl@gnu.org> |
|
|
|
[psaux] Fix compiler warning (#53915). |
|
|
|
* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it. |
|
|
|
2018-05-15 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix memory leak in handling `COLR' data. |
|
|
|
* src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array |
|
before reassigning allocated memory. |
|
Only allocate `color_layers' if we don't have one already. |
|
|
|
2018-05-15 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] If `COLR' is present, don't assume that all glyphs use it. |
|
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if |
|
current glyph is not a `COLR' base glyph. |
|
|
|
* src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate |
|
`color_layers' if there are no color layers. |
|
|
|
2018-05-14 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'. |
|
|
|
2018-05-14 Werner Lemberg <wl@gnu.org> |
|
|
|
Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set. |
|
|
|
* src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it. |
|
|
|
2018-05-13 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing. |
|
|
|
2018-05-13 Shao Yu Zhang <shaozhang@fb.com> |
|
Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Preliminary support of coloured layer outlines (#44689). |
|
|
|
This commit enables OpenType's COLR/CPAL table handling; a typical |
|
application are color emojis that can be scaled to any size. |
|
|
|
If the color palette does not exist or is invalid, the rendering |
|
step rasterizes the outline instead. The current implementation |
|
assumes that the foreground is black. |
|
|
|
Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS. |
|
|
|
There are still some issues with metrics; additionally, an API to |
|
fetch color layers is missing. |
|
|
|
* devel/ftoption.h, include/freetype/config/ftoption.h |
|
(TT_CONFIG_OPTION_COLOR_LAYERS): New macro. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec, |
|
FT_Colr_InternalRec): New structures. |
|
(FT_Slot_InternalRec): Add `color_layers' field. |
|
|
|
* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func, |
|
TT_Blend_Colr_Func): New function types. |
|
(SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer', |
|
and `colr_blend' fields. |
|
|
|
* include/freetype/internal/tttypes.h (TT_FaceRec): Add |
|
`colr_and_cpal' field. |
|
|
|
* include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New |
|
macros. |
|
|
|
* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files. |
|
|
|
* src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal): |
|
Handle glyph color layers. |
|
|
|
* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add |
|
`ttcolr.c'. |
|
|
|
* src/sfnt/sfdriver.c: Include `ttcolr.h'. |
|
(PUT_COLOR_LAYERS): New macro. |
|
Update call to `FT_DEFINE_SFNT_INTERFACE'. |
|
|
|
* src/sfnt/sfnt.c: Include `ttcolr.c'. |
|
|
|
* src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables. |
|
(sfnt_done_face): Updated. |
|
|
|
* src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers. |
|
|
|
2018-05-12 Arkady Shapkin <arkady.shapkin@gmail.com> |
|
|
|
Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636). |
|
|
|
* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement |
|
it. |
|
|
|
2018-05-10 Alan Coopersmith <alan.coopersmith@oracle.com> |
|
|
|
Fix DLL compilation on Solaris. |
|
|
|
AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'. The |
|
Solaris Studio 12.1 through 12.5 compilers see the |
|
`-fvisibility=hidden' flag, but ignore it with a warning of: |
|
|
|
cc: Warning: Option -fvisibility=hidden passed to ld, |
|
if ld is invoked, ignored otherwise |
|
|
|
AC_LINK_IFELSE does the compile and then tries to link the result, |
|
at which point the Solaris linker will issue an error: |
|
|
|
ld: fatal: option '-fvisibility=hidden' is incompatible with |
|
building a dynamic executable |
|
|
|
If we don't use AC_LINK_IFELSE to catch the error, then configure |
|
will fail further tests which attempt to link, such as those testing |
|
dependencies like `libbz2'. |
|
|
|
Also, don't try adding `-fvisibility' if we have already added |
|
`-xldscope', just use one of them, since Sun Studio 12 and earlier |
|
compilers only issue a warning, and don't try passing through to the |
|
linker to generate an error, so AC_LINK_IFELSE doesn't catch them. |
|
|
|
Tested on Solaris 11.4 beta with compiler versions: |
|
|
|
Sun Studio 8 (Sun C 5.5) |
|
Sun Studio 10 (Sun C 5.7) |
|
Sun Studio 11 (Sun C 5.8) |
|
Sun Studio 12 (Sun C 5.9) |
|
Sun Studio 12.1 (Sun C 5.10) |
|
Oracle Solaris Studio 12.2 (Sun C 5.11) |
|
Oracle Solaris Studio 12.3 (Sun C 5.12) |
|
Oracle Solaris Studio 12.4 (Sun C 5.13) |
|
Oracle Developer Studio 12.5 (Sun C 5.14) |
|
Oracle Developer Studio 12.6 (Sun C 5.15) |
|
gcc 5.5.0 |
|
gcc 7.3.0 |
|
|
|
and verified the libfreetype.so.6 generated by each of those |
|
compilers exported the same set of symbols. |
|
|
|
* builds/unix/configure.raw: Implement it. |
|
|
|
2018-05-08 Werner Lemberg <wl@gnu.org> |
|
|
|
[autofit] Avoid potential SEGV if running out of memory. |
|
|
|
Problem reported by Shailesh Mistry <shailesh.mistry@hotmail.co.uk>. |
|
|
|
* src/autofit/afshaper.c (af_shaper_buf_create, |
|
af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't |
|
allocate and free a four-byte buffer. Instead, make those functions |
|
no-ops; the calling functions will provide a pointer to a buffer |
|
instead. |
|
|
|
* src/autofit/afcjk.c (af_cjk_metrics_init_widths, |
|
af_cjk_metrics_init_blues, af_cjk_metrics_check_digits), |
|
src/autofit/aflatin.c (af_latin_metrics_init_widths, |
|
af_latin_metrics_init_blues, af_latin_metrics_check_digits) |
|
[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for |
|
`shaper_buf'. |
|
|
|
2018-05-07 Nikolaus Waxweiler <madigens@gmail.com> |
|
|
|
[cmake] Allow using project as subfolder in other project. |
|
|
|
* CMakeLists.txt: Test for CMake build directory being different |
|
from source directory. Provide other parts of the build system |
|
access the full include directory. |
|
|
|
2018-05-07 Werner Lemberg <wl@gnu.org> |
|
|
|
[build] Suppress configure's `nothing to be done' message. |
|
|
|
This is due to calling the configure script via `make' (within the |
|
top-level `configure' wrapper script). The same can happen for all |
|
other secondary make targets that are used to only modify the |
|
primary one, e.g., `make setup devel'. |
|
|
|
* builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16), |
|
builds/os2/detect (visualage, watcom, borlandc, devel), |
|
builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk |
|
(visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc, |
|
devel-gcc): Use no-op recipe. |
|
|
|
2018-05-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
|
|
Support symbol visibility features of Sun / Oracle C compilers. |
|
|
|
Reported by Kiyoshi Kanazawa: |
|
https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html |
|
Thanks to the suggestions by Alexei and Alan Coopersmith. |
|
|
|
* builds/unix/configure.raw: Check if "-xldscope=hidden" is |
|
accepted, and if so, it is added to CFLAGS. This is the option |
|
making Sun / Oracle C compilers hide the symbols from global |
|
scope. |
|
* include/freetype/config/ftconfig.h: Use "__global" prefix |
|
for FT_EXPORT() macro, if SunPro C is newer than Sun ONE |
|
Studio 8 (2003). |
|
* builds/unix/ftconfig.in: Ditto. |
|
* builds/vms/ftconfig.h: Ditto. |
|
|
|
2018-05-02 Nikolaus Waxweiler <madigens@gmail.com> |
|
|
|
Unbreak CMake Windows installation |
|
|
|
* CMakeLists.txt: Generate ftconfig.h on non-UNIX. |
|
|
|
2018-05-02 Werner Lemberg <wl@gnu.org> |
|
|
|
Remove FT_CONFIG_OPTION_PIC and related code. |
|
|
|
*/* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this |
|
preprocessor symbol. |
|
|
|
*/*: Replace `XXX_GET' macros (which could be either a function in |
|
PIC mode or an array in non-PIC mode) with `xxx' arrays. |
|
|
|
* include/freetype/internal/ftpic.h, src/autofit/afpic.c, |
|
src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h, |
|
src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h, |
|
src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c, |
|
src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h, |
|
src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, |
|
src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: |
|
Removed. |
|
|
|
2018-05-01 Werner Lemberg <wl@gnu.org> |
|
|
|
* Version 2.9.1 released. |
|
========================= |
|
|
|
|
|
Tag sources with `VER-2-9-1'. |
|
|
|
* docs/VERSION.TXT: Add entry for version 2.9.1. |
|
* docs/CHANGES: Updated. |
|
|
|
* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, |
|
src/base/ftver.rc, builds/windows/vc2005/index.html, |
|
builds/windows/vc2008/freetype.vcproj, |
|
builds/windows/vc2008/index.html, |
|
builds/windows/vc2010/freetype.vcxproj, |
|
builds/windows/vc2010/index.html, |
|
builds/windows/visualc/freetype.dsp, |
|
builds/windows/visualc/freetype.vcproj, |
|
builds/windows/visualc/index.html, |
|
builds/windows/visualce/freetype.dsp, |
|
builds/windows/visualce/freetype.vcproj, |
|
builds/windows/visualce/index.html, |
|
builds/wince/vc2005-ce/freetype.vcproj, |
|
builds/wince/vc2005-ce/index.html, |
|
builds/wince/vc2008-ce/freetype.vcproj, |
|
builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/. |
|
|
|
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. |
|
|
|
* builds/unix/configure.raw (version_info): Set to 22:1:16. |
|
* CMakeLists.txt (VERSION_PATCH): Set to 1. |
|
|
|
* include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER. |
|
|
|
2018-04-26 Werner Lemberg <wl@gnu.org> |
|
|
|
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-24 Ben Wagner <bungeman@google.com> |
|
|
|
[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-22 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. |
|
|
|
2018-04-22 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[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 Werner Lemberg <wl@gnu.org> |
|
|
|
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-19 Werner Lemberg <wl@gnu.org |
|
|
|
[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-18 Werner Lemberg <wl@gnu.org> |
|
|
|
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-17 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-16 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Use `info' function of make 3.81. |
|
|
|
* configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU, |
|
docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements. |
|
|
|
* builds/detect.mk (std_setup): Replace `echo' with `info'. |
|
(dos_setup): Removed. |
|
* builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk, |
|
builds/windows/detect.mk, builds/os2/detect.mk: Updated. |
|
* builds/newline: No longer needed. |
|
|
|
2018-04-15 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-14 Werner Lemberg <wl@gnu.org> |
|
|
|
[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 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-10 Nikolaus Waxweiler <madigens@gmail.com> |
|
|
|
* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive |
|
modernization measures. |
|
|
|
This brings up the minimum required CMake version to 2.8.12. |
|
|
|
The installation paths follow the GNU defaults now, e.g. installing on a |
|
64 bit host will place binaries into the lib64/ folder on e.g. Fedora. |
|
|
|
Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC). |
|
|
|
CMake will no longer look for a C++ compiler. |
|
|
|
Library and .so version now match the Autotools build. |
|
|
|
Comments in the build file and informational messages now use platform |
|
agnostic example commands. |
|
|
|
ftoption.h and ftconfig.h are written directly without a redundant `-new' |
|
copy. |
|
|
|
External dependencies are expressed as option()s and will turn up as such |
|
in cmake-gui. |
|
|
|
Internal: Properties such as dependencies and include directories are now |
|
privately set on the freetype library instead of globally. |
|
|
|
The CPack definitions have been cleaned up, the `make dist' has been |
|
removed. Source packages generated with CPack don't contain Autotools |
|
files and aren't used by the maintainers anyway. |
|
|
|
On Windows, src/base/ftver.rc is compiled to decorate the library with |
|
version and copyright information. |
|
|
|
A pkg-config file is now generated and installed. |
|
|
|
2018-04-09 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[windows, wince] Clean up legacy project files. |
|
|
|
* builds/wince/vc2005-ce/freetype.vcproj, |
|
builds/wince/vc2008-ce/freetype.vcproj, |
|
builds/windows/vc2005/freetype.vcproj, |
|
builds/windows/vc2008/freetype.vcproj, |
|
builds/windows/visualce/freetype.vcproj, |
|
builds/windows/visualce/freetype.dsp, |
|
builds/windows/visualc/freetype.vcproj, |
|
builds/windows/visualc/freetype.dsp: Remove per-file compile flags. |
|
|
|
2018-04-04 Werner Lemberg <wl@gnu.org> |
|
|
|
[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 Ben Wagner <bungeman@google.com> |
|
|
|
* 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-01 Werner Lemberg <wl@gnu.org> |
|
|
|
* builds/toplevel.mk (work): Use $(SEP). |
|
|
|
This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this |
|
platform, and this program only understands backslashes in paths. |
|
|
|
Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>. |
|
|
|
2018-03-30 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-23 Ben Wagner <bungeman@google.com> |
|
|
|
[sfnt] Correctly handle missing bitmaps in sbix format (#53404). |
|
|
|
* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value. |
|
|
|
2018-03-23 Ben Wagner <bungeman@google.com> |
|
|
|
[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-22 Werner Lemberg <wl@gnu.org> |
|
|
|
Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415). |
|
|
|
builds/amiga/makefile, builds/amiga/makefile.os4, |
|
builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt, |
|
builds/mac/FreeType.m68k_far.make.txt, |
|
builds/mac/FreeType.ppc_carbon.make.txt, |
|
builds/mac/FreeType.ppc_classic.make.txt, |
|
builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj, |
|
builds/wince/vc2008-ce/freetype.vcproj, |
|
builds/windows/vc2005/freetype.vcproj, |
|
builds/windows/vc2008/freetype.vcproj, |
|
builds/windows/vc2010/freetype.vcxproj, |
|
builds/windows/vc2010/freetype.vcxproj.filters, |
|
builds/windows/visualc/freetype.dsp, |
|
builds/windows/visualc/freetype.vcproj, |
|
builds/windows/visualce/freetype.dsp, |
|
builds/windows/visualce/freetype.vcproj, vms_make.com: Do it. |
|
|
|
2018-03-13 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric |
|
overflow. |
|
|
|
2018-03-13 Werner Lemberg <wl@gnu.org> |
|
|
|
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-10 Nikolaus Waxweiler <madigens@gmail.com> |
|
|
|
* CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05. |
|
|
|
2018-03-09 Chun-wei Fan <fanc999@yahoo.com.tw> |
|
|
|
* CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287). |
|
|
|
Do not limit DLL builds to MinGW, since we already have |
|
`__declspec(dllexport)' directives in `ftconfig.h'. |
|
Also suppress more warnings for POSIX functions. |
|
|
|
2018-03-08 Hugh McMaster <hugh.mcmaster@outlook.com> |
|
|
|
Make installation of `freetype-config' optional (#53093). |
|
|
|
* builds/unix/configure.raw: Add option `--enable-freetype-config' |
|
and set `INSTALL_FT2_CONFIG'. |
|
* builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define. |
|
* builds/unix/install.mk (install): Handle it. |
|
|
|
2018-03-05 Werner Lemberg <wl@gnu.org> |
|
|
|
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 Werner Lemberg <wl@gnu.org> |
|
|
|
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-01 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments. |
|
|
|
2018-02-23 Werner Lemberg <wl@gnu.org> |
|
|
|
* builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer. |
|
|
|
Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>. |
|
|
|
2018-02-17 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). |
|
|
|
2018-02-06 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-04 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[unix] Use -fvisibility=hidden. |
|
|
|
It is now widely recommended that ELF shared libraries hide symbols |
|
except those with explicit __attribute__((visibility("default"))). |
|
This is supported by all major compilers and should rather be an |
|
option in libtool. |
|
|
|
* builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS. |
|
* builds/unix/ftconfig.in, builds/vms/ftconfig.h, |
|
include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility |
|
attribute. |
|
|
|
2018-01-27 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Better protection against invalid VF data. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739 |
|
|
|
Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7. |
|
|
|
* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize |
|
`normalizedcoords'. |
|
|
|
2018-01-27 Werner Lemberg <wl@gnu.org> |
|
|
|
* 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 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor. |
|
|
|
2018-01-27 Werner Lemberg <wl@gnu.org> |
|
|
|
[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 Werner Lemberg <wl@gnu.org> |
|
|
|
[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-26 Ben Wagner <bungeman@google.com> |
|
|
|
[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-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[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-21 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[unix] Call libtool to clean up. |
|
|
|
* builds/unix/install.mk (clean_project_unix, distclean_project_unix): |
|
Use libtool. |
|
* builds/freetype.mk: Minor. |
|
|
|
2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* src/base/ftver.rc: Fix mingw-w64 compilation. |
|
|
|
2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[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 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[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-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Expand dllexport/dllimport to Cygwin/MinGW. |
|
|
|
* include/freetype/config/ftconfig.h: Respect DLL_EXPORT, |
|
s/_MSC_VER/_WIN32/. |
|
* builds/unix/ftconfig.in: Replicate here. |
|
* builds/vms/ftconfig.h: Replicate here. |
|
|
|
2018-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Improve and document MSVC build. |
|
|
|
* include/freetype/config/ftconfig.h: Guard dllexport/dllimport |
|
attributes with _DLL and FT2_DLLIMPORT. |
|
* builds/windows/vc2010/index.html: Update documentation. |
|
|
|
2018-01-10 Steve Robinson <ssrobins@gmail.com> |
|
|
|
* CMakeLists.txt [win32]: Suppress warnings for POSIX functions. |
|
|
|
2018-01-10 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Correctly handle Flex features (#52846). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO, |
|
cf2_cmdHMOVETO>: Do not move if doing Flex. |
|
|
|
2018-01-09 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* builds/windows/vc2010/freetype.sln: Synchronize with the project. |
|
|
|
2018-01-08 Werner Lemberg <wl@gnu.org> |
|
|
|
* Version 2.9 released. |
|
======================= |
|
|
|
|
|
Tag sources with `VER-2-9'. |
|
|
|
* docs/VERSION.TXT: Add entry for version 2.9. |
|
|
|
* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, |
|
builds/windows/vc2005/index.html, |
|
builds/windows/vc2008/freetype.vcproj, |
|
builds/windows/vc2008/index.html, |
|
builds/windows/vc2010/freetype.vcxproj, |
|
builds/windows/vc2010/index.html, |
|
builds/windows/visualc/freetype.dsp, |
|
builds/windows/visualc/freetype.vcproj, |
|
builds/windows/visualc/index.html, |
|
builds/windows/visualce/freetype.dsp, |
|
builds/windows/visualce/freetype.vcproj, |
|
builds/windows/visualce/index.html, |
|
builds/windows/ftver.rc, |
|
builds/wince/vc2005-ce/freetype.vcproj, |
|
builds/wince/vc2005-ce/index.html, |
|
builds/wince/vc2008-ce/freetype.vcproj, |
|
builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/. |
|
|
|
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9. |
|
(FREETYPE_PATCH): Set to 0. |
|
|
|
* builds/unix/configure.raw (version_info): Set to 22:0:16. |
|
* CMakeLists.txt (VERSION_PATCH): Set to 0. |
|
|
|
2018-01-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Add check for librt, needed for `ftbench' (#52824). |
|
|
|
* builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will |
|
hold `-lrt' if necessary. |
|
|
|
* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable. |
|
|
|
2018-01-07 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[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-06 Werner Lemberg <wl@gnu.org> |
|
|
|
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-03 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Round offsets of glyph components only if hinting is on. |
|
|
|
* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement |
|
it. |
|
|
|
2018-01-03 Werner Lemberg <wl@gnu.org> |
|
|
|
* 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 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
Move internal LCD-related declarations. |
|
|
|
* include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir): |
|
Move from here... |
|
* include/freetype/internal/ftobjs.h: ... to here. |
|
|
|
2018-01-03 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) |
|
[_MSC_VER]: Limit Visual C++ attributes. |
|
|
|
2018-01-03 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Make blend/design coordinate round-tripping work. |
|
|
|
Behdad reported that setting blend coordinates, then getting design |
|
coordinates did incorrectly return the default instance's |
|
coordinates. |
|
|
|
* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it. |
|
|
|
2017-12-31 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838 |
|
|
|
2017-12-31 Werner Lemberg <wl@gnu.org> |
|
|
|
Synchronize other Windows project files. |
|
|
|
* builds/windows/*: Add missing files. |
|
|
|
2017-12-31 Werner Lemberg <wl@gnu.org> |
|
|
|
Update Visual C 2010 project files. |
|
|
|
Problem reported by Hin-Tak. |
|
|
|
* builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and |
|
`ftcid.c'. |
|
Sort entries. |
|
* builds/windows/vc2010/freetype.vcxproj.filter: Ditto. |
|
Fix members of `FT_MODULE' group. |
|
|
|
2017-12-30 Werner Lemberg <wl@gnu.org> |
|
|
|
* builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file. |
|
|
|
2017-12-28 Werner Lemberg <wl@gnu.org> |
|
|
|
* builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file. |
|
|
|
Reported by Nikolaus. |
|
|
|
2017-12-27 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix compiler warnings. |
|
|
|
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and |
|
`new_pitch' unsigned. |
|
|
|
* src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H. |
|
|
|
2017-12-27 Werner Lemberg <wl@gnu.org> |
|
|
|
Fixes for `make multi'. |
|
|
|
* include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'. |
|
(ps_property_get): Harmonize declaration with corresponding |
|
function typedef. |
|
|
|
* include/freety[e/internal/fttrace.h: Add `trace_psprops'. |
|
|
|
* src/base/ftpsprop.c: Include necessary header files. |
|
(FT_COMPONENT): Define. |
|
(ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'. |
|
(ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'. |
|
Harmonize declaration with corresponding function typedef. |
|
|
|
2017-12-27 Werner Lemberg <wl@gnu.org> |
|
|
|
Provide support for intra-module callback functions. |
|
|
|
This is needed especially for `make multi' with C++. |
|
|
|
* include/freetype/config/ftconfig.h (FT_BASE_CALLBACK, |
|
FT_BASE_CALLBACK_DEF): New macros. |
|
|
|
2017-12-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
Move PostScript drivers' property handlers to `base'. |
|
|
|
This reduces the amount of duplicated code across PostScript |
|
drivers. |
|
|
|
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c |
|
({cff,cid,t1}_property_{get,set}): Moved to... |
|
* include/freetype/internal/ftpsprop.h: ...this new file. |
|
(ps_property_{get,set}): New functions to replace moved ones. |
|
|
|
* src/base/ftpsprop.c: New file that implements above functions. |
|
|
|
* include/freetype/internal/internal.h |
|
(FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro. |
|
|
|
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: |
|
Updated. |
|
|
|
* src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c: |
|
Updated. |
|
|
|
2017-12-20 Werner Lemberg <wl@gnu.org> |
|
|
|
Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new. |
|
|
|
We exit early if the current design or blend coordinates are |
|
identical to the new ones. |
|
|
|
* src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design): |
|
Implement it, returning internal error code -1 if there will be no |
|
variation change. |
|
|
|
* src/type1/t1load.c (t1_set_mm_blend): Ditto. |
|
|
|
* src/base/ftmm.c (FT_Set_Var_Design_Coordinates, |
|
FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated. |
|
|
|
2017-12-18 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix charmap type 2 iterator (#52646). |
|
|
|
The subsetted demo font of the report that exhibits the bug has a |
|
very unusual type 2 cmap for Unicode(!): It contains only two |
|
sub-headers, one for one-byte characters (covering the range 0x20 to |
|
0xFA), and a second one for higher byte 0x01 (just for character |
|
code U+0131). |
|
|
|
Before this commit, the iterator wasn't able to correctly handle a |
|
sub-header for higher byte 0x01. |
|
|
|
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment |
|
for outer loop. |
|
|
|
2017-12-18 Matthias Clasen <matthias.clasen@gmail.com> |
|
|
|
[truetype] Fix clamping, minor tracing code beautification. |
|
|
|
* src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of |
|
design coordinates. |
|
Use clamped value. |
|
|
|
2017-12-18 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff. |
|
|
|
2017-12-18 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688). |
|
|
|
2017-12-18 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Fix previous commit. |
|
|
|
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle |
|
unhinted phantom points, which must be properly scaled. |
|
|
|
2017-12-18 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Don't apply HVAR and VVAR deltas twice (#52683). |
|
|
|
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust |
|
`pp1' to `pp4', except if we have an HVAR and/or VVAR table. |
|
|
|
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle |
|
alternative code branch identically w.r.t. presence of an HVAR |
|
and/or VVAR table. |
|
|
|
2017-12-17 Jonathan Kew <jfkthame@gmail.com> |
|
|
|
[truetype] Correctly handle variation font phantom points (#52683). |
|
|
|
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom |
|
point indices. |
|
|
|
2017-12-17 Jonathan Kew <jfkthame@gmail.com> |
|
|
|
Fix incorrect advance width scaling (#52683). |
|
|
|
* src/base/ftadvance.c (FT_Get_Advances): Always respect the |
|
FT_LOAD_NO_SCALE flag if present. |
|
|
|
2017-12-16 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* builds/windows/vc2010/freetype.vcxproj: AfterBuild copy. |
|
* objs/.gitignore: Ignore almost everything. |
|
|
|
2017-12-11 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix compiler warning (#52640). |
|
|
|
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused |
|
variable. |
|
|
|
2017-12-08 Azzuro <azzuro@team-mediaportal.com> |
|
|
|
* builds/windows/vc2010/freetype.vcxproj: Adjust output directory. |
|
|
|
This allows builds with different configurations in parallel. |
|
|
|
2017-12-08 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix `make setup dos', second try (#52622). |
|
|
|
* builds/detect.mk (dos_setup): Don't use literal `>' character at |
|
all. Mixing the different escaping rules from make, dos, and |
|
windows is too fragile. |
|
|
|
2017-12-08 Werner Lemberg <wl@gnu.org> |
|
|
|
[docmaker] Fix code section parsing. |
|
|
|
Stuff like |
|
|
|
{ |
|
<bla> |
|
} |
|
|
|
confused the parser, which incorrectly treated `<bla>' as a markup |
|
tag. |
|
|
|
* src/tools/docmaker/content.py (ContentProcessor::process_content): |
|
Apply `re_markup_tags' only outside of code sections. |
|
|
|
2017-12-08 Werner Lemberg <wl@gnu.org> |
|
|
|
New `ftdriver.h' file, covering all driver modules. |
|
|
|
This reduces redundancy and increases synergy; it also reduces the |
|
number of header files. |
|
|
|
* include/freetype/config/ftheader.h (FT_DRIVER_H): New macro. |
|
(FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H, |
|
FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to |
|
FT_DRIVER_H. |
|
|
|
* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, |
|
include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h, |
|
include/freetype/ftttdrv.h: Replaced with... |
|
* include/freetype/ftdriver.h: ...this new file. |
|
(FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to... |
|
(FT_HINTING_ADOBE): ... this new macro. |
|
(FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to... |
|
(FT_HINTING_FREETYPE): ... this new macro. |
|
|
|
* src/*/*: Updated accordingly. |
|
|
|
2017-12-08 Werner Lemberg <wl@gnu.org> |
|
|
|
Move `ftdriver.h' to `ftdrv.h'. |
|
|
|
* include/freetype/internal/ftdriver.h: Renamed to... |
|
* include/freetype/internal/ftdrv.h: ... this name. |
|
|
|
* include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H): |
|
Updated. |
|
|
|
2017-12-08 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix access to uninitalized memory (#52613). |
|
|
|
Also reported as |
|
|
|
https://bugs.chromium.org/p/chromium/issues/detail?id=791317 |
|
|
|
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the |
|
bitmap size needs a larger bitmap buffer, assure that the new memory |
|
areas are initialized also. |
|
|
|
2017-12-08 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix `make setup dos' (#52622). |
|
|
|
* builds/detect.mk (dos_setup): Properly escape literal `>' |
|
character. |
|
|
|
2017-12-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix C++ compilation. |
|
|
|
* src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary. |
|
|
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning. |
|
|
|
2017-12-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix `make multi'. |
|
|
|
* include/freetype/internal/fttrace.h: Remove unused tracing macros. |
|
s/pshalgo2/pshalgo/. |
|
Add `trace_cffdecode'. |
|
* src/pshinter/pshalgo.c (FT_COMPONENT): Updated. |
|
|
|
* src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. |
|
* src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and |
|
FT_SERVICE_CFF_TABLE_LOAD_H. |
|
|
|
* src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. |
|
|
|
* src/psaux/cffdecode.c: Include FT_FREETYPE_H and |
|
FT_INTERNAL_DEBUG_H. |
|
(FT_COMPONENT): Define. |
|
* src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. |
|
* src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. |
|
Declare `cff_builder_funcs' and `ps_builder_funcs'. |
|
* src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'. |
|
* src/psaux/psobjs.c : Include `psauxmod.h'. |
|
|
|
2017-12-07 Werner Lemberg <wl@gnu.org> |
|
|
|
* include/freetype/config/ftheader.h: Some clean-up. |
|
|
|
This commit removes documentation of deprecated macros and does some |
|
minor streamlining. |
|
|
|
2017-12-06 Werner Lemberg <wl@gnu.org> |
|
|
|
* builds/symbian/bld.inf: Updated. |
|
|
|
2017-12-06 Werner Lemberg <wl@gnu.org> |
|
|
|
New header file `ftparams.h' that collects all parameter tags. |
|
|
|
* include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New |
|
macro. |
|
(FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to |
|
`ftparams.h'. |
|
|
|
* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, |
|
include/freetype/ftincrem.h, include/freetype/ftlcdfil.h, |
|
include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include |
|
FT_PARAMETER_TAGS_H. |
|
Move FT_PARAM_TAG_XXX definitions to... |
|
* include/freetype/ftparams.h: ...this new file. |
|
|
|
* include/freetype/ttunpat.h: Remove. No longer needed. |
|
|
|
2017-12-05 Werner Lemberg <wl@gnu.org> |
|
|
|
Improve tracing messages by using singular and plural forms. |
|
|
|
* src/*/*.c: Implement it. |
|
|
|
2017-12-04 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Allow shared points in `cvar' table (#52532). |
|
|
|
* src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying |
|
and adjusting the corresponding code from |
|
`TT_Vary_Apply_Glyph_Deltas'. |
|
|
|
2017-11-28 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Improving tracing of composite glyphs. |
|
|
|
* src/truetype/ttgload.c (TT_Load_Composite_Glyph) |
|
[FT_DEBUG_LEVEL_TRACE]: Show composite glyph information. |
|
|
|
2017-11-27 Werner Lemberg <wl@gnu.org> |
|
|
|
[type1] Allow (again) `/Encoding' with >256 elements (#52464). |
|
|
|
In version 2.6.1, this has been disallowed to better reject |
|
malformed fonts; however, this restriction was too strong. This |
|
time, we only take the first 256 elements into account, since |
|
encoding arrays are always accessed with a 8bit integer, according |
|
to the PostScript Language Reference. |
|
|
|
* src/type1/t1load.c (parse_encoding): Implement it. |
|
|
|
2017-11-27 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> |
|
|
|
Fix last commit (#52522). |
|
|
|
* builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG' |
|
properly if we have `ftoption.h' in `BUILD_DIR'. |
|
|
|
2017-11-24 Werner Lemberg <wl@gnu.org> |
|
|
|
[unix] Install a massaged `ftoption.h' file (#51780). |
|
|
|
* builds/unix/configure.raw (ftoption_set, ftoption_unset): New |
|
auxiliary functions to construct... |
|
(FTOPTION_H_SED): ... this new variable. |
|
Apply it as a sed argument while copying `ftoption.h' to the |
|
`builds/unix' directory (using `AC_CONFIG_FILES'). |
|
Simplify code of test that checks cpp's computation of bit length |
|
(the test previously created an empty `ftoption.h' file and deleted |
|
it immediately afterwards); without this change, it can happen on my |
|
GNU/Linux box that `configure's execution of `config.status' doesn't |
|
create `ftoption.h' (no idea why this happens). |
|
|
|
* builds/unix/install.mk (install): Install |
|
`builds/unix/ftoption.h'. |
|
|
|
* builds/unix/unix-def.in (DISTCLEAN): Updated. |
|
|
|
* builds/unix/.gitignore: Updated. |
|
|
|
2017-11-23 Tor Andersson <tor.andersson@artifex.com> |
|
|
|
Silence unused function warnings (#52465). |
|
|
|
Some static function declarations cause unused function warnings if |
|
certain config options are turned off via `ftoption.h'. |
|
|
|
* src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h, |
|
src/truetype/ttgxvar.h: Add #ifdef guards around these sections. |
|
|
|
2017-11-22 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
* src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377 |
|
|
|
2017-11-22 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Fix CFF advance widths. (#52466) |
|
|
|
Glyph advance widths were being written to the new `PS_Decoder' but not |
|
saved to the underlying format specific decoder. This caused pure CFF |
|
fonts to have bad advance width. |
|
|
|
* include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width' |
|
field to pointer. |
|
Remove unused fields. |
|
* src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy |
|
to reference. |
|
Remove unused. |
|
* src/psaux/psft.c (cf2_setGlyphWidth): Update code. |
|
|
|
2017-11-15 Vlad Tsyrklevich <vtsyrklevich@google.com> |
|
|
|
* include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type. |
|
|
|
2017-11-14 Nikolaus Waxweiler <madigens@gmail.com> |
|
|
|
Use Adobe hinting engine for `light' hinting of both CFF and Type 1. |
|
|
|
Since Ewald Hew factored the Adobe hinting engine out of the CFF |
|
driver code, we can now use it on Type 1 (and CID) font formats, as |
|
both have the same hinting philosophy. |
|
|
|
This change activates the Adobe hinter when in LIGHT mode, and |
|
therefore always unless explicitly asking for the auto-hinter. This |
|
makes LIGHT behavior consistent with CFF fonts. As of this commit, |
|
the hinting engine table looks as follows. |
|
|
|
LIGHT NORMAL |
|
------------------------- |
|
TrueType Auto v40 |
|
CFF Adobe Adobe |
|
Type 1 Adobe Adobe |
|
|
|
2017-11-10 Yuri Levchenko <yuri_levchenko@boolat.com> |
|
|
|
* CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option. |
|
|
|
2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Relocate condition. |
|
|
|
2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables. |
|
|
|
2017-11-03 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251) |
|
|
|
The interpreter in Type 1 mode rewinds the charstring after collecting |
|
all hints for building the initial hintmap (commit d52dd7f). However, |
|
some charstrings use `endchar' in a final subroutine call, rewinding to |
|
the start of that subroutine, and only a small section of the actual |
|
glyph is drawn. |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>: |
|
Ensure we are on the top level charstring before rewinding. |
|
|
|
2017-11-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
|
|
|
[truetype] Add more tricky fonts. |
|
|
|
See the report by Yang Yinsen. |
|
https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html |
|
|
|
* src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB', |
|
`DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'. |
|
(tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB, |
|
DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7. Also |
|
add checksums for DLCLiShu and DLCHayBold which their family names |
|
were already listed but their checksums were previously unknown. |
|
|
|
2017-11-01 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[smooth] Fix complex rendering at high ppem. |
|
|
|
We used to split large glyphs into horizontal bands and continue |
|
bisecting them still horizontally if that was not enough. This is |
|
guaranteed to fail when a single scanline cannot fit into the |
|
rendering memory pool. Now we bisect the bands vertically so that |
|
the smallest unit is a column of the band height, which is guranteed |
|
to fit into memory. |
|
|
|
* src/smooth/ftgrays.c (gray_convert_glyph): Implement it. |
|
|
|
2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[smooth] Improve complex rendering at high ppem. |
|
|
|
At large sizes almost but not exactly horizontal segments can quickly |
|
drain the rendering pool. This patch at least avoids filling the pool |
|
with trivial cells. Beyond this, we can only increase the pool size. |
|
|
|
Reported, analyzed, and tested by Colin Fahey. |
|
|
|
* src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells. |
|
|
|
2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base] Improve tracing in FT_Load_Glyph, FT_*_Size. |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with |
|
function name, glyph index, and load flags. |
|
(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing. |
|
(FT_Select_Size, FT_Request_Size): Improve tracing. |
|
|
|
2017-10-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base] Improve tracing in FT_Render_Glyph. |
|
|
|
* src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage |
|
calculations and downgrade Netpbm dump to bitmap:7. |
|
|
|
2017-10-15 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[cff] Fix segfault on missing `psaux' (#52218) |
|
|
|
* src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr. |
|
|
|
* modules.cfg: Update dependency list. |
|
|
|
2017-10-15 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base, cff] Fix MSVC warnings. |
|
|
|
* src/base/ftobjs.c (FT_New_Library): C4702: unreachable code. |
|
(ft_glyphslot_preset_bitmap): C4244: possible loss of data. |
|
* src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data. |
|
Turn `sum' into unsigned. |
|
|
|
2017-10-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[base] Netpbm image tracing. |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size. |
|
(FT_Render_Glyph_Internal): Trace bitmap in Netpbm format. |
|
|
|
* src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing. |
|
|
|
2017-10-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
* builds/windows/ftdebug.c (FT_Message): Print to stderr. |
|
* builds/wince/ftdebug.c (FT_Message): Ditto. |
|
|
|
2017-10-14 Behdad Esfahbod <behdad@behdad.org> |
|
|
|
[afshaper] Delay creating `hb_set' objects until needed. |
|
|
|
In runs on Noto Naskh Arabic, this results in 89 sets created |
|
instead of 340 before. Makes auto-hinter setup with HarfBuzz |
|
enabled 20% to 30% faster. |
|
|
|
* src/autofit/afshaper.c (af_shaper_get_coverage): Implement it. |
|
|
|
2017-10-12 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[type1, cid] Add hinting engine switch. |
|
|
|
Implement property service in `type1' and `cid' drivers to allow |
|
switching between FreeType or Adobe hinting engine when both are |
|
available. |
|
|
|
* src/cid/cidriver.c (cid_property_{set,get}, cid_services), |
|
src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add |
|
Properties service. |
|
|
|
* src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c |
|
(T1_Driver_Init): Add default property values. |
|
|
|
2017-10-12 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
Add T1_CONFIG_OPTION_OLD_ENGINE configuration option. |
|
|
|
This controls whether the old Type 1 engine gets compiled into FreeType. |
|
It is disabled by default. |
|
|
|
* devel/ftoption.h, include/freetype/config/ftoption.h |
|
(T1_CONFIG_OPTION_OLD_ENGINE): New macro. |
|
|
|
* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field. |
|
* include/freetype/internal/psaux.h, src/cid/cidgload.c |
|
(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c |
|
(ps_builder_add_point), src/psaux/t1decode.c |
|
(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph, |
|
t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h, |
|
src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround |
|
relevant code with macro. |
|
Minor code changes. |
|
|
|
2017-10-12 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
Extract width parsing from Type 1 parser. |
|
|
|
Duplicate the fast advance width calculations from the old parser. |
|
This is to facilitate adding options for compiling out the old parser. |
|
|
|
* src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function. |
|
* include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry |
|
`parse_metrics'. |
|
* src/psaux/psauxmod.c: Set the new entry. |
|
|
|
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String), |
|
src/cid/cidgload.c (cid_load_glyph): Separate |
|
conditional for selecting engine. |
|
|
|
2017-10-09 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/chromium/issues/detail?id=772775 |
|
|
|
2017-10-08 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579 |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Adjust behaviour of PS font names for variation fonts. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's |
|
PS name only if no variation is applied. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
[cff, truetype] Adjust behaviour of named instances. |
|
|
|
This commit completely separates the interaction between named |
|
instances and variation functions. In particular, resetting the |
|
variation returns to the current named instance (if set) and not to |
|
the base font. |
|
|
|
As a side effect, variation functions no longer change the named |
|
instance index. |
|
|
|
* src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance' |
|
function. |
|
Also apply `MVAR' table to named instances. |
|
|
|
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast. |
|
(tt_set_mm_blend): No longer check whether requested variation |
|
coincides with a named instance. |
|
(TT_Set_Var_Design): Use current named instance for default |
|
coordinates. |
|
* src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Make `FT_Set_Named_Instance' work. |
|
|
|
* src/cff/cffdrivr.c (cff_set_instance): New function. |
|
(cff_service_multi_masters): Register it. |
|
|
|
* src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function. |
|
* src/truetype/ttgxvar.h: Updated. |
|
* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register |
|
it. |
|
|
|
* src/type1/t1load.c (T1_Reset_MM_Blend): New function. |
|
* src/type1/t1load.h: Updated. |
|
* src/type1/t1driver.c (t1_service_multi_masters): Register it. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Make `FT_FACE_FLAG_VARIATION' work. |
|
|
|
* include/freetype/internal/tttypes.h (TT_Face): Remove |
|
`is_default_instance'; this can be replaced with a combination of |
|
`FT_IS_VARIATION' and `FT_IS_INSTANCE'. |
|
|
|
* src/cff/cffdrivr.c (cff_get_advances): Updated. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c |
|
(sfnt_init_face): Updated. |
|
|
|
* src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c |
|
(TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE), |
|
src/truetype/ttgxvar.c (tt_set_mm_blend): Updated. |
|
* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design): |
|
Handle `FT_FACE_FLAG_VARIATION'. |
|
|
|
* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle |
|
`FT_FACE_FLAG_VARIATION'. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
New function `FT_Set_Named_Instance'. |
|
|
|
No effect yet. |
|
|
|
* src/base/ftmm.c (FT_Set_Named_Instance): New function. |
|
|
|
* include/freetype/ftmm.h: Updated. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Add macros for checking whether a font variation is active. |
|
|
|
* include/freetype/freetype.h (FT_FACE_FLAG_VARIATION, |
|
FT_IS_VARIATION): New macros. |
|
No effect yet. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
Add framework for setting named instance in MM service. |
|
|
|
* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func): |
|
New function typedef. |
|
(MultiMasters): Add `set_instance' member. |
|
(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. |
|
|
|
* src/cff/cffdrivr.c (cff_service_multi_masters), |
|
src/truetype/ttdriver (tt_service_gx_multi_masters), |
|
src/type1/t1driver.c (t1_service_multi_masters): Updated. |
|
|
|
2017-10-07 Werner Lemberg <wl@gnu.org> |
|
|
|
[type1] Minor code shuffling. |
|
|
|
* src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of... |
|
(t1_set_mm_blend): ...this new function. |
|
(T1_Set_MM_Design): Use `t1_set_mm_blend'. |
|
|
|
2017-10-05 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer |
|
overflow. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539 |
|
|
|
2017-10-05 Werner Lemberg <wl@gnu.org> |
|
|
|
Fix compiler warnings. |
|
|
|
* src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies |
|
on numeric overflow. |
|
Add cast. |
|
|
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable |
|
types, add cast. |
|
|
|
2017-10-04 John Tytgat <John.Tytgat@esko.com> |
|
|
|
[cff] Add support for `FSType'. |
|
|
|
* include/freetype/internal/cfftypes.h (CFF_FontRec): Add |
|
`font_extra' entry. |
|
|
|
* src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to |
|
retrieve FSType info from the embedded PostScript data. |
|
(cff_service_ps_info): Register function. |
|
|
|
* src/cff/cffload.c (cff_font_done): Free `font_extra'. |
|
|
|
2017-09-30 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
Signedness fixes in bitmap presetting. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514. |
|
|
|
* src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height. |
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. |
|
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned |
|
subtraction. |
|
|
|
2017-09-29 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
Bitmap metrics presetting [2/2]. |
|
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when |
|
appropriate but `FT_Render_Glyph' is not called. |
|
* include/freetype/freetype.h (FT_GlyphSlotRec): Document the change. |
|
|
|
2017-09-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[smooth, raster] Miscellaneous cleanups. |
|
|
|
* src/raster/ftrend1.c (ft_raster1_render): Clean up the exit. |
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce |
|
translations and clean up the exit. |
|
(ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'. |
|
|
|
2017-09-28 Ben Wagner <bungeman@google.com> |
|
|
|
[truetype] Really, really fix #52082. |
|
|
|
* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. |
|
|
|
2017-09-28 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/psaux/psintrp.c (cf2_doStems): Fix integer overflow. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510 |
|
|
|
2017-09-28 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
* src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak. |
|
|
|
Reported as |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489 |
|
|
|
2017-09-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
Bitmap metrics presetting [1/2]. |
|
|
|
This mainly just extracts the code for presetting the bitmap metrics |
|
from the monochrome, grayscale, and LCD renderers into a separate |
|
function. |
|
|
|
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that |
|
calculates prospective bitmap metrics for the given rendering mode. |
|
* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): |
|
Declare it. |
|
|
|
* src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds |
|
padding to CBox taking into account pecularities of LCD rendering. |
|
* include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it. |
|
|
|
* src/raster/ftrend1.c (ft_raster1_render): Reworked to use |
|
`ft_glyphslot_preset_bitmap'. |
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. |
|
(ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting |
|
is moved to `ft_glyphslot_preset_bitmap'. |
|
|
|
2017-09-28 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Fix compiler warning. |
|
|
|
* src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing |
|
code. |
|
|
|
2017-09-27 Werner Lemberg <wl@gnu.org> |
|
|
|
* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning. |
|
|
|
2017-09-25 Werner Lemberg <wl@gnu.org> |
|
|
|
[psaux] Fix compiler warnings. |
|
|
|
* src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant |
|
test. |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) |
|
<cf2_escCALLOTHERSUBR>: Add casts. |
|
|
|
* src/psaux/psobjs.c (ps_decoder_init): Add cast. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Minor fixes. |
|
|
|
* include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}: |
|
Rearrange `ps_builder_init' arguments to conventional order. |
|
|
|
* src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and |
|
notice for `SubFont' in Type 1 mode. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Move `psdecode' into `psobjs'. |
|
|
|
As the former only contains a single procedure, move it into |
|
`psobjs' for simplicity. Also change the parameter order to the |
|
conventional one. |
|
|
|
* src/psaux/psdecode.c (ps_decoder_init): Moved to... |
|
* src/psaux/psobjs.c: ...Here. |
|
* src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto. |
|
|
|
* include/freetype/internal/psaux.h (PSAux_ServiceRec): Update |
|
`ps_decoder_init' function signature. |
|
|
|
* src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c: |
|
Update calls. |
|
|
|
* src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes. |
|
|
|
* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC): |
|
Update file references. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Fix Type 1 hinting. |
|
|
|
Type 1 hinting breaks sometimes when mid-charstring hints should |
|
have been in the initial hintmap. This fix adds a preprocessing |
|
pass that reads all hints and builds the correct initial hintmap |
|
first, before proceeding to build the glyph outline. |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString): New |
|
`initial_map_ready' boolean flag. |
|
Ignore outline commands and hint changes on first pass. |
|
<cf2_cmdENDCHAR>: Add section to build hintmap and rewind. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Add tracing for hints. |
|
|
|
* src/psaux/pshints.c (cf2_hintmap_dump): New function. |
|
(cf2_hintmap_insertHint): Trace incoming and inserted hints. |
|
(cf2_hintmap_build): Dump hintmap before and after hint adjustment. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Minor fixes. |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop |
|
results. |
|
s/font->decoder/decoder/ where necessary. |
|
<cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use |
|
offset parameter in `cf2_doStems' instead of doing correction for |
|
left-sidebearing. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[cid] Use the new engine. |
|
|
|
* src/cid/cidgload.c: Update includes. |
|
(cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph |
|
loading code as with `type1' module. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[cid] Add Adobe engine configuration. |
|
|
|
This is similar to what was done in the `type1' module. |
|
|
|
* src/cid/cidriver.c (t1cid_driver_class): Update declaration. |
|
* src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H. |
|
(cid_driver_init): Update code. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Change subfont synthesis for CID fonts. |
|
|
|
Change `t1_make_subfont' to take in the Private dict record as an |
|
argument. This is because Type 1 and CID font records in FreeType |
|
have this in different places. |
|
|
|
* src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to |
|
`FT_Face' so that CID is also accepted. |
|
Take `PS_Private' as an argument and let caller figure out where the |
|
Private dict actually is. |
|
Update references. |
|
|
|
* include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update |
|
declaration. |
|
|
|
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update |
|
call. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[type1] Switch to Adobe engine. |
|
|
|
* src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (seac). |
|
|
|
This concludes the changes needed to add Type 1 support. |
|
|
|
* src/psaux/psintrp.c: Update includes. |
|
(cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to |
|
implied seac for CFF. |
|
|
|
* src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New |
|
function to look up the glyph index. |
|
|
|
* src/psaux/psft.c (cf2_getT1SeacComponent, |
|
cf2_freeT1SeacComponent): New functions to get the charstrings for |
|
seac components. |
|
|
|
* src/psaux/t1decode.h, src/psaux/psft.h: Update declarations. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (flex in callothersubr). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) |
|
<cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1, |
|
2). |
|
<cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing |
|
flex. This is to avoid closing the current contour. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (callothersubr). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) |
|
<cf2_escCALLOTHERSUBR>: Copy code from |
|
`t1_decoder_parse_charstrings' (in `t1decode.c'). |
|
OtherSubr 3 (change hints) should reset the hintmask, so that the |
|
new hints are applied. |
|
Fix function calls and stack access. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (pop). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled |
|
OtherSubr results are stored. Implement the PostScript stack using |
|
an array. |
|
<cf2_escPOP>: Ensure that the stack is not cleared after getting |
|
`OtherSubr' results. |
|
Fix stack access. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (callsubr). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>: |
|
Type 1 mode. |
|
|
|
* src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (div, four-byte numbers). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add |
|
Type 1 mode. Type 1 requires large integers to be followed by |
|
`div'; cf. `Adobe Type 1 Font Format', section 6.2. |
|
<op == 255>: Push Type 1 four-byte numbers as `Int' always. This is |
|
to ensure `div' and `callsubr' get values they can use. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (hints). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM, |
|
cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode. |
|
Allow adding hints mid-charstring. |
|
<cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands |
|
for three normal stem hints. This requires some recalculation of |
|
stem positions. |
|
Correction for left sidebearing. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (hsbw, sbw). |
|
|
|
* src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the |
|
first operation in a Type 1 charstring. |
|
(cf2_interpT2CharString): Remove unused variables. |
|
<cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw' |
|
must be the first operation in a Type 1 charstring. |
|
<cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for |
|
left sidebearing. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (setcurrentpoint). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) |
|
<cf2_escSETCURRENTPT>: Fix stack access. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Extend Adobe interpreter (closepath). |
|
|
|
* src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>: |
|
Use the right builder function. We can use the `haveWidth' boolean |
|
already present, instead of implementing `parse_state'. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Add Type 1 operations to Adobe CFF interpreter. |
|
|
|
The following Type 1 specific ops have been added (copied from |
|
`t1decode'): |
|
|
|
closepath |
|
vstem3 |
|
hstem3 |
|
seac |
|
sbw |
|
callothersubr |
|
pop |
|
setcurrentpoint |
|
hsbw |
|
|
|
The following require a Type 1 mode, because of differences in |
|
specification: |
|
|
|
hstem |
|
vstem |
|
vmoveto |
|
callsubr |
|
div |
|
rmoveto |
|
hmoveto |
|
Numbers |
|
|
|
The subsequent commits will implement these changes and adapt |
|
accesses of data and objects to the new interpreter. |
|
|
|
NOTE: Will not compile in the meantime! |
|
|
|
* src/psaux/psintrp.c: Add opcodes to enum. |
|
(cf2_interpT2CharString): Copy relevant code over from |
|
`t1_decoder_parse_charstrings' (in `t1decode.c'). |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[type1] Fixes for rendering. |
|
|
|
The Type 1 advance width calculation passes null for glyph slot, |
|
etc, which can cause null pointer access in the new interpreter. |
|
Fall back to the old one for now. |
|
|
|
Fix the large glyph retry code and ensure hinting and scaling flags |
|
are set properly. |
|
|
|
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a |
|
check for metrics_only. |
|
Set the `force_scaling' flag. |
|
(T1_Parse_Glyph): Updated. |
|
(T1_Load_Glyph): Add `hinting' and `scaled' flags. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Add missing objects (2/2). |
|
|
|
Synthesize a `SubFont' object for Type 1 fonts. This is used in the |
|
interpreter to access Private dict data, which are stored in |
|
different places for Type 1 and CFF. This allows the same data to |
|
be used in either mode. |
|
|
|
* src/psaux/psobjs.c (t1_make_subfont): New procedure to copy |
|
required values to a dummy `CFF_SubFont' object. This is similar to |
|
`cff_make_private_dict'. |
|
* src/psaux/psobjs.h: Add the new declaration. |
|
|
|
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto. |
|
Add this to the PSAux Service for future use with CID fonts. |
|
|
|
* src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H. |
|
(T1_Parse_Glyph_And_Get_Char_String): Add the call. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Add missing objects for Type 1 (1/2). |
|
|
|
Move `CF2_Font' instance to `PS_Decoder'. This is the context for |
|
the interpreter and since it is currently stored in `CFF_Font', is |
|
unavailable in Type 1 mode. |
|
|
|
* include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New |
|
`cf2_instance' field. |
|
|
|
* src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to |
|
`PS_Decoder'. |
|
|
|
* src/psaux/t1decode.c (t1_decoder_done): Add finalization code. |
|
|
|
* src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
Allow `type1' module to use the Adobe engine. |
|
|
|
Add the callback and some conditionals to switch between the two |
|
engines. |
|
|
|
* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change |
|
function declarations. |
|
* src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the |
|
callbacks. |
|
|
|
* src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for |
|
number conversion. |
|
|
|
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code |
|
to choose which renderer to use. |
|
|
|
* src/cid/cidgload.c (cid_load_glyph): Update call. |
|
* src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update |
|
includes. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[type1] Add Adobe engine configuration. |
|
|
|
Use the previously changed PS_Driver in type1 module to store |
|
hinting engine configuration. |
|
|
|
* include/freetype/ftt1drv.h: New file. |
|
Duplicate and rename config options from CFF. |
|
* include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro. |
|
|
|
* src/type1/t1driver.c (t1_driver_class): Update declaration. |
|
* src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H. |
|
(T1_Driver_Init): Update code. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[cff] Move and rename `CFF_Driver'. |
|
|
|
This is so that we can use the same hinting engine parameters for |
|
Type 1. |
|
|
|
* include/freetype/internal/cffotypes.h (CFF_Driver): Rename and |
|
move to... |
|
* include/freetype/internal/psaux.h (PS_Driver): ...here. |
|
|
|
* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c, |
|
src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c, |
|
src/psaux/psobjs.c: Update references. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, type1] Reorganize object fields. |
|
|
|
Make some fields more generic, so that we can access them the same |
|
way regardless of Type 1 or CFF. |
|
|
|
* include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face' |
|
to `FT_Face'. |
|
Remove unused fields. |
|
|
|
* src/psaux/psft.c: Update all accesses of `PS_Builder.face'. |
|
Add some asserts to guard against casting `T1_Face' as `TT_Face'. |
|
|
|
* src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow |
|
`CFF_GlyphSlot', so that we can pretend they are the same in the |
|
interpreter. |
|
|
|
* src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point): |
|
Updated with above changes. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Prepare for Type 1 mode. |
|
|
|
Add some checks for Type 1 data passing through. |
|
|
|
* src/psaux/psfont.h (CF2_Font): Add `isT1' flag. |
|
* src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend |
|
code which is not applicable for Type 1. |
|
|
|
* src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing |
|
`decoder->cff' in Type 1 mode. |
|
Copy `is_t1' flag to `CF2_Font'. |
|
|
|
2017-09-25 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Use the new objects. |
|
|
|
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix |
|
switching between new and old engines. |
|
|
|
* src/cff/cffgload.c, src/cff/cffparse.c: Update calls. |
|
|
|
* src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h, |
|
src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all |
|
to use new objects. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Objects for new interpreter (part 2). |
|
|
|
Make the new objects copy over values. They are essentially wrapper |
|
types for the different decoders/builders. |
|
|
|
* include/freetype/internal/psaux.h: Update declarations. |
|
(PS_Builder): Add `is_t1' flag. |
|
(PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to... |
|
(CFF_Decoder_{Get,Free}_Glyph_Callback: ... this. |
|
(PS_Decoder): Updated. |
|
Add `t1_parse_callback' member. |
|
(PSAux_ServiceRec): Add `ps_decoder_init' member. |
|
|
|
* src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations. |
|
|
|
* src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two |
|
modes. |
|
|
|
* src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux' |
|
service. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Add objects for new interpreter. |
|
|
|
Introduce `PS_Decoder' and `PS_Builder' which include all fields |
|
from either Type 1 or CFF decoders/builders. |
|
|
|
* include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New |
|
structs. |
|
|
|
* src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder' |
|
functions. |
|
|
|
* src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold |
|
`PS_Decoder' initialization functions. |
|
|
|
* src/psaux/psaux.c, src/psaux/Jamfile (_sources), |
|
src/psaux/rules.mk (PSAUX_DRV_SRC): Updated. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Rename files. |
|
|
|
Replace the `cf2' file name prefix with `ps' as the Adobe engine |
|
will be used for both PostScript Types 1 and 2 (CFF) instead of just |
|
CFF. |
|
|
|
s/cf2/ps/ for all following. |
|
|
|
* src/psaux/cf2*: Rename files. |
|
* src/psaux/*: Update includes. |
|
|
|
* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC, |
|
PSAUX_DRV_H): Update file references. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux] Minor fix. |
|
|
|
Use `MultiMasters' service in `psaux' instead of a call to `cff'. |
|
The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined. |
|
|
|
* src/psaux/cf2ft.c: Update includes. |
|
(cf2_getNormalizedVector): Use `mm->get_var_blend' instead of |
|
`cff_get_var_blend'. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Move `cff_random' into `psaux' service. |
|
|
|
NOTE: Does not compile! |
|
|
|
Minor fix to allow both `cff' and `psaux' to use `cff_random'. |
|
|
|
* src/cff/cffload.c (cff_random): Move to... |
|
* src/psaux/psobjs.c: Here. |
|
* src/cff/cffload.h: Move corresponding declaration to |
|
`src/psaux/psobjs.h'. |
|
|
|
* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the |
|
function here... |
|
* src/psaux/psauxmod.c: And here. |
|
|
|
* src/cff/cffload.c, src/psaux/cf2intrp.c: Update code. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[cff] Move struct declarations to `freetype/internal'. |
|
|
|
NOTE: Does not compile! |
|
|
|
This is so that the CFF functions moved to `psaux' can access the |
|
same structs that they need. |
|
|
|
* src/cff/cfftypes.h: Moved to... |
|
* include/freetype/internal/cfftypes.h: ...Here. |
|
|
|
* src/cff/cffobjs.h: Moved the struct declarations to... |
|
* include/freetype/internal/cffotypes.h: ... this new file. |
|
|
|
* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H, |
|
FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros. |
|
|
|
* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c, |
|
src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c, |
|
src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h, |
|
include/freetype/internal/psaux.h, |
|
include/freetype/internal/services/svcfftl.h: Update includes. |
|
|
|
* src/cff/rules.mk (CFF_DRV_H): Updated. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Add new service for inter-module calls. |
|
|
|
NOTE: Does not compile! |
|
|
|
This is to allow CFF functions moved to `psaux' to call functions |
|
declared in `src/cff/cffload.h'. |
|
|
|
* include/freetype/internal/services/svcfftl.h: New file, setting up |
|
a `CFFLoad' service. |
|
|
|
* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10, |
|
FT_DEFINE_SERVICEDESCREC): New macros. |
|
(FT_SERVICE_CFF_TABLE_LOAD_H): New macro. |
|
|
|
* src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service. |
|
|
|
* src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h |
|
(CF2_FontRec): Add service interface. |
|
|
|
* src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c, |
|
src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Add callbacks for inter-module calls. |
|
|
|
NOTE: Does not compile! |
|
|
|
* include/freetype/internal/psaux.h: Add function pointer |
|
declarations. |
|
|
|
* src/psaux/cffdecode.c (cff_decoder_init): Update to take in |
|
callbacks. |
|
* src/psaux/cffdecode.h: Ditto. |
|
|
|
* src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load): |
|
Update calls to pass in callbacks. |
|
* src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Create new `PSAux' service interface entries. |
|
|
|
NOTE: Does not compile! |
|
|
|
* include/freetype/internal/psaux.h: Include |
|
FT_INTERNAL_TRUETYPE_TYPES_H. |
|
(CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables. |
|
(CFF_Builder): Updated. |
|
Fix for forward declaration. |
|
(PSAux_ServiceRec): New field `cff_decoder_funcs'. |
|
|
|
* src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New |
|
function tables. |
|
(PSAux_Interface): Updated. |
|
|
|
* include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux' |
|
service interface. |
|
|
|
* src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update |
|
function calls to use psaux service. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Move CFF builder components into `psaux' module. |
|
|
|
NOTE: Does not compile! |
|
|
|
* src/cff/cffgload.c |
|
(cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour}, |
|
cff_check_points): Move to... |
|
* src/psaux/psobjs.c: Here. |
|
|
|
* src/cff/cffgload.h: Move corresponding declarations to |
|
`src/psaux/psobjs.h'. |
|
|
|
* src/cff/cffgload.h (CFF_Builder): Move struct declaration to... |
|
* include/freetype/internal/psaux.h: Here. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Move CFF decoder components into `psaux' module. |
|
|
|
NOTE: Does not compile! |
|
|
|
* src/cff/cffgload.c (CFF_Operator, |
|
CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts, |
|
cff_operator_seac, cff_compute_bias, |
|
cff_lookup_glyph_by_stdcharcode, |
|
cff_decoder_{parse_charstrings,init,prepare}): Move to... |
|
* src/psaux/cffdecode.c: This new file. |
|
|
|
* src/cff/cffgload.h: Move corresponding declarations to... |
|
* src/psaux/cffdecode.h: This new file. |
|
|
|
* src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS}, |
|
CFF_Decoder_Zone, CFF_Decoder): Move declarations to... |
|
* include/freetype/internal/psaux.h: Here. |
|
|
|
* src/psaux/cf2ft.h: Update include. |
|
|
|
* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with |
|
the new file. |
|
|
|
2017-09-24 Ewald Hew <ewaldhew@gmail.com> |
|
|
|
[psaux, cff] Move Adobe's engine components into `psaux' module. |
|
|
|
This is the first patch of a sequence to move the Type 2 charstring |
|
processing capability from the `cff' module to the `psaux' module. |
|
|
|
NOTE: Does not compile! |
|
|
|
* src/cff/cf2*: Move these files to... |
|
* src/psaux/cf2*: Here. |
|
|
|
* src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC, |
|
CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file |
|
references. |
|
|
|
* src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c |
|
(PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references. |
|
|
|
2017-09-24 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
Tweak per-face LCD filtering controls. |
|
|
|
Thing are simpler with a NULL-function pointer. |
|
|
|
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New |
|
pointer to the filter function. |
|
(FT_LibraryRec): Remove unused `lcd_filter'. |
|
(FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): Move from here... |
|
* include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc, |
|
ft_lcd_filter_fir): ... to here. |
|
|
|
* src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the |
|
per-face filter. |
|
(FT_Face_Properties): Set it. |
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify. |
|
|
|
* src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter): |
|
Minor. |
|
|
|
2017-09-24 Jonathan Kew <jfkthame@gmail.com> |
|
|
|
[sfnt] Fix `premultiply_data' (#52092). |
|
|
|
* src/sfnt/pngshim.c (premultiply_data): Don't use vector extension |
|
if we have less than 16 bytes of data. |
|
|
|
2017-09-24 Werner Lemberg <wl@gnu.org> |
|
|
|
[otvalid] Fix handling of ValueRecords. |
|
|
|
For GPOS pair positioning format 1 the description of ValueRecords |
|
in the OpenType specification (1.8.2, from today) is wrong – the |
|
offset has to be taken from the parent structure; in this case the |
|
`PairSet' table. |
|
|
|
* src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'. |
|
(otv_PairPos_validate): Adjust. |
|
|
|
2017-09-23 Werner Lemberg <wl@gnu.org> |
|
|
|
[otvalid] Handle `GSUB' and `GPOS' v1.1 tables. |
|
|
|
* src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c |
|
(otv_GPOS_validate): Implement it. |
|
|
|
2017-09-23 Werner Lemberg <wl@gnu.org> |
|
|
|
[otvalid] Update common table handling to OpenType 1.8.2. |
|
|
|
* src/otvalid/otvcommn.c (otv_Device_validate): Handle |
|
VariationIndex subtable. |
|
(otv_Lookup_validate): Handle MarkFilteringSet. |
|
|
|
2017-09-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Windows-style DLL versioning. |
|
|
|
* build/windows/ftver.rc: New VERSIONINFO resource. |
|
* build/windows/vc2010/freetype.vcxproj: Further improvements. |
|
|
|
2017-09-23 Ben Wagner <bungeman@google.com> |
|
|
|
[truetype] Really fix #52082. |
|
|
|
* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. |
|
|
|
2017-09-23 Werner Lemberg <wl@gnu.org> |
|
|
|
[otvalid] Handle `GDEF' v1.2 and v1.3 tables. |
|
|
|
No validation of variation stuff yet. |
|
|
|
* src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function. |
|
(otv_GDEF_validate): Implement it. |
|
|
|
2017-09-22 Werner Lemberg <wl@gnu.org> |
|
|
|
[otvalid] Handle `BASE' v1.1 table. |
|
|
|
No validation of variation stuff yet. |
|
|
|
* src/otvalid/otvbase.c (otv_BASE_validate): Implement it. |
|
|
|
2017-09-22 Werner Lemberg <wl@gnu.org> |
|
|
|
[otvalid] Macros for 32bit offset support. |
|
|
|
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32, |
|
OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros. |
|
|
|
2017-09-21 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Simplify Visual C++ 2010 project. |
|
|
|
* build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded |
|
configurations and tweak. |
|
|
|
2017-09-21 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Integer overflow (#52082). |
|
|
|
* src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS. |
|
|
|
2017-09-21 Werner Lemberg <wl@gnu.org> |
|
|
|
[sfnt] Fix postscript name for default instance of variation fonts. |
|
|
|
Problem reported by Behdad. |
|
|
|
* src/sfnt/sfdriver.c (sfnt_get_ps_name): Test |
|
`is_default_instance'. |
|
|
|
2017-09-21 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Fix `mmvar' array pointers, part 2. |
|
|
|
The previous commit was incomplete. |
|
|
|
* src/truetype/ttgxvar.c: Properly initialize sub-array offsets for |
|
`master' also. |
|
|
|
2017-09-21 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Fix `mmvar' array pointers. |
|
|
|
Without this change, clang's AddressSanitizer reports many runtime |
|
errors due to misaligned addresses. |
|
|
|
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer |
|
size for sub-array offsets into `mmvar'. |
|
|
|
2017-09-20 Werner Lemberg <wl@gnu.org> |
|
|
|
[truetype] Integer overflows. |
|
|
|
Changes triggered by |
|
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429 |
|
|
|
* src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG. |
|
(Ins_MIAP): Use SUB_LONG. |
|
|
|
2017-09-19 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Fix DLL builds in Visual C++ project. |
|
|
|
* build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug |
|
and Release configurations. |
|
* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) |
|
[_DLL]: Use Visual C++ extensions. |
|
|
|
2017-09-19 John Tytgat <John.Tytgat@esko.com> |
|
|
|
[cff] Fix family name logic of pure CFF fontdata (#52056). |
|
|
|
1. If `FamilyName' is present in the CFF font, use this for |
|
FT_Face's `family_name'. |
|
2. Otherwise, use the face name and chop off any subset prefix. |
|
3. If at this point FT_Face's `family_name' is set, use this |
|
together with the full name to determine the style. |
|
4. Otherwise, use `CIDFontName' as FT_Face's `family_name'. |
|
5. If we don't have a valid style, use "Regular". |
|
|
|
Previously, FT_Face's `family_name' entry for pure CFF fontdata |
|
nearly always was the fontname itself, instead of the `FamilyName' |
|
entry in the CFF font (assuming there is one). |
|
|
|
* src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it. |
|
|
|
2017-09-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
|
|
|
[build] Declutter Visual C++ 2010-2017 project. |
|
|
|
* build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02) |
|
optimization for Release configuration throughout the project. |
|
|
|
|
|
---------------------------------------------------------------------------- |
|
|
|
Copyright 2017-2018 by |
|
David Turner, Robert Wilhelm, and Werner Lemberg. |
|
|
|
This file is part of the FreeType project, and may only be used, modified, |
|
and distributed under the terms of the FreeType project license, |
|
LICENSE.TXT. By continuing to use, modify, or distribute this file you |
|
indicate that you have read the license and understand and accept it |
|
fully. |
|
|
|
|
|
Local Variables: |
|
version-control: never |
|
coding: utf-8 |
|
End:
|
|
|