Commit dcb2b27ea8b2d5af163e62523e2d6fbc8f088bd7

David Turner 2001-10-24T23:33:31

updated comment explaining how to use project-specific option (and module) files

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