Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Oct 2017 06:20:54 +0000 (UTC)
From:      Kurt Jaeger <pi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r452905 - in head/print/freetype2: . files
Message-ID:  <201710260620.v9Q6KsbV090373@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pi
Date: Thu Oct 26 06:20:53 2017
New Revision: 452905
URL: https://svnweb.freebsd.org/changeset/ports/452905

Log:
  print/freetype2: fix incorrect line spacing for some fonts
  
  Problem description: After updating to print/freetypw2-2.8.0 using
  Bitstream Vera Sans Mono the vertical pitch increases and significantly
  add of the size of the window. See attached images.
  
  See PR for lots of links to related reports upstream
  and on other platforms.
  
  PR:		219608
  Submitted by:	lightside@gmx.com
  Reported by:	Kevin Oberman <rkoberman@gmail.com>

Added:
  head/print/freetype2/files/extra-patch-fix_size_metrics.diff   (contents, props changed)
Modified:
  head/print/freetype2/Makefile

Modified: head/print/freetype2/Makefile
==============================================================================
--- head/print/freetype2/Makefile	Thu Oct 26 05:30:35 2017	(r452904)
+++ head/print/freetype2/Makefile	Thu Oct 26 06:20:53 2017	(r452905)
@@ -3,6 +3,7 @@
 
 PORTNAME=	freetype2
 PORTVERSION=	2.8
+PORTREVISION=	1
 CATEGORIES=	print
 MASTER_SITES=	http://savannah.nongnu.org/download/freetype/ \
 		SF/freetype/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/}/ \
@@ -36,10 +37,12 @@ PORTDOCS=	reference CHANGES formats.txt LICENSE.TXT ra
 CPE_PRODUCT=	freetype
 CPE_VENDOR=	freetype
 
-OPTIONS_DEFINE=		DEBUG DOCS LCD_FILTERING PNG TABLE_VALIDATION \
-			TT_SIZE_METRICS
+OPTIONS_DEFINE=		DEBUG DOCS LCD_FILTERING LONG_PCF_NAMES PNG \
+		TABLE_VALIDATION
 OPTIONS_GROUP=		SUBPIXEL_HINTING
 OPTIONS_GROUP_SUBPIXEL_HINTING=	V38 V40
+OPTIONS_RADIO=		SIZE_METRICS_CHOICE
+OPTIONS_RADIO_SIZE_METRICS_CHOICE=	FIX_SIZE_METRICS TT_SIZE_METRICS
 OPTIONS_DEFAULT=	LCD_FILTERING V40
 
 PNG_DESC=		Png compressed OpenType embedded bitmaps support
@@ -48,11 +51,16 @@ PNG_CONFIGURE_WITH=	png
 
 TABLE_VALIDATION_DESC=	TrueType GX/AAT and OpenType table validation
 
-TT_SIZE_METRICS_DESC=	TrueType-like size metrics for 'light' (V40) auto-hinting
+SIZE_METRICS_CHOICE_DESC=	Size metrics for TrueType fonts
+FIX_SIZE_METRICS_DESC=	Fix metrics on size request for scalable fonts (alternative method)
+FIX_SIZE_METRICS_EXTRA_PATCHES=	${FILESDIR}/extra-patch-fix_size_metrics.diff
+TT_SIZE_METRICS_DESC=	TrueType-like size metrics for 'light' auto-hinting
 
 LCD_FILTERING_DESC?=	Sub-pixel rendering (patented)
 LCD_FILTERING_CFLAGS=	-DFT_CONFIG_OPTION_SUBPIXEL_RENDERING
 
+LONG_PCF_NAMES_DESC=	Enable long PCF family names
+
 SUBPIXEL_HINTING_DESC=	Sub-pixel hinting support
 V38_DESC=	v38 mode (Infinality code)
 V38_VARS=	SUBPIXEL_HINTING_MODE+=1
@@ -88,6 +96,11 @@ post-patch-DEBUG-on:
 	@${REINPLACE_CMD} -i '.debug.bak' \
 		-e 's|.*\(#define FT_DEBUG_LEVEL_TRACE\).*|\1|' \
 		-e 's|.*\(#define FT_DEBUG_MEMORY\).*|\1|' \
+		${WRKSRC}/include/freetype/config/ftoption.h
+
+post-patch-LONG_PCF_NAMES-on:
+	@${REINPLACE_CMD} -i '.names.bak' \
+		-e 's|.*\(#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES\).*|\1|' \
 		${WRKSRC}/include/freetype/config/ftoption.h
 
 post-patch-TABLE_VALIDATION-on:

Added: head/print/freetype2/files/extra-patch-fix_size_metrics.diff
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/freetype2/files/extra-patch-fix_size_metrics.diff	Thu Oct 26 06:20:53 2017	(r452905)
@@ -0,0 +1,46 @@
+# Fix metrics on size request for scalable fonts.
+# Based on b0962ac34e66052ccfee7996e5468f30d4bd5a72 commit with changes for new version.
+# Reverts bcc74f4dafee25ea89f1d3144646cba7e30f9908 commit for src/truetype/ttdriver.c file.
+# Adapts 8ab08cff63eeb23b6c9f2c4470ae9809f2acf244 commit for src/truetype/ttobjs.c file.
+
+--- src/truetype/ttdriver.c.orig	2017-04-29 04:38:17 UTC
++++ src/truetype/ttdriver.c
+@@ -357,6 +357,8 @@
+     if ( FT_IS_SCALABLE( size->face ) )
+     {
+       error = tt_size_reset( ttsize, 0 );
++      if ( !error )
++        ttsize->root.metrics = *ttsize->metrics;
+ 
+ #ifdef TT_USE_BYTECODE_INTERPRETER
+       /* for the `MPS' bytecode instruction we need the point size */
+--- src/truetype/ttobjs.c.orig	2017-05-07 11:05:56 UTC
++++ src/truetype/ttobjs.c
+@@ -1262,6 +1262,13 @@
+     /*                                                               */
+     if ( face->header.Flags & 8 )
+     {
++      if ( !only_height )
++      {
++        size_metrics->x_scale = FT_DivFix( size_metrics->x_ppem << 6,
++                                           face->root.units_per_EM );
++        size_metrics->y_scale = FT_DivFix( size_metrics->y_ppem << 6,
++                                           face->root.units_per_EM );
++      }
+       /* the TT spec always asks for ROUND, not FLOOR or CEIL */
+       size_metrics->ascender = FT_PIX_ROUND(
+                                  FT_MulFix( face->root.ascender,
+@@ -1283,11 +1290,12 @@
+     {
+       /* base scaling values on integer ppem values, */
+       /* as mandated by the TrueType specification   */
++/*
+       size_metrics->x_scale = FT_DivFix( size_metrics->x_ppem << 6,
+                                          face->root.units_per_EM );
+       size_metrics->y_scale = FT_DivFix( size_metrics->y_ppem << 6,
+                                          face->root.units_per_EM );
+-
++*/
+       size_metrics->max_advance = FT_PIX_ROUND(
+                                     FT_MulFix( face->root.max_advance_width,
+                                                size_metrics->x_scale ) );



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710260620.v9Q6KsbV090373>