updated comment explaining how to use project-specific option (and module) files
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 190 191 192 193 194 195
diff --git a/ChangeLog b/ChangeLog
index 0258a84..698eb95 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,15 @@
+2001-10-25 David Turner <david@freetype.org>
+
+ * include/freetype/config/ftoption.h: updated comment to explain
+ precisely how to use project-specific macro definitions without
+ modifying this file manually..
+
+
2001-10-24 Tom Kacvinsky <tjk@ams.org>
* builds/unix/ftsystem.c (FT_New_Memory): Added a missing `}'.
+
2001-10-23 David Turner <david@freetype.org>
* include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
diff --git a/docs/BUGS b/docs/BUGS
index edcdb71..ba05170 100644
--- a/docs/BUGS
+++ b/docs/BUGS
@@ -31,6 +31,7 @@ AUTOHINT-NO-SBITS 13-09-2001 David always
BAD-TT-RENDERING 12-09-2001 Paul Pedriana ?
BAD-THIN-LINES 13-09-2001 David ?
NOT-WINDOWS-METRICS 07-10-2001 David always
+ADVANCED-COMPOSITES 25-10-2001 George Williams always
--------------------END-OF-OPENED-BUGS-TABLE----------------------------------
@@ -43,7 +44,8 @@ II. Table of closed bugs
Identifier Date Closed by Closure date
------------------------------------------------------------------------------
BAD-TTNAMEID.H 12-09-2001 Antoine N/A
-
+BAD-T1-CHARMAP 15-06-2001 David 2.0.5
+BAD-UNIXXX-NAMES 30-07-2001 David 2.0.5
--------------------END-OF-CLOSED-BUGS-TABLE----------------------------------
@@ -106,6 +108,7 @@ BAD-TT-RENDERING
bytecode-hinted glyphs! Something seems to be really broken here!
+
BAD-THIN-LINES
It seems that the anti-aliased renderer in FreeType has problems rendering
@@ -113,6 +116,7 @@ BAD-THIN-LINES
FT_Outline_Render() function.
+
NOT-WINDOWS-METRICS
FreeType doesn't always return the same metrics as Windows for ascender,
@@ -121,4 +125,71 @@ NOT-WINDOWS-METRICS
rounding bug when computing the "x_scale" and "y_scale" values.
+BAD-T1-CHARMAP
+
+ Type1 driver doesn't read "cacute" and "lslash" characters from iso8859-2
+ charset. Those characters are mapped as MAC-one in glnames.py, so they
+ cannot be shown in Adobe Type1 fonts.
+
+ (this was due to a bug in the "glnames.py" script used to generate the
+ table of glyph names in 'src/psaux/pstables.h')
+
+
+BAD-UNIXXX-NAMES
+
+ Glyph names like uniXXXX are not recognized as they should be.
+ It seems that code in psmodule.c for uniXXXX glyph names was
+ never tested. The patch is very simple.
+
+ (a simple bug that was left un-noticed due to the fact that I don't have
+ any Postscript font that use this convention, unfortunately..)
+
+
+ADVANCED-COMPOSITES
+
+ Provided by George Williams <pfaedit@users.sourceforge.net>:
+
+ I notice that truetype/ttgload.c only supports Apple's
+ definition of offsets for composit glyphs. Apple and
+ Microsoft behave differently if there is a scale
+ factor. OpenType defines some bits to disambiguate.
+
+ (a problem in both 2.0.4 and 2.0.5)
+
+ Apple says
+ (http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html)
+ that if flags&ARGS_ARE_XY is set then the offsets
+ should be scaled by the scale factors (as you have
+ done), but they also say something very cryptic about
+ what happens when the component is rotated at 45°
+ (which you do not support)-- See the "Important" note
+ at the bottom.
+
+ The old truetype spec from Microsoft did not mention
+ this. The OpenType spec
+ (http://www.microsoft.com/typography/otspec/glyf.htm,
+ http://partners.adobe.com/asn/developer/opentype/glyf.html)
+ efines two new bits to disambiguate:
+ SCALED_COMPONENT_OFFSET 11
+ Composite designed to have the component offset scaled
+ (designed for Apple rasterizer)
+ UNSCALED_COMPONENT_OFFSET 12
+ Composite designed not to have the component offset
+ scaled (designed for the Microsoft TrueType rasterizer)
+
+ Perhaps you could add a load_flag to allow the user to
+ define the default setting?
+
+ David says:
+
+ Wow, I was not even aware of this, it will probably take a little
+ time to implement since I don't have any font that implement these
+ "features", and also because I believe that we're running out of
+ bits for "load_flag", some other way to set preferences is probably
+ needed..
+
+
+
+
+
=== end of file ===
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index 844a71f..2f1e5e4 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -30,17 +30,41 @@ FT_BEGIN_HEADER
/* */
/* USER-SELECTABLE CONFIGURATION MACROS */
/* */
- /* These macros can be toggled by developers to enable or disable */
- /* certain aspects of FreeType. This is a default file, where all major */
- /* options are enabled. */
+ /* this file contains the default configuration macro definitions for */
+ /* a standard build of the FreeType library. There are three ways to */
+ /* use this file to build project-specific versions of the library: */
/* */
- /* Note that if some modifications are required for your build, we */
- /* advise you to put a modified copy of this file in your build */
- /* directory, rather than modifying it in-place. */
+ /* - you can modify this file by hand, but this is not recommended */
+ /* in cases where you'd like to build several versions of the */
+ /* library from a single source directory */
/* */
- /* The build directory is normally `freetype/builds/<system>' and */
- /* contains build or system-specific files that are included in */
- /* priority when building the library. */
+ /* */
+ /* - you can put a copy of this file in your build directory, more */
+ /* precisely in "$BUILD/freetype/config/ftoption.h", where "$BUILD" */
+ /* is the name of a directory that is included _before_ the */
+ /* FreeType include path during compilation. */
+ /* */
+ /* the default FreeType Makefiles and Jamfiles use the build */
+ /* directory "builds/<system>" by default, but you can easily change */
+ /* that for your own projects */
+ /* */
+ /* */
+ /* - copy the file <ft2build.h> to "$BUILD/ft2build.h" and modify */
+ /* it slightly to pre-define the macro FT_CONFIG_OPTIONS_H used */
+ /* to locate this file during the build. For example: */
+ /* */
+ /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */
+ /* #include <freetype/config/ftheader.h> */
+ /* */
+ /* will use "$BUILD/myftoptions.h" instead of this file for macro */
+ /* definitions. */
+ /* */
+ /* note also that you can similarly pre-define the macro */
+ /* FT_CONFIG_MODULES_H used to locate the file listing the modules */
+ /* that are statically linked to the library at compile time. */
+ /* by default, this file is <freetype/config/ftmodule.h> */
+ /* */
+ /* we highly recommend using the third method whenever possible */
/* */
/*************************************************************************/
@@ -429,7 +453,8 @@ FT_BEGIN_HEADER
/* */
#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
+ /* */
+
FT_END_HEADER