summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove obsolete AF_Angle type and related sources.David Turner2021-07-127-352/+109
| | | | | | Move the af_sort_xxx() functions from afangles.c to afhints.c in order to get rid of the obsolete angle-related types, macros and function definitions.
* Remove experimental auto-hinting 'warp' mode.David Turner2021-07-1216-676/+18
| | | | | | | This feature was always experimental, and probably nevery worked properly. This patch completely removes it from the source code, except for a documentation block describing it for historical purpose.
* Remove experimental "Latin2" writing system (FT_OPTION_AUTOFIT2)David Turner2021-07-128-2498/+15
| | | | | | This code has always been experimental and was never compiled anyway (FT_OPTION_AUTOFIT2 does not appear in ftoption.h or even any of our build files).
* Update 'dlg' subproject.Werner Lemberg2021-07-121-0/+0
|
* meson.build: Minor doc fix.Werner Lemberg2021-07-051-2/+3
|
* * src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix argument.Werner Lemberg2021-07-052-1/+7
| | | | Reported by Hin-Tak.
* README.git: Revised.Werner Lemberg2021-07-031-15/+24
|
* meson.build: Minor doc improvements.Werner Lemberg2021-07-031-10/+17
|
* * meson_options.txt: Sort alphabetically; no final full stops.Werner Lemberg2021-07-032-17/+23
|
* * src/truetype/ttgxvar.c (tt_set_mm_blend): Test `coords`.Ben Wagner2021-07-012-3/+13
| | | | | | | It is undefined behavior to pass `NULL` to `memcpy`. `coords' is passed to `memcpy` but `TT_Get_MM_Blend` and `TT_Get_Var_Design` explictly call `tt_set_mm_blend` with `coords` as `NULL`. In addition, `TT_Set_MM_Blend` has a similar possible issue.
* [sfnt] Support PaintScale in 'COLR' v1 parsing.Dominik Röttsches2021-07-013-10/+138
| | | | | | | | | | * include/freetype/ftcolor.h (FT_PaintFormat): Renumber values, add `FT_COLR_PAINTFORMAT_SCALE`. (FT_PaintScale): New structure to represent 'PaintScale*' tables. (FT_COLR_Paint): Updated. * src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration. (read_paint): Parse 'PaintScale' and friends.
* [sfnt] Handle fonts without layer list in 'COLR' v1.Dominik Röttsches2021-07-012-13/+39
| | | | | | | | | | | | | 'COLR' v1 fonts do not necessarily need to have a layer list; for this reason, 'fontTools' recently started generating fonts in a way that drops the layer list if there are no layers in it. This results in the layer list offset becoming zero, which FreeType treated as an invalid table. Fix that and handle the case for layer list offset being 0. This slightly changes how we need to calculate the starting offset for paints. * src/sfnt/ttcolr.c (tt_face_load_colr): Handle case of layer list offset being zero without outright rejecting table.
* * src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.Alexei Podtelezhnikov2021-06-302-21/+9
|
* Update `CHANGES` file; other minor doc fixes.Werner Lemberg2021-06-305-12/+35
|
* [raster] Do not skip the second pass without dropout control.Alexei Podtelezhnikov2021-06-292-11/+12
| | | | | | | The second pass also fixes horizontal lines through the pixel centers. * src/raster/ftraster.c (black_TWorker): Do not use `second_pass'. (Render_Glyph): Skip the second pass only with the appropriate flag.
* [raster] Handle sub-band stack locally.Alexei Podtelezhnikov2021-06-292-30/+38
| | | | | | * src/raster/ftraster.c (black_TWorker): Move `band_stack' from here.. (Render_Single_Pass): ... to here and accept limit arguments. (Render_Glyph): Updated.
* [CI] Introduce linux CI and refactor job namesAnurag Thakur2021-06-292-6/+101
| | | | * .gitlab-ci.yml: Added jobs for building freetype on linux.
* ftcolor.h: Minor grammar fix.Werner Lemberg2021-06-291-27/+27
|
* [raster] Handle Bézier stack locally.Alexei Podtelezhnikov2021-06-282-46/+58
| | | | | | * src/raster/ftraster.c (black_TWorker): Move `arcs' from here... (Conic_To, Cubic_To): ... to here to tighten their scope. (Bezier_Up, Bezier_Down): ... Take the current `arc' argument.
* [sfnt] Improve paint limit checksDominik Röttsches2021-06-282-8/+43
| | | | | | | | | | | | | | | | Paint tables can appear before the `base_glyphs_v1` offset if the font is produced with the layer list before the base glyph list. In this case paint tables can occur after the layer list but before the base glyph list. Checks in the 'COLR' v1 code were rejecting fonts with this layout. Improve these checks by calculating a minimum offset after which paint tables can occur and use that in safety checks. * src/sfnt/ttcolr.c (Colr, tt_face_load_colr): Declare `paint_start_v1` and calculate that as the minimum of the end of layer list and base glyph list. (get_child_table_pointer, read_paint, tt_face_get_paint_layers): Use that in safety checks.
* [raster] Clean up vertical sweep.Alexei Podtelezhnikov2021-06-282-19/+23
| | | | | | | * src/raster/ftraster.c (black_TWorker): Replace the current line offset with the pointer and drop the increment. (Function_Sweep_Init): Take values as arguments instead of pointers. (Vertical_Sweep_*, Horizontal_Sweep_Init, Draw_Sweep): Updated.
* [raster] Make `band_top' local variable.Alexei Podtelezhnikov2021-06-262-18/+20
| | | | | | * src/raster/ftraster.c (black_TWorker): Move `band_top' from here... (Render_Single_Pass): ... to here, and refactor. (Render_Glyph): Updated.
* [raster] Adjust sub-band bisecting limits.Alexei Podtelezhnikov2021-06-252-5/+16
| | | | | | | | We can bisect a band until it is just a single scan line. This might be slow and cause time-outs but if we need to impose limits it should be elsewhere. * src/raster/ftraster.c (Render_Single_Pass): Tweak sub-banding.
* * src/raster/ftraster.c (Render_Single_Pass): Remove dead code.Alexei Podtelezhnikov2021-06-252-11/+5
|
* [base] Add trace level to logging output.Werner Lemberg2021-06-254-6/+37
| | | | | | | | | | | | | | | | | | | | | | | Some practical debugging work has shown that displaying level X of an `FT_TRACEX` macro in the output of `FT2_DEBUG="... -v"` would be very helpful to find out which trace level should be selected. As an example, we now get output like ``` [ttobjs:2] TTF driver [ttobjs:2] SFNT driver [sfobjs:2] not a font using the SFNT container format [t1objs:2] Type 1 driver [stream:7] FT_Stream_EnterFrame: 14 bytes ``` * include/freetype/internal/ftdebug.h (FT_LOGGING_TAGX): New macro. (FT_LOG): Use it to add the trace level to the logging tag. * include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH): Adjust. * docs/DEBUG: Updated.
* [smooth, raster] Fix up and align error codes.Alexei Podtelezhnikov2021-06-243-14/+32
| | | | | | | | | | | | | | | FT_Render_Glyph picked up FAILURE or 1 returned from the raster function, which became a confusing error code. Instead, return Raster_Overflow in the unlikely event that banding does not help or another meaningful error. * src/smooth/ftgrays.c (gray_convert_glyph_inner, gray_convert_glyph): Use Raster_Overflow when the rendering pool is exhausted and return it if banding does not help. (gray_raster_render): Use Smooth_Err_Ok. * src/raster/ftraster.c (Render_Single_Pass): Return Raster_Overflow if banding does not help or another error code.
* [smooth, raster] Remove synonymous error macros.Alexei Podtelezhnikov2021-06-233-59/+59
| | | | | | | | | | * src/smooth/ftgays.c [STANDALONE_]: s/ErrRaster_/Smooth_Err_/. (gray_convert_glyph_inner): Updated accordingly. * src/raster/ftraster.c [STANDALONE_]: Do not abbreviate error macros. (New_Profile, End_Profile, Insert_Y_Turn, Line_Up, Bezier_Up, Decompose_Curve, Draw_Sweep, Render_Single_Pass, ft_black_render): Updated accordingly.
* fterrors.h: Fix documentation extraction of `FT_Error_String`.Werner Lemberg2021-06-231-0/+2
|
* [sfnt] s/PaintTransformed/PaintTransform/, s/transformed/transform/.Dominik Röttsches2021-06-223-29/+39
| | | | | | | | * include/freetype/ftcolor.h (FT_PaintTransformed, FT_PaintFormat, FT_COLR_Paint): Do it to make it harmonize with other names such as 'PaintTranslate'. * src/sfnt/ttcolr.c (read_paint, tt_face_get_paint): Ditto.
* Move 'COLR' API to `ftcolor.h`.Dominik Röttsches2021-06-223-1238/+1247
| | | | | | | * include/freetype/freetype.h: Cut section layer managament containing 'COLR' v0 and v1 API and move it to `ftcolor.h` as requested by Werner on freetype-devel. * include/freetype/ftcolor.h: Paste that section.
* freetype.h: Mark 'COLR' v1 API as experimental.Werner Lemberg2021-06-202-29/+56
|
* ftver.rc: Update copyright year.Werner Lemberg2021-06-191-1/+1
|
* [truetype] Fix integer overflow.Werner Lemberg2021-06-192-1/+11
| | | | | | | | Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35312 * src/truetype/ttinterp.c (Ins_JMPR): Use `ADD_LONG`.
* Prevent hinting if there are too many segments.Werner Lemberg2021-06-192-0/+38
| | | | | | | | | | | This speeds up handling of broken glyphs. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35309 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Implement it.
* * src/sdf/ftsdfrend.c (ft_(b)sdf_render): Do not FT_ERROR routinely.Alexei Podtelezhnikov2021-06-182-7/+4
|
* Add `ChangeLog` entries for last two commits.Werner Lemberg2021-06-181-0/+33
|
* Fix for issue 1063David Turner2021-06-161-0/+4
| | | | | See https://gitlab.freedesktop.org/freetype/freetype/-/issues/1063 for more details on the bug.
* [meson] Add first regression test to FreeTypeDavid Turner2021-06-167-0/+136
| | | | | | | | | | | | | | | | | | | * tests/README.md: documentation explaining how to build and run the tests with the Meson build. * tests/scripts/download-test-fonts.sh: Simple script to download test font files to the 'tests/data/' folder. * meson.build, meson_options.txt, tests/meson.build: Add 'tests' option to enable building and running the test programs, disabled by default. * tests/issue-1063/main.c: Simple regression test to exhibit issue 1063. * .gitignore: Ignore the content of the tests/data/ folder for now.
* Add a comment.Alexei Podtelezhnikov2021-06-151-0/+1
|
* [type42] Fix new memory leak.Alexei Podtelezhnikov2021-06-122-4/+15
| | | | | | | | | We need to inverse inheritance of FT_GlyphSlot_Internal so that we have a chance to free the rendered bitmap from the parent slot. * src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts of the child `ttslot' and replace it with the parent structure. (T42_GlyphSlot_Done): Updated accordingly.
* [psaux] Fix another assertion.Werner Lemberg2021-06-122-1/+27
| | | | | | | | | | | | * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escCALLOTHERSUBR>: Convert assertion into error, since the problem can happen with invalid user input. Test case is file fuzzing/corpora/legacy/oss-fuzz/5754332360212480-unknown-read in the `freetype2-testing` repository.
* [psaux] Fix assertions.Werner Lemberg2021-06-122-19/+33
| | | | | * src/psaux/pshints.c (cf2_hintmap_adjustHints): Check for overflow before emitting an assertion error.
* * src/truetype/ttinterp.c (TT_RunIns): Optimize tracing.Alexei Podtelezhnikov2021-06-092-0/+5
|
* [sdf] Fix SDF positioning.Alexei Podtelezhnikov2021-06-093-8/+22
| | | | | | | * src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Add padding to `bitmap_top' and `bitmap_left'. * sdf/sdf/ftsdf.c (sdf_generate_with_overlaps): Fix VC++ warning.
* More CHANGES.Alexei Podtelezhnikov2021-06-081-0/+5
|
* More various documentation improvements and fixes.Werner Lemberg2021-06-089-16/+41
|
* Various documentation improvements and fixes.Werner Lemberg2021-06-083-13/+155
|
* Fix 'devel' build for COLR 'v1'.Werner Lemberg2021-06-082-0/+22
| | | | | * devel/ftoption.h: Synchronize with `include/freetype/config/ftoption.h`.
* [sfnt] Sanitize cmap4 table better.Werner Lemberg2021-06-082-0/+19
| | | | | | | Fixes #1062. * src/sfnt/ttcmap.c (tt_cmap4_validate): Handle a too-small value of `length` gracefully.
* [sfnt] Pointer validity check when reading COLR 'v1' layersDominik Röttsches2021-06-082-0/+15
| | | | | | * src/sfnt/ttcolr.c (tt_face_get_paint_layers): In addition to the existing sanity checks, ensure that the pointer to the layer to be read is within the 'COLR' v1 table.