Opened 5 years ago

Closed 5 years ago

#8043 closed enhancement (fixed)

freetype-2.6.5 freetype-doc

Reported by: bdubbs@… Owned by: Douglas R. Reno
Priority: normal Milestone: 7.10
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

New point version

Change History (6)

comment:1 by Douglas R. Reno, 5 years ago

Owner: changed from blfs-book@… to Douglas R. Reno
Status: newassigned
Summary: freetype-2.6.3 freetype-docfreetype-2.6.4 freetype-doc

Taking this and Mesa.

comment:2 by Chris Staub, 5 years ago

This version of Freetype has made some changes in the support of subpixel hinting, which results in a compile error if this sed command in the book is used as-is:

sed -r -e 's:.*(#.*SUBPIXEL.*) .*:\1:' \
    -i include/freetype/config/ftoption.h

Therefore, this command should be edited to change "SUBPIXEL" to "SUBPIXEL_RENDERING", so that the define for SUBPIXEL_HINTING is not affected by it. The TT_CONFIG_OPTION_SUBPIXEL_HINTING define is now expected to be followed by a number, either "1", "2", or "3", for different ways of performing subpixel hinting. The default is to define option "2". Personally, I don't know enough about font rendering to understand the difference between those options, so for my own build scripts I just don't edit the SUBPIXEL_HINTING option and accept the default. Here's the relevant portion of ftoption.h:

  /*************************************************************************/
  /*                                                                       */
  /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile       */
  /* subpixel hinting support into the TrueType driver.  This modifies the */
  /* TrueType hinting mechanism when anything but FT_RENDER_MODE_MONO is   */
  /* requested.                                                            */
  /*                                                                       */
  /* In particular, it modifies the bytecode interpreter to interpret (or  */
  /* not) instructions in a certain way so that all TrueType fonts look    */
  /* like they do in a Windows ClearType (DirectWrite) environment.  See   */
  /* [1] for a technical overview on what this means.  See `ttinterp.h'    */
  /* for more details on the LEAN option.                                  */
  /*                                                                       */
  /* There are three options.                                              */
  /*                                                                       */
  /* 1. This option is associated with the `Infinality' moniker.           */
  /*    Contributed by an individual nicknamed Infinality with the goal of */
  /*    making TrueType fonts render better than on Windows.  A high       */
  /*    amount of configurability and flexibility, down to rules for       */
  /*    single glyphs in fonts, but also very slow.  Its experimental and  */
  /*    slow nature and the original developer losing interest meant that  */
  /*    this option was never enabled in default builds.                   */
  /*                                                                       */
  /* 2. The new default mode for the TrueType driver.  The Infinality code */
  /*    base was stripped to the bare minimum and all configurability      */
  /*    removed in the name of speed and simplicity.  The configurability  */
  /*    was mainly aimed at legacy fonts like Arial, Times New Roman, or   */
  /*    Courier.  Legacy fonts are fonts that modify vertical stems to     */
  /*    achieve clean black-and-white bitmaps.  The new mode focuses on    */
  /*    applying a minimal set of rules to all fonts indiscriminately so   */
  /*    that modern and web fonts render well while legacy fonts render    */
  /*    okay.                                                              */
  /*                                                                       */
  /* 3. Compile both.                                                      */
  /*                                                                       */
  /* By undefining these, you get rendering behavior like on Windows       */
  /* without ClearType, i.e., Windows XP without ClearType enabled and     */
  /* Win9x (interpreter version v35).  Or not, depending on how much       */
  /* hinting blood and testing tears the font designer put into a given    */
  /* font.  If you define one or both subpixel hinting options, you can    */
  /* switch between between v35 and the ones you define.                   */
  /*                                                                       */
  /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be      */
  /* defined.                                                              */
  /*                                                                       */
  /* [1] http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
  /*                                                                       */
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING  1     */
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING     2
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING  ( 1 | 2 ) */
Last edited 5 years ago by Chris Staub (previous) (diff)

comment:3 by Armin K, 5 years ago

Consider replacing

sed -e "/AUX.*.gxvalid/s@^# @@" \
    -e "/AUX.*.otvalid/s@^# @@" \
    -i modules.cfg 

(this one was added by me back in the day) with much simpler

sed -ri "s:.*(AUX_MODULES.*valid):\1:" modules.cfg

Now, as for Chris' concern, you can modify the existing sed like:

sed -ri "s:.*(#.*SUBPIXEL_(RENDERING|HINTING  2)) .*:\1:g" \
        include/freetype/config/ftoption.h

comment:4 by Douglas R. Reno, 5 years ago

Resolution: fixed
Status: assignedclosed

Thank you Chris and Armin.

Fixed at r17590.

comment:5 by bdubbs@…, 5 years ago

Resolution: fixed
Status: closedreopened
Summary: freetype-2.6.4 freetype-docfreetype-2.6.5 freetype-doc

Updated yesterday.

Today version 2.6.5. :(

comment:6 by Douglas R. Reno, 5 years ago

Resolution: fixed
Status: reopenedclosed

Fixed at r17594... Assuming another new version isn't released again! I didn't look at the release notes to see what had changed to do another release so fast.

Note: See TracTickets for help on using tickets.