Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 1dee4bf9 | 2017-02-05 08:33:10 | [autofit] Use better blue zone characters for lowercase latin. The number of lowercase characters for computing the top flat blue zone value was too small (in most cases only `x' and `z'). If one of the two characters has a large serif, say, it can happen that FreeType must select between two different values, having a 50% chance to use the wrong one. As a result, rendering at larger PPEM values could yield uneven lowercase glyph heights. Problem reported by Christoph Koeberlin <christoph@koe.berlin>. * src/autofit/afblue.dat (AF_BLUE_STRING_LATIN_SMALL): Replaced with... (AF_BLUE_STRING_LATIN_SMALL_TOP, AF_BLUE_STRING_LATIN_SMALL_BOTTOM): ... New, extended sets. (AF_BLUE_STRINGSET_LATN): Updated. * src/autofit/afblue.c, scr/autofit/afblue.h: Regenerated. | ||
| 68a738db | 2017-02-03 21:32:21 | Comments. | ||
| 0a1169f7 | 2017-02-03 19:38:20 | * src/autofit/afglobal.c (af_face_globals_free): Erase useless code. | ||
| dadc50a4 | 2017-02-02 07:13:29 | Make compilation with FT_CONFIG_OPTION_PIC work again. All code committed here is guarded with `FT_CONFIG_OPTION_PIC'. * include/freetype/internal/services/svmetric.h (FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Remove trailing semicolon. * src/autofit/aflatin.c (af_latin_hints_compute_edges, af_latin_hint_edges): Provide `globals' variable. * src/autofit/afloader.c (af_loader_load_glyph): Remove shadowing variable. * src/autofit/afmodule.c (AF_SCRIPT_CLASSES_GET, AF_STYLE_CLASSES_GET): Redefine. * src/autofit/aftypes.h (AF_DEFINE_WRITING_SYSTEM_CLASS): Fix typo. * src/cff/cffparse.c (CFF_FIELD_BLEND): Provide it. * src/cff/cffpic.h (CffModulePIC): Fix typo. | ||
| 31f80553 | 2017-01-31 08:10:04 | [autofit] Avoid uninitialized jumps (#50191). * src/autofit/afcjk.c (af_cjk_metrics_check_digits), src/autofit/aflatin.c (af_latin_metrics_check_digits): Initialize `advance'. | ||
| d66c3645 | 2017-01-25 12:53:06 | Minor: Use `FT_ERR' macro. | ||
| 563ae780 | 2017-01-04 20:16:34 | Update copyright year. | ||
| 84b0d992 | 2016-12-29 10:38:51 | */*: Use `0.5f' for tracing 16.16 numbers. | ||
| 4441f7b2 | 2016-12-26 17:08:17 | Replace `foo == NULL' and `foo != NULL' with `!foo' and `foo', resp. Other minor formatting. | ||
| d44daf9e | 2016-12-21 23:03:48 | * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. Don't apply deltas twice for non-phantom points. Spotted by Ben Wagner. | ||
| 255828c8 | 2016-12-01 07:07:22 | [autofit] Fix Emscripten crash (patch #9180). Function calls through pointers must use a matching signature to work on Emscripten, since such calls are dispatched through lookup tables grouped by signature. * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Fix typedef. | ||
| b37b799c | 2016-11-27 16:30:53 | [autofit] Code shuffling. Also improve some comments and remove unused code. No functional change. * src/autofit/afloader.c (af_loader_load_g): Merged with... (af_loader_load_glyph): ...this function. Split off emboldening code into... (af_loader_embolden_glyph_in_slot): ... this function. | ||
| 48c77da3 | 2016-11-17 07:37:50 | Add minor comment to avoid confusion (#19044). | ||
| 2f2e73c5 | 2016-09-24 22:42:58 | [autofit] Tracing fixes. * src/autofit/afmodule.c (af_autofitter_load_glyph): Call dumping functions only if we actually do tracing. | ||
| c95b7652 | 2016-09-17 17:12:50 | s/0/NULL/ for function pointers; comments, formatting. | ||
| 9749f269 | 2016-09-08 07:51:03 | [autofit] Another improvement to Armenian support. Suggested by Hrant H Papazian <hpapazian@gmail.com>. * src/autofit/afscript.h: Use better suited characters to derive default stem widths. | ||
| c9adf1a1 | 2016-09-05 07:32:37 | [autofit] Improve Armenian support. Thanks to Hrant H Papazian <hpapazian@gmail.com> for help. * src/autofit/afblue.dat (AF_BLUE_STRING_ARMENIAN_*): Improve selection of characters. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. | ||
| d9c7f5aa | 2016-07-26 20:20:27 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Minor. No functional change. | ||
| aafff574 | 2016-07-16 06:41:39 | * src/autofit/aflatin.c (af_latin_hints_compute_segments): Thinko. `max_pos' is always larger than `min_pos' so `FT_ABS' is not needed. Reported by Alexei. | ||
| 1831e6f0 | 2016-07-15 10:35:32 | [autofit] Update and improve segment and edge tracing. * src/autofit/afhints.c (af_glyph_hints_dump_segments): Trace `delta' also. Don't show first point of segment as a replacement for `pos'; this is (a) misleading, since the difference to `pos' can be almost arbitrarily large in corner cases, and (b) it is better to have all segment data in font units instead of a single value given in output space coordinates. Improve layout. (af_glyph_hints_dump_edges): Show px->units and units->px conversion values for convenience. Improve layout. | ||
| 894c0228 | 2016-07-15 10:23:11 | [autofit] For edges, reject segments wider than 1px (#41334). * src/autofit/afhints.h (AF_SegmentRec): New member `delta'. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Compute `delta'. (af_latin_hints_compute_edges): Reject segments with a delta larger than 0.5px. | ||
| 605946af | 2016-07-11 16:14:36 | Conditionally compile environment support. * include/freetype/internal/ftobjs.h, src/autofit/afmodule.c, src/base/ftobjs.c, src/cff/cffdrivr.c, src/truetype/ttdriver.c: Decorate with `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES' where necessary. | ||
| 8f8ae8c5 | 2016-07-11 15:11:38 | Handle properties in `FREETYPE_PROPERTIES' environment variable. This commit covers the most important one. * src/autofit/afmodule.c (af_property_set): Handle `warping', `darkening-parameters', and `no-stem-darkening'. * src/cff/cffdrivr.c (cff_property_set): Handle `darkening-parameters', `hinting-engine', and `no-stem-darkening'. * src/truetype/ttdriver.c (tt_property_set): Handle `interpreter-version'. | ||
| c3beb30a | 2016-07-10 07:11:45 | Add function `ft_property_string_set'. This is a preparation for handling an `FREETYPE_PROPERTIES' environment variable to control (some) driver properties. No change in functionality. * src/base/ftobjs.c (ft_property_do): Add `value_is_string' parameter. (ft_property_string_set): New function. (FT_Property_Set, FT_Property_Get): Updated. * include/freetype/internal/ftobjs.h: Updated. * include/freetype/internal/services/svprop.h (FT_Properties_SetFunc): Add `value_is_string' parameter. * src/autofit/afmodule.c (af_property_set), src/cff/cffdrivr.c (cff_property_set), src/truetype/ttdriver.c (tt_property_set): Updated, emitting an error currently if `value_is_string' is set. | ||
| 5e353f07 | 2016-07-04 14:59:22 | [autofit] Handle single-point contours as segments. Doing so allows us to link them to edges – some fonts like `NotoSansGurmukhi-Regular' have such isolated points sitting exactly on other outlines. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Don't ignore one-point contours but handle them specially as one-point segments. (af_latin_hints_compute_edges): Append one-point segments to edges if possible. | ||
| 8b8c4408 | 2016-07-02 18:35:50 | [autofit] Remove unused structure members. * src/autofit/afhints.h (AF_SegmentRec, AF_EdgeRec): Remove `num_linked'. * src/autofit/afcjk.c (af_cjk_hints_link_segments): Updated. | ||
| aab2b8d8 | 2016-07-02 08:37:44 | [autofit] Update to Unicode 9.0.0. * src/autofit/afranges.c (af_arab_nonbase_uniranges, af_cyrl_uniranges): Add new data. | ||
| 05a55a56 | 2016-06-13 12:16:45 | [autofit] Add support for Cherokee script. * src/autofit/afblue.dat: Add blue zone data for Cherokee. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Cherokee standard characters. * src/autofit/afranges.c: Add Cherokee data. * src/autofit/afstyles.h: Add Cherokee data. | ||
| 223d002c | 2016-06-07 13:52:14 | [autofit] Add support for Ethiopic script. * src/autofit/afblue.dat: Add blue zone data for Ethiopic. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Ethiopic standard characters. * src/autofit/afranges.c: Add Ethiopic data. * src/autofit/afstyles.h: Add Ethiopic data. | ||
| 15eab363 | 2016-06-07 10:36:27 | [autofit] Fix compilation with VS2016 (#48126). This compiler doesn't recognize the end-of-comment sequence `*/' if it immediately follows non-ASCII characters. * src/autofit/afscript.h: Ensure whitespace before `*/'. | ||
| 46d36904 | 2016-05-28 19:38:43 | * src/autofit/afranges.c: Remove `UL' postfix from hex numbers. Suggested by Alexei. `UL' is only needed for 16bit compilers, but it seems noone is using this anymore (and we no longer test whether FreeType compiles in such an environment). Otherwise, it is easy to add the postfix to the `AF_UNICODE_RANGE' macro. | ||
| e97918c5 | 2016-05-25 07:13:29 | [autofit] Fixes for Armenian and Gujarati ranges. * src/autofit/afranges.c (af_armn_uniranges): Corrected. (af_guru_nonbase_uniranges): Make U+0A3E a base character. | ||
| 1dcda70e | 2016-05-24 23:10:44 | [autofit] Ordering, whitespace. | ||
| a74f40f9 | 2016-05-24 18:27:18 | [autofit] Add support for Armenian script. * src/autofit/afblue.dat: Add blue zone data for Armenian. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Armenian standard characters. * src/autofit/afranges.c: Add Armenian data. * src/autofit/afstyles.h: Add Armenian data. | ||
| 9d179e3d | 2016-05-22 08:38:41 | [autofit] Add blue-zone support for Gurmukhi script. This essentially moves the Gurmukhi script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Gurmukhi. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Gurmukhi standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Gurmukhi data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Gurmukhi data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| 22167629 | 2016-04-25 21:18:24 | [autofit] Add blue-zone support for Gujarati script. This essentially moves the Gujarati script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Gujarati. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Gujarati standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Gujarati data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Gujarati data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| 80afef8b | 2016-04-23 21:34:15 | [autofit] Improve Georgian blue zone characters. Suggested by Akaki Razmadze <razmadzekoko@gmail.com>. * src/autofit/afblue.dat (AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM): Updated. * src/autofit/afblue.c: Regenerated. | ||
| c8c7ad79 | 2016-04-09 08:24:00 | [autofit] Add support for Georgian scripts. Georgian is problematic, since `uppercase' forms of Mkhedruli (called Mtavruli) are not yet defined in Unicode, which means that proper blue zones can't be defined. However, there is already a proposal submitted to Unicode; see http://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf Additionally, due to historical reasons, Unicode treats Khutsuri as the same script as Mkhedruli, and so does OpenType. However, since the two scripts have completely different shapes it can happen that blue zones differ considerably. The tag `geok' used here (derived from ISO 15924) to differentiate the two scripts is not an OpenType tag in use. If we now have a font that contains both glyphs for Mkhedruli and Khutsuri, and it uses OpenType features for both also, HarfBuzz unavoidably treats all glyphs as `geor'. As a consequence, blue zones for `geok' are not used for glyphs involved in the OpenType features. An issue not yet resolved is which OpenType feature should be used to access Mtavruli glyph shapes; right now, FreeType doesn't set up support for them, but it is easy to add them later on as soon as more information is available. * src/autofit/afblue.dat: Add blue zone data for Georgian. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Georgian standard characters. * src/autofit/afranges.c: Add Georgian data. * src/autofit/afstyles.h: Add Georgian data. | ||
| e8542260 | 2016-04-08 23:21:34 | Typos. | ||
| bf8f100d | 2016-04-05 11:43:58 | [autofit] Provide dummy blue zone for pseudo script `none'. Even if the dummy hinter is used as the handler for `none' (which doesn't use blue zones), it is more consistent than the old value (which was 0), pointing to Arabic... * src/autofit/afblue.dat: Add `AF_BLUE_STRINGSET_NONE'. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afstyles.h (none_dflt): Use AF_BLUE_STRINGSET_NONE. | ||
| f73a9937 | 2016-03-26 08:31:19 | [autofit] Mark `aflatin2.[ch]' as not compilable. | ||
| 614a8f17 | 2016-03-21 19:39:14 | * src/autofit/afhints.c (af_glyph_hints_reload): Thinko. This fixes the previous commit to this file. | ||
| 709486db | 2016-03-20 22:20:32 | [autofit] Show `near' points in tracing. * src/autofit/afhints.h (AF_FLAG_NEAR): New macro. * src/autofit/afhints.c (af_glyph_hints_dump_points): Implement it. (af_glyph_hints_reload): Handle AF_FLAG_NEAR. | ||
| da86b73f | 2016-03-15 07:55:05 | * src/autofit/aflatin.c (af_latin_compute_stem_width): Optimize. | ||
| caa48b0d | 2016-03-05 19:47:07 | [autofit] Avoid excessive stem length rounding (#25392). * src/autofit/aflatin.c (af_latin_compute_stem_width): Add argument to pass difference between hinted and unhinted position of base point; use this to adjust the stem width depending on the PPEM so that it doesn't become too large under certain circumstances. Update all callers using value 0 for this argument except... (af_latin_align_linked_edge): Pass position delta of base point to `af_latin_compute_stem_width'. | ||
| 3eb6f66a | 2016-03-01 07:10:30 | [autofit] Fix reallocation error introduced in 2016-02-27 (#47310). * src/autofit/aflatin.c (af_latin_hints_compute_segments): Reassign `prev_segment' after reallocation. | ||
| 015c6e08 | 2016-03-01 06:45:52 | Fix clang warnings. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Use FT_UShort for `min_flags' and `max_flags'. Initialize `prev_*' variables. * src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix types of local variables. * src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]: Update `printf' format string. * src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast. (LLVMFuzzerTestOneInput): Fix loop type. | ||
| 5c7646d2 | 2016-02-29 09:12:35 | [autofit] Add blue-zone support for Sinhala script. This essentially moves the Sinhala script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Sinhala. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Sinhala standard character and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Sinhala data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Sinhala data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| f2169478 | 2016-02-28 22:48:34 | [autofit] Properly handle spikes pointing to the x-axis. An example that gets better rendered is glyph `uusignTaml' (glyph index 2286) in font `FreeSerif.ttf' (Version 0412.2263) at 22ppem. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Properly handle segments where the last point of the first segment is identical to the first point in the second one. This can happen for malformed fonts or spikes. We either merge the new segment with the previous one (both segments point into the same direction), or we discard the shorter segment if they point into different directions. | ||
| ce486645 | 2016-02-27 15:01:49 | [autofit] Minor code clean-up. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Change some local variable names to better differentiate between values along a segment and values orthogonal to it. | ||
| ebfd7ce5 | 2016-02-26 08:10:41 | [autofit] Improve BOUND action. In complex glyph shapes, the original logic was too simple to cater for situations that would actually need something similar to PS Hint masks. This fix should alleviate the worst cases. * src/autofit/aflatin.c (af_latin_hint_edges): Don't allow complete disappearance of stems. | ||
| 44324b37 | 2016-02-25 06:58:47 | [autofit] Add blue-zone support for Tamil script. This essentially moves the Tamil script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Tamil. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Tamli standard character and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Tamil data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Tamil data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| a5952d30 | 2016-02-18 12:56:38 | [autofit] Add blue-zone support for Malayalam script. This essentially moves the Malayalam script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Malayalam. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Malayalam standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Malayalam data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Malayalam data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| 32950391 | 2016-02-15 12:54:40 | Whitespace. | ||
| f380d743 | 2016-01-30 11:16:04 | Typo. | ||
| baa41ff2 | 2016-01-30 07:44:30 | [autofit] Minor tracing improvement. * src/autofit/afhints.c (af_glyph_hints_dump_points): Insert newline at the start of a new contour. | ||
| 8d810097 | 2016-01-28 10:13:24 | [autofit] Add blue-zone support for Kannada script. This essentially moves the Kannada script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Kannada. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Kannada standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Kannada data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Kannada data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| fb672897 | 2016-01-20 21:13:16 | [autofix] Complete last autofit commit. Problem reported by Kostya Serebryany <kcc@google.com>. * src/autofit/afshaper.c (af_shaper_get_coverage) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Update signature. | ||
| ec776596 | 2016-01-19 19:33:57 | [autofit] Fix handling of default script. Patch taken from ttfautohint, commit 071ae2c00e0d67f9d19418f4fade1c23d27dc185. There were two bugs. - We now use non-standard script tags like `khms' for special purposes. However, HarfBuzz maps such tags to `DFLT', and without this commit the associated lookups were incorrectly assigned to the non-standard tags. - Let's assume we have a Bengali font, and the font's `DFLT' script tag handles the necessary lookups for Bengali, too. Without this commit, the `DFLT' lookups were assigned to ttfautohint's default script (usually `latn') before the standard lookups for Bengali were handled. We now have the following order while searching for covered glyph indices. special features of scripts (e.g. `sups' for Cyrillic) Unicode mappings of scripts remaining features of scripts (especially important for Indic scripts) default features of default script * src/autofit/afshaper.c, src/autofit/afshaper.h (af_shaper_get_coverage): Add boolean parameter to indicate default script. Update all callers. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): Fix search order for coverages. | ||
| fc11af1e | 2016-01-19 19:15:54 | Various minor clang fixes. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize `ch'. * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast. * src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast. * src/base/fthash.c (hash_num_lookup): Add cast. * src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast. * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out redundant code. * src/type1/t1driver.c (t1_get_ps_font_value) <PS_DICT_SUBR>: Add cast. * src/type1/t1load.c (parse_subrs): Fix type of `count'. | ||
| 9adeab64 | 2016-01-13 11:54:10 | Update copyright year. | ||
| 37412ff9 | 2016-01-12 21:37:13 | Don't use macro names that contain `__' [1/2]. Such macro names are reserved for both C and C++. */*: Replace macros of the form `__XXX_H__' with `XXX_H_'. | ||
| 2e09812c | 2015-12-25 08:05:30 | [autofit] Make top-to-bottom hinting work in latin auto-hinter. This improves rendering of scripts like Bengali or Devanagari. * src/autofit/afhints.c (af_axis_hints_new_edge): Add parameter to pass top-to-bottom hinting flag. This makes the function sort edges in descending vertical position. * src/autofit/afhints.c: Updated. * src/autofit/aflatin.c (af_latin_hints_compute_edges, af_latin_hint_edges): Use `top_to_bottom_hinting' flag. * src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/autofit/aflatin2.c (af_latin2_hints_compute_edges): Updated. | ||
| 172db325 | 2015-12-24 08:17:51 | [autofit] Add hinting direction to `AF_ScriptClassRec'. Still unused. * src/autofit/afglobal.c (SCRIPT): Handle hinting direction. * src/autofit/aftypes.h (AF_ScriptClassRec): Add `top_to_bottom_hinting' field. (AF_HINTING_BOTTOM_TO_TOP, AF_HINTING_TOP_TO_BOTTOM): New macros. (AF_DEFINE_SCRIPT_CLASS): Updated. | ||
| b0de5a82 | 2015-12-23 23:25:03 | [autofit] Start implementing hinting direction (up/down, down/up). Right now, it does nothing. * src/autofit/afscript.h: Add another parameter to `SCRIPT', specifying hinting direction. * src/autofit/afglobal.c, scr/autofit/afglobal.h, src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c, src/autofit/aftypes.h: Extend `SCRIPT' definitions. | ||
| 1f80c815 | 2015-12-16 08:22:42 | Whitespace. | ||
| 02451c79 | 2015-12-15 17:53:46 | [autofit] Add blue-zone support for Bengali script. This essentially moves the Bengali script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Bengali. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Bengali standard characters and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Bengali data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Bengali data; in particular, use AF_WRITING_SYSTEM_LATIN. | ||
| 0063649d | 2015-12-14 07:02:56 | Whitespace, `.mailmap' update. | ||
| d8f9a453 | 2015-12-13 15:54:17 | [autofit] Add support for Myanmar script. * src/autofit/afblue.dat: Add blue zone data for Myanmar. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Myanmar standard characters. * src/autofit/afranges.c: Add Myanmar data. * src/autofit/afstyles.h: Add Myanmar data. | ||
| 868d5a0e | 2015-12-12 07:28:22 | * src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor. | ||
| 79a42ad2 | 2015-12-12 07:27:14 | * src/autofit/afscript.h: Avoid potential crash. | ||
| 4fe3b55d | 2015-12-11 08:08:48 | [autofit] Restore OpenType feature check. This was removed while rewriting the HarfBuzz interface. * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add `hb_buf' field to hold internal HarfBuzz buffer, needed for feature comparison. * src/autofit/afglobal.c (af_face_globals_new, af_face_globals_free): Initialize and destroy `hb_buf'. * src/autofit/afshaper.c (af_shaper_get_cluster): Compare character (cluster) with and without applied feature. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix tracing message. | ||
| 3c3d7c21 | 2015-12-10 11:54:41 | Another typo. | ||
| 93fdf4eb | 2015-12-10 11:52:08 | Formatting. | ||
| bbe84ed9 | 2015-12-10 09:33:41 | [autofit] Remove redundant code. * src/autofit/aflatin.c (af_latin_metrics_init_widths): Do it. | ||
| 5330e3de | 2015-12-10 08:32:58 | [autofit] Minor. | ||
| dd305f31 | 2015-12-09 21:00:33 | [autofit] Thinko. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Don't count empty blue zones (bug introduced 2015-12-06). | ||
| 0164d934 | 2015-12-09 20:04:18 | [autofit] Introduce subscript top blue zones. This feature is mainly for Khmer: The idea is to avoid a clash between the top of subscript glyphs and the bottom of normal baseline glyphs. This only works for character clusters mapped to multiple glyphs. * src/autofit/afblue.dat: Add subscript top blue zone for Khmer. * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_SUB_TOP): New macro. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.h (AF_LATIN_IS_SUB_TOP_BLUE, AF_LATIN_BLUE_SUB_TOP): New macros. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle new blue zone property. Update tracing messages. (af_latin_metrics_scale_dim): Handle new blue zone property. (af_latin_hints_compute_blue_edges): Updated. | ||
| f02e1df7 | 2015-12-09 14:45:30 | [autofit] Fix tracing message. * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Display inactive blue zones also. | ||
| c13526e6 | 2015-12-08 09:48:50 | * src/autofit/afblue.dat: Add more Khmer clusters. Some fonts have incorrect ligatures; we need more samples to get a good mean value. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. | ||
| b38ca3cb | 2015-12-06 19:48:31 | [autofit] Typos. * src/autofit/afshaper.c (af_shaper_buf_create, af_shaper_get_elem) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Make it compile. | ||
| facb79ab | 2015-12-06 19:34:59 | [autofit] Add support for Khmer script. We split Khmer into two auto-hinter scripts: `Khmer' (`khmr') and `Khmer symbols' (`khms', U+19E0-U+19FF). * src/autofit/afblue.dat: Add blue zone data for Khmer. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Khmer standard characters. * src/autofit/afranges.c: Add Khmer data. * src/autofit/afstyles.h: Add Khmer data. | ||
| 24aa9c66 | 2015-12-06 18:52:41 | [autofit] Rewrite HarfBuzz interface to support character clusters. Scripts like Khmer have blue zones that can't be directly represented by Unicode characters. Instead, it is necessary to let HarfBuzz convert character clusters into proper glyph representation forms, then deriving the blue zone information from the resulting glyphs. * src/autofit/hbshim.c, src/autofit/hbshim.h: Replaced by... * src/autofit/afshaper.c, src/autofit/afshaper.h: ... these two new files, providing a new API to access HarfBuzz. The new API manages a HarfBuzz buffer with `af_shaper_buf_create' and `af_shaper_buf_destroy'. The buffer receives a UTF8 encoded string with function `af_shaper_get_cluster', and the resulting glyph data (indices, advance widths, vertical offsets) can be iteratively accessed with function `af_shaper_get_elem'. * src/autofit/afcjk.c (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_metrics_init_blues, af_latin_metrics_check_digits): Updated. * include/freetype/internal/fttrace.h: s/afharfbuzz/afshaper/. * src/autofit/afglobal.c: s/hbshim.h/afshaper.h/. (af_face_globals_compute_style_coverage): Updated. * src/autofit/afglocal.h: s/hbshim.h/afshaper.h/. * src/autofit/autofit.c: s/hbshim.c/afshaper.c/. * src/autofit/Jamfile, src/autofit/rules.mk (AUTOF_DRV_SRC): Updated. | ||
| de599941 | 2015-12-06 18:18:02 | [autofit] Prepare forthcoming changes. This makes it easier to control the commits. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Add dummy loop. No functional change. | ||
| f45c0bf9 | 2015-12-06 09:58:18 | [autofit] Use string of standard characters. This is more flexible; additionally, it would allow character clusters. * src/autofit/aftypes.h (SCRIPT, AF_DEFINE_SCRIPT_CLASS): Updated. (AF_ScriptClassRec): Replace `standard_char[123]' with `standard_charstring'. * src/autofit/afscript.h: Replace last three character arguments of the `SCRIPT' calls with a string parameter, holding the standard characters (in UTF-8 encoding) separated with spaces. * src/autofit/afglobal.c, src/autofit/afglobal.h, src/autofit/afpic.c, src/autofit/afranges.c, src/autofit/hbshim.c (SCRIPT): Updated. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths): Updated. | ||
| a8a54c30 | 2015-12-05 13:26:44 | * src/autofit/afblue.dat: Separate blue zone characters with spaces. Another preparation for character cluster support. * src/autofit/afblue.c, src/autofit.afblue.h: Regenerated. | ||
| f7e6d51a | 2015-12-05 13:08:45 | * src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'. * src/autofit/afblue.h: Regenerated. | ||
| 53696f03 | 2015-12-05 07:44:16 | * src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/. | ||
| 4679bf83 | 2015-11-28 19:05:36 | Fix C++ compilation. * src/autofit/afloader.c: Include FT_INTERNAL_CALC_H. * src/truetype/ttgload.c (load_truetype_glyph): Pacify compiler. | ||
| 68fb4789 | 2015-11-15 13:06:48 | * src/autofit/afhints.c (af_get_segment_index): Fix it. The old code was too simple, returning invalid values in most cases where a segment crosses the contour start. | ||
| 75722f89 | 2015-11-11 09:55:16 | [cff, autofit] Switch off stem darkening by default. * src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c (cff_driver_init): Do it. | ||
| be32b168 | 2015-11-08 08:37:51 | [autofit] Don't distort (latin) glyphs too much (#46195). * src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and `descender' fields. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect ascender and descender data for blue zones. (af_latin_metrics_scale_dim): Reject vertical scaling values that change the result by more than two pixels. | ||
| b6fd5bc0 | 2015-11-03 10:40:58 | * src/autofit/afloader.c (af_loader_load_g): Implement emboldening. | ||
| bf2ba9e3 | 2015-11-02 13:12:34 | [autofit] Implement darkening computation function. This is a crude adaption of the original `cf2_computeDarkening' function. * src/autofit/afloader.c (af_intToFixed, af_fixedToInt, af_floatToFixed): New macros, taken from `cf2fixed.h'. (af_loader_compute_darkening): New function. * src/autofit/afloader.h: Updated. | ||
| 37c401ac | 2015-11-02 09:32:26 | [autofit] Add functions to get standard widths for writing systems. We need the computed standard horizontal and vertical widths for the emboldening calculation. This method provides a convenient way to extract it from writing-system-specific metrics structures, which all script definitions must implement. * src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New function type. (AF_WritingSystemClassRec): New member `style_metrics_getstdw'. (AF_DEFINE_WRITING_SYSTEM_CLASS): Updated. * src/autofit/afcjk.c (af_cjk_get_standard_width): New function. (af_cjk_writing_system_class): Updated. * src/autofit/afdummy.c (af_dummy_writing_system_class): Updated. * src/autofit/afindic.c (af_cjk_get_standard_width): New function. (af_indic_writing_system_class): Updated. * src/autofit/aflatin.c (af_latin_get_standard_width): New function. (af_indic_writing_system_class): Updated. * src/autofit/aflatin.c (af_latin_get_standard_width): New function. (af_indic_writing_system_class): Updated. | ||
| b2a85ad3 | 2015-11-02 09:20:32 | [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data. * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields. * src/autofit/afglobal.c (af_face_globals_new): Initialize new fields. (af_face_globals_free): Reset new fields. | ||
| d682e510 | 2015-11-02 09:06:36 | [autofit] Add stem-darkening properties. Actual code follows in a later commit. * include/freetype/ftautoh.h: Document `no-stem-darkening' and `darkening-parameters'. * src/autofit/afmodule.h: New fields `no_stem_darkening' and `darken_params'. * src/autofit/afmodule.c (af_property_set, af_property_get): Handle them. (af_autofitter_init): Initialize them. | ||
| 4188deac | 2015-10-30 08:07:56 | Comments. | ||
| 02cfd714 | 2015-10-29 20:50:57 | * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor. | ||
| 7f00fa64 | 2015-10-25 10:59:59 | [autofit] Improve tracing. * src/autofit/afhints.c (af_print_idx, af_get_segment_index, af_get_edge_index): New functions. (af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'. Add segment and edge index for each point. Slightly change printing order of some elements. Don't print `-1' but `--' for missing elements. (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove unnecessary `|', `[', and `]'. Don't print `-1' but `--' for missing elements. |