From dcb2b27ea8b2d5af163e62523e2d6fbc8f088bd7 Mon Sep 17 00:00:00 2001 From: David Turner Date: Wed, 24 Oct 2001 23:33:31 +0000 Subject: [PATCH] updated comment explaining how to use project-specific option (and module) files --- ChangeLog | 8 ++++ docs/BUGS | 73 +++++++++++++++++++++++++++++- include/freetype/config/ftoption.h | 45 ++++++++++++++---- 3 files changed, 115 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0258a84a1..698eb9569 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,15 @@ +2001-10-25 David Turner + + * 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 * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `}'. + 2001-10-23 David Turner * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: diff --git a/docs/BUGS b/docs/BUGS index edcdb711d..ba051706a 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 : + + 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 844a71f36..2f1e5e48e 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/' 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/" by default, but you can easily change */ + /* that for your own projects */ + /* */ + /* */ + /* - copy the file 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 */ + /* #include */ + /* */ + /* 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 */ + /* */ + /* 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