* src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff

with IS_HINTED.

* docs/CHANGES: Updated.
This commit is contained in:
Werner Lemberg 2008-06-22 22:41:24 +00:00
parent b1c36cfbd9
commit 745a4f42a5
4 changed files with 71 additions and 47 deletions

View File

@ -1,13 +1,20 @@
2008-06-22 Werner Lemberg <wl@gnu.org>
* src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
with IS_HINTED.
* docs/CHANGES: Updated.
2008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* builds/unix/configure.raw: If CFLAGS has "-isysroot XXX" * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
option but LDFLAGS does not, import it to LDFLAGS. The option but LDFLAGS does not, import it to LDFLAGS. The option is used to
is used to specify non-default SDK on Mac OS X (e.g. universal specify non-default SDK on Mac OS X (e.g., universal binary SDK for
binary SDK for Mac OS X 10.4 on PowerPC platform). Although Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
Apple TechNote 2137 recommends to add the option only to CFLAGS, recommends to add the option only to CFLAGS, LDFLAGS should include
LDFLAGS should include it because libfreetype.la is built with it because libfreetype.la is built with -no-undefined. This fixes a
-no-undefined. This fixes a bug reported by Ryan Schmidt in bug reported by Ryan Schmidt in MacPorts,
MacPorts, http://trac.macports.org/ticket/15331. http://trac.macports.org/ticket/15331.
2008-06-21 Werner Lemberg <wl@gnu.org> 2008-06-21 Werner Lemberg <wl@gnu.org>

View File

@ -155,7 +155,7 @@ AC_SUBST([FTSYS_SRC])
AC_CHECK_FUNCS([memcpy memmove]) AC_CHECK_FUNCS([memcpy memmove])
# Check for system zlib # check for system zlib
# don't quote AS_HELP_STRING! # don't quote AS_HELP_STRING!
AC_ARG_WITH([zlib], AC_ARG_WITH([zlib],
@ -171,29 +171,29 @@ if test x$with_zlib != xno && test -n "$LIBZ"; then
fi fi
# check Apple "-isysroot" option and duplicate it to LDFLAGS if required # check Apple "-isysroot" option and duplicate it to LDFLAGS if required --
# Apple TechNote 2137 recommends to include it in CFLAGS but not in LDFLAGS. # 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 case "$CFLAGS" in
*sysroot* )
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([whether LDFLAGS includes -isysroot option])
case "$LDFLAGS" in
*sysroot* ) *sysroot* )
AC_MSG_RESULT([yes]) 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]) 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 esac

View File

@ -20,6 +20,20 @@ CHANGES BETWEEN 2.3.7 and 2.3.6
very simplistic.] 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 CHANGES BETWEEN 2.3.6 and 2.3.5

View File

@ -1668,8 +1668,8 @@
} }
/* adjust advance width to the value contained in the hdmx table */ /* adjust advance width to the value contained in the hdmx table */
if ( !face->postscript.isFixedPitch && if ( !face->postscript.isFixedPitch &&
IS_HINTED( loader->load_flags ) ) IS_HINTED( loader->load_flags ) )
{ {
FT_Byte* widthp; FT_Byte* widthp;
@ -1960,32 +1960,35 @@
#ifdef TT_USE_BYTECODE_INTERPRETER #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 */ if ( loader.exec->GS.scan_control )
switch ( loader.exec->GS.scan_type )
{ {
case 0: /* simple drop-outs including stubs */ /* convert scan conversion mode to FT_OUTLINE_XXX flags */
glyph->outline.flags |= FT_OUTLINE_INCLUDE_STUBS; switch ( loader.exec->GS.scan_type )
break; {
case 1: /* simple drop-outs excluding stubs */ case 0: /* simple drop-outs including stubs */
/* nothing; it's the default rendering mode */ glyph->outline.flags |= FT_OUTLINE_INCLUDE_STUBS;
break; break;
case 4: /* smart drop-outs including stubs */ case 1: /* simple drop-outs excluding stubs */
glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS | /* nothing; it's the default rendering mode */
FT_OUTLINE_INCLUDE_STUBS; break;
break; case 4: /* smart drop-outs including stubs */
case 5: /* smart drop-outs excluding stubs */ glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS |
glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS; FT_OUTLINE_INCLUDE_STUBS;
break; break;
case 5: /* smart drop-outs excluding stubs */
glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS;
break;
default: /* no drop-out control */ default: /* no drop-out control */
glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS; glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
break; break;
}
} }
else
glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
} }
else
glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
#endif /* TT_USE_BYTECODE_INTERPRETER */ #endif /* TT_USE_BYTECODE_INTERPRETER */