* src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff with IS_HINTED. * docs/CHANGES: Updated.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
diff --git a/ChangeLog b/ChangeLog
index ffa1bc5..4d2a530 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
- * 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 <wl@gnu.org>
diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw
index 2015aac..939e439 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 2c2e072..e74bcc8 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 6a97b99..ed79b93 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;
-
- default: /* no drop-out control */
- glyph->outline.flags |= FT_OUTLINE_IGNORE_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;
+ }
}
+ else
+ glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
}
- else
- glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
#endif /* TT_USE_BYTECODE_INTERPRETER */