⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes

📁 source code: Covert TXT to PDF
💻
📖 第 1 页 / 共 4 页
字号:
      These  changes  were  necessary  to properly  support  different      scalable formats in the future, like bi-color glyphs, etc.    * Glyph loader object:      A  new  internal  object,  called  a  'glyph  loader'  has  been      introduced in the base layer.  It is used by all scalable format      font drivers to load glyphs and composites.      This object  has been  created to reduce  the code size  of each      driver,  as  each  one  of  them  basically  re-implemented  its      functionality.      See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for      more information.    * FT_GlyphSlot has new fields:      In  order   to  support  extended  features   (see  below),  the      FT_GlyphSlot structure has a few new fields:      linearHoriAdvance:        This  field  gives  the   linearly  scaled  (i.e.  scaled  but        unhinted) advance  width for the  glyph, expressed as  a 16.16        fixed pixel value.  This is useful to perform WYSIWYG text.      linearVertAdvance:        This field  gives the linearly  scaled advance height  for the        glyph  (relevant in  vertical  glyph layouts  only).  This  is        useful to perform WYSIWYG text.        Note that  the two above field replace  the removed "metrics2"        field in the glyph slot.      advance:        This field is a vector  that gives the transformed advance for        the glyph.   By default, it corresponds to  the advance width,        unless  FT_LOAD_VERTICAL_LAYOUT  was  specified  when  calling        FT_Load_Glyph or FT_Load_Char.      bitmap_left:        This  field gives  the  distance in  integer  pixels from  the        current pen position  to the left-most pixel of  a glyph image        IF IT IS  A BITMAP.  It is only valid  when the "format" field        is set to "ft_glyph_format_bitmap", for example, after calling        the new function FT_Render_Glyph.      bitmap_top:        This  field gives  the  distance in  integer  pixels from  the        current pen position (located on the baseline) to the top-most        pixel of the  glyph image IF IT IS  A BITMAP.  Positive values        correspond to upwards Y.      loader:        This  is a  new  private  field for  the  glyph slot.   Client        applications should not touch it.    * Support for transforms and direct rendering in FT_Load_Glyph:      Most of the functionality found in <freetype/ftglyph.h> has been      moved to the core library. Hence, the following:      - A   transform   can   be   specified  for   a   face   through        FT_Set_Transform.  this transform  is applied by FT_Load_Glyph        to  scalable glyph  images (i.e.  NOT TO  BITMAPS)  before the        function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM        was set in the load flags.      - Once  a  glyph image  has  been  loaded,  it can  be  directly        converted  to  a  bitmap  by  using  the  new  FT_Render_Glyph        function.  Note that this  function takes the glyph image from        the glyph slot,  and converts it to a  bitmap whose properties        are returned  in "face.glyph.bitmap", "face.glyph.bitmap_left"        and "face.glyph.bitmap_top".  The  original native image might        be lost after the conversion.      - When using the new  bit flag FT_LOAD_RENDER, the FT_Load_Glyph        and   FT_Load_Char   functions   will   call   FT_Render_Glyph        automatically when needed.  - Reformatted all  modules source  code in order  to get rid  of the    basic data types redifinitions (i.e. "TT_Int" instead of "FT_Int",    "T1_Fixed"  instead  of  "FT_Fixed").  Hence  the  format-specific    prefixes like  "TT_", "T1_",  "T2_" and "CID_"  are only  used for    relevant structures.======================================================================OLD CHANGES FOR BETA 7  - bug-fixed the  OpenType/CFF parser. It  now loads and  displays my    two  fonts nicely,  but I'm  pretty certain  that more  testing is    needed :-)  - fixed the crummy Type 1 hinter, it now handles accented characters    correctly (well, the accent is  not always well placed, but that's    another problem..)  - added the CID-keyed Type 1  driver in "src/cid". Works pretty well    for only 13 Kb of code  ;-) Doesn't read AFM files though, nor the    really useful CMAP files..  - fixed two bugs in the smooth renderer (src/base/ftgrays.c). Thanks    to Boris Letocha for spotting them and providing a fix..  - fixed potential "divide by zero" bugs in ftcalc.c.. my god..  - added source  code for  the OpenType/CFF driver  (still incomplete    though..)  - modified the  SFNT driver slightly  to perform more  robust header    checks  in TT_Load_SFNT_Header. This  prevents certain  font files    (e.g.  some  Type  1  Multiple  Masters)  from  being  incorrectly    "recognized" as TrueType font files..  - moved a lot of stuff from  the TrueType driver to the SFNT module,    this   allows   greater   code   re-use   between   font   drivers    (e.g. TrueType, OpenType, Compact-TrueType, etc..)  - added a tiny segment cache to the SFNT Charmap 4 decoder, in order    to minimally speed it up..  - added support for Multiple Master fonts in "type1z". There is also    a  new file  named  <freetype/ftmm.h> which  defines functions  to    manage them from client applications.    The new file "src/base/ftmm.c" is also optional to the engine..  - various  formatting changes (e.g.  EXPORT_DEF ->  FT_EXPORT_DEF) +    small bug fixes in FT_Load_Glyph, the "type1" driver, etc..  - a minor fix to the Type 1 driver to let them apply the font matrix    correctly (used for many oblique fonts..)  - some fixes for 64-bit systems (mainly changing some FT_TRACE calls    to use %p instead of %lx).. Thanks to Karl Robillard  - fixed  some bugs  in  the sbit  loader (src/base/sfnt/ttsbit.c)  +    added  a new flag,  FT_LOAD_CROP_BITMAP to  query that  bitmaps be    cropped when  loaded from a file  (maybe I should  move the bitmap    cropper to the base layer ??).  - changed the default  number of gray levels of  the smooth renderer    to 256  (instead of  the previous 128).  Of course, the  human eye    can't see any difference ;-)  - removed TT_MAX_SUBGLYPHS,  there is no static limit  on the number    of subglyphs in a TrueType font now..======================================================================OLD CHANGES 16 May 2000  - tagged "BETA-6"  in the  CVS tree. This  one is a  serious release    candidate even though it doesn't incorporate the auto-hinter yet..  - various obsolete files were removed, and copyright header updated  - finally  updated  the  standard   raster  to  fix  the  monochrome    rendering bug + re-enable  support for 5-gray levels anti-aliasing    (suck, suck..)  - created new header files, and modified sources accordingly:     <freetype/fttypes.h>       - simple FreeType types, without the API     <freetype/internal/ftmemory.h>       - definition of memory-management macros  - added   the   "DSIG"   (OpenType   Digital   Signature)   tag   to    <freetype/tttags.h>  - light update/cleaning of the build system + changes to the sources    in  order  to  get  rid  of _all_  compiler  warnings  with  three    compilers, i.e:    gcc with "-ansi -pedantic -Wall -W", Visual C++ with "/W3 /WX" and    LCC    IMPORTANT NOTE FOR WIN32-LCC USERS:    |    |  It seems the C pre-processor  that comes with LCC is broken, it    |  doesn't  recognize  the  ANSI  standard  directives  #  and  ##    |  correctly when one of the  argument is a macro. Also, something    |  like:    |    |     #define F(x)  print##x    |    |     F(("hello"))    |    |  will get incorrectly translated to:    |    |     print "hello")    |    |  by its pre-processor. For  this reason, you simply cannot build    |  FreeType 2 in debug mode with this compiler..  - yet another massive grunt work. I've changed the definition of the    EXPORT_DEF,  EXPORT_FUNC, BASE_DEF &  BASE_FUNC macros.  These now    take an argument, which is the function's return value type.    This  is necessary to  compile FreeType  as a  DLL on  Windows and    OS/2.  Depending on the compiler used, a compiler-specific keyword    like  __export or __system  must be  placed before  (VisualC++) or    after (BorlandC++) the type..    Of course, this needed a lot of changes throughout the source code    to make it compile again... All cleaned up now, apparently..    Note also  that there is a  new EXPORT_VAR macro  defined to allow    the   _declaration_    of   an   exportable    public   (constant)    variable.  This  is  the   case  of  the  raster  interfaces  (see    ftraster.h and ftgrays.h), as well as each module's interface (see    sfdriver.h, psdriver.h, etc..)  - new feature: it  is now possible to pass  extra parameters to font                 drivers  when creating  a new  face object.  For now,                 this capability is unused.  It could however prove to                 be useful in a near future..      the FT_Open_Args structure was  changes, as well as the internal      driver interface  (the specific "init_face"  module function has      now a different signature).  - updated the tutorial (not finished though).  - updated the top-level BUILD  document  - fixed  a  potential memory  leak  that  could  occur when  loading    embedded bitmaps.  - added     the     declaration     of     FT_New_Memory_Face     in    <freetype/freetype.h>, as  it was  missing from the  public header    (the implementation was already in "ftobjs.c").  - the file <freetype/fterrors.h> has been seriously updated in order    to allow the automatic generation of error message tables. See the    comments within it for more information.  - major directory  hierarchy re-organisation. This was  done for two    things:      * first,  to ease  the "manual"  compilation of  the  library by        requiring at lot less include paths :-)      * second,  to  allow  external  programs to  effectively  access        internal  data  fields. For  example,  this  can be  extremely        useful if  someone wants  to write a  font producer or  a font        manager on top of FreeType.    Basically, you  should now use  the 'freetype/' prefix  for header    inclusion, as in:        #include <freetype/freetype.h>        #include <freetype/ftglyph.h>    Some new include sub-directories are available:     a. the  "freetype/config" directory,  contains two files  used to        configure the build of the library. Client applications should        not need to look at these normally, but they can if they want.        #include <freetype/config/ftoption.h>        #include <freetype/config/ftconfig.h>     b. the "freetype/internal"  directory, contains header files that        describes library  internals. These are the  header files that        were  previously  found  in  the "src/base"  and  "src/shared"        directories.    As  usual, the build  system and  the demos  have been  updated to    reflect the change..    Here's a layout of the new directory hierarchy:    TOP      include/         freetype/            freetype.h            ...            config/              ftoption.h              ftconfig.h              ftmodule.h            internal/              ftobjs.h              ftstream.h              ftcalc.h              ...      src/         base/            ...         sfnt/         psnames/         truetype/         type1/         type1z/    Compiling a module is now  much easier, for example, the following    should work when in the TOP directory on an ANSI build:       gcc -c -I./include -I./src/base src/base/ftbase.c       gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c       etc..    (of course, using -Iconfig/<system> if you provide system-specific     configuration files).  - updated the structure of FT_Outline_Funcs in order to allow direct    coordinate scaling within  the outline decomposition routine (this    is  important for virtual  "on" points  with TrueType  outlines) +    updates to the rasters to support this..  - updated  the OS/2  table  loading code  in "src/sfnt/ttload.c"  in    order to support version 2 of the table (see OpenType 1.2 spec)  - created  "include/tttables.h"  and  "include/t1tables.h" to  allow    client applications to access some of  the SFNT and T1 tables of a    face  with  a  procedural  interface (see  FT_Get_Sfnt_Table())  +    updates to internal source files to reflect the change..  - some  cleanups in  the source  code to  get rid  of  warnings when    compiling with the "-Wall -W -ansi -pedantic" options in gcc.  - debugged and moved the smooth renderer to "src/base/ftgrays.c" and    its header to "include/ftgrays.h"  - updated TT_MAX_SUBGLYPHS  to 96 as some CJK  fonts have composites    with up to 80 sub-glyphs !! Thanks to Werner======================================================================OLD CHANGES - 14-apr-2000  - fixed  a bug  in  the  TrueType glyph  loader  that prevented  the    correct loading of some CJK glyphs in mingli.ttf  - improved the standard Type 1 hinter in "src/type1"  - fixed two bugs  in the experimental Type 1  driver in "src/type1z"    to handle the new XFree86 4.0 fonts (and a few other ones..)  - the smooth  renderer is now  complete and supports  sub-banding to    render large glyphs at high speed. However, it is still located in    "demos/src/ftgrays.c" and should move to the library itself in the    next  beta..   NOTE:  The  smooth  renderer   doesn't  compile  in    stand-alone mode anymore, but this should be fixed RSN..  - introduced convenience  functions to  more easily deal  with glyph    images, see  "include/ftglyph.h" for more details, as  well as the    new  demo program  named "demos/src/ftstring.c"  that demonstrates    its use  - implemented  FT_LOAD_NO_RECURSE in  both the  TrueType and  Type 1    drivers  (this  is required  by  the  auto-hinter  to improve  its    results).  - changed   the  raster   interface,  in   order  to   allow  client    applications to provide their own span-drawing callbacks. However,    only the smooth renderer  supports this. See "FT_Raster_Params" in    the file "include/ftimage.h"  - fixed  a small bug  in FT_MulFix  that caused  incorrect transform    computation!  - Note: The tutorial is out-of-date, grumpf.. :-(======================================================================OLD CHANGES - 12-mar-2000  - changed  the  layout  of  configuration  files  :  now,  all  ANSI    configuration         files         are         located         in    "freetype2/config".  System-specific over-rides  can be  placed in    "freetype2/config/<system>".  - moved all configuration macros to "config/ftoption.h"  - improvements in the Type 1 driver with AFM support

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -