ChangeLog


Log

Author Commit Date CI Message
Alexei Podtelezhnikov 0690d3d7 2012-11-15T20:50:59 [base] Fix integer overflows in dd5718c7d67a. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
Werner Lemberg 3a553400 2012-11-15T16:37:05 [autofit] Trace stem widths. * src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some FT_TRACE calls.
Werner Lemberg 55127272 2012-11-13T09:22:11 [cff] Add support for OpenType Collections (OTC). * src/cff/cffload.c (cff_font_load): Separate subfont and face index handling to load both pure CFFs with multiple subfonts and OTCs (with multiple faces where each face holds exactly one subfont). * src/cff/cffobjs.c (cff_face_init): Updated.
Werner Lemberg 1a37e417 2012-11-12T11:01:07 [autofit] Minor improvement. * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix loop.
Werner Lemberg f966da82 2012-11-10T12:42:18 [autofit] Improve tracing. * src/autofit/aflatin.c (af_latin_hint_edges) [FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something if there weren't any.
Alexei Podtelezhnikov dd5718c7 2012-11-04T00:57:57 [base] Fortify emboldening code against egregious distortions. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening strength when it leads to segment collapse.
Alexei Podtelezhnikov 48ce226a 2012-11-03T22:27:27 [base] Clean up emboldening code and improve comments there. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential calls to FT_MulFix and FT_DivFix with FT_MulDiv. Mention that bisectors are used to figure out the shift direction.
Werner Lemberg 553bb3c3 2012-10-24T14:22:14 [autofit] Add standard character to `AF_ScriptClassRec' structure. * src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char' member. (AF_DEFINE_SCRIPT_CLASS): Updated. * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it. (af_latin_metrics_init, af_latin_script_class): Updated. * src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it. (af_latin2_metrics_init, af_latin2_script_class): Updated. * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it. (af_cjk_metrics_init, af_cjk_script_class): Updated. * src/autofit/afindic.c(af_indic_metrics_init, af_indic_script_class): Updated. * src/autofit/afcjk.h, src/autofit/aflatin.h: Updated. * src/autofit/afdummy.c: Updated.
Werner Lemberg 118c6025 2012-10-24T12:26:20 [autofit] Only use Unicode CMap. * src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be in sync with `af_face_globals_compute_script_coverage)'.
Werner Lemberg 8e82a961 2012-10-21T11:02:50 [psaux] Improve parsing of invalid numbers. * src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number, even in case of overflow. (PS_Conv_ToInt): Only increase cursor if parsing was successful. (PS_Conv_ToFixed): Ditto. Trace underflow and data error.
Werner Lemberg fdcbaf19 2012-10-21T10:40:12 [smooth] Improve tracing. * src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of current band also.
Alexei Podtelezhnikov 24e897db 2012-10-20T22:23:01 [truetype] Cheaper way to threshold angles between vectors. * src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot cheaper than thresholding sine.
Werner Lemberg ad4eecca 2012-10-20T21:27:17 [cff] Improve parsing of invalid real numbers. * src/cff/cffparse.c (cff_parse_real): Always parse complete number, even in case of overflow or underflow. Also trace one more underflow.
Andreas Pehnack 1e168834 2012-10-20T11:42:22 [sfnt] Load pure CFF fonts wrapped in SFNT container. Such fonts only have a `cmap' and a `CFF' table. * src/sfnt/ttload.c (tt_face_load_font_dir): Don't call `check_table_dir' if font signature is `OTTO'.
Werner Lemberg eaf0afb4 2012-10-20T11:27:25 [psaux] Fix some value overflows and improve tracing. * src/psaux/psconv.c: Include FT_INTERNAL_DEBUG_H. (FT_COMPONENT): Define. (PS_Conv_Strtol): Return FT_Long. Handle bad data and overflow. Emit some tracing messages in case of error. (PS_Conv_ToInt): Return FT_Long. (PS_Conv_ToFixed): Updated. * src/psaux/psconv.h: Updated. * include/freetype/internal/fttrace.h: Add `psconv'.
Werner Lemberg dda1e93d 2012-10-20T08:34:57 [autofit] Fix `make multi CC=c++'. * src/autofit/aflatin.c, src/autofit/aflatin2.c: Include `afglobal.h'. * src/autofit/afloader.c: Fix order of header files. * src/autofit/afmodule.c: Include `afglobal.h' and `aferrors.h'.
Werner Lemberg 4404ec4e 2012-10-19T09:06:53 [cff] Fix more value errors and improve tracing. * src/cff/cffparse.c (cff_parse_integer): Emit tracing message in case of error. (cff_parse_real): Handle and trace overflow, underflow, and bad data consistently. (do_fixed): New helper function, handling and tracing overflow. (cff_parse_fixed, cff_parse_fixed_scaled): Use `do_fixed'.
Werner Lemberg 0708b23e 2012-10-17T21:38:19 [psaux] Fix some value overflows. * src/psaux/psconv.c (PS_Conv_ToFixed): Implement it.
Bram Tassyns 76accc18 2012-10-17T19:55:20 [cff] Fix value overflow. * src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it.
Werner Lemberg 2df16761 2012-10-17T11:34:22 [truetype] Fix Savannah bug #37572. * src/truetype/ttinterp.c (Ins_ISECT): Use angle between vectors to avoid grazing intersections. The previous threshold was too coarse, incorrectly rejecting short but valid vectors.
Gilles Espinasse be81ec22 2012-09-30T08:42:30 Remove useless `rm' detection. `rm -f' is directly used in the `configure' script created by autoconf, thus no availability test is necessary. * builds/unix/configure.raw (RMF): Remove test. * builds/unix/unix-def.in (DELETE): Updated.
Werner Lemberg bf745003 2012-09-29T22:40:40 [autofit] Minor optimization. * src/autofit/afglobals.c (af_face_globals_compute_script_coverage): Add loop condition.
Werner Lemberg 156ba42e 2012-09-29T10:08:01 [autofit] Fix thinko. * src/autofit/aftypes.h (AF_SCRIPT): s/AF_SCRIPT_NONE/AF_SCRIPT_DUMMY/. We already use `AF_SCRIPT_NONE' as a bit mask. * src/autofit/afdummy.c: Updated.
Werner Lemberg 3683fb55 2012-09-18T23:31:05 [autofit] Implement `increase-x-height' property. * include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New structure. * include/autofit/afmodule.c (af_property_get_face_globals): New function, re-using code from `af_property_get'. (af_property_set, af_property_get): Handle `increase-x-height'. Updated.
Werner Lemberg d180ac70 2012-09-18T23:26:37 [autofit] Implement Infinality's `increase glyph heights'. This is an improved version of a similar fix contained in the so-called `Infinality patch', taken from http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2 which addresses various enhancements of the auto-hinter. Without properties to control a module's metadata it wasn't possible to adapt the patches because everything was originally controlled by environment variables which I consider not suitable in general. A patch to control `increase_x_height' follows. * src/autofit/afglobal.h (AF_PROP_INCREASE_X_HEIGHT_MIN, AF_PROP_INCREASE_X_HEIGHT_MAX): New macros. (AF_FaceGlobalsRec): Add `increase_x_height' member. * src/autofit/afglobal.c (af_face_globals_new): Initialize it. * src/autofit/aflatin.c (af_latin_metrics_scale_dim), * src/autofit/aflatin2.c (af_latin2_metrics_scale_dim): Implement handling of `increase_x_height'.
Werner Lemberg 842c4ea2 2012-09-18T15:23:41 [autofit] Add hierarchical property access to some structures. * src/autofit/afglobal.h: Include `afmodule.h'. (AF_FaceGlobalsRec): Add `module' member. (AF_FaceGlobals): Typedef moved to... * src/autofit/aftypes.h: Here. (AF_ScriptMetricsRec): Add `globals' member. * src/autofit/afglobal.c (af_face_globals_new, af_face_globals_compute_script_coverage, af_face_globals_get_metrics): Updated. * src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c (af_property_get): Updated.
Werner Lemberg 273e2b79 2012-09-18T13:27:27 Cosmetics.
Werner Lemberg ebda8b32 2012-09-17T20:59:31 Fix Savannah bug #37350. * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Check for ASCII storage only if we actually have at least four bytes.
Werner Lemberg d4ec0075 2012-09-15T18:26:28 [autofit] Implement `fallback-script' property. * src/autofit/afglobal.c: s/default_script/fallback_script/. * src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/. * src/autofit/afmodule.c: s/default_script/fallback_script/. (af_property_set, af_property_get): Implement `fallback-script'. * src/autofit/afmodule.h: s/default_script/fallback_script/. * include/freetype/ftautoh.h: Document it.
Werner Lemberg 44e1f0d3 2012-09-15T11:11:18 [autofit] Correct previous Unicode 6.1.0 change. The auto-hinter's latin module only handles latin ligatures in the `Alphabetical Presentation Forms' block. * src/autofit/aflatin.c (af_latin_uniranges): Fix it.
Werner Lemberg ce92c5fa 2012-09-15T10:56:15 * src/autofit/afmodule.c: s/FT_Err_/AF_Err_/.
Werner Lemberg d0014f2c 2012-09-15T10:33:43 [autofit] Make default script a global property. * src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field. * src/autofit/afglobal.c (af_face_globals_compute_script_coverage, af_face_globals_new), src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c (af_property_get) <glyph-to-script-map>, af_autofitter_init: Handle default script. * src/autofit/afglobal.h: Updated.
Werner Lemberg 073a4cef 2012-09-15T09:10:06 Use `FT_Module' instead of `FT_Library' argument in property funcs. This internal change simplifies access to global module data. * include/freetype/internal/services/svprop.h (FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly. * src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c (af_property_set, af_property_get): Updated.
Werner Lemberg 8ae2a65e 2012-09-14T14:10:01 [autofit] Update to Unicode 6.1.0. * src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c (af_latin_uniranges): Add and fix ranges.
Werner Lemberg 95dae1c4 2012-09-14T12:26:57 [autofit] Pass `AF_Module' instead of `AF_Loader'. We want to access the (not yet existing) module's global data later on. * src/autofit/afloader.c: Include `afmodule.h'. (af_loader_init, af_loader_reset, af_loader_done, af_loader_load_glyph): Change accordingly. * src/autofit/afmodule.c (AF_ModuleRec): Move to `afmodule.h'. Updated. * src/autofit/afmodule.h: Include `afloader.h'. (AF_ModuleRec): Define here. * src/autofit/afloader.h (AF_Module): Define here. Updated.
Werner Lemberg 6d29c5cb 2012-09-14T11:57:36 [autofit] Fix `make multi'. * include/freetype/internal/fttrace.h: Add `afmodule'. * src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H. (FT_COMPONENT): Define.
Werner Lemberg 688da8ee 2012-09-14T07:55:15 * src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/.
Werner Lemberg 7bbbcbfb 2012-09-12T17:45:39 [autofit] Minor reorganization. * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT, AF_SCRIPT_LIST_NONE, AF_DIGIT): Move to... * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT, AF_SCRIPT_LIST_NONE, AF_DIGIT): This and update code.
Werner Lemberg 2be60cfe 2012-09-01T22:31:43 [autofit] Implement `glyph-to-script-map' property. * include/freetype/ftautoh.h: New public header file. * include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro. * src/autofit/afglobal.c (AF_FaceGlobalsRec): Move structure to... * src/autofit/afglobal.h: This header file. * src/autofit/afmodule.c: Include FT_AUTOHINTER_H. (af_property_get): Handle `glyph-to-script-map'.
Werner Lemberg 7f316f22 2012-08-31T00:20:29 [autofit] Implement properties service framework. No properties are added yet. * src/autofit/afmodule.c: Include FT_SERVICE_PROPERTIES_H. (af_property_set, af_property_get): New dummy functions. (af_service_properties, af_services, af_get_interface): Provide service setup. (autofit_moduleclass): Add service interface. * src/autofit/afpic.c: Add necessary forward declarations. (autofit_module_class_pic_init): Add code for service addition. (autofit_module_pic_free): Add code for service removal. * src/autofit/afpic.h (AF_SERVICES_GET, AF_SERVICE_PROPERTIES_GET): New macros which provide necessary syntactical sugar for PIC support.
Werner Lemberg 0f8fd88e 2012-08-30T23:31:55 Implement properties to control FreeType modules. * include/freetype/fterrdef.h (FT_Err_Missing_Property): New error code. * include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get): New API. * include/freetype/internal/services/svprop.h: New file. * include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New macro. * src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H. (ft_property_do, FT_Property_Set, FT_Property_Get): New functions.
Werner Lemberg 590344cd 2012-08-29T09:16:56 [docmaker] Allow `-' in tags and identifiers. * src/tools/docmaker/content.py (re_identifier), src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2, re_crossref): Add `-' in patterns.
Werner Lemberg 328aa3b2 2012-08-27T11:23:41 [FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings. * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER), include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, FT_DEFINE_MODULE), include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC1, FT_DEFINE_SERVICEDESCREC2, FT_DEFINE_SERVICEDESCREC3, FT_DEFINE_SERVICEDESCREC4, FT_DEFINE_SERVICEDESCREC5, FT_DEFINE_SERVICEDESCREC6), src/autofit/afpic.c (autofit_module_class_pic_init), src/base/basepic.c (ft_base_pic_init), src/base/ftinit.c (ft_create_default_module_classes), src/cff/cffparse.c (FT_Create_Class_cff_field_handlers), src/cff/cffpic.c (cff_driver_class_pic_init), src/pshinter/pshpic.c (pshinter_module_class_pic_init), src/psnames/pspic.c (psnames_module_class_pic_init), src/raster/rastpic.c (ft_raster1_renderer_class_pic_init), src/sfnt/sfntpic.c (sfnt_module_class_pic_init), src/sfnt/ttcmap.c (FT_Create_Class_tt_cmap_classes), src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init), src/truetype/ttpic.c (tt_driver_class_pic_init): Initialize allocation variable.
Werner Lemberg 06e31e9b 2012-08-27T09:35:22 [truetype] Fix compilation warning. * src/truetype/ttgload.c (IS_HINTED): Move macro to... * src/truetype/ttobjs.h: This header file.
Werner Lemberg d9bf44a4 2012-08-27T08:41:43 [autofit, cff, pshinter, psnames] More renamings for orthogonality. * src/autofit/afmodule.c, src/autofit/afpic.h: s/AF_AUTOFITTER_/AF_/. * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c, src/cff/cffpic.h: s/FT_CFF_/CFF_/. * src/pshinter/pshmod.c, src/pshinter/pshpic.h: s/FT_PSHINTER_/PSHINTER_/. * src/psnames/psmodule.c, src/psnames/pspic.h: s/FT_PSCMAPS/PSCMAPS_/.
Werner Lemberg 0c633e3f 2012-08-27T07:43:28 [sfnt, truetype] More renamings for orthogonality. * src/sfnt/sfdriver.c, src/sfnt/sfntpic.h, src/sfnt/ttcmap.c, src/truetype/ttdriver.c, src/truetype/ttpic.h: s/FT_SFNT_/SFNT_/, s/FT_TT_/TT_/, s/GET_CMAP_INFO_GET/CMAP_INFO_GET/.
Werner Lemberg d0841ea7 2012-08-27T06:57:05 [autofit] Some macro and variable renamings for orthogonality. * include/freetype/internal/autohint.h, src/base/ftobjs.c, src/autofit/afmodule.c, src/autofit/afpic.c, src/autofit/afpic.h: s/SERVICE/INTERFACE/, s/service/interface/, s/Service/Interface/.
Werner Lemberg b355b569 2012-08-26T14:00:11 Fix Savannah bug #37178. * src/base/ftobjs.c (FT_Open_Face): Initialize `error' with `FT_Err_Missing_Module' before loop to indicate `no valid drivers'.
Werner Lemberg 04affa27 2012-08-17T09:28:28 * src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle. The old value was far too large (more than 20°). The new one corresponds to 12°, quite common in typography.
Alexei Podtelezhnikov 9ea55c7c 2012-08-12T11:14:46 Fix Savannah bug #37017. * src/smooth/ftgrays.c (gray_render_cubic): Use a different set of checks when detecting super curvy splines to be split.
Werner Lemberg 5b995a8d 2012-08-05T11:11:44 [autofit] Improve recognition of flat segments. Problem reported by Brad Dunzer <BDunzer@extensis.com>. * src/autofit/aflatin.c (af_latin_metrics_init_blues): We have a flat segment if the horizontal distance of best on-points is larger than a given threshold.
Werner Lemberg e194d7cd 2012-08-05T10:58:02 [autofit] Variable renamings. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Replace `glyph' with `outline'. s/best_first/best_contour_first/. s/best_last/best_contour_last/.
Werner Lemberg 5cdeb3cd 2012-07-31T20:17:13 Fix Savannah bug #37000. * src/type1/t1load.c (parse_encoding): Fix order of checks.
Werner Lemberg 6b440425 2012-07-18T10:39:18 Fix Savannah bug #36833. * src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid operator if we want metrics only.
Werner Lemberg 01b508f2 2012-07-18T10:38:54 Fix Savannah bug #36832. * src/type1/t1load.c (parse_charstrings): Reject negative number of glyphs.
Werner Lemberg a8c24351 2012-07-18T10:38:37 Fix Savannah bug #36829. * src/type1/t1load.c (parse_encoding): Check cursor position after call to T1_Skip_PS_Token.
Alexei Podtelezhnikov 45337b07 2012-07-11T22:12:13 [ftstroke] Fix uninitialized return value. * src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead.
Werner Lemberg e7454a47 2012-07-11T12:05:58 [smooth] Avoid memory like in case of failure. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use flags to indicate what to clean up after finishing the function, with and without errors.
Werner Lemberg 26472b4f 2012-07-09T09:55:50 Fix compilation with MSVC 5.0. Problem reported by Peter Breitenlohner and Akira Kakuto. * include/freetype/config/ftstdlib.h (ft_setjmp): Updated. * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast.
Werner Lemberg 5a0af493 2012-07-09T08:19:25 [autofit] Improve debugging messages; do some code cleanup. * src/autofit/aflatin.c (af_latin_align_linked_edge, af_latin_hint_edges): Synchronize with formatting used in the ttfautohint project.
Gilles Espinasse 9123404c 2012-07-07T11:17:02 Fix strict-aliasing warning. * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast.
Dave Thomas fec113d7 2012-07-07T10:57:30 [ARM] Fix FT_MulFix_arm. * include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]: Avoid ADDS instruction to clobber condition codes.
Werner Lemberg b6978dd0 2012-07-06T19:38:44 [autofit] Do some code cleanup. * src/autofit/afglobal.c (af_face_globals_new): Simplify. * src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf' everywhere. (FT_COMPONENT): New macro. (af_glyph_hints_done): Simplify. * include/freetype/internal/fttrace.h: Updated.
Werner Lemberg fd5ae959 2012-07-05T10:30:41 [autofit] Improve output of debugging information. * src/autofit/afhints.c (af_glyph_hints_dump_segments): Print more data; report no data. (af_glyph_hints_dump_edges): Report no data.
Werner Lemberg 52103061 2012-07-04T17:20:33 Fix Savannah bug #36091. * src/autofit/aflatin.c (af_latin_metrics_init_blues), src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Change the constraint for testing round vs. flat segment: Accept either a small distance or a small angle.
Werner Lemberg 09e9b596 2012-07-04T13:00:06 [autofit] Beautify blue zone tracing. * src/autofit/aflatin.c (af_latin_metrics_init_blues), src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it.
Werner Lemberg 2a9c4552 2012-07-03T11:54:12 [autofit] Quantize stem widths. * src/autofit/afangles.c (af_sort_widths): Rename to... (af_sort_and_quantize_widths): This. Add code to avoid stem widths which are almost identical. * src/autofit/aftypes.h, src/autofit/aflatin.c, src/autofit/afcjk.c: Updated.
Werner Lemberg d4cbbf35 2012-07-03T11:01:53 [autofit] Minor speed-up. * src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap elements if they are equal.
Werner Lemberg ad866e2c 2012-06-30T07:59:28 Fix `checking if gcc static flag -static works' test. On my linux build tree, I receive yes answer in in every package I build except freetype for this test checking if gcc static flag `-static' works On freetype, no is received, unless bzip2 and zlib are disabled using ./configure --without-bzip2 --without-zlib The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to LDFLAGS and this broke static flag test. * builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after LT_INIT has run.
Infinality d0a827b3 2012-06-28T20:34:26 [truetype] Fix various artifacts.
Gilles Espinasse 34de9d26 2012-06-28T06:45:26 Fix CFLAGS and LDFLAGS share configure test. * builds/unix/configure.raw: Fix typo.
Werner Lemberg b3953aa7 2012-06-28T06:23:12 [truetype] Set the `subpixel_positioned' flag unconditionally. This is how the code currently behaves. * src/truetype/ttgload.c (tt_loader_init): Do it.
Werner Lemberg 12470965 2012-06-27T08:44:30 Fix conditional compilation. * src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS.
Werner Lemberg 83c0ebab 2012-06-27T08:16:06 Fix conditional compilation. * include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Don't enclose with `TT_USE_BYTECODE_INTERPRETER'; we now need the function elsewhere also. * src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK. * src/truetype/ttgload.c (tt_loader_init): Fix compiler warning. * src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning. * src/truetype/ttinterp.h: Use TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
Infinality ed6508c4 2012-06-26T17:20:27 [truetype] Remove unused rounding functionality.
Werner Lemberg 56751532 2012-06-25T10:58:20 [cff] Fix Savannah bug #36705. Handle numbers like 2.001 correctly. * src/cff/cffparse.c (cff_parse_real): Avoid negative values for `shift'.
Infinality 79e36bae 2012-06-18T10:36:06 [truetype] Support subpixel hinting. This is the large, famous `Infinality' patch to support ClearType bytecode which has been available from http://www.infinality.net/blog/ for some time, and which has been refined over the last years. While still experimental, it is now mature enough to be included directly into FreeType. Most of the code is based on the ClearType whitepaper written by Greg Hitchcock http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx which gives a detailed overview of the necessary changes to the Microsoft rasterizer so that older fonts are supported. However, a lot of details are still missing, and this patches provides a framework to easily handle rendering issues down to the glyph level of certain fonts. Note that ClearType support is not completely implemented! In particular, full support for the options `compatible_widths', `symmetrical_smoothing, and `bgr' (via the GETINFO bytecode instruction) is missing. * src/truetype/ttsubpix.c: New file, providing code to handle `tweaks', this is, rules for certain glyphs in certain fonts (including wildcards) which need a special treatment. * src/truetype/ttsubpix.h: New file, holding the tweaking rules. * include/freetype/config/ftoption.h, src/devel/ftoption.h (TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro. * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros. * src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include `ttsubpix.c'. * src/truetype/ttgload.c: Include `ttsubpix.h'. [All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.] (tt_get_metrics): Set tweak flags. (TT_Hint_Glyph): Call `FT_Outline_EmboldenXY' if necessary. (TT_Process_Simple_Glyph): Compensate emboldening if necessary. (compute_glyph_metrics): Handle `compatible widths' option. (tt_loader_init): Handle ClearType GETINFO information bits. * src/truetype/rules.mk (TT_DRC_SRC): Updated. * src/truetype/ttinterp.c: Include `ttsubpix.h'. [Where necessary, changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.] (Direct_Move, Direct_Move_X): Extended. (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, SetSuperRound): Add parameter to handle the number of grid lines per pixel. (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. (DO_ROUND, DO_NROUND): Updated. (DO_RS): Take care of `Typeman' bytecode patterns. (Ins_FDEF): Add some debugging code. Commented out. (Ins_ENDF): Restore state. (Ins_CALL, Ins_LOOPCALL): Handle inline delta functions. (Ins_MD): Handle `Vacuform' rounds. (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Handle tweaks. (Ins_ALIGNRP): Add tweak guard. (Ins_IUP, Ins_DELTAP): Handle tweaks. (Ins_GETINFO): Handle new ClearType bits. (TT_RunIns): Handle tweaks. * src/truetype/ttinterp.h: Updated. (SPH_TweakRule, SPH_ScaleRule): New structures for tweaks. (TT_ExecContextRec): Add members for subpixel hinting support. * src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member.
Werner Lemberg 320613ee 2012-06-15T06:45:12 * Version 2.4.10 released. ========================== Tag sources with `VER-2-4-10'. * docs/VERSION.DLL: Update documentation and bump version number to 2.4.10. * README, Jamfile (RefDoc), builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype.vcproj, builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, builds/win32/visualce/freetype.vcproj, builds/win32/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.4.9/2.4.10/, s/249/2410/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. * builds/unix/configure.raw (version_info): Set to 15:0:9.
Alexei Podtelezhnikov cea9d7a6 2012-06-15T06:33:46 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing. * docs/CHANGES: Updated.
suzuki toshiya a03cb019 2012-06-14T17:56:01 * builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS. to pass special compiler/linker flags under cross development. Suggested by Savannah bug #36367. ChangeLog on 2010-07-15 saying as they were removed was wrong for the official trunk of FreeType2. This commit is the first introduction of them.
Werner Lemberg 2d67e9b5 2012-06-14T08:46:04 * docs/CHANGES: Updated.
suzuki toshiya 6c7c3de1 2012-06-14T01:38:20 [truetype] Add new versions of NEC FA family to tricky font list. NEC FA family dated in 1996 have different checksum. Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>; see http://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets of fpgm & prep table checksums for FA-Gothic, FA-Minchou, FA-RoundedGothicM, FA-RoundedGothicB are added. The family names in sample PDF are truncated, thus the list of the family names in tt_check_trickyness_family() is not updated yet.
Werner Lemberg 495bd3cc 2012-06-06T13:24:04 [ftraster] Fix rounding issue causing visual artifacts. Problem reported by jola <hans-jochen.lau@lhsystems.com>; see http://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html * src/raster/ftraster.c (SMulDiv_No_Round): New macro. (Line_Up): Use it. * src/raster/ftmisc.h (FT_MulDiv_No_Round): Copied from `ftcalc.c'.
Alexei Podtelezhnikov 2bdd0949 2012-05-28T23:11:03 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify. We now use the cross product of the direction vectors to compute the outline's orientation.
Werner Lemberg aa6895c1 2012-05-28T22:55:54 * docs/CHANGES: Updated.
Alexei Podtelezhnikov f875fc71 2012-05-28T22:34:58 New function FT_Outline_EmboldenXY. * include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a simplified embolding algorithm. (FT_Outline_Embolden): Make it a special case of `FT_Outline_EmboldenXY'
Werner Lemberg 8dc17bb4 2012-05-07T11:24:48 [type1] Fix Savannah bug #36386. * src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is not valid.
Werner Lemberg 9c6d1ac3 2012-04-07T06:39:25 Remove compiler warning. * src/truetype/ttgload.c (TT_Load_Glyph) [!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly.
Werner Lemberg 8be32d2f 2012-03-28T12:21:50 [autofit] Properly copy scaler flags to script metrics object. Without this patch, only the dummy and cjk autohinter modules get them (since they copy the whole scaler object). * src/autofit/aflatin.c (af_latin_metrics_scale), src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it.
Alexei Podtelezhnikov 0c5789f9 2012-03-22T07:05:40 [bdflib] Remove redundant macro. * src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which is exactly the same.
suzuki toshiya f0b19414 2012-03-21T15:42:14 [configure] fix Savannah bug #35644. * builds/unix/configure.raw: Check `-ansi' flag works even if gcc is used. Bionic libc headers for Android lose the consistency when they are parsed with __STDC_VERSION__ older than 199901L or __STRICT_ANSI__.
Werner Lemberg 37b5c92f 2012-03-20T07:23:12 [bdf] Improvement to Savannah bug #35656. * src/bdf/bdflib.c (isdigok): Add cast, as suggested in report.
Werner Lemberg b43e0f44 2012-03-17T07:42:43 [type1] Fix Savannah bug #35847. * src/type1/t1load.c (parse_subrs): Fix the loop exit condition; we want to exit when we have run out of data.
Werner Lemberg 649c673a 2012-03-16T21:12:41 [bdf] Really fix 35658. * src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer.
Werner Lemberg ad05bac6 2012-03-14T18:34:36 [sfnt] Make arrays static like all others. * src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2), src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame fields.
Huw Davies 3650f801 2012-03-14T18:29:57 [sfnt] A refinement of the previous commit. * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, tt_name_entry_ascii_from_other): Stop at null byte.
Huw Davies bf06b62a 2012-03-14T14:44:46 [sfnt] Add `name' table compatibility to MS Windows. * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, tt_name_entry_ascii_from_other): Don't replace `\0' with question marks when converting strings.
Werner Lemberg 9a55cb7a 2012-03-14T14:40:03 Fix Savannah bug #35833. Based on the patch given in the bug report. * src/type1/t1load.c (IS_INCREMENTAL): New macro. (read_binary_data): Add parameter `incremental'. Update all callers using `IS_INCREMENTAL'.
Werner Lemberg 10364096 2012-03-11T15:20:32 [autofit] Return correct linear advance width values. This was quite a subtle bug which accidentally showed up with glyph `afii10023' of arial.ttf (version 2.76). This glyph is a composite; the first component, `E', has an advance width of 1366 font units, while the advance width of the composite itself (which looks like uppercase `E' with dieresis) is 1367 font units. I think this is actually a bug in the font itself, because there is no reason that this glyph has not the same width as uppercase `E' without the dieresis. Anyway, it helped identify this problem. Using the TrueType hinter, the correct value (1367) of `afii10023' was returned, but the autohinter mysteriously returned 1366. Digging in the code showed that the autohinter recursively calls FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load flag. However, the `linearHoriAdvance' field is still returned as a scaled value. To avoid scaling twice, the old code in autofit reset `linearHoriAdvance', using the `horiAdvance' field. This seemed to work since FT_LOAD_NO_SCALE was in use, but it failed actually, because `horiAdvance' is defined as the distance of the first subglyph's phantom points, which in turn are initialized using the advance width of the first subglyph. And as the given example shows, these widths can differ. * src/autofit/afloader.c (af_loader_load_g): Temporarily set FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled values for the linear advance widths.
Werner Lemberg e1899bcf 2012-03-10T09:28:24 [truetype] Fix SSW instruction. * src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units. For verification, it took some time to find a font which actually uses this instruction.