shithub: freetype+ttf2subf

Download patch

ref: c9f588be56a6c89c210284711417130ea53bd72e
parent: 40479fad93fd939450f1c0efb54a99074cb1b5d3
author: Werner Lemberg <wl@gnu.org>
date: Sat Oct 10 08:48:18 EDT 2020

Document changes to last release.

git/fs: mount .git/fs: mount/attach disallowed
--- a/builds/meson/extract_freetype_version.py
+++ b/builds/meson/extract_freetype_version.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 """Extract the FreeType version numbers from `<freetype/freetype.h>`.
 
-This script parses the header to extract the version number defined there. 
+This script parses the header to extract the version number defined there.
 By default, the full dotted version number is printed, but `--major`,
 `--minor` or `--patch` can be used to only print one of these values
 instead.
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -1,4 +1,53 @@
+CHANGES BETWEEN 2.10.2 and 2.10.3
 
+  I. IMPORTANT CHANGES
+
+  - New flag `FT_OUTLINE_OVERLAP'.  If set, make the smooth rasterizer
+    do  4x4 oversampling  to  mitigate artifacts  in pixels  partially
+    covered  by  overlapping  contours.    Note  that  this  at  least
+    quadruples the rendering time.
+
+    If  a  glyph  in  a  TrueType font  has  the  `OVERLAP_SIMPLE'  or
+    `OVERLAP_COMPOUND'  bit set,  FreeType automatically  selects this
+    rendering mode.
+
+
+  II. MISCELLANEOUS
+
+  - Using the  arcane method of  including FreeType header  files with
+    macros like  `FT_FREETYPE_H' is no longer  mandatory (but retained
+    as an optional feature for backward compatibility).
+
+  - Support for  building the library  with Meson.  Building  the demo
+    programs with Meson will follow in a forthcoming release.
+
+  - Minor improvements to the B/W rasterizer.
+
+  - Auto-hinter support for Medefaidrin script.
+
+  - Fix various  memory leaks (mainly  for CFF) and other  issues that
+    might cause crashes in rare circumstances.
+
+  - Jam support has been removed.
+
+  - In  `ftview', custom  LCD  filter values  are  now normalized  and
+    balanced.  Unorthodox filters are still available through the `-L'
+    command line option.
+
+  - The GUI demo programs can now be resized.
+
+  - Demo programs that accept command  line option `-k' can now handle
+    function keys, too.  The  corresponding character codes start with
+    0xF1.  As  an example, the  POSIX shell syntax (accepted  by bash,
+    ksh, and zsh)
+
+      -k $'\xF3q'
+
+    emulates the pressing of function key `F3' followed by key `q'.
+
+
+======================================================================
+
 CHANGES BETWEEN 2.10.1 and 2.10.2
 
   I. IMPORTANT CHANGES
@@ -19,7 +68,7 @@
     `docwriter'  (Python >= 3.5 is required for targets  `make refdoc'
     and `make refdoc-venv').
 
-  - Auto-hinter support for Hanifi Rohingya and Medefaidrin.
+  - Auto-hinter support for Hanifi Rohingya.
 
   - Document the `FT2_KEEP_ALIVE' debugging environment variable.
 
@@ -246,7 +295,7 @@
       use the `pkg-config' interface.
 
       The `configure'  script no longer installs  `freetype-config' by
-      default.  For  backwards compatibility,  a new  configure option
+      default.  For  backward  compatibility,  a new  configure option
       `--enable-freetype-config'   is  provided   that  reverts   this
       decision.
 
--- a/docs/INSTALL.ANY
+++ b/docs/INSTALL.ANY
@@ -10,7 +10,7 @@
 
   * If you use macro names  for FreeType header files (while mandatory
     in earlier versions,  this is now optional  since FreeType version
-    2.11) it  is necessary to  disable pre-compiled headers.   This is
+    2.10.3) it  is necessary to disable pre-compiled headers.  This is
     very important for Visual C++, because lines like
 
       #include FT_FREETYPE_H
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -403,7 +403,7 @@
    *   FT_OUTLINE_OVERLAP ::
    *     This flag indicates that this outline contains overlapping contrours
    *     and the anti-aliased renderer should perform oversampling to
-   *     metigate possible artifacts.  This flag should _not_ be set for
+   *     mitigate possible artifacts.  This flag should _not_ be set for
    *     well designed glyphs without overlaps because it quadruples the
    *     rendering time.
    *
@@ -1017,11 +1017,11 @@
    * @note:
    *   The @FT_RASTER_FLAG_AA bit flag must be set in the `flags` to
    *   generate an anti-aliased glyph bitmap, otherwise a monochrome bitmap
-   *   is generated. The `target` should have appropriate pixel mode and its
+   *   is generated.  The `target` should have appropriate pixel mode and its
    *   dimensions define the clipping region.
    *
    *   If both `( @FT_RASTER_FLAG_AA | @FT_RASTER_FLAG_DIRECT )` bit flags
-   *   are set in `flags`, the raster will call an @FT_SpanFunc callback
+   *   are set in `flags`, the raster calls an @FT_SpanFunc callback
    *   `gray_spans` with `user` data as an argument ignoring `target`.  This
    *   allows direct composition over a pre-existing user surface to perform
    *   the span drawing and composition.  To optionally clip the spans, set
--- a/include/freetype/ftlcdfil.h
+++ b/include/freetype/ftlcdfil.h
@@ -195,7 +195,7 @@
    *   FreeType error code.  0~means success.
    *
    * @note:
-   *   Since 2.11 the LCD filtering is enabled with @FT_LCD_FILTER_DEFAULT.
+   *   Since 2.10.3 the LCD filtering is enabled with @FT_LCD_FILTER_DEFAULT.
    *   It is no longer necessary to call this function explicitly except
    *   to choose a different filter or disable filtering altogether with
    *   @FT_LCD_FILTER_NONE.
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -459,8 +459,9 @@
 #define IS_TOP_OVERSHOOT( x )    \
           (Bool)( x - FLOOR( x ) >= ras.precision_half )
 
-  /* smart dropout rounding to find which pixel is closer to span ends;    */
-  /* to mimick Windows, symmetric cases break down indepenent of precision */
+  /* Smart dropout rounding to find which pixel is closer to span ends. */
+  /* To mimick Windows, symmetric cases break down indepenently of the  */
+  /* precision.                                                         */
 #define SMART( p, q )  FLOOR( ( (p) + (q) + ras.precision * 63 / 64 ) >> 1 )
 
 #if FT_RENDER_POOL_SIZE > 2048
@@ -2507,7 +2508,7 @@
                 x2 / (double)ras.precision ));
 
     /* We should not need this procedure but the vertical sweep   */
-    /* mishandles horizontal lines through pixel centers. So we   */
+    /* mishandles horizontal lines through pixel centers.  So we  */
     /* have to check perfectly aligned span edges here.           */
     /*                                                            */
     /* XXX: Can we handle horizontal lines better and drop this?  */