Commit Graph

6345 Commits

Author SHA1 Message Date
Parth Wazurkar d64bad545a [tfm] Fixes. 2018-12-20 23:36:05 +05:30
Parth Wazurkar 75fd199d70 [tfm] Fixes.
Conflicts:
	include/freetype/internal/tfm.h
2018-12-20 23:29:42 +05:30
Parth Wazurkar 46ab8e2f4c [tfm] Fixes. 2018-12-20 23:27:13 +05:30
Parth Wazurkar 4c8db5478b [tfm] Define the `tfm_interface' functions.
* src/tfm/tfmobjs.c: Do it.
2018-12-20 23:26:42 +05:30
Parth Wazurkar 72035f0025 [tfm] Initialise makefiles. 2018-12-20 23:26:21 +05:30
Parth Wazurkar 46d2e1bd65 [tfm] Define `tfm_module_class' and `tfm_interface'.
* src/tfm/tfmmod.c: Do it.
2018-12-20 23:26:00 +05:30
Parth Wazurkar 6ae549152a [tfm] Add new `tfm' auxiliary module.
* include/freetype/internal/tfm.h:
  - Add TFM_FontInfoRec to accomodate TFM metric data.
  - Define TFM_ParserRec to parse the metric data from
    input `tfm' file.
  - Define TFM_ServiceRec to provide functions to do it.
2018-12-20 23:25:37 +05:30
Parth Wazurkar b490cfd5fd [vf] Register `vf' services. 2018-12-19 17:53:32 +05:30
Parth Wazurkar 18a923c039 [vf] Add `vf_driver_class' functions.
Note: Does not compile.
2018-12-19 17:52:05 +05:30
Parth Wazurkar 30679ffae9 [vf] Add DVI interpreter functions. 2018-12-18 16:28:35 +05:30
Parth Wazurkar 7305227c8c [vf] Add `vf' utility and `dvi' stack functions.
* src/vf/vflib.c: Add `vf_dv_stack' utility
functions and `vf_read_info' function.
2018-12-07 00:47:28 +05:30
Parth Wazurkar b9b1f22afe [vf] Minor. 2018-12-06 00:20:28 +05:30
Parth Wazurkar 51e77c8217 [vf] Modify makefiles. 2018-12-06 00:19:11 +05:30
Parth Wazurkar 35c6834a06 [vf] Add utility functions.
* src/vf/vflib.c: Do it.
2018-12-06 00:17:27 +05:30
Parth Wazurkar 6939265f77 [vf] Define `vf_cmap_class' functions.
* src/vf/vfdrivr.c: Do it.
2018-08-05 19:34:06 +05:30
Parth Wazurkar 540347496a [vf] Define VF_FaceRec and other format specific structures.
* src/vf/vfdrivr.h: Define VF_Bitmap, VF, and TFM
and other structures to hold `vf' format specific
values and define VF_FaceRec to accomodate them.
2018-07-25 13:47:13 +05:30
Parth Wazurkar 1cffbb92e5 [vf] Add vf format opcodes.
* src/vf/vf.h: Add opcodes used for vf driver.
2018-07-25 12:49:48 +05:30
Parth Wazurkar 9fac20632d [pk] Minor Fixes. 2018-07-19 13:43:20 +05:30
Parth Wazurkar 8bacbfc33e [pk] Add pk services. 2018-07-19 12:58:44 +05:30
Parth Wazurkar 5f57c6a8e8 [pk] Improve error checking in font file.
* src/pk/pklib.c (pk_load_font): Add check for
`PK_ID' and `PK_PRE' command in the font file.
2018-07-13 21:36:01 +05:30
Parth Wazurkar 9678e0c902 [pk] Fixes. 2018-07-13 01:14:58 +05:30
Parth Wazurkar 86a901d198 [pk] Define `pk_driver_class' functions.
* src/pk/pkdrivr.c: Define all the `pk_driver_class'
functions.
2018-07-13 01:13:11 +05:30
Parth Wazurkar ab86ec699d [pk] Define `pk_cmap_class' functions. 2018-07-12 23:26:48 +05:30
Parth Wazurkar 21d3754b29 [pk] Define `pk' font loader functions.
* src/pk/pk.h: Add `pk' format specific opcodes.

* src/pk/pklib.c: Define `pk_font_load', `pk_free_font'
and other format specific utility functions.
2018-07-12 22:33:12 +05:30
Parth Wazurkar d934e03cdd [pk] Define PK_FaceRec and other format specific structures.
* src/pk/pkdrivr.h: Define PK_Bitmap and PK_Glyph
structures to hold `pk' format specific values and
define PK_FaceRec to accomodate them.
2018-07-12 22:28:58 +05:30
Parth Wazurkar f9d1ea429b [vf] Initialise vf driver files and Makefiles. 2018-07-10 15:18:45 +05:30
Parth Wazurkar e67b502c14 [pk] Initialise pk driver files and Makefiles. 2018-07-10 15:08:47 +05:30
Parth Wazurkar 7399a4c280 [pk,vf] Initialise pk and vf driver repositories. 2018-07-10 14:27:17 +05:30
Werner Lemberg b532d7ce70 Fix typo (#54238).
* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
2018-07-05 23:13:35 +02:00
Werner Lemberg 0767d5362f Adjust table size comparisons (#54242).
* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
2018-07-05 23:05:53 +02:00
Werner Lemberg 6ceeb87f5d 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.
2018-07-05 22:31:10 +02:00
Werner Lemberg 29f05fd02d 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.
2018-07-04 11:49:47 +02:00
Jeff Carey d9d300ab6b * src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging. 2018-07-02 22:27:57 +02:00
Werner Lemberg 396051daee s/xxx specific foo/xxx-specific foo/. 2018-07-02 15:52:36 +02:00
Werner Lemberg 7edc937fe6 s/palette_types/palette_flags/.
Suggested by Behdad.
2018-07-02 11:50:04 +02:00
Werner Lemberg 4e3b2473d8 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.
2018-07-02 11:41:44 +02:00
Werner Lemberg f6ccb524af * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
Reported by Behdad.
2018-07-01 12:31:57 +02:00
Alexei Podtelezhnikov 1fc776b5f1 * src/base/fttrigon.c (FT_Tan): Improve accuracy.
(FT_Vector_Rotate): Simplify.
2018-06-28 21:42:26 -04:00
Alexei Podtelezhnikov 4f11209f5c * src/base/ftobjs.c (FT_Set_Charmap): Robustify. 2018-06-28 21:31:35 -04:00
Werner Lemberg 207ca38fb5 [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
2018-06-25 18:50:00 +02:00
Werner Lemberg 589d1f0899 * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
Reported as

  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
2018-06-25 18:38:04 +02:00
Werner Lemberg a632fb547e [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.
2018-06-24 15:22:10 +02:00
Werner Lemberg cc3333902b 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'.
2018-06-24 06:26:09 +02:00
Werner Lemberg d7393e22ee Fix typo.
Reported by Behdad.

* src/base/ftcolor.c (FT_Palette_Data_Get)
[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
2018-06-23 17:25:58 +02:00
Werner Lemberg 9027233f75 s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
src/sfnt/ttcolr.c: Do it.
2018-06-21 00:21:09 +02:00
Werner Lemberg a6b77ba2b3 [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.
2018-06-19 20:09:31 +02:00
Werner Lemberg 7915fd51f1 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.
2018-06-19 07:15:21 +02:00
Werner Lemberg a56e4bf7a2 Oops! 2018-06-18 23:18:07 +02:00
Nikhil Ramakrishnan 779c8c4050 Some more minor doc fixes. 2018-06-18 15:17:13 +05:30
Werner Lemberg 95f7341d81 More minor doc fixes. 2018-06-18 11:10:14 +02:00