|
a5acdce1
|
2018-07-22T12:11:52
|
|
[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.
|
|
cba72a0b
|
2018-07-21T23:45:32
|
|
[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.
|
|
a2370f21
|
2018-07-21T07:38:13
|
|
Improve stream extraction macro documentation.
|
|
154832d4
|
2018-07-20T19:32:13
|
|
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.
|
|
14032290
|
2018-07-20T06:44:13
|
|
[cff] Avoid left-shift of negative numbers (#54322).
* src/cff/cffgload.c (cff_slot_load): Use multiplication.
|
|
8f09eb5c
|
2018-07-17T21:45:24
|
|
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.
|
|
9e69987a
|
2018-07-17T19:54:25
|
|
* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
|
|
fda356b7
|
2018-07-16T18:45:23
|
|
* 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
|
|
839cb404
|
2018-07-16T05:45:45
|
|
* 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
|
|
9f15370e
|
2018-07-12T07:31:26
|
|
* 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.
|
|
b532d7ce
|
2018-07-05T23:13:35
|
|
Fix typo (#54238).
* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
|
|
0767d536
|
2018-07-05T23:05:53
|
|
Adjust table size comparisons (#54242).
* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
|
|
6ceeb87f
|
2018-07-05T22:31:10
|
|
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.
|
|
29f05fd0
|
2018-07-04T11:49:47
|
|
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.
|
|
d9d300ab
|
2018-07-02T22:27:57
|
|
* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
|
|
7edc937f
|
2018-07-02T11:50:04
|
|
s/palette_types/palette_flags/.
Suggested by Behdad.
|
|
4e3b2473
|
2018-07-02T11:41:44
|
|
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.
|
|
f6ccb524
|
2018-07-01T12:31:57
|
|
* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
Reported by Behdad.
|
|
1fc776b5
|
2018-06-28T21:42:26
|
|
* src/base/fttrigon.c (FT_Tan): Improve accuracy.
(FT_Vector_Rotate): Simplify.
|
|
4f11209f
|
2018-06-28T21:31:35
|
|
* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
|
|
207ca38f
|
2018-06-25T18:50:00
|
|
[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
|
|
589d1f08
|
2018-06-25T18:38:04
|
|
* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
|
|
a632fb54
|
2018-06-24T15:22:10
|
|
[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.
|
|
cc333390
|
2018-06-24T06:22:48
|
|
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'.
|
|
d7393e22
|
2018-06-23T17:25:58
|
|
Fix typo.
Reported by Behdad.
* src/base/ftcolor.c (FT_Palette_Data_Get)
[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
|
|
9027233f
|
2018-06-21T00:21:09
|
|
s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
src/sfnt/ttcolr.c: Do it.
|
|
a6b77ba2
|
2018-06-19T20:09:31
|
|
[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.
|
|
7915fd51
|
2018-06-19T07:15:21
|
|
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.
|
|
b1a3c59f
|
2018-06-17T22:33:29
|
|
[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.
|
|
0f6be064
|
2018-06-17T20:27:42
|
|
[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 (src/bdf/bdflib.c): Bail out earlier than before
if the `ENCODING' keyword cannot be found.
|
|
da846919
|
2018-06-17T09:30:05
|
|
[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.
|
|
e361cc6a
|
2018-06-17T09:13:37
|
|
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.
|
|
9960e7be
|
2018-06-16T22:16:03
|
|
[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.
|
|
10790637
|
2018-06-16T21:45:13
|
|
[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.
|
|
8f403ab8
|
2018-06-16T21:30:04
|
|
Minor formatting.
|
|
9d8e6c29
|
2018-06-16T10:11:58
|
|
* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
|
|
68bc56f8
|
2018-06-16T09:39:29
|
|
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.
|
|
9b31c446
|
2018-06-14T21:30:43
|
|
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.
|
|
f9d05eb3
|
2018-06-14T21:02:49
|
|
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.
|
|
33ac83e3
|
2018-06-14T21:00:23
|
|
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.
|
|
a44e2087
|
2018-06-14T11:32:47
|
|
[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.
|
|
54b332aa
|
2018-06-13T08:46:27
|
|
[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.
|
|
c07ca2a1
|
2018-06-12T11:28:55
|
|
[sfnt] Fix `sizeof' thinko.
* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't
use `sizeof' for computing array limit.
|
|
22d1be3f
|
2018-06-12T06:07:40
|
|
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.
|
|
45145d34
|
2018-06-12T06:02:59
|
|
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.
|
|
b85d4e8f
|
2018-06-12T05:53:58
|
|
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.
|
|
7de877bb
|
2018-06-12T06:37:02
|
|
[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.
|
|
eaa5a42a
|
2018-06-11T21:56:23
|
|
[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.
|
|
a698dbf8
|
2018-06-10T21:43:51
|
|
[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.
|
|
d8b8b6e3
|
2018-06-10T21:37:15
|
|
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.
|
|
6732f055
|
2018-06-10T09:12:24
|
|
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'.
|
|
56be5f72
|
2018-06-10T06:59:39
|
|
* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
|
|
50fda0be
|
2018-06-09T22:52:43
|
|
[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.
|
|
c412de52
|
2018-06-09T23:56:21
|
|
[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.
|
|
8f1ed548
|
2018-06-07T02:48:48
|
|
[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.
|
|
89d2f429
|
2018-06-06T16:53:54
|
|
[bdf, pcf] Removed deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
* src/bdf/bdfdrivr.c (BDF_Face_Init): Removed deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
* src/pcf/pcfread.c (pcf_load_font): Removed deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
|
|
ca4e707a
|
2018-06-06T08:18:23
|
|
[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.
|
|
78d85b9c
|
2018-06-04T18:42:29
|
|
Restore missing comment lines and other minor fixes
|
|
cc626772
|
2018-06-04T10:49:23
|
|
Restore accidentally removed, commented-out configuration options.
|
|
80ac3645
|
2018-06-03T18:31:58
|
|
* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
|
|
64bf5d48
|
2018-06-03T09:19:54
|
|
Minor formatting.
|
|
02842872
|
2018-06-03T09:17:55
|
|
* src/tools/glnames.py (main): Emit header in `light' comment style.
|
|
9ac9060d
|
2018-06-03T09:01:17
|
|
[GSoC] src/*.*: Convert block comments to `light' style.
This monster commit was created by applying Nikhil's scripts
`docconverter.py' and `markify.py' to all C header and source files,
followed up by minor manual clean-up.
No change in functionality, of course.
I used commit f7419907bc6044b9b7057f9789866426c804ba82 from
https://github.com/nikramakrishnan/freetype-docs.git.
|
|
ae248034
|
2018-06-02T21:42:44
|
|
[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.
|
|
67994e82
|
2018-06-02T19:51:03
|
|
* 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
|
|
fab10b6f
|
2018-06-02T09:53:58
|
|
* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
|
|
125b8480
|
2018-05-31T10:49:05
|
|
* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
This is no longer used.
|
|
0589f6e6
|
2018-05-31T00:34:38
|
|
[sfnt] Get colors from `CPAL' table in right order (#54015).
* src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
|
|
d45d4b97
|
2018-05-30T17:35:39
|
|
Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
* src/autofit/afloader.c (af_loader_load_glyph): Move the
initialisation and declaration of variables into the if-block.
|
|
a3cfed5e
|
2018-05-30T12:37:46
|
|
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.
|
|
ae2cd1b7
|
2018-05-30T09:34:57
|
|
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.
|
|
51fee655
|
2018-05-25T22:16:11
|
|
[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.
|
|
7b73cb07
|
2018-05-24T22:38:24
|
|
[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.
|
|
3360ca58
|
2018-05-22T09:06:24
|
|
[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.
|
|
3c99016f
|
2018-05-22T07:53:49
|
|
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
|
|
583dabf2
|
2018-05-16T20:37:43
|
|
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.
|
|
f1458d2e
|
2018-05-15T21:47:18
|
|
[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.
|
|
49c5e24a
|
2018-05-15T21:55:28
|
|
[psaux] Fix compiler warning (#53915).
* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
|
|
befee112
|
2018-05-15T17:01:22
|
|
[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.
|
|
5fd12564
|
2018-05-15T11:30:49
|
|
Grammar fixes.
|
|
2dd20916
|
2018-05-15T09:05:53
|
|
[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.
|
|
06820637
|
2018-05-14T09:45:16
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
|
|
c5a8a535
|
2018-05-14T09:42:20
|
|
Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set.
* src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
|
|
1b2abda9
|
2018-05-13T10:58:49
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
|
|
f04d8175
|
2018-05-13T03:25:09
|
|
[sfnt] Preliminary support of coloured layer outlines.
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.
|
|
fb742477
|
2018-05-11T23:27:06
|
|
[pcf]Documentation Typo.
|
|
e0015f76
|
2018-05-08T11:51:16
|
|
[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'.
|
|
95149592
|
2018-05-02T20:27:48
|
|
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.
|
|
86bc8a95
|
2018-05-01T20:27:24
|
|
* 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.
|
|
ac97a296
|
2018-04-26T09:04:39
|
|
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.
|
|
2157d8fa
|
2018-04-24T10:29:19
|
|
[base] Avoid undefined behaviour in lcd filtering code (#53727).
* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
Ensure `height > 0'.
|
|
67697d00
|
2018-04-22T21:15:10
|
|
* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
|
|
3b88576b
|
2018-04-22T17:22:35
|
|
[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.
|
|
c2e2a8e5
|
2018-04-22T17:13:50
|
|
Revert "[base] Fix bitmap copying where the new pitch is smaller."
This reverts commit c0f1adedcfaad4f7d2fe912ff4b2933845d61d93.
|
|
c0f1aded
|
2018-04-22T11:44:24
|
|
[base] Fix bitmap copying where the new pitch is smaller.
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Handle it.
|
|
38ecc949
|
2018-04-22T10:14:03
|
|
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.
|
|
e4b6d853
|
2018-04-19T17:43:03
|
|
[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.
|
|
1655e00f
|
2018-04-19T14:45:19
|
|
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.
|
|
2a159782
|
2018-04-17T12:25:17
|
|
[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.
|
|
70ac167c
|
2018-04-16T10:39:10
|
|
[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.
|