diff --git a/ChangeLog b/ChangeLog index ffa1bc5f5..4d2a5301d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,20 @@ +2008-06-22 Werner Lemberg + + * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff + with IS_HINTED. + + * docs/CHANGES: Updated. + 2008-06-22 suzuki toshiya - * builds/unix/configure.raw: If CFLAGS has "-isysroot XXX" - option but LDFLAGS does not, import it to LDFLAGS. The option - is used to specify non-default SDK on Mac OS X (e.g. universal - binary SDK for Mac OS X 10.4 on PowerPC platform). Although - Apple TechNote 2137 recommends to add the option only to CFLAGS, - LDFLAGS should include it because libfreetype.la is built with - -no-undefined. This fixes a bug reported by Ryan Schmidt in - MacPorts, http://trac.macports.org/ticket/15331. + * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option + but LDFLAGS does not, import it to LDFLAGS. The option is used to + specify non-default SDK on Mac OS X (e.g., universal binary SDK for + Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137 + recommends to add the option only to CFLAGS, LDFLAGS should include + it because libfreetype.la is built with -no-undefined. This fixes a + bug reported by Ryan Schmidt in MacPorts, + http://trac.macports.org/ticket/15331. 2008-06-21 Werner Lemberg diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw index 2015aacfc..939e439bd 100644 --- a/builds/unix/configure.raw +++ b/builds/unix/configure.raw @@ -155,7 +155,7 @@ AC_SUBST([FTSYS_SRC]) AC_CHECK_FUNCS([memcpy memmove]) -# Check for system zlib +# check for system zlib # don't quote AS_HELP_STRING! AC_ARG_WITH([zlib], @@ -171,29 +171,29 @@ if test x$with_zlib != xno && test -n "$LIBZ"; then fi -# check Apple "-isysroot" option and duplicate it to LDFLAGS if required -# Apple TechNote 2137 recommends to include it in CFLAGS but not in LDFLAGS. +# check Apple "-isysroot" option and duplicate it to LDFLAGS if required -- +# Apple TechNote 2137 recommends to include it in CFLAGS but not in LDFLAGS -AC_MSG_CHECKING([CFLAGS includes -isysroot option]) +AC_MSG_CHECKING([whether CFLAGS includes -isysroot option]) case "$CFLAGS" in +*sysroot* ) + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([whether LDFLAGS includes -isysroot option]) + case "$LDFLAGS" in *sysroot* ) AC_MSG_RESULT([yes]) - AC_MSG_CHECKING([LDFLAGS includes -isysroot option]) - case "$LDFLAGS" in - *sysroot* ) - AC_MSG_RESULT([yes]) - ;; - *) - AC_MSG_RESULT([no]) - isysroot_dir=`echo ${CFLAGS} | tr '\t' ' ' | sed 's/^.*-isysroot *//;s/ .*//'` - AC_MSG_WARN(-isysroot ${isysroot_dir} is added to LDFLAGS) - LDFLAGS="-isysroot ${isysroot_dir} ${LDFLAGS}" - ;; - esac ;; *) AC_MSG_RESULT([no]) + isysroot_dir=`echo ${CFLAGS} | tr '\t' ' ' | sed 's/^.*-isysroot *//;s/ .*//'` + AC_MSG_WARN(-isysroot ${isysroot_dir} is added to LDFLAGS) + LDFLAGS="-isysroot ${isysroot_dir} ${LDFLAGS}" ;; + esac + ;; +*) + AC_MSG_RESULT([no]) + ;; esac diff --git a/docs/CHANGES b/docs/CHANGES index 2c2e072e4..e74bcc893 100644 --- a/docs/CHANGES +++ b/docs/CHANGES @@ -20,6 +20,20 @@ CHANGES BETWEEN 2.3.7 and 2.3.6 very simplistic.] + II. IMPORTANT CHANGES + + - Two new macros, FT_OUTLINE_SMART_DROPOUTS and + FT_OUTLINE_EXCLUDE_STUBS, have been introduced. Together with + FT_OUTLINE_IGNORE_DROPOUTS (which was ignored until now) it is + now possible to control the dropout mode of the `raster' module + (for B&W rasterization), using the `flags' field in the + `FT_Outline' structure. + + - The TrueType bytecode interpreter now passes the dropout mode to + the B&W rasterizer. This greatly increases the output for small + ppem values for many fonts like `pala.ttf'. + + ====================================================================== CHANGES BETWEEN 2.3.6 and 2.3.5 diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c index 6a97b9912..ed79b932c 100644 --- a/src/truetype/ttgload.c +++ b/src/truetype/ttgload.c @@ -1668,8 +1668,8 @@ } /* adjust advance width to the value contained in the hdmx table */ - if ( !face->postscript.isFixedPitch && - IS_HINTED( loader->load_flags ) ) + if ( !face->postscript.isFixedPitch && + IS_HINTED( loader->load_flags ) ) { FT_Byte* widthp; @@ -1960,32 +1960,35 @@ #ifdef TT_USE_BYTECODE_INTERPRETER - if ( loader.exec->GS.scan_control ) + if ( IS_HINTED( load_flags ) ) { - /* convert scan conversion mode to FT_OUTLINE_XXX flags */ - switch ( loader.exec->GS.scan_type ) + if ( loader.exec->GS.scan_control ) { - case 0: /* simple drop-outs including stubs */ - glyph->outline.flags |= FT_OUTLINE_INCLUDE_STUBS; - break; - case 1: /* simple drop-outs excluding stubs */ - /* nothing; it's the default rendering mode */ - break; - case 4: /* smart drop-outs including stubs */ - glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS | - FT_OUTLINE_INCLUDE_STUBS; - break; - case 5: /* smart drop-outs excluding stubs */ - glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS; - break; + /* convert scan conversion mode to FT_OUTLINE_XXX flags */ + switch ( loader.exec->GS.scan_type ) + { + case 0: /* simple drop-outs including stubs */ + glyph->outline.flags |= FT_OUTLINE_INCLUDE_STUBS; + break; + case 1: /* simple drop-outs excluding stubs */ + /* nothing; it's the default rendering mode */ + break; + case 4: /* smart drop-outs including stubs */ + glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS | + FT_OUTLINE_INCLUDE_STUBS; + break; + case 5: /* smart drop-outs excluding stubs */ + glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS; + break; - default: /* no drop-out control */ - glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS; - break; + default: /* no drop-out control */ + glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS; + break; + } } + else + glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS; } - else - glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS; #endif /* TT_USE_BYTECODE_INTERPRETER */