freetype2/src
Dave Arnold edf4014854 [cff] Implement CFF2 support (2/2).
The font variation code.  All parts dependent on the GX code in the
`truetype' module are guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
In other words, you can still compile the `cff' module without
defining TT_CONFIG_OPTION_GX_VAR_SUPPORT (which brings you CFF2
support without font variation).

* src/cff/cf2font.c (cf2_font_setup): Add support for font
variation.
* src/cff/cf2font.h (CF2_Font): Add fields for variation data.

* src/cff/cf2ft.c (cf2_free_instance): Free blend data.
(cf2_getVStore, cf2_getNormalizedVector): New functions.
* src/cff/cf2ft.h: Updated.

* src/cff/cf2intrp.c: Include `cffload.h'.
(cf2_cmdRESERVED_15, cf2_cmdRESERVED_16): Replace with...
(cf2_cmdVSINDEX, cf2_cmdBLEND): ... this new enum values.
(cf2_doBlend): New function.
(cf2_interpT2CharString): Handle `vsindex' and `blend' opcodes.

* src/cff/cffload.c (FT_fdot14ToFixed): New macro.
(cff_vstore_done, cff_vstore_load): New functions.
(cff_blend_clear, cff_blend_doBlend, cff_blend_build_vector,
cff_blend_check_vector): New functions.
(cff_load_private_dict): Add arguments for blend vector.
Handle blend data.
(cff_subfont_load, cff_subfont_done): Updated.
(cff_font_load): Handle CFF2 variation store data.
(cff_font_done): Updated.
* src/cff/cffload.h: Include `cffparse.h'.
Updated.

* src/cff/cffobjs.c (cff_face_done): Updated.

* src/cff/cffparse.c: Include `cffload.h'.
(cff_parse_num): Handle internal value 255.
(cff_parse_vsindex, cff_parse_blend): New functions.
(CFF_FIELD_BLEND): New macro.
(cff_parser_run): Updated.
* src/cff/cffparse.h (cff_kind_blend): New enum value.

* src/cff/cfftoken.h: Handle `vstore', `vsindex', and `blend'
dictionary values.

* src/cff/cfftypes.h (CFF_VarData, CFF_AxisCoords, CFF_VarRegion,
CFF_VStore, CFF_Blend): New structures.
(CFF_FontRecDict): Add `vstore_offset' field.
(CFF_Private): Add `vsindex' field.
(CFF_SubFont): Add fields for blend data.
(CFF_Font): Add `vstore' field.

* src/truetype/ttgxvar.c (TT_Get_MM_Var): `CFF2' is equal to `gvar',
since glyph variation data is directly embedded.
(TT_Set_MM_Blend): Don't load `gvar' table for CFF2 fonts.
2016-12-15 21:56:44 +01:00
..
autofit [autofit] Fix Emscripten crash (patch #9180). 2016-12-01 07:07:22 +01:00
base Extend functionality of `ft_module_get_service'. 2016-12-14 18:54:21 +01:00
bdf */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate. 2016-09-28 19:06:21 +02:00
bzip2 Update copyright year. 2016-01-13 11:54:10 +01:00
cache s/0/NULL/ for function pointers; comments, formatting. 2016-09-17 17:12:50 +02:00
cff [cff] Implement CFF2 support (2/2). 2016-12-15 21:56:44 +01:00
cid * src/cid/cidload.c (cid_face_open): Properly propagate `error'. 2016-10-08 20:26:59 +02:00
gxvalid More FT_ZERO usage. 2016-09-28 19:10:52 +02:00
gzip [gzip] Improve building with external zlib (#49673). 2016-12-01 11:36:37 +01:00
lzw [lzw] Optimize last commit. 2016-08-16 13:44:38 +02:00
otvalid s/0/NULL/ for function pointers; comments, formatting. 2016-09-17 17:12:50 +02:00
pcf Introduce a way of quickly retrieving (embedded) bitmap metrics. 2016-11-06 12:32:51 +01:00
pfr Introduce a way of quickly retrieving (embedded) bitmap metrics. 2016-11-06 12:32:51 +01:00
psaux [psaux] Fix handling of invalid flex subrs. 2016-10-11 08:57:55 +02:00
pshinter */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate. 2016-09-28 19:06:21 +02:00
psnames s/0/NULL/ for function pointers; comments, formatting. 2016-09-17 17:12:50 +02:00
raster More FT_ZERO usage. 2016-09-28 19:10:52 +02:00
sfnt [cff] Implement CFF2 support (1/2). 2016-12-15 20:27:47 +01:00
smooth [smooth] Revert previous commit. Already fixed with 6ca54c64. 2016-11-29 18:45:22 +01:00
tools URL updates. 2016-10-13 22:52:40 -04:00
truetype [cff] Implement CFF2 support (2/2). 2016-12-15 21:56:44 +01:00
type1 [truetype, type1] Add `get_var_blend' to MM service. 2016-12-11 09:16:52 +01:00
type42 */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate. 2016-09-28 19:06:21 +02:00
winfonts Introduce a way of quickly retrieving (embedded) bitmap metrics. 2016-11-06 12:32:51 +01:00
Jamfile Update copyright year. 2016-01-13 11:54:10 +01:00