|
467b026c
|
2017-02-18T10:42:48
|
|
Remove clang warnings.
* src/autofit/aflatin.c (af_latin_sort_blue): Add missing `static'
keyword.
* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates):
Initialize some variables.
|
|
2b0ac189
|
2017-02-18T10:42:23
|
|
Add face property for stem darkening.
* include/freetype/ftautoh.h (FT_PARAM_TAG_STEM_DARKENING): New
macro.
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
`no_stem_darkening' field.
* src/autofit/afloader.c (af_loader_load_glyph),
src/autofit/afmodule.c (af_property_set): Updated.
* src/base/ftobjs.c: Include FT_AUTOHINTER_H.
(ft_open_face_internal): Updated.
(FT_Face_Properties): Handle FT_PARAM_TAG_STEM_DARKENING.
* src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Updated.
* src/cff/cffdrivr.c (cff_property_set): Updated.
|
|
2e951988
|
2017-02-16T20:45:45
|
|
Add face property for LCD filter weights.
* include/freetype/ftlcdfil.h (FT_PARAM_TAG_LCD_FILTER_WEIGHTS,
FT_LCD_FILTER_FIVE_TAPS): New macros.
(FT_LcdFiveTapFilter): New typedef.
* include/freetype/ftobjs.h (FT_Face_InternalRec)
[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add `lcd_weights' field.
(FT_Bitmap_LcdFilterFunc): Change third argument to weights array.
(ft_lcd_filter_fir): New prototype.
(FT_LibraryRec): Updated.
* src/base/ftlcdfil.c (_ft_lcd_filter_fir): Renamed to...
(ft_lcd_filter_dir): ... this base function.
Updated.
(_ft_lcd_filter_legacy): Updated.
(FT_Library_SetLcdFilterWeights, FT_Library_SetLcdFilter): Updated.
* src/base/ftobjs.c (ft_open_face_internal): Updated.
(FT_Face_Properties): Handle FT_PARAM_TAG_LCD_FILTER_WEIGHTS.
* src/smooth/ftsmooth.c (ft_smooth_render_generic)
[FT_CONFIG_OPTION_SUBPIXEL_RENDERING: Handle LCD weights from
`FT_Face_Internal'.
|
|
64cdee73
|
2017-02-15T08:06:35
|
|
Add new function `FT_Face_Properties'.
This commit provides the framework, to be filled with something
useful in the next commits.
* include/freetype/freetype.h (FT_Face_Properties): Declare.
* src/base/ftobjs.c (FT_Face_Properties): New function.
|
|
319125d4
|
2017-02-13T09:34:17
|
|
[autofit] Prevent overlapping blue zones.
Problem reported as
https://github.com/google/fonts/issues/632
The font in question (Nunito) has values 705 and 713 for the
reference and overshoot values, respectively, of the first blue
zone. Blue zone 2, however, has value 710 for both the reference
and overshoot. At 12ppem, reference and overshoot of blue zone 0
becomes 8px, while blue zone 2 becomes 9px.
A peculiarity of this font is that the tops of isolated vertical
stems like `N' have a slight overshoot also. The auto-hinter tries
to find the nearest blue zone using the *original* coordinates. For
vertical stems, this is value 713. For normal horizontal tops like
in character `E', this is value 710. Since value 713 is mapped to
8px but value 710 to 9px, `N' and similar characters are one pixel
higher than `E', which looks very bad.
This commit sanitizes blue zones to avoid such a behaviour.
* src/autofit/aflatin.c (af_latin_sort_blue): New function.
(af_latin_metrics_init_blues): Sort blue values and remove overlaps.
|
|
fcd47b3d
|
2017-02-12T23:07:29
|
|
* src/smooth/ftgrays.c (gray_sweep): Improve code.
|
|
faa3c882
|
2017-02-06T13:13:02
|
|
[truetype] Implement `VVAR' table support.
* src/truetype/ttgxvar.h (GX_HVarTable): Renamed to...
(GX_HVVarTable): ...This.
(GX_Blend): Add fields for `VVAR' table handling.
Other minor updates.
* src/truetype/ttgxvar.c (ft_var_load_hvar): Renamed to...
(ft_var_load_hvvar): ...This.
Handle VVAR loading also (controlled by an additional parameter).
(tt_hadvance_adjust): Renamed to...
(tt_hvadvance_adjust): ...This.
Handle application of advance height also (controlled by an
additional parameter).
(tt_hadvance_adjust, tt_vadvance_adjust): Wrappers for
`tt_hvadvance_adjust'.
* src/truetype/ttdriver.c (tt_service_metrics_variations): Updated.
|
|
1dee4bf9
|
2017-02-05T08:33:10
|
|
[autofit] Use better blue zone characters for lowercase latin.
The number of lowercase characters for computing the top flat blue
zone value was too small (in most cases only `x' and `z'). If one
of the two characters has a large serif, say, it can happen that
FreeType must select between two different values, having a 50%
chance to use the wrong one. As a result, rendering at larger PPEM
values could yield uneven lowercase glyph heights.
Problem reported by Christoph Koeberlin <christoph@koe.berlin>.
* src/autofit/afblue.dat (AF_BLUE_STRING_LATIN_SMALL): Replaced
with...
(AF_BLUE_STRING_LATIN_SMALL_TOP, AF_BLUE_STRING_LATIN_SMALL_BOTTOM):
... New, extended sets.
(AF_BLUE_STRINGSET_LATN): Updated.
* src/autofit/afblue.c, scr/autofit/afblue.h: Regenerated.
|
|
1c513fbb
|
2017-02-04T20:30:40
|
|
Make `freetype-config' a wrapper of `pkg-config' if possible.
Based on ideas taken from
http://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-multilib.patch
http://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-2.5.3-freetype-config-prefix.patch
* builds/unix/freetype-config.in: Rewritten. Use `pkg-config' to
set output variables if program is available.
* docs/CHANGES, docs/freetype-config.1: Updated.
|
|
79042890
|
2017-02-04T16:08:08
|
|
* builds/unix/unix-def.in (freetype-config): Fix permissions.
|
|
0a1169f7
|
2017-02-03T19:38:20
|
|
* src/autofit/afglobal.c (af_face_globals_free): Erase useless code.
|
|
5a7f2ff5
|
2017-02-03T08:31:18
|
|
* include/freetype/ftgasp.h (FT_GASP_SYMMETRIC_GRIDFIT): Fix value.
Reported by Behdad.
|
|
e6699596
|
2017-02-02T11:38:04
|
|
[truetype] Fix MVAR post-action handling.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=509
* src/truetype/ttobjs.c (tt_size_reset): Do nothing for CFF2. This
is important to make `tt_size_reset_iterator' (called in
`tt_apply_mvar') always work.
|
|
dadc50a4
|
2017-02-02T07:13:29
|
|
Make compilation with FT_CONFIG_OPTION_PIC work again.
All code committed here is guarded with `FT_CONFIG_OPTION_PIC'.
* include/freetype/internal/services/svmetric.h
(FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Remove trailing semicolon.
* src/autofit/aflatin.c (af_latin_hints_compute_edges,
af_latin_hint_edges): Provide `globals' variable.
* src/autofit/afloader.c (af_loader_load_glyph): Remove shadowing
variable.
* src/autofit/afmodule.c (AF_SCRIPT_CLASSES_GET,
AF_STYLE_CLASSES_GET): Redefine.
* src/autofit/aftypes.h (AF_DEFINE_WRITING_SYSTEM_CLASS): Fix typo.
* src/cff/cffparse.c (CFF_FIELD_BLEND): Provide it.
* src/cff/cffpic.h (CffModulePIC): Fix typo.
|
|
2ca5b07d
|
2017-01-31T23:13:50
|
|
* src/smooth/ftgrays.c (gray_render_scanline): Improve code.
|
|
fa437d8d
|
2017-01-31T23:06:38
|
|
[cff] Provide metrics variation service interface (#50196).
Only now I've got an OTF with an HVAR table for testing...
The code in `ftmm.c' uses `FT_FACE_LOOKUP_SERVICE' to get the
metrics variations interface. However, this didn't work with
`FT_FACE_FIND_GLOBAL_SERVICE' used in `sfnt_init_face'.
* src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
(cff_hadvance_adjust, cff_metrics_adjust): Wrapper functions for
metric service functions from the `truetype' module.
(cff_service_metrics_variations): New service.
(cff_services): Updated.
* src/cff/cffpic.h (CFF_SERVICE_METRICS_VAR_GET): New macro.
[FT_CONFIG_OPTION_PIC]: Synchronize code.
* src/sfnt/sfobjs.c (sfnt_init_face): Replace call to
FT_FACE_FIND_GLOBAL_SERVICE with `ft_module_get_service' to always
load the service from the `truetype' module.
|
|
4058939c
|
2017-01-31T19:11:56
|
|
Add framework to support services with 9 functions.
* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC9):
New macro.
|
|
1e550601
|
2017-01-31T18:47:10
|
|
[base] Fix error handing in MM functions.
* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates):
Implement it.
|
|
e80e4d81
|
2017-01-31T08:32:07
|
|
[truetype] Fix sanity check for `gvar' table (#50184).
* src/truetype/ttgxvar.c (ft_var_load_gvar): There might be missing
variation data for some glyphs.
|
|
31f80553
|
2017-01-31T08:10:04
|
|
[autofit] Avoid uninitialized jumps (#50191).
* src/autofit/afcjk.c (af_cjk_metrics_check_digits),
src/autofit/aflatin.c (af_latin_metrics_check_digits): Initialize
`advance'.
|
|
464b16ba
|
2017-01-27T08:45:46
|
|
s/GB2312/PRC/.
* include/freetype/freetype.h (FT_ENCODING_PRC): New enum value.
(FT_ENCODING_GB2312): Deprecated.
* include/freetype/ttnameid.h (TT_MS_ID_PRC): New macro.
(TT_MS_ID_GB2312): Deprecated.
* src/sfnt/sfobjs.c (sfnt_find_encoding): Updated.
* docs/CHANGES: Updated.
|
|
f4253366
|
2017-01-27T00:06:52
|
|
[base] Add `FT_Get_Sfnt_LangTag' function.
* include/freetype/ftsnames.h (FT_SfntLangTag): New structure.
(FT_Get_Sfnt_LangTag): New declaration.
* src/base/ftsnames.c (FT_Get_Sfnt_LangTag): New funtion.
* docs/CHANGES: Updated.
|
|
939df420
|
2017-01-26T21:41:38
|
|
[sfnt] Support `name' table format 1.
* include/freetype/internal/tttypes.h (TT_LangTagRec): New
structure.
(TT_NameTableRec): Add fields `numLangTagRecords' and `langTags'.
* src/sfnt/ttload.c (tt_face_load_name): Add support for language
tags.
Reduce array size of name strings in case of invalid entries.
(tt_face_free_name): Updated.
* docs/CHANGES: Updated.
|
|
f4e56966
|
2017-01-25T15:08:41
|
|
[sfnt] s/TT_NameEntry/TT_Name/.
* include/freetype/internal/tttypes.h (TT_NameEntryRec): Renamed
to...
(TT_NameRec): This.
(TT_NameTableRec): Updated.
* src/base/ftsnames.c (FT_Get_Sfnt_Name): Updated.
* src/sfnt/sfdriver.c (sfnt_get_ps_name): Updated.
* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
tt_name_entry_ascii_from_other): Renamed to...
(tt_name_ascii_from_utf16, tt_name_entry_ascii_from_other): This,
respectively.
(TT_NameEntry_ConvertFunc): Renamed to...
(TT_Name_ConvertFunc): This.
(tt_face_get_name): Updated.
* src/sfnt/ttload.c (tt_face_load_name, tt_face_free_names):
Updated.
|
|
983fb0df
|
2017-01-24T23:56:59
|
|
Typos.
|
|
14397120
|
2017-01-24T20:48:50
|
|
[sfnt] Fix Postscript name service for symbol fonts.
* src/sfnt/sfdriver.c (sfnt_get_ps_name): Accept PID/EID=3/0
entries also.
|
|
141f0ea5
|
2017-01-24T17:00:36
|
|
[truetype] For OpenType 1.7: s/preferred/typographic/ (sub)family.
* include/freetype/ftsnames.h
(FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY,
FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY): New macros.
(FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Deprecated.
* include/freetype/ttnameid.h (TT_NAME_ID_TYPOGRAPHIC_FAMILY,
TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY): New macros.
(TT_NAME_ID_PREFERRED_FAMILY, TT_NAME_ID_PREFERRED_SUBFAMILY):
Deprecated.
* src/sfnt/sfobjs.c (sfnt_load_face): Updated.
* docs/CHANGES: Updated.
|
|
693f56ff
|
2017-01-23T12:53:18
|
|
[base] Add `FT_Set_Default_Properties' (#49187).
* include/freetype/ftmodapi.h: Add declaration.
* src/base/ftinit.c (ft_set_default_properties): Renamed to...
(FT_Set_Default_Properties): ... this.
(FT_Init_FreeType): Updated.
* docs/CHANGES: Updated.
|
|
f502092b
|
2017-01-23T11:47:40
|
|
[truetype] Minor updates for OpenType 1.8.1.
* src/truetype/ttgxvar.h (GX_MVarTable): `axisCount' has been
removed frem the specification; it is now reserved.
* src/truetype/ttgxvar.c (ft_var_load_mvar): Updated.
(GX_FVar_Head): Remove `countSizePairs'; the corresponding data
field in the `MVAR' table is now reserved.
(fvar_fields): Updated.
|
|
79d52b9a
|
2017-01-23T07:43:56
|
|
[truetype] Avoid segfault for invalid variation data.
* src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Assure
`itemCount' is not zero.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=441
|
|
15c6e8d6
|
2017-01-22T23:09:05
|
|
Typos.
|
|
43061d6a
|
2017-01-20T10:16:38
|
|
* src/truetype/ttinterp.c (TT_RunIns): Adjust loop detector limits.
|
|
236bbdbe
|
2017-01-18T23:12:31
|
|
Typos.
|
|
ca472220
|
2017-01-17T23:45:08
|
|
Typos.
|
|
ba6f3e18
|
2017-01-17T11:50:09
|
|
* include/freetype/ttnameid.h: Updated to OpenType 1.8.1.
(TT_APPLE_ID_FULL_UNICODE): New macro.
(TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC,
TT_MS_LANGID_UPPER_SORBIAN_GERMANY,
TT_MS_LANGID_LOWER_SORBIAN_GERMANY, TT_MS_LANGID_IRISH_IRELAND,
TT_MS_LANGID_INUKTITUT_CANADA_LATIN, TT_MS_LANGID_BASHKIR_RUSSIA,
TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG,
TT_MS_LANGID_GREENLANDIC_GREENLAND, TT_MS_LANGID_MAPUDUNGUN_CHILE,
TT_MS_LANGID_MOHAWK_MOHAWK, TT_MS_LANGID_BRETON_FRANCE,
TT_MS_LANGID_OCCITAN_FRANCE, TT_MS_LANGID_CORSICAN_FRANCE,
TT_MS_LANGID_ALSATIAN_FRANCE, TT_MS_LANGID_YAKUT_RUSSIA,
TT_MS_LANGID_KICHE_GUATEMALA, TT_MS_LANGID_KINYARWANDA_RWANDA,
TT_MS_LANGID_WOLOF_SENEGAL, TT_MS_LANGID_DARI_AFGHANISTAN): New
macros.
(TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC): Fix value.
(TT_MS_LANGID_GERMAN_LIECHTENSTEIN, TT_MS_LANGID_CATALAN_CATALAN,
TT_MS_LANGID_CHINESE_MACAO, TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT,
TT_MS_LANGID_KOREAN_KOREA, TT_MS_LANGID_ROMANSH_SWITZERLAND,
TT_MS_LANGID_SLOVENIAN_SLOVENIA, TT_MS_LANGID_BASQUE_BASQUE,
TT_MS_LANGID_SETSWANA_SOUTH_AFRICA,
TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA,
TT_MS_LANGID_ISIZULU_SOUTH_AFRICA, TT_MS_LANGID_KAZAKH_KAZAKHSTAN,
TT_MS_LANGID_KYRGYZ_KYRGYZSTAN, TT_MS_LANGID_KISWAHILI_KENYA,
TT_MS_LANGID_TATAR_RUSSIA, TT_MS_LANGID_ODIA_INDIA,
TT_MS_LANGID_MONGOLIAN_PRC, TT_MS_LANGID_TIBETAN_PRC,
TT_MS_LANGID_WELSH_UNITED_KINGDOM, TT_MS_LANGID_GALICIAN_GALICIAN,
TT_MS_LANGID_SINHALA_SRI_LANKA, TT_MS_LANGID_TAMAZIGHT_ALGERIA,
TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA, TT_MS_LANGID_YI_PRC,
TT_MS_LANGID_UIGHUR_PRC): New aliases.
Remove commented out code.
(TT_NAME_ID_LIGHT_BACKGROUND, TT_NAME_ID_DARK_BACKGROUND,
TT_NAME_ID_VARIATIONS_PREFIX): New macros.
(HAVE_LIMIT_ON_IDENTS): Remove macro (which was useless since many
years), use guarded long macros by default and define short versions
as aliases for the long ones.
|
|
322b3be5
|
2017-01-15T13:57:25
|
|
* src/truetype/ttgxvar.c (tt_apply_var): Handle underline parameters
also.
|
|
c529885b
|
2017-01-12T08:42:55
|
|
* src/base/ftobjs.c (ft_open_face_internal): Improve tracing.
|
|
723aafb5
|
2017-01-11T14:21:26
|
|
[truetype] Actually use metrics variation service.
* src/base/ftmm.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
(ft_face_get_mvar_service): New auxiliary function to look up
metrics variation service.
(FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates,
FT_Set_Var_Blend_Coordinates): Call metrics variation service.
* src/truetype/ttobjs.c (tt_face_init): Use metrics variations for
named instances.
|
|
d718ac4e
|
2017-01-11T14:12:34
|
|
[truetype] Provide metrics variation service.
* include/freetype/internal/services/svmetric.h
(FT_Metrics_Adjust_Func): Reduce number of necessary parameters.
* src/truetype/ttgxvar.c: Include FT_LIST_H.
(tt_size_reset_iterator): New auxiliary function for...
(tt_apply_var): New function.
* src/truetype/ttgxvar.h: Updated.
* src/truetype/ttdriver.c (tt_service_metrics_variations): Add
`tt_apply_mvar'.
* include/freetype/internal/ftserv.h (FT_ServiceCache): Add metrics
variation service.
|
|
07ee1d25
|
2017-01-11T12:50:51
|
|
[truetype] Parse `MVAR' table.
* src/truetype/ttgxvar.h (MVAR_TAG_XXX): New macros for MVAR tags.
(GX_Value, GX_MVarTable): New structures.
(GX_Blend): Add it.
* src/truetype/ttgxvar.c (GX_VALUE_SIZE, GX_VALUE_CASE,
GX_GASP_CASE): New macros.
(ft_var_get_value_pointer): New auxiliary function to get a pointer
to a value from various SFNT tables already stored in `TT_Face'.
(ft_var_load_mvar): New function.
(TT_Get_MM_Var): Call it.
(tt_done_blend): Updated.
|
|
8ab08cff
|
2017-01-11T10:05:27
|
|
[truetype] More preparations for MVAR support.
* src/truetype/ttobjs.c (tt_size_reset): Add argument to make
function only recompute ascender, descender, and height.
* src/truetype/ttobjs.h: Updated.
* src/truetype/ttdriver.c (tt_size_select, tt_size_request):
Updated.
|
|
7ccca6ae
|
2017-01-09T19:54:44
|
|
[pcf] Disable long family names by default.
* include/freetype/config/ftoption.h
(PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): Comment out.
|
|
08fd250e
|
2017-01-09T11:30:32
|
|
[pcf] Make long family names configurable.
The change from 2016-09-29 was too radical (except for people using
the openSuSE GNU/Linux distribution). To ameliorate the situation,
PCF_CONFIG_OPTION_LONG_FAMILY_NAMES gets introduced which controls
the feature; if set, a new PCF property option
`no-long-family-names' can be used to switch this feature off.
* include/freetype/config/ftoption.h, devel/ftoption.h
(PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): New option.
* include/freetype/ftpcfdrv.h: New header file (only containing
comments currently, used for building the documentation).
* include/freetype/config/ftheader.h (FT_PCF_DRIVER_H): New macro.
* src/pcf/pcf.h (PCF_Driver): Add `no_long_family_names' field.
* src/pcf/pcfdrivr.c: Include FT_SERVICE_PROPERTIES_H and
FT_PCF_DRIVER_H.
(pcf_property_set, pcf_property_get): New functions.
(pcf_service_properties): New service.
(pcf_servives): Updated.
(pcf_driver_init) [PCF_CONFIG_OPTION_LONG_FAMILY_NAMES]: Handle
`no_long_family_names'.
* src/pcf/pcfread.c (pcf_load_font): Handle `no_long_family_names'
and PCF_CONFIG_OPTION_LONG_FAMILY_NAMES.
* docs/CHANGES: Updated.
|
|
f837a50e
|
2017-01-09T10:49:03
|
|
[pcf] Introduce a driver structure.
To be filled later on with something useful.
* src/pcf/pcf.h (PCF_Driver): New structure.
* src/pcf/pcfdrivr.c (pcf_driver_init, pcf_driver_done): New dummy
functions.
(pcf_driver_class): Updated.
|
|
469ced7f
|
2017-01-08T09:28:34
|
|
[truetype] Again some GX code shuffling.
We need this later on for MVAR also.
* src/truetype/ttgxvar.c (tt_hadvance_adjust): Split off computing
an item store variation delta into...
(ft_var_get_item_delta): ...new function.
|
|
6812f174
|
2017-01-08T07:33:05
|
|
[truetype] Adjust font variation flags for MVAR.
* include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX):
Remove all flags related to MVAR; replace it with...
(TT_FACE_FLAG_VAR_MVAR): ...this new macro.
(TT_Face): Remove `mvar_support' field (which was still unused).
|
|
02919134
|
2017-01-07T07:45:28
|
|
[truetype] More GX code shuffling.
We need this later on for MVAR also.
* src/truetype/ttgxvar.c (tt_done_blend): Split off handling of item
variation store into...
(ft_var_done_item_variation_store): ...new function.
|
|
fb90f00c
|
2017-01-06T22:23:52
|
|
[truetype] More generalization of GX stuff.
We need this later on for MVAR also.
* src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping): Add
parameters for delta-set index mapping and item variation store.
(ft_var_load_item_variation_store): Add parameter for item variation
store.
s/hvarData/varData/.
Move allocation of `hvar_table' to...
(ft_var_load_hvar): ...this function.
Updated.
|
|
0bd0112f
|
2017-01-06T21:32:49
|
|
[truetype] Some GX structure renames for generalization.
We need this later on for MVAR also.
* src/truetype/ttgxvar.h (GX_HVarData): Renamed to...
(GX_ItemVarData): ...this.
(GX_HVarRegion): Renamed to...
(GX_VarRegion): ...this.
(GX_HVStore): Renamed to...
(GX_ItemVarStore): ...this.
(GX_WidthMap): Renamed to...
(GX_DeltaSetIdxMap): ...this.
(GX_HVarTable): Updated.
* src/truetype/ttgxvar.c: Updated.
|
|
9c814704
|
2017-01-06T21:13:36
|
|
[truetype] Code shuffling.
* src/truetype/ttgxvar.c (): Split off loading of item variation
store and delta set index mapping into...
(ft_var_load_item_variation_store,
ft_var_load_delta_set_index_mapping): ... new functions.
|
|
7e1cce58
|
2017-01-06T20:31:22
|
|
[truetype] Add HVAR access without advance width map.
* src/truetype/ttgxvar.c (ft_var_load_hvar): Handle case where
`offsetToAdvanceWidthMapping' is zero.
(tt_hadvance_adjust): Implement direct deltaSet access by glyph
index.
|
|
8b755445
|
2017-01-06T11:47:55
|
|
[pcf] Revise driver.
This commit improves tracing and handling of malformed fonts. In
particular, the changes to `pcf_get_properties' fix
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=379
* src/pcf/pcfread.c (tableNames): Use long names for better
readability.
(pcf_read_TOC): Allow at most 9 tables.
(pcf_get_properties): Allow at most 256 properties.
Limit strings array length to 256 * (65536 + 1) bytes.
Better tracing.
(pcf_get_metric): Trace metric data.
(pcf_get_metrics): Allow at most 65536 metrics.
Fix comparison of `metrics->ascent' and `metrics->descent' to avoid
potential overflow.
Better tracing.
(pcf_get_bitmaps): Allow at most 65536 bitmaps.
Better tracing.
(pcf_get_encodings, pcf_get_accel): Better tracing.
* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Don't trace `format' details.
These are now shown by `pcf_get_bitmaps'.
|
|
563ae780
|
2017-01-04T20:16:34
|
|
Update copyright year.
|
|
a7c2f44b
|
2017-01-04T13:12:03
|
|
* src/pcf/pcfdrivr.c (PCF_Face_Init): Trace compression format.
|
|
c9d47724
|
2017-01-04T10:00:49
|
|
[cff] More consistency checks for pure CFFs.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=378
* src/cff/cffload.c (cff_font_load): Check element number and size
of Name and Top DICT indices.
|
|
025226ae
|
2017-01-04T07:45:44
|
|
[cff, truetype] Minor tracing improvement.
* src/cff/cffobjs.c (cff_face_init), src/truetype/ttobjs.c
(tt_face_init): Indent first tracing message from SFNT driver.
|
|
8982405f
|
2017-01-03T09:46:19
|
|
[truetype] Various minor fixes.
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check instruction
size only if we do native hinting.
(TT_Load_Glyph): Trace returned error code.
* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Trace
returned error code.
(tt_size_ready_bytecode): Don't run `prep' table if `fpgm' table is
invalid.
|
|
624b6802
|
2017-01-03T09:42:41
|
|
[sfnt] Don't fail if PCLT, EBLC (and similar tables) are invalid.
These tables are optional.
* src/sfnt/sfobjs.c (sfnt_load_face): Implement it.
|
|
69414e7a
|
2017-01-03T06:53:13
|
|
* src/cff/cffparse.c (cff_parse_num): Simplify.
|
|
248eaa4f
|
2017-01-03T00:27:07
|
|
Various fixes for clang's undefined behaviour sanitizer.
* src/cff/cffload.c (FT_fdot14ToFixed): Fix casting.
(cff_blend_doBlend): Don't left-shift negative numbers.
Handle 5-byte numbers byte by byte to avoid alignment issues.
* src/cff/cffparse.c (cff_parse): Handle 5-byte numbers byte by byte
to avoid alignment issues.
* src/cid/cidload (cid_read_subrs): Do nothing if we don't have any
subrs.
* src/psaux/t1decode.c (t1_decode_parse_charstring): Fix tracing.
* src/tools/glnames.py (main): Put `DEFINE_PSTABLES' guard around
definition of `ft_get_adobe_glyph_index'.
* src/psnames/pstables.h: Regenerated.
* src/psnames/psmodule.c: Inlude `pstables.h' twice to get both
declaration and definition.
* src/truetype/ttgxvar.c (FT_fdot14ToFixed, FT_intToFixed): Fix
casting.
|
|
bdec162d
|
2017-01-01T20:51:55
|
|
[cff] Handle multiple `blend' operators in a row correctly.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=368
* src/cff/cffload.c (cff_blend_doBlend): Adjust `parser->stack'
pointers into `subFont->blend_stack' after reallocation.
|
|
63765a8f
|
2017-01-01T10:43:41
|
|
[sfnt] Return correct number of named instances for TTCs.
Without this patch, requesting information for face index N returned
the data for face index N+1 (or index 0).
* src/sfnt/sfobjs.c (sfnt_init_face): Correctly adjust `face_index'
for negative `face_instance_index' values.
|
|
24be60b5
|
2017-01-01T08:20:38
|
|
*/*: Use hex numbers for errors in tracing messages.
|
|
e9a154e7
|
2016-12-31T21:41:08
|
|
[truetype] Check axis count in HVAR table.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=362
* src/truetype/ttgxvar.c (ft_var_load_hvar): Check axis count.
(ft_var_load_avar): Fix tracing message.
|
|
069083cc
|
2016-12-30T21:16:46
|
|
* Version 2.7.1 released.
=========================
Tag sources with `VER-2-7-1'.
* docs/VERSION.TXT: Add entry for version 2.7.1.
* 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/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.7/2.7.1/, s/27/271/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
* builds/unix/configure.raw (version_info): Set to 19:0:13.
* CMakeLists.txt (VERSION_PATCH): Set to 1.
|
|
8fb9d22a
|
2016-12-30T19:51:37
|
|
[ftfuzzer] Replace `rand' with an xorshift algorithm.
* src/tools/ftfuzzer/ftfuzzer.cc: Don't include `stdlib.h'.
(Random): Implement and use a 32bit `xorshift' algorithm.
|
|
c9de4bf6
|
2016-12-30T10:07:23
|
|
Typo.
|
|
6b21d128
|
2016-12-30T10:00:54
|
|
[ftfuzzer] Restrict number of tested bitmap strikes.
Malformed fonts often have large values for the number of bitmap
strikes, and FreeType doesn't check the validity of all bitmap
strikes in advance.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=353
* src/tools/ftfuzzer/ftfuzzer.cc: Include `stdlib.h' for `rand'.
(Random): Small class to provide n randomly selected numbers
(without repitition) out of the value set [0,N].
(LLVMFuzzerTestOneInput): Use it to test only up to 10 bitmap
strikes.
|
|
7591bf11
|
2016-12-29T21:39:06
|
|
[truetype] Variation font API stability issues.
Make some functions work before a call to `TT_Set_MM_Blend'.
* src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if
we don't blend.
(TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we
don't blend.
|
|
91fc3bd7
|
2016-12-29T21:34:46
|
|
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=348
|
|
18018510
|
2016-12-29T21:30:06
|
|
[truetype] Tracing fixes.
* src/truetype/ttgxvar.c (tt_hadvance_adjust): Emit correct
information.
(TT_Set_Var_Design): Fix typo.
(TT_Get_Var_Design): Fix typos.
|
|
84b0d992
|
2016-12-29T10:38:51
|
|
*/*: Use `0.5f' for tracing 16.16 numbers.
|
|
346b1417
|
2016-12-29T06:03:40
|
|
[pcf] Protect against gzip bombs.
Fix suggested by Kostya; reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=345
* src/pcf/pcfread.c (pcf_read_TOC): Limit number of TOC entries to
1024.
|
|
6fb549dd
|
2016-12-28T22:23:33
|
|
[psnames] Only declare, not define, data in `pstables.h' (#49949).
Pdfium includes `pstables.h' a second time; moving the definition
from `pstables.h' to `psmodule.c' saves more than 60kByte data
segment space for this case.
* src/tools/glnames.py (StringTable::dump,
StringTable::dump_sublist, dump_encoding, dump_array): Emit
additional code to only define tables if `DEFINE_PS_TABLES' is set.
* src/psnames/pstables.h: Regenerated.
* src/psnames/psmodule.c (DEFINE_PS_TABLES): Define.
|
|
c4a1ef3c
|
2016-12-28T21:22:45
|
|
[cff] Catch `blend' op in non-variant fonts.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=334
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdBLEND>: Don't
allow `blend' op for non-variant fonts.
|
|
c4cd34a9
|
2016-12-28T08:33:35
|
|
[cff] Better check of number of blends.
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdBLEND>,
src/cff/cffparse.c (cff_parse_blend): Compare number of blends with
stack size.
|
|
48fd5bb2
|
2016-12-27T10:20:23
|
|
Documentation updates.
* docs/CHANGES: Add missing information.
* docs/formats.txt: Rewritten and updated.
|
|
e5e3556f
|
2016-12-27T06:49:37
|
|
[truetype, type1] Implement `FT_Get_Var_Design_Coordinates'.
* src/truetype/ttgxvar.c (TT_Get_Var_Design): Implement.
(TT_Set_Var_Design): Fix tracing.
* src/type1/t1load.c (T1_Get_Var_Design): Implement.
|
|
a300c1c3
|
2016-12-24T09:27:15
|
|
* src/truetype/ttpload.c (tt_face_load_hdmx): Ignore `version'.
Problem reported by 張俊芝 <418092625@qq.com>.
|
|
d1db57c2
|
2016-12-24T09:05:16
|
|
* src/sfnt/ttsbit.c (tt_face_load_sbit): Allow more version values.
Some fonts seem to have the `version' field in the wrong byte order.
Problem reported by 張俊芝 <418092625@qq.com>.
|
|
fde0b78c
|
2016-12-24T08:17:19
|
|
* src/truetype/ttpload.c (tt_face_load_loca): Sanitize table length.
This trivial fix allows us to accept more fonts.
Problem reported by 張俊芝 <418092625@qq.com>.
|
|
1fecdfe3
|
2016-12-24T07:50:45
|
|
* src/sfnt/sfobjs.c (sfnt_init_face): Fix tracing.
|
|
8d37efbc
|
2016-12-22T20:48:28
|
|
Add missing ChangeLog entry for commit d44daf9e.
|
|
18bd176a
|
2016-12-22T12:24:23
|
|
* CMakeLists.txt: Make it work with cmake 2.8.11.2 (#49909).
|
|
06d61b48
|
2016-12-22T10:43:46
|
|
Ensure used preprocessor symbols are defined (#49790).
* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
include/freetype/config/ftconfig.h: Check `__GNUC__', `__IBMC__',
and `__SUNPRO_C' correctly.
|
|
7f733399
|
2016-12-22T10:12:17
|
|
* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Check `count'.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=308
|
|
b44e6c20
|
2016-12-22T08:30:15
|
|
[cff] Protect against invalid `vsindex' and `blend' values.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=305
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdVSINDEX,
cf2_cmdBLEND>: Implement it.
|
|
ada82971
|
2016-12-22T08:25:42
|
|
[ftfuzzer] Always use Adobe CFF engine.
* src/tools/ftfuzzer/ftfuzzer.cc (FT_Global::FT_Global): Implement
it.
|
|
72091103
|
2016-12-21T23:46:29
|
|
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko.
I should really stop coding late in the evening...
Thanks again to Ben for checking.
|
|
d44daf9e
|
2016-12-21T23:03:48
|
|
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko.
Don't apply deltas twice for non-phantom points.
Spotted by Ben Wagner.
|
|
e6a429e2
|
2016-12-21T20:27:48
|
|
[cff, truetype] Another try for #49829.
* src/cff/cffdrivr.c: Don't include
`FT_SERVICE_METRICS_VARIATIONS_H'.
(cff_get_advances): Use `ttface->variation_support'.
* src/truetype/ttdriver.c (tt_get_advances): Use
`ttface->variation_support'.
* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
load_truetype_glyph): Use `ttface->variation_support'.
|
|
64a91137
|
2016-12-21T19:30:33
|
|
[truetype, sfnt] Introduce font variation flags to `TT_Face'.
* include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX):
New macros describing available functionality of various OpenType
tables related to font variation.
(TT_Face): New fields `variation_support' and `mvar_support',
replacing and extending `use_fvar'.
* src/sfnt/sfobjs.c (sfnt_init_face, sfnt_load_face): Use
`variation_support'.
* src/truetype/ttgxvar.c (ft_var_load_hvar): Set `variation_support'
field.
(TT_Vary_Apply_Glyph_Deltas): Updated.
|
|
57a6733d
|
2016-12-21T06:52:23
|
|
[base] Improve sanity check for Mac resources (#49888).
* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Abort if `rlen' is not
positive.
|
|
ded4bdb5
|
2016-12-20T23:26:38
|
|
[base] More sanity checks for Mac resources.
We use
https://github.com/kreativekorp/ksfl/wiki/Macintosh-Resource-File-Format
and
https://developer.apple.com/legacy/library/documentation/mac/pdf/MoreMacintoshToolbox.pdf#page=151
as references.
* include/freetype/internal/ftrfork.h (FT_RFork_Ref): Use FT_Short
for `res_id'.
* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Extract map length
and use it to improve sanity checks.
Follow the specification more closely;in particular, all data types
are signed, not unsigned.
(FT_Raccess_Get_DataOffsets): Follow the specification more closely;
in particular, all data types are signed, not unsigned.
Add some sanity checks.
|
|
d678b37e
|
2016-12-20T12:45:31
|
|
Another minor ChangeLog addition.
|
|
70704b34
|
2016-12-20T12:27:22
|
|
[truetype] Improve logic for getting fast advance widths.
* src/cff/cffdrivr.c (cff_get_advances), src/truetype/ttdriver.c
(tt_get_advances): Use `is_default_instance' for test; this gets
recomputed after changing blend coordinates.
|
|
59b0b3a7
|
2016-12-20T11:39:52
|
|
Add bug reference to previous commit.
|
|
cc576f80
|
2016-12-20T11:37:42
|
|
[truetype] Fix linear metrics of GX variation fonts.
When asking for an unhinted non-default variations,
`linearVertAdvance' is currently the value from the `hmtx' table
instead of the actual value after applying the variation. `HVAR'
support fixes this, but fonts will exist without that table and will
need sane fallback.
* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
load_truetype_glyph): Implement linear advance adjustments if `HVAR'
or `VVAR' tables are missing.
|
|
a1e85f11
|
2016-12-20T10:52:26
|
|
[cff, truetype] Fast advance width retrieval for fonts with HVAR.
Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Don't handle MM.
* src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
(cff_get_advances): Test for HVAR and VVAR.
* src/truetype/ttdriver.c (tt_get_advances): Test for HVAR and VVAR.
|
|
5743df77
|
2016-12-18T21:01:03
|
|
[base] Fix invalid mac font recursion.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=304
* src/base/ftobjs.c (FT_Open_Face): Code moved to...
(ft_open_face_internal): ... this function.
Add a parameter to control whether we try special Mac font handling
in case of failure.
(FT_Open_Face, FT_New_Face, FT_New_Memory_Face,
open_face_from_buffer): Use `ft_open_face_internal'.
|