src


Log

Author Commit Date CI Message
Werner Lemberg 0e2f5d51 2014-11-06T22:32:46 Fix Savannah bug #43547. * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset' values.
Werner Lemberg f49a100a 2014-11-06T13:30:28 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
Infinality facfc79a 2014-11-03T07:24:59 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated. The previous commit deteriorates rendering of DejaVu and similar fonts; this gets compensated with this rule.
Werner Lemberg 706f752b 2014-11-03T07:20:57 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting. Before this patch, it was impossible to ever call DELTAP[123] in subpixel hinting mode as described in the ClearType whitepaper; it only worked if in `compatibility mode'. However, compatibility mode essentially disables SHPIX, completely ruining hinting of ttfautohint output, for example. We now follow the whitepaper more closely so that DELTAP[123] instructions for touched points in the non-subpixel direction are executed.
Alexei Podtelezhnikov 525d4876 2014-10-31T22:12:37 [smooth] Improve code readability. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
Alexei Podtelezhnikov e1efe0a2 2014-10-31T00:07:14 [smooth] Reduce outline translations during rendering. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin virtually by modifying cbox, actually translate outline if cumulative shift is not zero.
Alexei Podtelezhnikov c7fd9356 2014-10-30T22:43:01 [smooth] Fix Savannah bug #35604 (cont'd). * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and casts that became unnecessary after the variable type upgrades.
Alexei Podtelezhnikov 465ab995 2014-10-29T23:45:23 [smooth] Improve code readability. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
Alexei Podtelezhnikov 74916997 2014-10-29T22:24:24 Unify hypotenuse approximations. * include/internal/ftcalc.h (FT_HYPOT): Move macro from here... * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'. * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
Werner Lemberg d8632a84 2014-10-25T06:28:18 Improve comments, remove dead code.
Werner Lemberg fe15152c 2014-10-25T05:56:59 [cff] Test valid darkening parameter macros in `ftoption.h'. We no longer need an otherwise unused typedef that can cause a gcc warning. Problem reported by Alexei. * src/cff/cffobjs.c (cff_driver_init): Use `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly. (SET_DARKENING_PARAMETERS): Removed. Compile time tests are now ... * devel/ftoption.h, include/config/ftoption.h: ... here.
Alexei Podtelezhnikov aba0f498 2014-10-24T23:50:57 Improve flat corner definition. * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean distance with the alpha max plus beta min algorithm. * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab metric.
Werner Lemberg dd570e99 2014-10-23T19:57:37 [cff] Work around bug in preprocessor of MSVC 2010. We have been hit by https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr * devel/ftoption.h, include/config/ftoption.h: Replace `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'. * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no longer need double expansion. (SET_DARKENING_PARAMETERS_0): Renamed to ... (SET_DARKENING_PARAMETERS): ... this. Update call.
Werner Lemberg cc7bb80b 2014-10-20T08:35:50 [sbit] Minor fixes. * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]: Accept overlay format also, but emit warning message in that case. (tt_sbit_decoder_load_metrics): Add missing newline to error message. (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS 7.1) to the list of unsupported formats.
Alexei Podtelezhnikov 118e651b 2014-10-19T23:31:08 [truetype] Clean up bytecode rounding. Zero distance does not have to be treated specially if you follow specifications and check the sign as the very last step of rounding. * src/truetype/ttinterp.c (Round_None, Round_To_Grid, Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use macros when available, do not check for non-zero distance. (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase if sign changed.
Alexei Podtelezhnikov d4aabda3 2014-10-18T10:10:04 [truetype] Unwrap engine compensation settings. * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
Werner Lemberg c9c33f20 2014-10-18T11:01:14 [autofit] Add blue-zone support for Telugu. This essentially moves the Telugu script from the `Indic' hinter to the `Latin' hinter. Note that this is a first shot and quite certainly needs refinements. * src/autofit/afblue.dat: Add blue zone data for Telugu. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Telugu standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Telugu data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Telugu data; in particular, use AF_WRITING_SYSTEM_LATIN.
Werner Lemberg 1a1750fb 2014-10-16T22:54:01 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro. * devel/ftoption.h, include/config/ftoption.h (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro. * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS, SET_DARKENING_PARAMETERS_0): New macros. (cff_driver_init): Use new macros.
Werner Lemberg 03987bfd 2014-10-16T07:19:46 A better fix for Savannah bug #43392. Suggested by Doug Felt <dougfelt@gmail.com>. * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set `vertAdvance' to zero... * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default value for `vertAdvance' based on `linearVertAdvance' in case `vertAdvance' is zero. Note that the previous computed ad-hoc value for `linearVertAdvance' was apparently not tested in a real-life situation.
Alexei Podtelezhnikov 7e83f068 2014-10-14T23:03:56 [truetype] Limit delta shift range. The legal range for delta shift is zero through six. Negative values are illegal according to https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned. * src/truetype/ttinterp.h (DO_SDS): Throw an error if delta_shift out of range. (Ins_DELTAP, Ins_DELTAC): Optimize for legal delta_shift.
Werner Lemberg 8f17809b 2014-10-14T08:28:09 [autofit] Adjust Devenagari character range. * src/autofit/afranges.c (af_deva_uniranges): Omit characters that are common to all other Indic scripts.
Werner Lemberg 1ca5fa15 2014-10-12T08:31:32 [sfnt] Fix Savannah bug #43392. * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let vertical metrics uninitialized.
Alexei Podtelezhnikov 673a28ef 2014-10-11T14:40:51 [base] Small bbox correction. * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox instead of initial point that could be `off' in conic outlines.
Alexei Podtelezhnikov 40dac113 2014-10-09T00:58:14 [base] Fix Savannah bug #43356. * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case of implicit `to'. (BBox_Line_To): New emitter that does not update bbox.
Alexei Podtelezhnikov 2ffcf17e 2014-10-08T22:01:08 [base] Introduce and use new macro `FT_UPDATE_BBOX' * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro. (FT_Outline_Get_BBox): Use it here.
Alexei Podtelezhnikov 7abdb8cc 2014-10-02T23:13:33 [base] Significant optimization of `ft_div64by32' We shift as many bits as we can into the high register, perform 32-bit division with modulo there, then work through the remaining bits with long division. This optimization is especially noticeable for smaller dividends that barely use the high register. * src/base/ftcalc.c (ft_div64by32): Updated.
Werner Lemberg c0ce72a6 2014-10-02T06:44:43 Formatting.
Dave Arnold 537c55d3 2014-10-02T06:32:32 [cff] Fix Savannah bug #43271. * src/cff/cf2font.c (cf2_computeDarkening): Change overflow detection to use logarithms and clamp `scaledStem'.
Alexei Podtelezhnikov 74d0aad2 2014-10-01T23:27:15 * src/base/ftcalc.c: Remove miscellaneous type casts.
Alexei Podtelezhnikov 418e18f3 2014-10-01T22:36:40 [base] Use more common `FT_MSB' implementation with masks. * src/base/ftcalc.c (FT_MSB): Updated.
Alexei Podtelezhnikov 955aff12 2014-09-30T23:09:39 [base] Clean up. * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used code.
Alexei Podtelezhnikov f78ca0db 2014-09-30T22:53:38 Remove commented out code.
Alexei Podtelezhnikov 7f49111f 2014-09-25T22:54:38 [base] Avoid unnecessary long division. This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or lack thereof are predicted accurately. * src/base/ftcalc.c (ft_div64by32): Improve readability. (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division when multiplication stayed within 32 bits.
Werner Lemberg 5b68e4fb 2014-09-24T19:06:13 [autofit] Minor clean-ups. * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values. * src/autofit/afhints.c (af_glyph_hints_dump_points, af_glyph_hints_align_strong_points): Updated. * src/autofit/aflatin.c (af_latin_hints_link_segments, af_latin_hints_compute_segments), src/autofit/afcjk.c (af_cjk_hints_link_segments), src/autofit/aflatin2.c (af_latin2_hints_link_segments, af_latin2_hints_compute_segments): There are no longer fake segments since more than 10 years...
Werner Lemberg 7a615283 2014-09-22T08:38:00 [autofit] Minor.
Werner Lemberg 387a9fe7 2014-09-22T06:42:24 [autofit] Minor code streamlining. * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant initialization.
Werner Lemberg 378266dc 2014-09-22T06:33:38 Formatting.
Alexei Podtelezhnikov 5c894842 2014-09-19T22:03:15 * src/base/ftcalc.c: Harmonize code.
Alexei Podtelezhnikov ef070d45 2014-09-15T22:06:19 [base] Tighten the overflow check in `FT_MulDiv'. * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
Alexei Podtelezhnikov bc12d9e9 2014-09-08T21:27:43 Fix Savannah bug #43153. * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against overflow in `divider'.
Alexei Podtelezhnikov 336735d8 2014-09-03T22:55:26 [base] Tighten the overflow check in `FT_DivFix'. This fixes a 13-year old bug. The original overflow check should have been updated when rounding was introduced into this function (c2cd00443b). * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated. * include/freetype.h (FT_DivFix): Updated documentation.
Alexei Podtelezhnikov 3212852c 2014-09-03T21:57:42 [base] Tighten the overflow check in `FT_MulFix'. * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
Alexei Podtelezhnikov 125c3ca8 2014-09-02T22:38:59 [truetype] Shortcut ppem calculations for square pixels. * src/truetype/ttinterp.h (TT_ExecContextRec): New field `cur_ppem_func' with a function pointer. * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func' depending on the pixel geometry to either... (Current_Ppem_Stretched): ... this for stretched pixels. (Current_Ppem): ... or this for square pixels. (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
Behdad Esfahbod 1ec98b29 2014-08-31T08:47:11 Don't use `register' keyword. Fixes compiler warnings. * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it. * src/gzip/inftrees.c (huft_build): Ditto. * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
Alexei Podtelezhnikov a8bc49e1 2014-08-24T22:14:01 [truetype] Optimize DELTAP and DELTAC. * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem calculations outside of the loop.
Werner Lemberg 70961e57 2014-08-20T16:19:32 Minor.
Alexei Podtelezhnikov 8fd87d4e 2014-08-20T00:57:22 [base] Small optimization of `FT_MulFix'. * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct 32-bit calculations.
Alexei Podtelezhnikov f09326a1 2014-08-20T00:08:38 [base] Use unsigned calculation in `FT_MulDiv'. * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
Alexei Podtelezhnikov 382f3155 2014-08-18T23:16:15 [base] Remove truncation in `FT_DivFix'. * src/base/ftcalc.c (FT_DivFix): Updated.
Alexei Podtelezhnikov 5ef2023c 2014-08-14T23:21:46 Minor refactoring. * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
Alexei Podtelezhnikov c7022467 2014-08-14T23:01:01 Turn FT_MSB into a macro when using gcc builtins. * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
Alexei Podtelezhnikov 87e56b04 2014-08-14T22:41:06 Fix comment and whitespace.
Alexei Podtelezhnikov f8efbcfb 2014-08-12T23:22:17 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'. * src/base/ftbbox.c (BBox_Cubic_Check): Update. (update_cubic_max): Repalce with... (cubic_peak): ... this, which now handles upscaling.
Alexei Podtelezhnikov d2935e29 2014-08-12T00:41:04 * src/base/fttrigon.c (ft_trig_prenorm): Comment on undefined behavior.
Alexei Podtelezhnikov 28018d42 2014-08-12T00:26:16 [base] Handle collapsed outlines to avoid undefined FT_MSB. * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
Alexei Podtelezhnikov 4728993f 2014-08-11T23:39:34 [base] Restore FT_MulFix inlining. * include/freetype.h (FT_MulFix): Unconditionally defined. * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here... * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here, which conditionally replaces the function with an inline version through the macro.
Alexei Podtelezhnikov 90be4b63 2014-08-08T22:27:10 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
Werner Lemberg d17cabf5 2014-07-26T09:53:50 [cff] Fix typo. * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct offsets in third quadrant. Reported by maks <maksqwe1@ukr.net>.
Werner Lemberg 4e754133 2014-07-17T17:34:49 Fix Savannah bug #42788. * src/pfr/pfrobjs.c: Include `ftcalc.h'.
Werner Lemberg cbbf26b7 2014-07-17T17:27:12 Whitespace.
Werner Lemberg 3939c200 2014-07-17T17:24:22 Minor.
Alexei Podtelezhnikov c0a6f20a 2014-07-16T22:05:56 Replace `ft_highpow2' function. * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of `ft_highpow2'. * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove it.
Alexei Podtelezhnikov 177982e9 2014-07-15T23:54:34 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov 71330ceb 2014-07-15T23:30:45 [base] Move assembler code back in the source file. FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b. * include/config/ftconfig.h, builds/unix/ftconfig.in, builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here... * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
Alexei Podtelezhnikov 1183cd4e 2014-07-14T22:30:55 [base] Further clean up color bitmap conversion. * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
Werner Lemberg 441b3f38 2014-07-13T02:28:14 [truetype] Improve handling of buggy `prep' tables. In case of an error in the `prep' table, no longer try to execute it again and again. This makes FreeType handle endless loops in buggy fonts much faster. * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready' and `cvt_ready' are now negative if not initialized yet, otherwise they indicate the error code of the last run. * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, tt_size_done_bytecode, tt_size_init_bytecode, tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset): Updated. * src/truetype/ttgload.c (tt_loader_init): Updated. * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm' and `prep' only if we are in the `glyf' table.
Alexei Podtelezhnikov 35576bf0 2014-07-11T22:40:34 [base] Clean up bitmap conversion. * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use appropriate FT_DivFix and remove superfluous upscaling.
Alexei Podtelezhnikov 2f52df4a 2014-07-05T22:29:26 [base] Improve comment.
Alexei Podtelezhnikov ceab95a6 2014-07-04T23:01:32 [base] Small optimization of the ancient code. * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the condition for direct 32-bit calculations.
Werner Lemberg 3897556a 2014-06-27T06:55:56 Fix Apple standard glyph names. * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with `tools/glnames.py' Problem reported by Adam Twardoch <adam@fontlab.com>.
Werner Lemberg 231171fc 2014-06-17T09:14:32 Partially revert commit from 2014-06-13. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move declaration of `p_first' and `p_last' out of the loop.
Werner Lemberg d708658c 2014-06-13T15:56:11 And another warning from Wojciech.
Werner Lemberg e5c0fff5 2014-06-13T14:01:20 Fix more compiler warnings. Reported by Wojciech Mamrak <wmamrak@gmail.com>. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Make integer constant unsigned. * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) <TT_SBIT_TABLE_TYPE_SBIX>: Fix types. (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper casts.
Werner Lemberg 6497b9c5 2014-06-13T09:28:00 Fix compiler warnings. Reported by Wojciech Mamrak <wmamrak@gmail.com>. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage), src/autofit/afmodule.c (af_property_set): Fix `signed' vs. `unsigned' issues. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler happy. * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements for `fir'. Fix `signed' vs. `unsigned' issues. * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused. (WRITE_USHORT, WRITE_ULONG): Add proper casts. * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts. * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1' and `B2'.
Werner Lemberg d7f45943 2014-05-13T15:33:11 [autofit] Fix comment.
Werner Lemberg faa21472 2014-05-11T12:44:00 [autofit] Fix variable initializations. * src/autofit/afhints.c (af_glyph_hints_reload): Assign default values to `in_dir' and `out_dir' for all points.
Werner Lemberg 07e7b8af 2014-05-11T08:00:25 [autofit] Fix crash with font `CabinSketch-Bold.ttf'. Problem reported by Ralf S. Engelschall <rse@engelschall.com>. * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for finding first non-near point. Properly initialize non-near point deltas.
Werner Lemberg 5f18a0c3 2014-05-01T17:26:52 Formatting.
Werner Lemberg c576bb0d 2014-05-01T17:24:19 [autofit] Add blue-zone support for Devanagari. This essentially moves the Devanagari script from the `Indic' hinter to the `Latin' hinter. Thanks to Girish Dalvi <girish.dalvi@gmail.com> for guidance with blue zone characters! * src/autofit/afblue.dat: Add blue zone data for Devanagari. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Devanagari standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Devanagari data out of AF_CONFIG_OPTION_INDIC block. Move U+20B9, (new) Rupee sign, from Latin to Devanagari. * src/autofit/afstyles.h: Update Devanagari data; in particular, use AF_WRITING_SYSTEM_LATIN.
Werner Lemberg 63bef9a5 2014-05-01T07:16:05 [autofit] Fix handling of neutral blue zones in stems. * src/autofit/afhints.h (AF_Edge_Flags): New value `AF_EDGE_NEUTRAL'. * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace neutral blue zones with AF_EDGE_NEUTRAL. (af_latin_hint_edges): Skip neutral blue zones if necessary.
Werner Lemberg ccfc4b4c 2014-04-28T21:13:14 [autofit] Introduce neutral blue zones to the latin module. Such blue zones match either the top or the bottom of a contour. We need them for scripts where accent-like elements directly touch the base character (for example, some vowel signs in Devanagari, cf. U+0913 or U+0914). * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New property. * src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro. (AF_LATIN_BLUE_NEUTRAL): New enumeration value. * src/autofit/aflatin.c (af_latin_metrics_init_blues, af_latin_hints_compute_blue_edges): Handle neutral blue zones.
Werner Lemberg abb3fcac 2014-04-25T22:13:32 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17. Using input glyph coverage data is simply wrong. Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and Mantas Mikulėnas <grawity@gmail.com>.
Werner Lemberg 426f0e04 2014-04-24T07:13:31 Minor.
Werner Lemberg f193637f 2014-04-23T08:22:33 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode. This spot has been missed while introducing support for various drop-out modes years ago (including no drop-out mode, which this commit fixes). Problem reported by Patrick Thomas <pthomas505@gmail.com>.
Werner Lemberg d9b4470e 2014-04-22T07:33:07 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
Werner Lemberg 98e510ee 2014-04-20T22:11:27 [autofit] Fix Savannah bug #42148. The adaptation of the cjk auto-hinter module to blue stringsets in 2013-08-25 had three severe bugs. Mea culpa. 1. Contrary to the latin auto-hinter, characters for reference and overshoot values of a blue zone are specified separately. Due to the screwed-up change it didn't work at all. 2. A boolean comparison was erroneously replaced with a cast, causing invalid results with the `^' operator later on. The visual artifact caused by this problem is the topic of the bug report. 3. Two flag values were inverted, causing incorrect assignment of reference and overshoot values. * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new syntax to have both reference and overshoot characters in a single string. This is error #1. Add extensive comments. * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no longer used. (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values. This is error #3. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1. Use character `|' to separate characters for reference and overshoot values. Improve tracing messages, synchronizing them with the latin auto-hinter. (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'. This is error #2. (af_cjk_align_linked_edge): Add tracing message. * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer used.
Werner Lemberg 8c7fb78b 2014-04-17T15:53:25 [autofit] More coverage fixes for complex scripts. * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage of GSUB lookups into output coverage. Otherwise, ligatures are not handled properly. Don't check blue zone characters for default coverage.
Werner Lemberg bbd8313b 2014-04-17T01:24:36 Make `FT_Get_SubGlyph_Info' actually work. * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok if there is no error.
Werner Lemberg 181fd071 2014-04-15T16:47:05 [afblue.pl]: Minor improvements. * src/tools/afblue.pl: Allow whitespace before comments. Ignore whitespace in strings.
Werner Lemberg 8b1f2a6c 2014-04-14T07:58:19 [autofit] Improve coverage handling. * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs appearing in the GPOS table if we are processing the default coverage.
David Weber 7630787a 2014-04-13T15:41:13 [smooth] Fix stand-alone compilation. * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
Werner Lemberg 8a94b1ef 2014-04-12T20:44:33 [autofit] Redesign the recognition algorithm of strong points. In particular, local extrema without horizontal or vertical segments are better recognized: + A + D \ / \ / \ / \ / \ + C \ / B +/ If the distances AB and CD are large, point B wasn't previously detected as an extremum since the `ft_corner_is_flat' function `swallowed' BC regardless of its direction, tagging point B as weak. The next iteration started at B and made `ft_corner_is_flat' swallow point C, tagging it as weak also, et voilà. To improve that, another pass gets now performed before calling `ft_corner_is_flat' to improve the `topology' of an outline: A sequence of non-horizontal or non-vertical vectors that point into the same quadrant are handled as a single, large vector. Additionally, distances of near points are now accumulated, which makes the auto-hinter handle them as if they were prepended to the next non-near vector. This generally improves the auto-hinter's rendering results. * src/autofit/afhints.c (af_glyph_hints_reload): Implement it. * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag `AF_FLAG_NEAR'.
Werner Lemberg 71f53e12 2014-04-05T16:27:19 [autofit] Improve scoring algorithm for identifying stems. Problem reported by Karsten Lücke <karsten.luecke@kltf.de>. The new algorithm takes care of the width of stems: If the distance between two segments is larger than the largest stem width, the demerits quickly increase for larger distances. This improves hinting of slanted fonts (especially if the inner parts of serifs have non-horizontal `shoulders'), avoiding false stem links. * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest stem width (if available) to compute better demerits for distances between stems. (af_latin_hints_detect_features): Pass stem width array and array size. (af_latin_metrics_init_widths): Updated to use original algorithm. (af_latin_hints_apply): Updated to use new algorithm. * src/autofit/aflatin.h: Updated. * src/autofit/afcjk.c: Updated.
Werner Lemberg 87360a78 2014-04-05T00:08:52 [aflatin] Improve comment.
Werner Lemberg f8555b5d 2014-04-03T05:45:38 Don't require `gzip' module for `sfnt'. Reported by Preet <prismatic.project@gmail.com>. * src/sfnt/sfobjs.c (woff_open_font): Guard use of FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
Werner Lemberg d5159925 2014-03-22T06:20:54 Another revert for the change from 2014-03-18. Problem reported by Nikolaus Waxweiler <madigens@gmail.com>. * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol gets always exported.
Werner Lemberg cc7cf2c3 2014-03-19T07:35:35 Partially revert last commit. Found by Alexei. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing those variables is plain wrong, since we are in a loop.
Sean McBride 87628724 2014-03-18T08:39:35 Fix clang warnings. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize some variables. * src/base/ftcalc.c (FT_MulFix): Only use code if `FT_MULFIX_INLINED' is not defined. * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c (ftc_basic_image_family_class, ftc_basic_image_cache_class, ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class), src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make function static. * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant code.
Werner Lemberg 23367ff9 2014-03-17T07:33:14 Fix Savannah bug #41869. This works around a problem with HarfBuzz (<= 0.9.26), which doesn't validate glyph indices returned by `hb_ot_layout_lookup_collect_glyphs'. * src/autofit/hbshim.c (af_get_coverage): Guard `idx'. * docs/CHANGES: Updated.
Alan Coopersmith ed372b71 2014-03-09T06:14:12 Fix cppcheck 1.64 warning. * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer dereference in case of error.