|
93066188
|
2025-11-11T03:07:51
|
|
don't set .so.version for android target
|
|
f238830d
|
2025-10-16T22:35:53
|
|
* src/truetype/ttgload.c (tt_loader_init): Reset compatibility.
This may fix #1262, credits to Honnesh Ramachandra.
https://lists.nongnu.org/archive/html/freetype-devel/2025-10/msg00004.html
|
|
4334f009
|
2025-09-28T08:09:48
|
|
[autofit] Prevent signed integer overflow.
* src/autofit/aflatin.c (af_latin_stretch_top_tilde,
af_latin_stretch_bottom_tilde, af_latin_align_top_tilde,
af_latin_align_bottom_tilde,
af_glyph_hints_apply_vertical_separation_adjustments): Use `ADD_LONG` and
`SUB_LONG` for values that involve `FT_LONG_MAX` and `FT_LONG_MIN`.
Fixes issue #1363.
|
|
7955c9b8
|
2025-09-24T05:56:34
|
|
* src/bdf/bdfdriver.c (BDF_Glyph_Load): Use `bdf->bdffont->bpp` directly.
Fixes issue #1362.
|
|
41eab7e6
|
2025-09-17T16:30:55
|
|
* tests/README.md: Fix a script name.
|
|
03acd892
|
2025-09-14T11:34:21
|
|
[build] Don't use non-POSIX escapes in sed regexp.
* builds/unix/configure.raw (ftoption_set, ftoption_unset): Avoid `\>`.
Fixes issue #1358.
|
|
66e1ec84
|
2025-09-14T11:05:41
|
|
Typo.
|
|
7e14994b
|
2025-09-12T12:57:50
|
|
* include/freetype/internal/ftobjs.h (ft_default_raster): Relic removed.
|
|
526ec5c4
|
2025-09-11T13:16:53
|
|
* Version 2.14.1 released.
==========================
Tag sources with `VER-2-14-1'.
* docs/VERSION.TXT: Add entry for version 2.14.1.
* docs/CHANGES: Updated.
* docs/release, docs/README, builds/macs/README: Updated.
* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
builds/windows/visualc/index.html, builds/windows/visualce/index.html,
builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
docs/freetype-config.1: s/2.14.0/2.14.1/, s/2140/2141/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
* builds/unix/configure.raw (version_info): Set to 26:4:20.
* CMakeLists.txt (VERSION_PATCH): Set to 1.
|
|
566f8805
|
2025-09-10T14:22:49
|
|
[base] Fix return values of two Font Variation functions.
* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
FT_Set_Var_Blend_Coordinates): Do it.
Fixes issue #1355.
|
|
53b9319b
|
2025-09-10T14:10:23
|
|
* src/autofit/afgsub.c (af_map_lookup): Fix handling of lookup type 7.
Fixes issue #1356.
|
|
36f917cc
|
2025-09-08T11:03:24
|
|
* src/truetype/ttinterp.c (TT_Run_Context): Fix IUP tracking bits.
Correctly fixes #1353 and #1349.
|
|
3ac49075
|
2025-09-08T10:45:16
|
|
Typo!
|
|
89eba38e
|
2025-09-08T10:43:35
|
|
* src/truetype/ttinterp.c (TT_Run_Context): Reset IUP tracking bits.
Fixes #1353.
|
|
e969f529
|
2025-09-08T05:57:19
|
|
[autofit] Fix HarfBuzz calling.
* src/autofit/afadjust.c (af_reverse_character_map_new)
[FT_CONFIG_OPTION_USE_HARFBUZZ]: Use `ft_hb_enabled`.
Fixes issue #1354.
|
|
9db5233c
|
2025-09-08T05:41:37
|
|
* docs/release: Use `sshpass` for SourceForge.net password.
|
|
bdd560fc
|
2025-09-08T04:51:59
|
|
* docs/release: Fix `scp` usage with OpenSSH version >= 9.0.
Starting with this version, OpenSSH uses `scp` with the SFTP protocol as the
default. However, SFTP is disabled on savannah.gnu.org since January 2025.
|
|
007c46eb
|
2025-09-06T15:55:12
|
|
* Version 2.14.0 released.
==========================
Tag sources with `VER-2-14-0'.
* docs/VERSION.TXT: Add entry for version 2.14.0.
* docs/CHANGES: Updated.
* docs/release, docs/README, builds/macs/README: Updated.
* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
builds/windows/visualc/index.html, builds/windows/visualce/index.html,
builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
docs/freetype-config.1: s/2.13.3/2.14.0/, s/2133/2140/.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 14.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.raw (version_info): Set to 26:3:20.
* CMakeLists.txt (VERSION_MINOR): Set to 14.
(VERSION_PATCH): Set to 0.
|
|
28223c5f
|
2025-09-06T16:39:55
|
|
* builds/toplevel.mk (do-dist): Download shallow clone of `config.git`.
No need for any other commit than the current one.
|
|
32cb5390
|
2025-09-06T06:14:03
|
|
Update all copyright notices.
|
|
d3668e00
|
2025-09-05T20:21:27
|
|
src/sfnt/ttload.c (tt_face_load_any): Correctly handle font containers.
Reported as
https://issues.oss-fuzz.com/issues/424613326
|
|
ba7eb5be
|
2025-08-30T20:34:36
|
|
Clean up OpenVMS support.
This avoids cluttering the source code with VMS-specific changes.
* include/freetype/internal/ftcalc.h [__VMS], src/base/ftcalc.c
[vms_auto64_source]: Remove.
* builds/vms/patch_ftcalc.sed: New file.
* vms_make.com: Change macro definitions while this script is running; we
use `GNU sed` to inject the necessary preprocessor code on the fly.
|
|
c6cf32de
|
2025-08-31T22:39:11
|
|
* src/psaux/psauxmod.h (psaux_driver_class): Removed declaration.
|
|
61a42342
|
2025-08-29T16:59:50
|
|
[base] Use const FT_Module_Class.
This is intended to warn against modifying any fields in the class,
at compile-time and avoid crashes at run-time.
* include/freetype/internal/ftobjs.h (FT_ModuleRec): Do it.
* src/base/ftobjs.c (Destroy_Module, FT_Add_Module): Updated.
|
|
48f91b53
|
2025-08-27T11:16:07
|
|
* src/base/ftobjs.c (FT_Load_Glyph): Reduces scope of 'ttface'.
|
|
c0851258
|
2025-08-25T12:35:50
|
|
* src/truetype/ttinterp.c: Fix some builds.
|
|
8cbabc47
|
2025-08-21T07:30:29
|
|
* subprojects/*.wrap: Updated.
|
|
23fa1e35
|
2025-08-21T07:09:15
|
|
Updating `CHANGES` file; minor fixes elsewhere (mostly formatting).
|
|
ca0247af
|
2025-08-19T23:39:02
|
|
[truetype] Fix compilation without bytecode.
Fixes #1351 and various warnings about unused variables.
* src/truetype/ttinterp.c: Put the entire body under #ifdef.
* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Relocate
some declarations.
* src/truetype/ttinterp.h: Remove some #ifdef conditions.
* src/truetype/ttobjs.c (tt_size_done): Modified.
|
|
cff66748
|
2025-08-14T12:39:57
|
|
[truetype] Small fix in the incremental interface (again).
Fixes #1299, last [-Wdangling-pointer=] warning.
* src/truetype/ttgload.c (load_truetype_glyph): Restore original stream
on exit unconditionally.
|
|
6bd5a8cc
|
2025-08-14T12:23:03
|
|
[truetype] Small fix in the incremental interface.
Fixes #1299, last [-Wdangling-pointer=] warning.
* src/truetype/ttgload.c (load_truetype_glyph): Restore original stream
on exit.
|
|
508c30e0
|
2025-08-14T10:33:30
|
|
* src/autofit/afgsub.c: Fix a warning.
Fixes [-Wunused-function] warning without HarfBuzz.
|
|
adc7b855
|
2025-08-11T15:34:27
|
|
* */ftoption.h: Update C99 wording.
|
|
4c77a696
|
2025-08-11T13:20:50
|
|
* */ftoption.h: Note C99 compliance.
|
|
670d0b21
|
2025-08-08T01:34:30
|
|
[ttgxvar] Fix caching of scalars when there are intermediate tuples.
For example, with `GoogleSansFlex-Regular.ttf` at ROND=100, the 'Q' glyph
was misrendering.
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Reset `tupleScalars`
earlier.
|
|
aa2ee67b
|
2025-08-05T17:34:09
|
|
Improvements to OpenVMS support.
* include/freetype/internal/ftcalc.h [__VMS]: Undefine `FT_MulFix`.
* src/base/ftcalc.c [vms_auto64_source]: Define `FT_MulFix`.
* vms_make.com: Also create 32bit version of the FreeType library.
|
|
27c1cb10
|
2025-08-04T11:47:10
|
|
* docs/CHANGES: Mention 'ftmulti' improvements.
|
|
42047ae8
|
2025-08-02T11:54:16
|
|
[type1/MM] Correctly reset the default instance.
Call T1_Set_MM_WeightVector, which actually sets default weights,
instead of TT_Set_MM_Blend, which just centers the axes.
* src/type1/t1load.c (T1_Reset_MM_Blend): Do it.
|
|
08805be5
|
2025-08-01T11:01:16
|
|
[truetype/v40] Fix ROUND_XY_TO_GRID handling.
Fixes #1346.
* src/truetype/ttgload.c (TT_Process_Composite_Component): Round
the x-position unless in backward_compatibility mode.
|
|
6c18a397
|
2025-07-30T09:45:53
|
|
* src/truetype/ttinterp.c (Ins_MDRP,MIRP): Small tweak.
|
|
64a0c64a
|
2025-07-29T22:21:42
|
|
[truetype] Tweak size management.
* include/freetype/internal/services/svmetric.h (FT_Size_Reset_Func):
Update typedef, do not return error.
* src/truetype/ttobjs.c (tt_size_reset_height): Move the PPem error
handling from here...
(tt_size_reset): ... to here to improve readability.
src/truetype/ttobjs.h (tt_size_reset_height): Update prototype.
|
|
8ceba9bb
|
2025-07-29T19:06:27
|
|
[truetype] Relocate color compensation (cont'd).
* src/truetype/ttinterp.c (Inc_MDAR,MIAP,MDRP,MIRP): Fix forgotten
rounding.
|
|
47d80cf2
|
2025-07-29T07:12:24
|
|
[truetype] Fix EVEN and ODD instructions.
It is possible to have a fractional part after rounding when rounding
to half-grid or super-rounding. The specs call to ignore the fractional
part in that case.
^ src/truetype/ttinterp.c (Ins_EVEN, Ins_ODD): Fix mask.
|
|
ac662dcd
|
2025-07-27T19:24:36
|
|
* src/truetype/ttinterp.c: Fix comments.
|
|
63e2c058
|
2025-07-27T18:33:14
|
|
* src/truetype/ttinterp.h (TT_Round_Func): Fix argument.
Fixes #1347: function type mismatch.
|
|
62ca1fd2
|
2025-07-27T09:40:39
|
|
[truetype] Clean up size validation.
Rely on non-zero ppem to validate the size object.
* src/truetype/ttobjs.h (TT_Size_Merics): Remove the `valid` flag.
* src/truetype/ttobjs.c (tt_size_init,done,reset,reset_height): Updated.
* src/truetype/ttgload.c (TT_Load_Glyph): Check for non-zero ppem.
|
|
9e9d539f
|
2025-07-27T09:28:17
|
|
[truetype] Relocate color compensation.
The rounding color compensation, which is not used by FreeType, belongs
to GS. This is a more logical place for it, next to round_state.
* src/truetype/ttobjs.h (TT_GraphicsState): Move compensations here...
(TT_Size_Metrics): ... from here.
* src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
* src/truetype/ttinterp.c (tt_default_graphics_state): Updated.
(Ins_ROUND,NROUND,EVEN,ODD): Updated.
(Round_*): Updated.
|
|
d6022b6d
|
2025-07-26T07:00:51
|
|
[smooth] Remove usage of setjmp and longjmp.
To support WASM targets with slow or unsupported setjmp and longjmp,
we eliminate these calls in favor of an error propagation model.
When gray_set_cell is out of cells, it raises an exception which is
later handled in gray_convert_glyph_inner.
This is a less invasive alternative to !385.
* src/smooth/ftgrays.c (gray_set_cell): Raise the overflow exception
and redirect all work to `cell_null`.
(gray_move,line,conic,cubic_to): Return the exception.
(gray_convert_glyph, gray_convert_glyph_inner): Handle the exception.
|
|
b04db387
|
2025-07-04T19:52:53
|
|
[sfnt] Rewrite GPOS kerning support. (2/2)
The previous code had a fundamental flaw: it didn't validate the necessary
parts of the 'GPOS' table before accessing it, causing crashes with
malformed data (since `TT_CONFIG_OPTION_GPOS_KERNING` is off by default,
standard fuzzers don't catch these problems). Additionally, it did a lot of
parsing while accessing kerning data, making it rather slow.
The new implementation fixes this. After validation, offsets to the 'GPOS'
lookup subtables used in the 'kern' feature that correspond to 'simple'
kerning (i.e., similar to 'kern' table kerning) are stored in `TT_Face`;
this greatly simplifies and accelerates access to the kerning data.
Testing with font `SF-Pro.ttf` version '1.00', the validation time for the
'GPOS' table increases the start-up time of `FT_New_Face` by less than 1%,
while calls to `FT_Get_Kerning` become about 3.5 times faster.
* include/freetype/internal (gpos_kerning_available): Replace with...
(gpos_lookups_kerning, num_gpos_lookups_kerning): ... these new fields.
Update callers.
* src/ttgpos.c [TT_CONFIG_OPTION_GPOS_KERNING]: A new implementation.
|
|
8ef26a80
|
2025-07-04T19:50:48
|
|
[sfnt] Rewrite GPOS kerning support. (1/2)
This commit removes the previous implementation.
|
|
ecbc1abf
|
2025-07-04T06:12:34
|
|
[cff] Support GPOS kerning.
* src/cff/cffdrivr.c (cff_get_kerning) [TT_CONFIG_OPTION_GPOS_KERNING]: Add
code similar to the one in `tt_get_kerning`.
|
|
fb6a7426
|
2025-07-04T06:03:37
|
|
* src/sfnt/ttkern.h (TT_FACE_HAS_KERNING): Remove macro.
Given that we also support (limited) 'GPOS' table kerning if
`TT_CONFIG_OPTION_GPOS_KERNING` is defined, the name of this macro is
misleading since it only is true for 'kern' table kerning.
* src/sfnt/sfobjs.c (sfn_load_face): Replace `TT_FACE_HAS_KERNING` with
plain code.
|
|
0fd0cf33
|
2025-07-01T22:15:07
|
|
[autofit] Remove `globals->gsub_length`.
We completely validate the accessed data from the 'GSUB' table, making this
field unnecessary.
* src/autofit/afglobal.h (AF_FaceGlobalsRec): Remove `gsub_length` field.
* src/autofit/afglobal.c (af_face_globals_new), src/autofit/afgsub.c
(af_parse_gsub): Updated.
|
|
f1cd6dbf
|
2025-07-01T21:32:47
|
|
* src/truetype/ttobjs.c (tt_size_init_bytecode): Correct previous fix.
`FT_NEW_ARRAY` expects a signed value, not an unsigned one.
|
|
5e671510
|
2025-07-01T18:09:27
|
|
* src/autofit/afgsub.c: Include `tttables.h` and `afgsub.h`.
This fixes 'make multi' compilation with clang.
Reported as
https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/381#note_2984610
|
|
01695ea7
|
2025-07-01T18:06:17
|
|
Various minor fixes.
As reported by clang 19.
* src/autofit/afadjust.c (adjustment_database): Make it static.
* src/base/ftdbgmem.c (FT_MEM_SIZE_MIN): Remove unused macro.
* src/psaux/psobjs.c (skip_procedure), src/truetype/ttinterp.c (Ins_IF,
Ins_ELSE, Ins_FDEF, Ins_IDEF): Add `default` clause.
|
|
f1be7392
|
2025-07-01T18:00:12
|
|
More signedness fixes.
As reported by clang 19.
* src/autofit/afadjust.c (add_substitute): Make first argument unsigned.
Update all callers.
Other minor signedness fixes.
(af_reverse_character_map_new): Minor signedness fixes.
* src/autofit/afgsub.c (af_hash_insert): Minor signedness fixes.
* src/autofit/aflatin.c
(af_glyph_hints_apply_vertical_separation_adjustments): Make third
argument unsigned.
Update all callers.
Other minor signedness fixes.
(af_latin_hints_apply): Minor signedness fixes.
* src/bdf/bdflib.c (bdf_parse_bitmap_): Minor signedness fix.
* src/truetype/ttobjs.c (tt_size_init_bytecode): Minor signedness fix.
|
|
8d82c9fa
|
2025-07-01T17:08:37
|
|
*/*: Fix trivial signedness issues with format strings in trace messages.
As reported with clang 19's `-Wformat` option.
|
|
346d8fae
|
2025-07-01T05:16:54
|
|
Fix `make multi`.
Reported as
https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/381#note_2984253
* src/base/fthash.c: Include `ftobjs.h`.
* src/autofit/afgsub.c: Include `afglobal.h`.
|
|
39d85f16
|
2025-06-30T09:32:19
|
|
* MSBuild.sln: Minor.
|
|
d7e640b9
|
2025-06-29T07:45:09
|
|
[doc] Revise font variation API.
|
|
636aede9
|
2025-06-28T20:25:29
|
|
[doc] Use 'Adobe MM', 'TrueType GX', and 'OpenType Font Variations'.
|
|
6a982bde
|
2025-06-14T16:21:44
|
|
[autofit] Speed up computation of `af_reverse_character_map_new`. (4/4)
With this commit, the start-up time for creating the reverse character map
gets reduced from more than 300% to about 25% (as tested with `arial.ttf`
version 7.00).
* src/autofit/afadjust.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
`afgsub.h`.
(add_substitute): New auxiliary function to recursively add elements to
the reverse cmap.
(af_reverse_character_map_new): New code that replaces the old code
removed in the previous commit.
|
|
9e8b642b
|
2025-06-13T11:39:43
|
|
[autofit] Speed up computation of `af_reverse_character_map_new`. (3/4)
Rip out some HarfBuzz code of `af_reverse_character_map_new`. The new code
comes immediately in a follow-up commit, making it easier to follow the
changes.
* src/autofit/afadjust.c (af_get_glyph_alternates_helper,
af_get_glyph_alternates): Remove.
(af_reverse_character_map_new): Remove code to create the `*map` hash.
|
|
9bfb8e80
|
2025-06-13T11:27:09
|
|
[autofit] Speed up computation of `af_reverse_character_map_new`. (2/4)
Create an array of GSUB lookup indices for `SingleSubst` and
`AlternateSubst` lookup types to exit early if we have different types.
Also improve tracing.
* src/autofit/afglobal.h (AF_FaceGlobals) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
New fields `gsub_length`, `gsub`, and `gsub_lookups_single_alternate`.
* src/autofit/afglobal.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
`afgsub.h`.
(af_face_globals_new) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call
`af_parse_gsub` to fill `gsub_lookups_single_alternate`.
(af_face_globals_free): Updated.
* src/autofit/afadjust.c (af_get_glyph_alternates_helper): Exit early if we
possible.
(af_reverse_character_map_new): Trace GSUB lookup indices to be checked.
|
|
cda418a4
|
2025-06-13T11:23:14
|
|
[autofit] Speed up computation of `af_reverse_character_map_new`. (1/4)
Using HarfBuzz's API functions to construct the reverse map is too slow; we
have to call `hb_ot_layout_lookup_get_glyph_alternates` far too often
because it can only handle a single glyph at a time. For this reason we are
going to parse the GSUB table by ourselves.
The new non-local functions are `af_parse_gsub` and `af_map_lookup`.
* src/autofit/afgsub.c, src/autofit/afgsub.h: New files for parsing,
validating, and mapping the `SingleSubst` and `AlternateSubst` subtable
types of a GSUB table.
* src/autofit/autofit.c, src/autofit/rules.mk (AUTOF_DRV_SRC): Updated.
|
|
2ab0357d
|
2025-06-12T23:15:22
|
|
[base] Add no-overwrite hash insert functions.
* src/base/fthash.c (ft_hash_num_insert_no_overwrite,
ft_hash_str_insert_no_overwrite): New functions.
* include/freetype/internal/fthash.h: Updated.
|
|
820df387
|
2025-06-02T16:16:06
|
|
[base] Add iterators for `FT_Hash`.
* src/base/fthash.c (ft_hash_num_iterator, ft_hash_str_iterator): New
functions.
* include/freetype/internal/fthash.h: Updated.
|
|
61bacf3d
|
2025-06-18T14:57:56
|
|
Set minimum HarfBuzz version back to 2.0.0.
Due to the new GSUB parsing we no longer need
`hb_ot_layout_lookup_get_glyph_alternates`.
This partially reverts commit 5d2fd7608a9.
* CMakeLists.txt (HARFBUZZ_MIN_VERSION), meson.build (harfbuzz_dep),
builds/unix/configure.raw (harfbuzz_pkg): Set version to 2.0.0.
* src/autofit/ft-hb-decls.h: Remove entry for
`hb_ot_layout_lookup_get_glyph_alternates`.
|
|
58be4879
|
2025-06-24T13:31:10
|
|
[truetype] Add comment to explain heuristic limit for twilight points.
|
|
43940e4c
|
2025-06-23T11:04:43
|
|
[truetype] Restore non-persistent CVT and storage.
According to specifications, CVT and storage area may or may not be
persistent after modifications by a glyf program. FreeType had always
reset them, which was broken by the last commit.
* src/truetype/ttinterp.c (TT_Load_Context): Set CVT and storage here.
* src/truetype.ttobjs.c (tt_size_run_prep): Prioritize TT_Load_Context.
(tt_size_init_bytecode): Allocate but not set CVT and storage area.
|
|
36ddd0cb
|
2025-06-22T12:13:48
|
|
[truetype] Deduplicate 'codeRangeTable'.
* src/truetype/ttinterp.c (TT_Load_Context, TT_Save_Context): Do not
copy 'codeRangeTable'.
* src/truetype/ttobjs.h (TT_Size): Remove 'codeRangeTable'.
(TT_CodeRange_Tag, TT_CodeRange, TT_DefArray): Moved to...
* src/truetype/ttinterp.h: ... this header.1
|
|
c9cbfacb
|
2025-06-21T23:30:24
|
|
[truetype] Simplify bytecode allocations.
To avoid repeated synchronization, some TT_Size allocations are moved
TT_ExecContext for good. The memory blocks are also consolidated.
* src/truetype/ttinterp.c (TT_{Load,Save,Done}_Context): Remove
synchronization and stack management.
* src/truetype/ttobjs.c (tt_size_{init,done}_bytecode): Manage allocations
and assign them to the execution context.
(tt_size_run_prep): Updated.
|
|
4c2437ef
|
2025-06-21T22:59:29
|
|
[truetype] Rework handling of rendering mode in bytecode.
This replaces a large number of confusing boolean constructs that
describe the target rendering mode in the execution context with
the straight mode variable. It might fix some hidden bugs when
FT_LOAD_TARGET_XXX were used as flags, which they are not.
The condition that triggers the CV program re-execution is simplified.
These events due the rendering mode change are rather rare and unexpected
and, therefore, should not be over-analyzed. In v40, all mode changes
now trigger the CV program. In v35, only switches to/from mono do.
* src/truetype/ttinterp.h (TT_ExecContext): Replace 'grayscale',
'grayscale_cleartype', 'subpixel_hinting_lean', and 'vertical_lcd_lean'
with the rendering 'mode'.
* src/truetype/ttinterp.c (Ins_GETINFO): Updated.
* src/truetype/ttgload.c (tt_loader_init): Replace 'prep' re-execution
trigger and update 'backward_compatibility' condition.
(tt_loader_set_pp): Updated.
|
|
0e38fa75
|
2025-06-20T22:22:05
|
|
* src/truetype/{ttinterp.c,ttobjs.c}: Minor.
|
|
19770604
|
2025-06-20T21:48:14
|
|
[truetype] Clean up bytecode execution triggers.
This avoids executing the CV program twice and cleans up the use of
'fpgm' and 'prep' triggers
* src/truetype/ttgload.c (tt_loader_init): Call 'tt_size_init_bytecode'
and 'tt_size_run_prep' explicitly and avoid the call repetition.
* src/truetype/ttobjs.c (tt_size_ready_bytecode): Removed as unused.
(tt_size_init, tt_size_init_bytecode, tt_size_done_bytecode): Remove some
'fpgm' and 'prep' triggers and update.
(tt_size_run_fpgm, tt_size_run_prep): Do not set the pedantic flag here.
* src/truetype/ttobjs.h: Update signatures.
|
|
b647de09
|
2025-06-20T20:34:10
|
|
* src/truetype/ttgload.c (tt_loader_init, load_sbit_image): Clean up.
|
|
2041c65c
|
2025-06-20T20:20:54
|
|
[truetype] Simplify twilight zone management.
* include/freetype/internal/tttypes.h (TT_GlyphZone): Remove 'memory'.
* src/truetype/ttobjs.c (tt_glyphzone_done): Use 'memory' as argument.
(tt_glyphzone_new, tt_glyphzone_done): Allocate/free as a single block.
(tt_size_init_bytecode, tt_size_done_bytecode): Updated.
* src/truetype/ttobjs.h (tt_glyphzone_done): Updated signature.
|
|
3ccc27dc
|
2025-06-19T08:06:53
|
|
[autofit] Really fix handling of `RTLD_DEFAULT`.
This commit actually implements what commit 43ec023e1a7 describes.
* src/autofit/ft-hb.c (FT_RTLD_FLAGS): New macro for `dlopen`; it uses
`RTLD_GLOBAL` only if `RTLD_DEFAULT` is available.
|
|
738905b3
|
2025-06-14T20:18:48
|
|
[truetype] Revise twilight zone initiation.
This assures that twilight zone is reset before each CV program
execution, including after the rendering mode switch. Fixes #1344.
* src/truetype/ttobjs.c (tt_size_ready_bytecode): Relocate the GS
the twilight zone initiation from here...
(tt_size_run_prep): ... to this function, sho that it is always
done prior to the CV program execution.
* src/truetype/ttobjs.c (TT_Run_Context): Set twilight zone here...
(TT_Load_Context): ... rather than here, as it used to be.
|
|
04f68052
|
2025-06-12T21:02:57
|
|
* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Remove check.
The highest (sign) attribute bit is reserved and should be zero.
It is harmless to omit this check however. Fixes #1342.
|
|
fc051dc0
|
2025-06-12T10:20:07
|
|
[autofit] Ignore virtual glyph indices from GSUB lookups.
Reported as
https://issues.chromium.org/issues/420401651
* src/autofit/afadjust.c (af_reverse_character_map_new): Implement it.
|
|
3c14c525
|
2025-06-11T15:32:11
|
|
[truetype] Clean up TT_GlyphZone.
* include/freetype/internal/tttypes.h (TT_GlyphZone): Delete fields.
* src/truetype/ttobjs.c (tt_glyphzone_new, tt_glyphzone_done,
tt_size_init_bytecode): Updated.
|
|
1529bc6e
|
2025-06-11T07:41:01
|
|
[truetype] Use FT_ARRAY_ZERO.
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Updated.
* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids,
tt_size_ready_bytecode): Updated.
|
|
5ab9e5c5
|
2025-06-08T07:51:08
|
|
[truetype] Rearrange bytecode run.
This is a minor change with large code rearrangements.
* src/truetype/ttinterp.c (TT_RunIns): Just loop through instructions
and move all setup to...
(TT_Run_Context): ... here; relocated.
(Compute_Round): Replaced by simple assignment, removed.
|
|
68c62e19
|
2025-06-07T22:15:18
|
|
[truetype] Relocate the interpreter pointer.
This reduces dereferencing when calling the interpreter.
* include/freetype/internal/tttypes.h (TT_Face): Move it from here...
* src/truetype/ttinterp.h (TT_ExecContext): ... to here.
* src/truetype/ttobjs.c (tt_size_init_bytecode): Move its initialization
* src/truetype/ttinterp.c (TT_New_Context): ... to here.
(TT_Run_Context): Updated.
|
|
ecfefd8c
|
2025-06-07T22:12:45
|
|
[truetype] Clean up the loader initiation.
* include/freetype/internal/tttypes.h (TT_LoaderRec): Remove unused field.
* src/truetype/ttgload.c (tt_loader_init): Refactor.
|
|
5631650b
|
2025-06-07T22:09:28
|
|
[truetype] Modify bytecode initiation.
This reduces the number of function calls and data copying events.
* src/truetype/ttinterp.c (TT_Goto_CodeRange): Merge into...
(TT_Set_CodeRange): ... this function.
(TT_Load_Context): Do not set up any zones, copy GS, or prepare the
execution...
(TT_Run_Context): ... do this here instead..
* src/truetype/ttinterp.c (TT_Set_CodeRange): Update signature.
* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Call
TT_Run_Context.
* src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
|
|
70281e0f
|
2025-06-07T21:59:50
|
|
[truetype] Modify the graphics state management.
Instead of restoring persistent GS variables, we only save modifications
permitted by the CVT program. This reduces the context manipulations.
* src/truetype/ttobjs.h (TT_GraphicsState): Reorder fields.
* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep):
Do not alter the context.
* src/truetype/ttgload.c (TT_Hint_Glyph): Do not reset GS.
(tt_loader_init): Fix potential issue in 'instruct_control' handling.
* src/truetype/ttinterp.c (TT_Run_Context): Fully reset GS.
(TT_Load_Conext): Rearrange and remove the 'size' check, already
performed in FT_Load_Glyph.
(TT_Save_Context): Save only modifiable GS parts.
(tt_default_graphics_state): Updated.
* src/truetype/ttinterp.h (TT_Run_Context): Update signature.
|
|
a67b2bab
|
2025-06-10T12:11:41
|
|
[gxvar] Really fix setting of named-instance to Regular.
This fixes an ommission in commit cf06661c51.
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize `error`.
|
|
d736e741
|
2025-06-10T05:09:58
|
|
Two more link fixes.
|
|
7f559fbe
|
2025-06-10T04:55:43
|
|
Update links.
Found with `linkchecker --check-extern index.html` running locally in the
'freetype-web' repository.
|
|
cf06661c
|
2025-05-31T15:57:41
|
|
Fix setting of named-instance to Regular
Fixes https://gitlab.freedesktop.org/freetype/freetype/-/issues/1341
And more elaborate avoidance of loading face->blend if all coords
are zero.
|
|
320b72a2
|
2025-06-04T07:51:46
|
|
* src/type42/t42objs.c (T42_Size_Init): Fix uninitialized use.
Found by Ozkan Sezer.
|
|
bd28cf7a
|
2025-06-04T08:55:04
|
|
[autofit] Fix `-Wunused-but-set-variable` warning in Windows builds.
With this commit, the following warning gets removed.
```
In file included from src/autofit/autofit.c:21:0:
src/autofit/ft-hb.c: In function 'ft_hb_funcs_init':
src/autofit/ft-hb.c:75:35: warning:
variable 'version_atleast' set but not used [-Wunused-but-set-variable]
ft_hb_version_atleast_func_t version_atleast = NULL;
^~~~~~~~~~~~~~~
```
* src/autofit/ft-hb.c (ft_hb_funcs_init): Move `NULL` check of
`version_atleast` out of ifdefs.
|
|
5bc20817
|
2025-06-04T08:21:50
|
|
[build] Revise visibility attributes usage in autotools and CMake.
* CMakeLists.txt: Set `C_VISIBILITY_PRESET` to hidden for non-Windows only.
Windows handles exports with `DLL_EXPORT` defined, and old MinGW
toolchains emit a lot of warnings about visibility attributes not being
supported in this configuration.
* build/unix/configure.raw: Revise visibility attributes checks by compiling a
better test program with `-Werror` in `CFLAGS` so that warnings correctly
indicate unsupported configurations.
|
|
81f839a7
|
2025-06-03T23:15:32
|
|
* CMakeLists.txt: Add support for `FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC`.
This commit introduces a new CMake option `FT_DYNAMIC_HARFBUZZ`.
|
|
1518bc83
|
2025-06-03T12:38:38
|
|
* src/autofit/ft-hb.c: Fix definition of `_GNU_SOURCE`.
Commit 43ec023e1a730f defined the macro too late.
|
|
2adb5361
|
2025-06-03T10:35:16
|
|
Replace 'www.freetype.org' with 'freetype.org'.
|
|
f0679e75
|
2025-05-29T07:20:04
|
|
* builds/unix/configure.raw: Fix HarfBuzz library detection for MinGW.
Set `have_harfbuzz*` variables explicitly to dynamic for MinGW, since
Windows uses its own `LoadLibrary` call.
This fixes a MinGW configuration error:
```
checking for HARFBUZZ... no
checking for dlopen in -lc... no
checking for dlopen in -ldl... no
configure: error: harfbuzz support requested but library not found
```
|