Commit Graph

3272 Commits

Author SHA1 Message Date
Werner Lemberg e6e6eade04 Finish fix of scaling bug of CID-keyed CFF subfonts.
* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
(FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
functions.

* src/cff/cffobjs.h (CFF_Internal): New struct.  It is used to
provide global hinting data for both the top-font and all subfonts
(with proper scaling).

* src/cff/cffobjs.c (cff_make_private_dict): New function, using
code from `cff_size_init'.
(cff_size_init, cff_size_done, cff_size_select, cff_size_request):
Use CFF_Internal and handle subfonts.
(cff_face_init): Handle top-dict and subfont matrices correctly;
apply some heuristic in case of unlikely matrix concatenation
results.  This has been discussed with people from Adobe (thanks
goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
and not correct.

* src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.

* src/cff/cffgload.c (cff_builder_init): Updated.
(cff_decoder_prepare): Handle hints globals for subfonts.
Update all callers.
(cff_slot_load): Handling scaling of subfonts properly.

* src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
(cff_parse_font_matrix): Use it.

* src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
FT_ULong.

* docs/CHANGES: Document it.
2008-05-14 23:05:38 +00:00
Werner Lemberg fb57228b94 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
Handle case `face_index < 0'.
* docs/CHANGES: Document it.
2008-05-13 12:10:04 +00:00
Werner Lemberg b7c063d523 Add some (commented out) code for orthogonality. 2008-05-11 21:36:37 +00:00
Werner Lemberg 84662841e8 Clean up. 2008-05-04 16:54:23 +00:00
Werner Lemberg 32e05a6a94 Cleaning up. 2008-05-04 16:53:22 +00:00
Werner Lemberg 551dd3c0a6 First steps to fix the scaling bug of CID-keyed CFF subfonts,
reported by Ding Li on 2008/03/28 on freetype-devel.

* src/base/cff/cffparse.c (power_tens): New array.
(cff_parse_real): Rewritten to introduce a fourth parameter which
returns the `scaling' of the real number so that we have no
precision loss.  This is not used yet.
Update all callers.
(cff_parse_fixed_thousand): Replace with...
(cff_parse_fixed_scaled): This function.  Update all callers.
2008-05-04 13:37:38 +00:00
Werner Lemberg 6d29f0f1e8 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
transformation since it recursively calls FT_Load_Glyph.  This fixes
Savannah bug #23143.
2008-05-03 15:54:15 +00:00
Werner Lemberg de9479a00d * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
and `scale_y' as obsolete since they aren't used.
* src/psaux/psobjs.c (t1_builder_init): Updated.

* src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
obsolete since they aren't used.
* src/cff/cffgload.c (cff_builder_init): Updated.
2008-04-26 12:52:57 +00:00
Werner Lemberg 4ebc890e06 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
`FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'.  From Savannah
bug #22909.
2008-04-13 22:06:12 +00:00
Werner Lemberg 8271e5e443 whitespace 2008-04-13 21:59:29 +00:00
Werner Lemberg 048b756389 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
integer part is zero.
2008-04-13 05:55:36 +00:00
Werner Lemberg c32e83f23f Fix compilation with g++ 4.1 (with both `single' and `multi'
targets).

* src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
which is crossed by a `goto'.

* src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
2008-04-01 06:07:37 +00:00
Werner Lemberg 210d61894b Fix support for subsetted CID-keyed CFFs.
* include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
FT_IS_CID_KEYED): New macros.

* src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
maximum CID value in CID-keyed CFFs.
Handle FT_FACE_FLAG_CID_KEYED flag.

* docs/CHANGES: Document it.


Fix CFF font matrix calculation and improve precision.

* src/cff/cffparse.c (cff_parse_real): Increase precision if integer
part is zero.
(cff_parse_font_matrix): Simplify computation of `units_per_em';
this prevents overflow also.


Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.

* src/cid/cidriver.c: Include FT_SERVICE_CID_H.
(cid_get_ros): New function.
(cid_service_cid_info): New service structure.
(cid_services): Register it.
2008-04-01 05:55:48 +00:00
Werner Lemberg a56e526671 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
* builds/compiler/visualc.mk (CFLAGS): Remove /W5.
(ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
2008-03-23 14:53:44 +00:00
Werner Lemberg 8575117c50 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
Savannah bug #22675.
2008-03-21 07:16:00 +00:00
Werner Lemberg 3863c95146 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
Patch from Savannah bug #22541.
2008-03-13 06:38:37 +00:00
Werner Lemberg cd874831dc add copyright notices 2008-03-06 22:11:30 +00:00
Werner Lemberg fc29393998 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
tt_cmap14_find_variant): Return correct value.
(tt_cmap14_variant_chars): Fix check for `di'.
2008-03-03 08:08:12 +00:00
Werner Lemberg 5057e36c15 * docs/CHANGES: Updated. 2008-02-29 07:23:02 +00:00
Werner Lemberg 7faa1554c2 Add build support for symbian platform. From Savannah bug #22440.
* builds/symbian/*: New files.
2008-02-29 07:14:38 +00:00
Werner Lemberg 9b9d3349b2 minor improvements, copyright years 2008-02-21 23:22:06 +00:00
Suzuki, Toshiya (鈴木俊哉) 6cb2faa845 * src/base/ftmac.c: Fix a bug of PostScript font name synthesis in parse_fond(). 2008-02-21 18:46:07 +00:00
Werner Lemberg 31093ccecd minor fixes 2008-02-21 17:10:04 +00:00
Suzuki, Toshiya (鈴木俊哉) 5d3ac4ae12 * builds/unix/confiure.raw: Split the compiler option to link Carbon frameworks for each framework 2008-02-21 10:15:41 +00:00
Werner Lemberg 28464c48a1 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
from Savannah bug #22356.
2008-02-18 20:34:42 +00:00
Werner Lemberg c903f2f22d minor editing 2008-02-17 08:23:04 +00:00
Werner Lemberg 44c655b01c * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
Check for valid callback pointers.
2008-02-17 08:22:08 +00:00
Werner Lemberg edc7d81a7b Explain `CJK'. 2008-02-16 05:53:46 +00:00
Suzuki, Toshiya (鈴木俊哉) d2c55ab0e4 fix for inexistent sfnt ID in broken FOND 2008-02-15 09:12:59 +00:00
Werner Lemberg aa722df478 Minor editing. 2008-02-14 10:46:40 +00:00
Suzuki, Toshiya (鈴木俊哉) 60e83a1d57 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" 2008-02-14 02:55:16 +00:00
Werner Lemberg 744dd456bc * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
(dos_setup), builds/freetype.mk (clean_project_dos,
distclean_project_dos): Don't use \ but $(SEP).  Reported by Duncan
Murdoch.
2008-02-11 08:22:40 +00:00
Werner Lemberg 4c93399155 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
mention intra-pixel algorithm.

* include/freetype/freetype.h (FT_Render_Mode): Mention that
FT_Library_SetLcdFilter can be used to reduce fringes.
2008-01-18 05:32:55 +00:00
Werner Lemberg 61d83d0938 Oops! 2008-01-18 05:19:20 +00:00
Werner Lemberg 250c01d40a whitespace 2008-01-18 05:16:09 +00:00
Werner Lemberg 53286c0970 more formatting and whitespace 2008-01-18 05:14:13 +00:00
Werner Lemberg 4af139d2e4 formatting, whitespace 2008-01-18 04:53:28 +00:00
Werner Lemberg 1ddd1b768d * src/raster/ftraster.c (ft_black_render): Check `outline' before
using it.  Reported by Allan Yang.
2008-01-16 06:58:54 +00:00
Werner Lemberg ee0f2ab970 Whitespace. 2008-01-12 20:24:01 +00:00
Werner Lemberg eca1f27905 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
* src/raster/ftraster.c (ft_black_init)
[FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
2008-01-12 07:46:09 +00:00
Werner Lemberg 0b2b5ca764 Small doc improvement. 2008-01-10 10:33:47 +00:00
Werner Lemberg bf391cb858 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
where the number of contours in a simple glyph is zero (and which
does contain an entry in the `glyf' table).  This fixes Savannah bug
#21990.
2008-01-10 08:47:08 +00:00
Suzuki, Toshiya (鈴木俊哉) 75696860ea Formatting. 2008-01-04 01:43:23 +00:00
Werner Lemberg d2e1573706 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
correctly.

Whitespace.
2007-12-30 23:49:14 +00:00
Suzuki, Toshiya (鈴木俊哉) 540b954574 Improvement of POSIX resource-fork accessor to load Mac OS X HelveLTMM 2007-12-21 06:03:59 +00:00
Werner Lemberg d156cabcae * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
division too early; otherwise the most significant digit(s) of the
final result are lost as the value is truncated to an integer.  This
fixes Savannah bug #21794 (where the patch has been posted too).
2007-12-14 07:48:32 +00:00
Werner Lemberg bd7e1c3ce0 Pass options from one configure script to another as-is (not
expanded).  This is needed for options like
--includedir='${prefix}/include'.

* builds/unix/detect.mk, configure: Prevent argument expansion in
call to the (real) `configure' script.



* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
TT_USE_BYTECODE_INTERPRETER isn't defined.



There exist CFFs which contain opcodes for the Type 1 operators
`hsbw' and `closepath' which are both invalid in Type 2 charstrings.
However, it doesn't harm to support them.

* src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
`cff_op_closepath.'
(cff_argument_counts): Ditto.

(cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
and 13 (hsbw) which are invalid in Type 2 charstrings.
2007-12-06 17:17:30 +00:00
Suzuki, Toshiya (鈴木俊哉) a6d36573bd * src/base/ftrfork.c: add support for new pathname syntax "..namedfork/rsrc" to access resource fork on Mac OS X. 2007-12-06 10:27:15 +00:00
Suzuki, Toshiya (鈴木俊哉) 44b5e57781 Mac OS X Carbon tests in configure.raw are improved and builds/mac/ftmac.c is updated to sync to src/base/ftmac.c 2007-12-06 07:47:25 +00:00
Suzuki, Toshiya (鈴木俊哉) 05f5c58d13 Improvements of the document and comments in Mac OS sources by Sean McBride 2007-12-06 05:43:36 +00:00