misc/libfreetype/docs/CHANGES
author dag10 <gottlieb.drew@gmail.com>
Wed, 16 Jan 2013 18:34:43 -0500
changeset 8393 85bd6c7b2641
parent 5172 88f2e05288ba
permissions -rw-r--r--
Can now change theme for static and mission maps. Fixed mission map descriptions that had commas which broke them. Now, you must escape commas in map descriptions. Made bgwidget repaint on animation tick to avoid buffer-not-clearing issue with widgets that change overtop the background leaving a ghost image of the widget's previous state. Generated map is now the default map in the mapconfig widget.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5172
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     1
CHANGES BETWEEN 2.4.4 and 2.4.5
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     3
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     4
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     5
    - A rendering regression  for second-order Bézier curves  has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     6
      fixed, introduced in 2.4.3.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     7
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     8
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     9
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    10
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    11
    - If autohinting  is not  explicitly disabled,  FreeType now  uses
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    12
      the autohinter if  a TrueType based font doesn't  contain native
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    13
      hints.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    14
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    15
    - The load flag FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH  has been made
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    16
      redundant and  is simply ignored;  this means that FreeType  now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    17
      ignores the global advance width value in TrueType fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    18
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    19
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    20
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    21
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    22
    - `FT_Sfnt_Table_Info' can now return the number of SFNT tables of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    23
      a font.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    24
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    25
    - Support for PCF files compressed with bzip2 has been contributed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    26
      by Joel  Klinghed.  To  make this  work, the  OS must  provide a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    27
      bzip2 library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    28
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    29
    - Bradley  Grainger  contributed  project  and  solution  files in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    30
      Visual Studio 2010 format.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    31
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    32
    - Again some fixes to better handle broken fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    33
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    34
    - Some improvements to the B/W rasterizer.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    35
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    36
    - Fixes to the cache module to improve robustness.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    37
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    38
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    39
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    40
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    41
CHANGES BETWEEN 2.4.3 and 2.4.4
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    42
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    43
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    44
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    45
    - UVS support (TrueType/OpenType cmap format 14) support is fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    46
      This regression has been introduced in version 2.4.0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    47
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    48
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    49
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    50
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    51
    - Detect tricky fonts (e.g. MingLiU)  by the lengths and checksums
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    52
      of Type42-persistent subtables (`cvt ', `fpgm', and `prep') when
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    53
      a TrueType font without family name is given.  The previous fix,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    54
      introduced in 2.4.3,  was too rigorous,  causing many  subsetted
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    55
      fonts (mainly  from PDF files) displayed badly  because FreeType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    56
      forced  rendering with  the TrueType bytecode engine  instead of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    57
      the autohinter.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    58
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    59
    - Better support for 64bit platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    60
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    61
    - More fixes to improve handling of broken fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    62
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    63
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    64
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    65
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    66
CHANGES BETWEEN 2.4.2 and 2.4.3
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    67
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    68
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    69
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    70
    - Fix rendering of certain cubic, S-shaped arcs.   This regression
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    71
      has been introduced in version 2.4.0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    72
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    73
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    74
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    75
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    76
    - To  fix  the  above  mentioned  rendering  issue,  a  new spline
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    77
      flattening algorithm  has been  introduced which  speeds up both
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    78
      conic and cubic arcs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    79
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    80
    - Handling of broken fonts has been further improved.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    81
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    82
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    83
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    84
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    85
CHANGES BETWEEN 2.4.1 and 2.4.2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    86
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    87
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    88
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    89
    - A stack overflow in CFF Type2 CharStrings interpreter is fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    90
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    91
    - Handling Type 42 font deallocation was broken; additionally, the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    92
      library is now more robust against malformed Type 42 fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    93
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    94
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    95
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    96
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    97
    - Two new functions,  `FT_Reference_Library' (in FT_MODULE_H)  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    98
      `FT_Reference_Face'  (in  FT_FREETYPE_H),  have  been  added  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    99
      simplify life-cycle management.  A counter gets initialized to 1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   100
      at the  time an  FT_Library (or  FT_Face) structure  is created.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   101
      The  two  new   functions  increment  the  respective   counter.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   102
      `FT_Done_Library' and `FT_Done_Face' then only destroy a library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   103
      or face if the counter is 1, otherwise they simply decrement the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   104
      counter. 
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   105
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   106
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   107
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   108
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   109
CHANGES BETWEEN 2.4.0 and 2.4.1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   110
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   111
  I. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   112
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   113
    - A serious bug in the  CFF font module prevented  display of many
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   114
      glyphs in CFF fonts like `MinionPro-Regular.otf'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   115
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   116
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   117
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   118
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   119
CHANGES BETWEEN 2.3.12 and 2.4.0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   120
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   121
  I. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   122
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   123
    - Since May  2010, all  patents  regarding  the TrueType  bytecode
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   124
      interpreter have expired worldwide.  Consequently, we now define
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   125
      TT_CONFIG_OPTION_BYTECODE_INTERPRETER by  default (and  undefine
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   126
      TT_CONFIG_OPTION_UNPATENTED_HINTING).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   127
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   128
    - A new function `FT_Library_SetLcdFilterWeights' is available  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   129
      adjust the filter weights set by `FT_Library_SetLcdFilter'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   130
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   131
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   132
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   133
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   134
    - Thanks to many reports from Robert Święcki, FreeType's stability
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   135
      in handling broken or damaged fonts is much improved.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   136
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   137
    - Support  for LCD  filter  control has  been  added to  the  demo
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   138
      programs `ftdiff' and `ftview'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   139
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   140
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   141
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   142
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   143
CHANGES BETWEEN 2.3.11 and 2.3.12
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   144
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   145
  I. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   146
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   147
    - For  `FT_Open_Face',  new  parameters  are  available  to ignore
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   148
      preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   149
      FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   150
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   151
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   152
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   153
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   154
    - Support  for  incremental  font  loading  (controlled  with  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   155
      FT_CONFIG_OPTION_INCREMENTAL macro) is now active by default.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   156
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   157
    - Better support for vertical metrics.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   158
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   159
    - Various minor bug fixes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   160
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   161
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   162
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   163
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   164
CHANGES BETWEEN 2.3.10 and 2.3.11
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   165
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   166
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   167
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   168
    - Version 2.3.10 broke PCF support.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   169
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   170
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   171
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   172
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   173
CHANGES BETWEEN 2.3.10 and 2.3.9
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   174
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   175
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   176
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   177
    - If all  ASCII digits in a  font have the  same (unscaled) width,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   178
      the autohinter respects this and won't change it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   179
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   180
    - TrueType fonts  are now  rasterized correctly  if the horizontal
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   181
      and vertical resolution differ.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   182
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   183
    - Type 1 fonts are now handled with increased precision internally
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   184
      to avoid serious rounding issues if non-integral coordinates are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   185
      encountered.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   186
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   187
    - Horizontally  condensed CFF  fonts (using the font  matrix) were
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   188
      rendered  incorrectly.   This  bug  has  been  introduced  after
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   189
      release 2.3.5.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   190
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   191
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   192
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   193
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   194
    - Support for the SFNT cmap 13 table format (as defined by the new
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   195
      OpenType 1.6 specification) has been added.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   196
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   197
    - B/W rasterization  of well-hinted TrueType  fonts at small sizes
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   198
      has been greatly improved.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   199
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   200
    - Calculation  of  vertical  metrics in  OpenType  fonts has  been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   201
      improved.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   202
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   203
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   204
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   205
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   206
    - It  is now  possible to  change  the emboldening  factor in  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   207
      `ftview' demo program with keys `e' and `E'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   208
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   209
    - It is  now possible  to change the  slant value in  the `ftview'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   210
      demo program with keys `s' and `S'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   211
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   212
    - The  5-levels  grayscale  mode of  the `ftraster'  module (which
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   213
      FreeType doesn't use by default) was broken since version 2.3.0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   214
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   215
    - Compilation of the  `ftgrays' and `ftraster' modules  was broken
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   216
      in stand-alone mode.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   217
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   218
    - Various fixes for compilation on 64bit and 16bit architectures.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   219
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   220
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   221
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   222
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   223
CHANGES BETWEEN 2.3.9 and 2.3.8
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   224
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   225
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   226
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   227
    - Very unfortunately, FreeType 2.3.8 contained a change that broke
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   228
      its  official ABI.  The  end result  is  that programs  compiled
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   229
      against previous versions of the library, but dynamically linked
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   230
      to  2.3.8 can  experience  memory corruption  if  they call  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   231
      `FT_Get_PS_Font_Info' function.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   232
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   233
      We recommend all users to  upgrade to 2.3.9 as soon as possible,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   234
      or to downgrade to a previous  release of the library if this is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   235
      not an option.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   236
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   237
      The  origin of the  bug is  that a  new field  was added  to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   238
      publicly  defined  `PS_FontInfoRec'  structure.   Unfortunately,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   239
      objects of this  type can be stack or  heap allocated by callers
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   240
      of   `FT_Get_PS_Font_Info',  resulting   in   a  memory   buffer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   241
      overwrite with its implementation in 2.3.8.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   242
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   243
      If  you want to  know whether  your code  is vulnerable  to this
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   244
      issue,  simply  search  for  the  substrings  `PS_FontInfo'  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   245
      `PS_Font_Info' in your source code.  If none is found, your code
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   246
      is safe and is not affected.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   247
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   248
      The FreeType team apologizes for the problem.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   249
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   250
    - The POSIX support  of MacOS resource-fork fonts  (Suitcase fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   251
      and LaserWriter Type1 PostScript fonts) was broken in 2.3.8.  If
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   252
      FreeType2 is built without Carbon framework, these fonts are not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   253
      handled correctly.  Version 2.3.7 didn't have this bug.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   254
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   255
    - `FT_Get_Advance' (and `FT_Get_Advances') returned bad values for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   256
      almost all font formats except TrueType fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   257
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   258
    - Fix a bug  in the SFNT  kerning table  loader/parser which could
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   259
      crash the engine if certain malformed tables were encountered.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   260
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   261
    - Composite SFNT bitmaps are now handled correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   262
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   263
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   264
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   265
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   266
    - The   new  functions   `FT_Get_CID_Is_Internally_CID_keyed'  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   267
      `FT_Get_CID_From_Glyph_Index'  can be  used to  access CID-keyed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   268
      CFF fonts  via CID  values.  This code  has been  contributed by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   269
      Michael Toftdal.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   270
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   271
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   272
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   273
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   274
    - `FT_Outline_Get_InsideBorder'  returns   FT_STROKER_BORDER_RIGHT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   275
      for empty outlines.  This was incorrectly documented.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   276
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   277
    - The `ftview' demo program now supports UTF-8 encoded strings.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   278
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   279
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   280
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   281
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   282
CHANGES BETWEEN 2.3.8 and 2.3.7
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   283
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   284
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   285
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   286
    - CID-keyed fonts in an SFNT wrapper were not handled correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   287
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   288
    - The smooth renderer produced truncated images (on the right) for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   289
      outline parts with negative horizontal values.  Most fonts don't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   290
      contain outlines left  to the y coordinate axis, but  the effect
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   291
      was very noticeable for outlines processed with FT_Glyph_Stroke,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   292
      using thick strokes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   293
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   294
    - `FT_Get_TrueType_Engine_Type'  returned a  wrong  value if  both
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   295
      configuration  macros  TT_CONFIG_OPTION_BYTECODE_INTERPRETER and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   296
      TT_CONFIG_OPTION_UNPATENTED_HINTING were defined.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   297
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   298
    - The  `face_index'  field  in   the  `FT_Face'  structure  wasn't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   299
      initialized properly after calling FT_Open_Face and friends with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   300
      a positive face index for CFFs,  WinFNTs, and, most importantly,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   301
      for TrueType Collections (TTCs).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   302
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   303
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   304
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   305
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   306
    - Rudimentary support for Type 1  fonts and CID-keyed Type 1 fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   307
      in an SFNT wrapper has been  added -- such fonts are used on the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   308
      Mac.  The core  SFNT tables `TYP1' and `CID '  are passed to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   309
      PS Type 1  and CID-keyed PS font drivers;  other tables (`ALMX',
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   310
      `BBOX', etc.) are not supported yet.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   311
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   312
    - A  new interface  to extract  advance values  of glyphs  without
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   313
      loading their outlines has been added.  The functions are called
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   314
      `FT_Get_Advance' and `FT_Get_Advances'; they are defined in file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   315
      `ftadvanc.h' (to be accessed as FT_ADVANCES_H).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   316
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   317
    - A new function `FT_Get_FSType_Flags' (in FT_FREETYPE_H) has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   318
      contributed  by   David  Bevan  to  access   the  embedding  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   319
      subsetting restriction information of fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   320
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   321
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   322
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   323
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   324
    - FT_MulFix is now an inlined function; by default, assembler code
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   325
      is provided for x86 and ARM.  See FT_CONFIG_OPTION_INLINE_MULFIX
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   326
      and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   327
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   328
    - The handling of `tricky' fonts  (this is, fonts which don't work
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   329
      with the  autohinter, needing the font  format's hinting engine)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   330
      has been generalized and changed slightly:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   331
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   332
      . A new  face flag  FT_FACE_FLAG_TRICKY indicates that  the font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   333
        format's  hinting engine is  necessary for  correct rendering.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   334
        The macro FT_IS_TRICKY can be used to check this flag.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   335
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   336
      . FT_LOAD_NO_HINTING is now ignored for tricky fonts.  To really
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   337
        force  raw  loading  of  such fonts  (without  hinting),  both
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   338
        FT_LOAD_NO_HINTING  and FT_LOAD_NO_AUTOHINT  must  be used  --
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   339
        this is something which you probably never want to do.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   340
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   341
      . Tricky  TrueType fonts  always use  the  bytecode interpreter,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   342
        either the patented or unpatented version.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   343
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   344
    - The  function  `FT_GlyphSlot_Own_Bitmap'  has  been  moved  from
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   345
      FT_SYNTHESIS_H to FT_BITMAP_H; it  is now part of the `official'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   346
      API.   (The functions  in  FT_SYNTHESIS_H are  still subject  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   347
      change, however.)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   348
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   349
    - In the  `ftdiff'  demo  program you  can now  toggle the  use of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   350
      FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH with key `a'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   351
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   352
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   353
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   354
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   355
CHANGES BETWEEN 2.3.7 and 2.3.6
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   356
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   357
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   358
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   359
    - If the library  was compiled on an i386  platform using gcc, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   360
      compiler  option -O3 was  given, `FT_MulFix'  sometimes returned
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   361
      incorrect  results   which  could  have   caused  problems  with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   362
      `FT_Request_Metrics'   and  `FT_Select_Metrics',   returning  an
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   363
      incorrect descender size.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   364
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   365
    - Pure CFFs without  subfonts were scaled incorrectly  if the font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   366
      matrix  was  non-standard.  This  bug  has  been  introduced  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   367
      version 2.3.6.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   368
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   369
    - The  `style_name'  field  in  the  `FT_FaceRec'  structure often
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   370
      contained  a wrong  value for  Type 1  fonts.  This misbehaviour
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   371
      has been  introduced  in  version  2.3.6  while  trying  to  fix
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   372
      another   problem.   [Note,  however,   that   this   value   is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   373
      informative only  since  the  used  algorithm to  extract  it is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   374
      very simplistic.]
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   375
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   376
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   377
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   378
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   379
    - Two      new      macros,      FT_OUTLINE_SMART_DROPOUTS     and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   380
      FT_OUTLINE_EXCLUDE_STUBS,  have been introduced.   Together with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   381
      FT_OUTLINE_IGNORE_DROPOUTS (which  was ignored previously) it is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   382
      now possible to control the dropout mode  of the `raster' module
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   383
      (for B&W rasterization),   using  the   `flags'  field   in  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   384
      `FT_Outline' structure.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   385
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   386
    - The TrueType bytecode interpreter now passes the dropout mode to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   387
      the B&W rasterizer.  This greatly increases the output for small
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   388
      ppem values of many fonts like `pala.ttf'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   389
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   390
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   391
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   392
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   393
CHANGES BETWEEN 2.3.6 and 2.3.5
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   394
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   395
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   396
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   397
    - A  bunch of  potential security  problems have  been found.  All
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   398
      users should update.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   399
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   400
    - Microsoft  Unicode  cmaps  in  TrueType  fonts  are  now  always
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   401
      preferred over Apple cmaps.  This is not a bug per se, but there
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   402
      exist some buggy  fonts created for MS which  have broken  Apple
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   403
      cmaps.  This affects  only the automatic  selection of FreeType;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   404
      it's always possible to manually select an Apple Unicode cmap if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   405
      desired.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   406
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   407
    - Many bug fixes to the TrueType bytecode interpreter.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   408
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   409
    - Improved Mac support.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   410
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   411
    - Subsetted CID-keyed CFFs are now supported correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   412
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   413
    - CID-keyed CFFs with subfonts which are scaled in a  non-standard
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   414
      way are now handled correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   415
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   416
    - A call to FT_Open_Face with `face_index' < 0 crashed FreeType if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   417
      the font was a Windows (bitmap) FNT/FON.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   418
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   419
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   420
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   421
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   422
    - The new function `FT_Get_CID_Registry_Ordering_Supplement' gives
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   423
      access to  those fields in a CID-keyed font.  The code  has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   424
      contributed by Derek Clegg.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   425
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   426
    - George Williams  contributed  code  to validate  the new  `MATH'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   427
      OpenType  table (within  the `otvalid'  module).  The  `ftvalid'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   428
      demo program has been extended accordingly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   429
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   430
    - An API for cmap 14 support  (for Unicode Variant Selectors, UVS)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   431
      has been contributed by George Williams.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   432
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   433
    - A new face flag FT_FACE_FLAG_CID_KEYED has been added,  together
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   434
      with a macro FT_IS_CID_KEYED which evaluates to 1 if the font is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   435
      CID-keyed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   436
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   437
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   438
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   439
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   440
    - Build support for symbian has been contributed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   441
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   442
    - Better WGL4 glyph name support, contributed by Sergey Tolstov.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   443
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   444
    - Debugging output of the  various FT_TRACEX macros is now sent to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   445
      stderr.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   446
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   447
    - The `ftview' demo program now provides artificial slanting too.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   448
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   449
    - The `ftvalid' demo  program has a new  option `-f' to select the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   450
      font index.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   451
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   452
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   453
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   454
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   455
CHANGES BETWEEN 2.3.5 and 2.3.4
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   456
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   457
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   458
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   459
    - Some subglyphs in TrueType fonts were handled incorrectly due to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   460
      a missing graphics state reinitialization.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   461
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   462
    - Large .Z files  (as distributed with some X11  packages) weren't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   463
      handled correctly, making FreeType increase the heap stack in an
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   464
      endless loop.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   465
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   466
    - A large  number of  bugs have  been fixed  to avoid  crashes and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   467
      endless loops with invalid fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   468
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   469
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   470
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   471
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   472
    - The  two new  cache functions  `FTC_ImageCache_LookupScaler' and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   473
      `FTC_SBit_Cache_LookupScaler' have been added to allow lookup of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   474
      glyphs using an  `FTC_Scaler' object;  this makes it possible to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   475
      use fractional pixel sizes in the cache.  The demo programs have
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   476
      been updated accordingly to use this feature.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   477
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   478
    - A new API  `FT_Get_CMap_Format' has been added to  get the  cmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   479
      format  of a  TrueType font.   This  is useful  in handling  PDF
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   480
      files.  The code has been contributed by Derek Clegg.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   481
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   482
    - The  auto-hinter  now  produces  better  output  by  default for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   483
      non-Latin scripts  like Indic.   This was done by  using the CJK
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   484
      hinting module  as the default instead of the Latin one.  Thanks
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   485
      to Rahul Bhalerao for this suggestion.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   486
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   487
    - A new API `FT_Face_CheckTrueTypePatents'  has been added to find
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   488
      out  whether  a  given  TrueType  font  uses  patented  bytecode
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   489
      instructions.   The  `ft2demos' bundle  contains a  new  program
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   490
      called `ftpatchk' which demonstrates its usage.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   491
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   492
    - A  new  API  `FT_Face_SetUnpatentedHinting'  has  been  added to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   493
      enable or disable the unpatented hinter.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   494
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   495
    - Support for Windows FON files in PE format  has been contributed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   496
      by Dmitry Timoshkov.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   497
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   498
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   499
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   500
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   501
    - Vincent Richomme contributed Visual C++ project files for Pocket
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   502
      PCs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   503
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   504
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   505
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   506
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   507
CHANGES BETWEEN 2.3.4 and 2.3.3
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   508
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   509
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   510
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   511
    - A serious  bug  in  the  handling  of bitmap  fonts (and  bitmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   512
      strikes of outline fonts) has been introduced in 2.3.3.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   513
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   514
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   515
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   516
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   517
CHANGES BETWEEN 2.3.3 and 2.3.2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   518
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   519
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   520
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   521
    - Remove a serious regression in the TrueType bytecode interpreter
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   522
      that was introduced  in version 2.3.2.  Note that  this does not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   523
      disable  the  improvements  introduced  to  the  interpreter  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   524
      version 2.3.2,  only some ill  cases that occurred  with certain
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   525
      fonts (though a few popular ones).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   526
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   527
    - The auto-hinter now  ignores single-point contours for computing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   528
      blue zones.   This bug  created `wavy' baselines  when rendering
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   529
      text  with  various  fonts  that  use these  contours  to  model
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   530
      mark-attach points  (these are points that  are never rasterized
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   531
      and are placed outside of the glyph's real outline).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   532
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   533
    - The `rsb_delta' and `lsb_delta' glyph slot fields are now set to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   534
      zero for mono-spaced fonts.  Otherwise code that uses them would
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   535
      essentially ruin the fixed-advance property.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   536
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   537
    - Fix  CVE-2007-1351 which  can  cause an  integer overflow  while
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   538
      parsing  BDF fonts,  leading to  a potentially  exploitable heap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   539
      overflow condition.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   540
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   541
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   542
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   543
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   544
    - Fixed compilation issues on some 64-bit platforms (see ChangeLog
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   545
      for details).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   546
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   547
    - A new demo  program `ftdiff' has been added  to compare TrueType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   548
      hinting, FreeType's auto  hinting, and rendering without hinting
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   549
      in three columns.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   550
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   551
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   552
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   553
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   554
CHANGES BETWEEN 2.3.2 and 2.3.1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   555
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   556
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   557
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   558
    - FreeType  returned incorrect  kerning information  from TrueType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   559
      fonts when the bytecode  interpreter was enabled.  This happened
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   560
      due to a typo introduced in version 2.3.0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   561
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   562
    - Negative  kerning  values  from   PFM  files  are  now  reported
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   563
      correctly  (they were read  as 16-bit  unsigned values  from the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   564
      file).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   565
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   566
    - Fixed  a small  memory leak  when `FT_Init_FreeType'  failed for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   567
      some reason.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   568
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   569
    - The Postscript hinter placed and sized very thin and ghost stems
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   570
      incorrectly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   571
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   572
    - The TrueType bytecode  interpreter has been fixed to  get rid of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   573
      most of the  rare differences seen in comparison  to the Windows
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   574
      font loader.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   575
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   576
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   577
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   578
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   579
    - The auto-hinter  now better deals  with serifs and  corner cases
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   580
      (e.g.,  glyph '9'  in Arial  at 9pt,  96dpi).  It  also improves
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   581
      spacing  adjustments and doesn't  change widths  for non-spacing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   582
      glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   583
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   584
    - Many   Mac-specific   functions   are  deprecated   (but   still
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   585
      available);  modern replacements  have been  provided  for them.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   586
      See the documentation in file `ftmac.h'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   587
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   588
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   589
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   590
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   591
CHANGES BETWEEN 2.3.1 and 2.3.0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   592
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   593
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   594
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   595
    - The TrueType interpreter sometimes returned incorrect horizontal
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   596
      metrics due to a bug in the handling of the SHZ instruction.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   597
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   598
    - A typo  in  a  security  check  introduced  after  version 2.2.1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   599
      prevented FreeType to render some glyphs in CFF fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   600
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   601
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   602
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   603
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   604
CHANGES BETWEEN 2.3.0 and 2.2.1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   605
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   606
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   607
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   608
    - The  PCF font  loader  is  now much  more  robust while  loading
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   609
      malformed font files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   610
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   611
    - Various memory leaks have been found and fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   612
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   613
    - The TrueType name loader now deals properly with some fonts that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   614
      encode their  names in UTF-16 (the specification  was vague, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   615
      the code incorrectly assumed UCS-4).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   616
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   617
    - Fixed the TrueType bytecode  loader to deal properly with subtle
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   618
      monochrome/gray  issues  when   scaling  the  CVT.   Some  fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   619
      exhibited bad rendering artifacts otherwise.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   620
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   621
    - `FT_GlyphSlot_Embolden' now  supports vertical layouts correctly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   622
      (it mangled the vertical advance height).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   623
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   624
    - Fixed byte  endian issues  of `ftmac.c' to  support Mac OS  X on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   625
      i386.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   626
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   627
    - The  PFR  font loader  no  longer  erroneously  tags font  files
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   628
      without any outlines as FT_FACE_FLAG_SCALABLE.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   629
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   630
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   631
  II. NEW API FUNCTIONS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   632
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   633
    - `FT_Library_SetLcdFilter' allows you  to select a special filter
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   634
      to be  applied to the bitmaps generated  by `FT_Render_Glyph' if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   635
      one of the FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V modes has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   636
      been  selected.  This filter  is used  to reduce  color fringes;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   637
      several  settings are  available  through the  FT_LCD_FILTER_XXX
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   638
      enumeration.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   639
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   640
      Its  declaration   and  documentation  can  be   found  in  file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   641
      `include/freetype/ftlcdfil.h'   (to  be   accessed   with  macro
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   642
      FT_LCD_FILTER_H).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   643
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   644
      *IMPORTANT*:     This      function     returns     an     error
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   645
      (FT_Err_Unimplemented_Feature) in default  builds of the library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   646
      for patent reasons.  See below.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   647
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   648
    - `FT_Get_Gasp'  allows you  to query  the flags  of  the TrueType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   649
      `gasp' table for  a given character pixel size.   This is useful
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   650
      to duplicate  the text rendering  of MS Windows when  the native
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   651
      bytecode  interpreter is  enabled (which  isn't the  default for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   652
      other patent reasons).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   653
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   654
      Its  declaration   and  documentation  can  be   found  in  file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   655
      `include/freetype/ftgasp.h'   (to   be   accessed   with   macro
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   656
      FT_GASP_H).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   657
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   658
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   659
  III. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   660
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   661
    - The auto-hinter has been tuned a lot to improve its results with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   662
      serif fonts, resulting in much better font rendering of many web
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   663
      pages.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   664
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   665
    - The unpatented  hinter is now part  of the default  build of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   666
      library; we  have added  code to automatically  support `tricky'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   667
      fonts that need it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   668
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   669
      This means  that FreeType should `just work'  with certain Asian
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   670
      fonts, like  MingLiU, which cannot properly be  loaded without a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   671
      bytecode interpreter,  but which fortunately  do not use  any of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   672
      the patented  bytecode opcodes.  We detect these  fonts by name,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   673
      so please  report any font file  that doesn't seem  to work with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   674
      FreeType, and  we shall do what we  can to support it  in a next
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   675
      release.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   676
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   677
      Note  that  the API  hasn't  changed,  so  you can  still  force
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   678
      unpatented hinting with a special parameter to `FT_Open_Face' as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   679
      well.  This  might be useful in  same cases; for  example, a PDF
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   680
      reader might present  a user option to activate  it to deal with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   681
      certain  `tricky'   embedded  fonts  which   cannot  be  clearly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   682
      identified.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   683
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   684
      If you are  a developer for embedded systems,  you might want to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   685
      *disable*  the   feature  to  save  code   space  by  undefining
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   686
      TT_CONFIG_OPTION_UNPATENTED_HINTING in file `ftoption.h'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   687
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   688
    - LCD-optimized rendering is now  *disabled* in all default builds
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   689
      of  the  library,  mainly   due  to  patent  issues.   For  more
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   690
      information see:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   691
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   692
      http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   693
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   694
      A  new  configuration macro  FT_CONFIG_OPTION_SUBPIXEL_RENDERING
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   695
      has been introduced in  `ftoption.h'; manually define it in this
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   696
      file if you want to re-enable the feature.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   697
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   698
      The  change only  affects the  implementation, not  the FreeType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   699
      API.  This means that clients don't need to be modified, because
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   700
      the library still generates  LCD decimated bitmaps, but with the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   701
      added constraint that R=G=B on each triplet.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   702
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   703
      The  displayed result  should  be equal  to normal  anti-aliased
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   704
      rendering.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   705
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   706
      Additionally,  if   FT_CONFIG_OPTION_SUBPIXEL_RENDERING  is  not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   707
      defined, the new  `FT_Library_SetLcdFilter' function returns the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   708
      FT_Err_Unimplemented_Feature error code.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   709
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   710
    - Some computation bugs in  the TrueType bytecode interpreter were
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   711
      found,  which  allow us  to  get rid  of  very  subtle and  rare
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   712
      differences we had experienced with the Windows renderer.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   713
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   714
    - It is now possible to cross-compile the library easily.  See the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   715
      file `docs/INSTALL.CROSS' for details.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   716
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   717
    - The file `src/base/ftmac.c' now contains code for Mac OS X only;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   718
      its  deprecated function  `FT_GetFile_From_Mac_Font_Name' always
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   719
      returns an  error even if the QuickDraw  framework is available.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   720
      The previous version has been moved to `builds/mac/ftmac.c'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   721
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   722
      Selecting  configure option `--with-quickdraw-carbon'  makes the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   723
      build process use the original `ftmac.c' file instead of the Mac
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   724
      OS X-only version.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   725
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   726
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   727
  IV. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   728
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   729
    - Various performance and memory footprint optimizations have been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   730
      performed on  the TrueType and CFF font  loaders, sometimes with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   731
      very drastic  benefits (e.g., the  TrueType loader is  now about
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   732
      25% faster;  FreeType should use  less heap memory  under nearly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   733
      all conditions).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   734
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   735
    - The anti-aliased rasterizer has been optimized and is now 15% to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   736
      25%  percent  faster than  in  previous  versions, depending  on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   737
      content.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   738
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   739
    - The Type 1 loader has been improved; as an example, it now skips
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   740
      top-level dictionaries properly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   741
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   742
    - Better support for Mac  fonts on POSIX systems, plus compilation
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   743
      fixes for Mac OS X on ppc64 where `ftmac.c' cannot be built.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   744
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   745
    - Configuration  without `--with-old-mac-fonts'  does  not include
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   746
      `ftmac.c' (this was the behaviour in FreeType version 2.1.10).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   747
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   748
    - The TrueTypeGX validator (gxvalid) checks the order of glyph IDs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   749
      in the kern table.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   750
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   751
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   752
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   753
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   754
CHANGES BETWEEN 2.2.1 and 2.2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   755
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   756
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   757
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   758
    - Various integer overflows have been fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   759
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   760
    - PFB fonts with MacOS resource fork weren't  handled correctly on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   761
      non-MacOS platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   762
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   763
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   764
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   765
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   766
CHANGES BETWEEN 2.2 and 2.1.10
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   767
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   768
(not released officially)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   769
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   770
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   771
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   772
    - Vertical metrics for SFNT fonts were incorrect sometimes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   773
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   774
    - The FT_HAS_KERNING macro always returned 0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   775
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   776
    - CFF OpenType  fonts didn't  return correct vertical  metrics for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   777
      glyphs with outlines.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   778
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   779
    - If FreeType was compiled without hinters, all font formats based
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   780
      on PS outlines weren't scaled correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   781
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   782
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   783
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   784
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   785
    - Version 2.2 no longer exposes its internals, this is, the header
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   786
      files  located in  the `include/freetype/internal'  directory of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   787
      the source package are not  copied anymore by the `make install'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   788
      command.  Consequently, a number of rogue clients which directly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   789
      access  FreeType's  internal   functions  and  structures  won't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   790
      compile without modification.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   791
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   792
      We provide  patches for  most of those  rogue clients.   See the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   793
      following page for more information:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   794
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   795
        http://www.freetype.org/freetype2/patches/rogue-patches.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   796
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   797
      Note that, as  a convenience to our Unix  desktop users, version
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   798
      2.2 is *binary* compatible with FreeType 2.1.7, which means that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   799
      installing this  release on  an existing distribution  shall not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   800
      break any working desktop.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   801
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   802
    - FreeType's build  mechanism has been redesigned.   With GNU make
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   803
      it  is  now  sufficient  in   most  cases  to  edit  two  files:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   804
      `modules.cfg',  to  select   the  library  components,  and  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   805
      configuration  file  `include/freetype/config/ftoption.h' (which
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   806
      can be copied to the objects directory).  Removing unused module
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   807
      directories   to    prevent   its   compilation    and   editing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   808
      `include/freetype/config/ftmodule.h' is no longer necessary.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   809
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   810
    - The  LIGHT  hinting algorithm  produces  more pleasant  results.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   811
      Also, using the  FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   812
      always forces auto-hinting, as a special exception.  This allows
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   813
      you to experiment with it  even if you have enabled the TrueType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   814
      bytecode interpreter in your build.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   815
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   816
    - The auto hinter now employs a new algorithm for CJK fonts, based
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   817
      on Akito  Hirai's patch.   Note that this  only works  for fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   818
      with a Unicode charmap at the moment.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   819
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   820
    - The following callback function  types have changed slightly (by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   821
      adding the `const' keyword where appropriate):
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   822
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   823
        FT_Outline_MoveToFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   824
        FT_Outline_LineToFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   825
        FT_Outline_ConicToFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   826
        FT_Outline_CubicToFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   827
        FT_SpanFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   828
        FT_Raster_RenderFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   829
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   830
        FT_Glyph_TransformFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   831
        FT_Renderer_RenderFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   832
        FT_Renderer_TransformFunc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   833
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   834
      Note that this doesn't affect binary backward compatibility.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   835
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   836
    - On MacOS,  new APIs have  been added as replacements  for legacy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   837
      APIs:  `FT_New_Face_From_FSRef'  for  `FT_New_Face_From_FSSpec',
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   838
      and              `FT_GetFile_From_Mac_ATS_Name'              for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   839
      `FT_GetFile_From_Mac_Name'.  Legacy APIs are still available, if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   840
      FreeType is built without disabling them.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   841
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   842
    - A new  API `FT_Select_Size'  has been added  to select  a bitmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   843
      strike  by its  index.   Code using  other  functions to  select
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   844
      bitmap strikes should be updated to use this function.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   845
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   846
    - A  new API  `FT_Get_SubGlyph_Info'  has been  added to  retrieve
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   847
      subglyph data.  This can be  used by rogue clients which used to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   848
      access the internal headers to get the corresponding data.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   849
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   850
    - In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   851
      BDF/PCF fonts,  and only  for them.  This  causes inconsistency.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   852
      In this release,  we undo the change.  The  intent of the change
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   853
      in 2.1.10  is to allow  size selection through  real dimensions,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   854
      which can now be done through `FT_Request_Size'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   855
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   856
    - Some security  issues were discovered  and fixed in the  CFF and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   857
      Type  1 loader, causing  crashes of  FreeType by  malformed font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   858
      files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   859
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   860
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   861
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   862
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   863
    - The documentation  for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   864
      values now better reflects its usage and differences: One set is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   865
      used to specify the hinting algorithm, the other to specify  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   866
      pixel rendering mode.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   867
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   868
    - `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   869
      changed to count supported scalable faces (sfnt, LWFN) only, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   870
      to  return the  number of  available faces  via face->num_faces.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   871
      Unsupported bitmap faces (fbit, NFNT) are ignored.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   872
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   873
    - builds/unix/configure  has been  improved for  MacOS X.   It now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   874
      automatically checks available  functions in Carbon library, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   875
      prepare to use newest  functions by default.  Options to specify
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   876
      the  dependencies of  each Carbon  APIs (FSSpec,  FSRef, old/new
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   877
      QuickDraw, ATS)  are available too.  By manual  disabling of all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   878
      QuickDraw   functionality,  FreeType   can   be  built   without
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   879
      `deprecated   function'   warnings    on   MacOS   10.4.x,   but
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   880
      FT_GetFile_Mac_Name  in  ftmac.c  then  is changed  to  a  dummy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   881
      function, and returns an `unimplemented' error.  For details see
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   882
      builds/mac/README.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   883
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   884
    - SFNT cmap handling has been  improved, mainly to run much faster
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   885
      with CJK fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   886
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   887
    - A   new  function   `FT_Get_TrueType_Engine_Type   (declared  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   888
      `FT_MODULE_H')  is  provided  to  determine the  status  of  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   889
      TrueType   bytecode  interpreter   compiled  into   the  library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   890
      (patented, unpatented, unimplemented).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   891
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   892
    - Vertical metrics of glyphs are  synthesized if the font does not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   893
      provide such information.  You can tell whether  the metrics are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   894
      synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   895
      the face.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   896
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   897
    - The demo programs  `ftview' and  `ftstring' have been  rewritten
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   898
      for better readability.   `ftview' has a new switch `-p' to test
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   899
      FT_New_Memory_Face (instead of FT_New_Face).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   900
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   901
    - FreeType now honours bit 1 in the `head' table of TrueType fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   902
      (meaning `left sidebearing point at x=0').  This helps with some
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   903
      buggy fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   904
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   905
    - Rudimentary support for Adobe's new `SING Glyphlet' format.  See
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   906
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   907
        http://www.adobe.com/products/indesign/sing_gaiji.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   908
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   909
      for more information.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   910
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   911
    - The `ftdump'  program from the `ft2demos' bundle  now shows some
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   912
      information about charmaps.  It  also supports a new switch `-v'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   913
      to increase verbosity.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   914
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   915
    - Better AFM support.  This includes track kerning support.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   916
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   917
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   918
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   919
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   920
CHANGES BETWEEN 2.1.10 and 2.1.9
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   921
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   922
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   923
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   924
    - The size comparison for BDF and PCF files could fail sometimes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   925
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   926
    - Some  CFF files  were still not  loaded  correctly.   Patch from
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   927
      Derek Noonburg.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   928
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   929
    - The stroker still had some serious bugs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   930
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   931
    - Boris  Letocha  fixed a  bug in  the  TrueType interpreter:  The
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   932
      NPUSHW instruction wasn't skipped correctly in IF clauses.  Some
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   933
      fonts like `Helvetica 75 Bold' failed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   934
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   935
    - Another  serious  bug  in  handling  TrueType hints  caused many
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   936
      distortions.  It has been introduced in version 2.1.8, and it is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   937
      highly recommended to upgrade.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   938
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   939
    - FreeType didn't properly parse empty Type 1 glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   940
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   941
    - An unbound dynamic buffer growth was fixed in the PFR loader.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   942
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   943
    - Several bugs have been fixed in the cache sub-system.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   944
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   945
    - FreeType behaved incorrectly when resizing two distinct but very
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   946
      close character pixel sizes through `FT_Set_Char_Size' (Savannah
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   947
      bug #12263).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   948
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   949
    - The auto-hinter didn't work properly for fonts without a Unicode
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   950
      charmap -- it even refused to load the glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   951
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   952
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   953
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   954
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   955
    - Many fixes have been applied to drastically reduce the amount of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   956
      heap   memory   used   by   FreeType,   especially   when  using
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   957
      memory-mapped font files  (which is the default on Unix  systems
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   958
      which support them).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   959
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   960
    - The auto-hinter  has been replaced with a new module, called the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   961
      `auto-fitter'.  It consumes  less memory  than its  predecessor,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   962
      and it is  prepared to support non-latin scripts  better in next
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   963
      releases.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   964
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   965
    - George Williams  contributed code to read  kerning data from PFM
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   966
      files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   967
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   968
    - FreeType   now   uses    the   TT_NAME_ID_PREFERRED_FAMILY   and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   969
      TT_NAME_ID_PREFERRED_SUBFAMILY   strings   (if   available)  for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   970
      setting  family  and  style in SFNT  fonts  (patch from Kornfeld
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   971
      Eliyahu Peter).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   972
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   973
    - A  new  API `FT_Sfnt_Table_Info'  (in FT_TRUETYPE_TABLES_H)  has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   974
      been added to retrieve name and size information of SFNT tables.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   975
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   976
    - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   977
      been added to validate OpenType tables  (BASE, GDEF, GPOS, GSUB,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   978
      JSTF).   After validation  it is  no longer  necessary to  check
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   979
      for errors in those tables while accessing them.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   980
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   981
      Note that  this module might  be moved to another library in the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   982
      future  to avoid  a tight  dependency between  FreeType and  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   983
      OpenType specification.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   984
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   985
    - A new API in FT_BITMAP_H  (`FT_Bitmap_New', `FT_Bitmap_Convert',
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   986
      `FT_Bitmap_Copy',  `FT_Bitmap_Embolden',  `FT_Bitmap_Done')  has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   987
      been added.   Its  use is  to convert an  FT_Bitmap structure in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   988
      1bpp, 2bpp,  4bpp, or 8bpp  format into  another 8bpp FT_Bitmap,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   989
      probably using a different pitch, and to further manipulate it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   990
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   991
    - A new  API `FT_Outline_Embolden'  (in FT_OUTLINE_H) gives  finer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   992
      control how  outlines are embolded.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   993
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   994
    - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H)  now handles bitmaps
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   995
      also (code contributed  by Chia I Wu).  Note that this  function
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   996
      is still experimental and may be replaced with a better API.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   997
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   998
    - The method  how BDF and PCF  bitmap fonts  are accessed has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   999
      refined.   Formerly,   FT_Set_Pixel_Sizes  and  FT_Set_Char_Size
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1000
      were  synonyms in  FreeType's  BDF and PCF interface.  This  has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1001
      changed now.  FT_Set_Pixel_Sizes  should be  used to  select the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1002
      actual  font dimensions  (the `strike',  which is the sum of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1003
      `FONT_ASCENT'    and    `FONT_DESCENT'    properties),     while
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1004
      FT_Set_Char_Size  selects  the  `nominal' size  (the `PIXELSIZE'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1005
      property).  In both functions, the width parameter is ignored.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1006
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1007
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1008
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1009
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1010
    - The BDF driver  no longer converts  all returned bitmaps  with a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1011
      depth of 2bpp or 4bpp to a depth of 8bpp.  The documentation has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1012
      not  mentioned  this  explicitly,  but  implementors  might have
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1013
      relied on this after looking into the source files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1014
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1015
    - A new option `--ftversion' has been  added to freetype-config to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1016
      return the FreeType version.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1017
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1018
    - The  memory  debugger  has  been  updated   to  dump  allocation
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1019
      statistics on  all allocation  sources in the library.   This is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1020
      useful to  spot greedy  allocations when  loading and processing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1021
      fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1022
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1023
    - We removed a huge array of constant pointers to constant strings
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1024
      in the `psnames' module.   The problem was that  compilations in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1025
      PIC mode (i.e.,  when generating a  Unix shared object/dll)  put
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1026
      the array  into the non-shared  writable section of  the library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1027
      since absolute pointers are not relocatable by nature.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1028
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1029
      This reduces the memory consumption by approximately 16KByte per
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1030
      process linked  to FreeType.   We now also store  the array in a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1031
      compressed form (as a trie) which saves about 20KByte of code as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1032
      well.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1033
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1034
    - Kirill  Smelkov provided  patches to make  src/raster/ftraster.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1035
      compile stand-alone again.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1036
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1037
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1038
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1039
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1040
CHANGES BETWEEN 2.1.9 and 2.1.8
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1041
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1042
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1043
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1044
    - The function  `FT_Get_CharMap_Index' was only declared,  without
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1045
      any  real  code.   For  consistency,  it  has  been  renamed  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1046
      `FT_Get_Charmap_Index'.   (This function is needed  to implement
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1047
      cmap caches.)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1048
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1049
    - `FT_Outline_Get_BBox'  sometimes returned  incorrect values  for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1050
      conic outlines (e.g., for TrueType fonts).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1051
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1052
    - Handling of `bhed' table has been fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1053
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1054
    - The TrueType driver with enabled byte code interpreter sometimes
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1055
      returned artifacts due to incorrect rounding.  This bug has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1056
      introduced after version 2.1.4.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1057
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1058
    - The BDF driver dropped the last glyph in the font.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1059
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1060
    - The BDF driver now uses the DEFAULT_CHAR property (if available)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1061
      to select a glyph shape for the undefined glyph.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1062
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1063
    - The stroker failed for closed outlines and single points.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1064
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1065
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1066
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1067
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1068
    - George  Williams   contributed  code  to   handle  Apple's  font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1069
      distortion technology found in GX fonts (`avar', `cvar', `fvar',
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1070
      and `gvar' tables;  the Multiple Masters  API has been  slightly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1071
      extended to cope with the new functionality).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1072
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1073
    - The `FT_GlyphSlotRec' structure has been extended:  The elements
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1074
      `lsb_delta' and  `rsb_delta' give the difference  between hinted
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1075
      and  unhinted  left and right  side bearings  if autohinting  is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1076
      active.  Using those values can improve the inter-letter spacing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1077
      considerably.   See the documentation of  `FT_GlyphSlotRec'  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1078
      the `ftstring' demo program how to use it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1079
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1080
    - Loading TrueType and Type 1 fonts has been made much faster.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1081
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1082
    - The stroker is  no longer experimental (but the  cache subsystem
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1083
      still is).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1084
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1085
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1086
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1087
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1088
    - A new  documentation file  `formats.txt' describes various  font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1089
      formats supported (and not supported) by FreeType.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1090
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1091
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1092
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1093
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1094
CHANGES BETWEEN 2.1.8 and 2.1.7
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1095
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1096
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1097
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1098
    - The native  TrueType hinter contained some  bugs which prevented
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1099
      some fonts to be rendered correctly, most notably Legendum.otf.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1100
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1101
    - The PostScript hinter now produces improved results.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1102
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1103
    - The  linear advance  width  and height  values were  incorrectly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1104
      rounded,  making  them virtually  unusable  if  not loaded  with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1105
      FT_LOAD_LINEAR_DESIGN.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1106
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1107
    - Indexing CID-keyed CFF fonts is  now working: The glyph index is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1108
      correctly  treated as a  CID, similar  to FreeType's  CID driver
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1109
      module.  Note that CID CMap support is still missing.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1110
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1111
    - The FT_FACE_FLAGS_GLYPH_NAMES flag is now  set correctly for all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1112
      font formats.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1113
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1114
    - Some subsetted Type 1  fonts weren't parsed correctly.  This bug
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1115
      has been introduced in 2.1.7.  In summary, the Type 1 parser has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1116
      become more robust.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1117
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1118
    - Non-decimal numbers weren't parsed correctly in PS fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1119
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1120
    - The WinFNT driver now correctly reports FT_ENCODING_NONE for all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1121
      but one encoding.  Use  the new FT_WinFNT_ID_XXX values together
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1122
      with `FT_Get_WinFNT_Header' to get the WinFNT charset ID.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1123
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1124
    - The descender metrics (face->size->metrics.descender) for WinFNT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1125
      bitmap fonts had the wrong sign.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1126
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1127
    - The (emulated) `seac' support for CFF fonts was broken.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1128
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1129
    - The `flex' operator didn't work for CFF fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1130
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1131
    - PS glyphs  which  use  the   `hintmask'  operator  haven't  been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1132
      rendered correctly in some cases.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1133
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1134
    - Metrics for BDF and PCF bitmap font formats have been fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1135
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1136
    - Autohinting  is now  disabled for  glyphs  which  are vertically
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1137
      distorted  or mirrored  (using a  transformation matrix).   This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1138
      fixes a bug which produced zero-height glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1139
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1140
    - The   `freetype-config'   script   now  handles   --prefix   and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1141
      --exec-prefix correctly; it also  returns the proper --rpath (or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1142
      -R) value if FreeType has been built as a shared library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1143
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1144
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1145
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1146
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1147
    - Both  PCF  and BDF  drivers  now  handle  the SETWIDTH_NAME  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1148
      ADD_STYLE_NAME    properties.     Values    are   appended    to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1149
      face->style_name; example: `Bold SemiCondensed'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1150
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1151
    - The PCF driver now handles bitmap  fonts compressed with the LZW
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1152
      algorithm (extension .pcf.Z, compressed with `compress').
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1153
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1154
    - A  new  API   function  `FT_Get_CMap_Language_ID'  (declared  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1155
      `tttables.h')  is  available  to   get  the  language  ID  of  a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1156
      TrueType/SFNT cmap.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1157
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1158
    - The hexadecimal format of  data after the `StartData' command in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1159
      CID-keyed Type 1 fonts is now supported.  While this can't occur
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1160
      in  file-based   fonts,  it  can   happen  in  document-embedded
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1161
      resources of PostScript documents.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1162
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1163
    - Embedded bitmaps in SFNT-based CFF fonts are now supported.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1164
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1165
    - A simple  API is  now available  to control  FreeType's  tracing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1166
      mechanism if compiled  with FT_DEBUG_LEVEL_TRACE.   See the file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1167
      `ftdebug.h' for more details.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1168
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1169
    - YAMATO Masatake contributed improved  handling of MacOS resource
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1170
      forks on non-MacOS platforms (for example, Linux can mount MacOS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1171
      file systems).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1172
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1173
    - Support for MacOS has been improved; there is now a new function
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1174
      `FT_New_Face_From_FSSpec'  similar to `FT_New_Face'  except that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1175
      it accepts an FSSpec instead of a path.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1176
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1177
    - The cache sub-system has been rewritten.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1178
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1179
      - There is now support for deinstallation of faces.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1180
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1181
      - A new  API function `FTC_Manager_RemoveFaceID'  has been added
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1182
        to  delete  all  `idle'  nodes  that  correspond  to  a  given
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1183
        FTC_FaceID.  All `locked' nodes  (i.e., those with a reference
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1184
        count > 0), will be modified to prevent them from appearing in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1185
        further  lookups (they  will  be cleaned  normally when  their
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1186
        reference count reaches 0).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1187
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1188
      - There  is  now  support  for point  scaling  (i.e.,  providing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1189
        character sizes in points + dpis, instead of pixels).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1190
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1191
      - Three abstract cache classes are now available:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1192
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1193
          FTC_GCache:  Used to store  one glyph  item per  cache node,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1194
                      with the ability to group common attributes into
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1195
                      `families'.      This    replaces     the    old
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1196
                      FTC_GlyphCache class.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1197
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1198
          FTC_ICache: Used to store one FT_Glyph per cache node.  This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1199
                      extends  FTC_GCache.  Family  definition, family
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1200
                      comparison, and  glyph loading are  however left
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1201
                      to sub-classes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1202
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1203
          FTC_SCache: Used to  store up to 16 small  bitmaps per cache
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1204
                      node.    This    extends   FTC_GCache.    Family
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1205
                      definition, family  comparison and glyph loading
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1206
                      are however left to sub-classes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1207
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1208
      - The file `src/cache/ftcbasic.c' implements:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1209
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1210
          FTC_ImageCache: Extends    FTC_ICache;   implements   family
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1211
                          definitions and glyph loading similar to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1212
                          old API.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1213
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1214
          FTC_SBitCache: Extends    FTC_SCache,    implements   family
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1215
                         definitions and glyph  loading similar to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1216
                         old API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1217
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1218
        Client  applications  should  be  able to  extend  FTC_GCache,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1219
        FTC_ICache, or FTC_SCache much more easily (i.e., less code to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1220
        write, and  less callbacks).  For example,  one could envision
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1221
        caches  that are  capable of  storing  transformed (obliqued),
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1222
        stroked,   emboldened,   or   colored   glyph   images.    Use
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1223
        `ftcbasic.c' as an example.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1224
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1225
      - All public  APIs are now  in `include/freetype/ftcache.h', (to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1226
        be    accessed   as    `FT_CACHE_H').     The   contents    of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1227
        `include/freetype/cache/' is only  needed by applications that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1228
        wish to implement their own caches.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1229
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1230
      - There were some major performance improvements through the use
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1231
        of  various programming  tricks.   Cache hits  are  up to  70%
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1232
        faster than in the old code.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1233
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1234
      - The  FTC_CMapCache has  been simplified.  Charmaps can only be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1235
        accessed by  index right now.  There  is also a  new API named
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1236
        `FT_Charmap_GetIndex' for this purpose.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1237
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1238
      - The  demo programs  have been  updated to  the new  code.  The
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1239
        previous versions will not work with the current one.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1240
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1241
      - Using  an invalid face  index in FT_Open_Face and friends  now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1242
        causes an error even if the font contains a single face only.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1243
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1244
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1245
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1246
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1247
    - Wolfgang Domröse contributed support files for building FreeType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1248
      on the Atari using the PureC compiler.  Note that the Atari is a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1249
      16bit platform.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1250
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1251
    - Vitaliy Pasternak contributed project files for VS.NET 2003.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1252
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1253
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1254
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1255
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1256
CHANGES BETWEEN 2.1.7 and 2.1.6
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1257
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1258
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1259
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1260
    - Updated  to newest  libtool  version, fixing  build problems  on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1261
      various platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1262
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1263
    - On  Unix  platforms,  `make  install' didn't  copy  the  correct
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1264
      `ftconfig.h' file.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1265
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1266
  Note that version 2.1.7  contains the same library  C source code as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1267
  version 2.1.6.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1268
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1269
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1270
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1271
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1272
CHANGES BETWEEN 2.1.6 and 2.1.5
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1273
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1274
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1275
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1276
    - The PFR  font driver didn't  load kerning tables  correctly, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1277
      the functions in FT_PFR_H didn't work at all.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1278
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1279
    - Type 1 font  files in  binary format  (PFB) with  an end-of-file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1280
      indicator weren't accepted by the FreeType engine.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1281
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1282
    - Fonts which contain /PaintType  and /StrokeWidth no longer cause
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1283
      a segfault.  This bug has been introduced in version 2.1.5.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1284
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1285
    - Fonts  loaded  with   FT_LOAD_RENDER  no  longer  cause  strange
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1286
      results.  This bug has been introduced in version 2.1.5.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1287
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1288
    - Some  Windows   (bitmap)  FNT/FON  files   couldn't  be  handled
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1289
      correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1290
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1291
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1292
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1293
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1294
    - The internal  module API  has been heavily  changed in  favor of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1295
      massive simplifications within the font engine.  This also means
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1296
      that authors of third-party modules must adapt their code to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1297
      new scheme.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1298
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1299
      NOTE:  THE NEW SCHEME IS NOT COMPLETED YET.  PLEASE WAIT UNTIL A
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1300
      FINAL ANNOUNCEMENT!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1301
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1302
    - The PostScript  parser has been enhanced to  handle comments and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1303
      strings   correctly.   Additionally,   more  syntax   forms  are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1304
      recognized.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1305
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1306
    - Added the  optional unpatented hinting system  for TrueType.  It
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1307
      allows  typefaces which  need hinting  to produce  correct glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1308
      forms (e.g., Chinese typefaces  from Dynalab) to work acceptably
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1309
      without infringing Apple patents.   This system is compiled only
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1310
      if  TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING  is  defined  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1311
      ftoption.h (activated by default).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1312
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1313
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1314
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1315
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1316
    - There  is now  a guard  in the  public header  files  to protect
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1317
      against inclusion of freetype.h from FreeType 1.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1318
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1319
    - Direct inclusion of freetype.h  and other public header files no
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1320
      longer works.  You have to use the documented scheme
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1321
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1322
        #include <ft2build.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1323
        #include FT_FREETYPE_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1324
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1325
      to load freetype.h with  a symbolic name.  This protects against
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1326
      renaming  of public  header  files (which  shouldn't happen  but
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1327
      actually  has, avoiding two  public header  files with  the same
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1328
      name).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1329
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1330
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1331
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1332
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1333
CHANGES BETWEEN 2.1.5 and 2.1.4
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1334
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1335
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1336
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1337
    - Parsing the /CIDFontName field  now removes the leading slash to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1338
      be in sync with other font drivers.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1339
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1340
    - gzip support was buggy.  Some fonts could not be read.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1341
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1342
    - Fonts which  have nested subglyphs  more than one level  deep no
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1343
      longer cause a segfault.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1344
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1345
    - Creation of synthetic  cmaps for fonts in CFF  format was broken
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1346
      partially.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1347
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1348
    - Numeric  font  dictionary entries  for  synthetic  fonts are  no
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1349
      longer overwritten.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1350
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1351
    - The font matrix  wasn't applied to the advance  width for Type1,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1352
      CID, and  CFF fonts.  This caused problems  when loading certain
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1353
      synthetic Type 1 fonts like `Helvetica Narrow'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1354
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1355
    - The test  for the charset registry  in BDF and PCF  fonts is now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1356
      case-insensitive.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1357
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1358
    - FT_Vector_Rotate  sometimes  returned   strange  values  due  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1359
      rounding errors.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1360
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1361
    - The  PCF  driver  now  returns  the  correct  number  of  glyphs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1362
      (including an artificial `notdef' glyph at index 0).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1363
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1364
    - FreeType now  supports buggy CMaps  which are contained  in many
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1365
      CJK fonts from Dynalab.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1366
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1367
    - Opening  an invalid  font  on a  Mac  caused a  segfault due  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1368
      double-freeing memory.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1369
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1370
    - BDF  fonts  with  more   than  32768  glyphs  weren't  supported
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1371
      properly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1372
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1373
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1374
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1375
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1376
    - Accessing bitmap font formats has been synchronized.  To do that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1377
      the FT_Bitmap_Size  structure has  been extended to  contain new
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1378
      fields `size', `x_ppem', and `y_ppem'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1379
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1380
    - The FNT driver now returns multiple faces, not multiple strikes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1381
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1382
    - The `psnames'  module has been  updated to the Adobe  Glyph List
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1383
      version 2.0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1384
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1385
    - The `psnames' module now understands `uXXXX[X[X]]' glyph names.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1386
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1387
    - The algorithm for guessing the font style has been improved.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1388
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1389
    - For fonts in SFNT format, root->height is no longer increased if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1390
      the line gap  is zero.  There exist fonts  (containing e.g. form
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1391
      drawing  characters) which  intentionally have  a zero  line gap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1392
      value.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1393
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1394
    - ft_glyph_bbox_xxx  flags   are  now  deprecated   in  favour  of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1395
      FT_GLYPH_BBOX_XXX.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1396
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1397
    - ft_module_xxx   flags   are   now   deprecated  in   favour   of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1398
      FT_MODULE_XXX.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1399
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1400
    - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB}      are     now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1401
      deprecated               in               favour              of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1402
      FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB}  -- those encodings
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1403
      are not specific to Microsoft.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1404
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1405
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1406
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1407
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1408
    - The  autohinter  has been  further  improved;  for example,  `m'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1409
      glyphs now retain its vertical symmetry.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1410
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1411
    - Partial support of Mac fonts on non-Mac platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1412
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1413
    - `make   refdoc'   (after   first   `make')   builds   the   HTML
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1414
      documentation.  You need Python for this.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1415
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1416
    - The make build system should  now work more reliably on DOS-like
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1417
      platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1418
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1419
    - Support for  EMX gcc  and Watson C/C++  compilers on  MS-DOS has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1420
      been added.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1421
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1422
    - Better VMS build support.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1423
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1424
    - Support for the pkg-config  package by providing a `freetype.pc'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1425
      file.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1426
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1427
    - New configure option --with-old-mac-fonts for Darwin.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1428
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1429
    - Some source files have been  renamed (mainly to fit into the 8.3
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1430
      naming scheme).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1431
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1432
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1433
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1434
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1435
CHANGES BETWEEN 2.1.4 and 2.1.3
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1436
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1437
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1438
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1439
    - Updated  to newest  libtool  version, fixing  build problems  on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1440
      various platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1441
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1442
    - A fix  in the Gzip stream  reader: It couldn't  read certain .gz
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1443
      files properly due to a  small typo.  In certain cases, FreeType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1444
      could  also loop  endlessly  when trying  to  load tiny  gzipped
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1445
      files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1446
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1447
    - The configure script now tries  to use the system-wide zlib when
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1448
      it  finds one  (instead of  the  copy found  in src/gzip).   And
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1449
      `freetype-config' has  been updated to return  relevant flags in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1450
      this case when invoked with `--libs' (e.g. `-lzlib').
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1451
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1452
    - Certain fonts couldn't be loaded  by 2.1.3 because they lacked a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1453
      Unicode   charmap  (e.g.   SYMBOL.TTF).    FreeType  erroneously
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1454
      rejected them.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1455
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1456
    - The CFF loader was modified to accept fonts which only contain a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1457
      subset of  their reference charset.  This  prevented the correct
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1458
      use of PDF-embedded fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1459
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1460
    - The logic to detect Unicode charmaps has been modified.  This is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1461
      required to  support fonts which include both  16-bit and 32-bit
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1462
      charmaps (like very  recent asian ones) using the  new 10 and 12
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1463
      SFNT formats.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1464
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1465
    - The TrueType  loader now limits  the depth of  composite glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1466
      This is necessary to prevent broken fonts to break the engine by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1467
      blowing the stack with recursive glyph definitions.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1468
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1469
    - The CMap cache is now  capable of managing UCS-4 character codes
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1470
      that   are   mapped   through   extended  charmaps   in   recent
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1471
      TrueType/OpenType fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1472
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1473
    - The   cache  sub-system   now  properly   manages  out-of-memory
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1474
      conditions  instead of  blindly  reporting them  to the  caller.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1475
      This means that it will try to empty the cache before restarting
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1476
      its allocations to see if that can help.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1477
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1478
    - The  PFR driver  didn't return  the list  of  available embedded
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1479
      bitmaps properly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1480
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1481
    - There was  a nasty  memory leak when  using embedded  bitmaps in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1482
      certain font formats.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1483
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1484
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1485
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1486
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1487
    - David Chester  contributed some enhancements  to the auto-hinter
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1488
      that  significantly increase  the  quality of  its output.   The
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1489
      Postscript hinter was also improved in several ways.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1490
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1491
    - The FT_RENDER_MODE_LIGHT render mode was implemented.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1492
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1493
    - A new  API function called `FT_Get_BDF_Property'  has been added
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1494
      to FT_BDF_H to  retrieve BDF properties from BDF  _and_ PCF font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1495
      files.   THIS  IS  STILL  EXPERIMENTAL,  since  it  hasn't  been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1496
      properly tested yet.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1497
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1498
    - A Windows FNT specific API has been added, mostly to access font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1499
      headers.  This is used by Wine.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1500
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1501
    - TrueType tables  without an `hmtx' table are  now tolerated when
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1502
      an  incremental interface  is  used.  This  happens for  certain
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1503
      Type42 fonts passed from Ghostscript to FreeType.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1504
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1505
    - The PFR font driver is  now capable of returning the font family
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1506
      and style  names when  they are available  (instead of  the sole
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1507
      `FontID').   This  is  performed  by parsing  an  *undocumented*
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1508
      portion of the font file!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1509
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1510
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1511
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1512
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1513
    - The path stroker in FT_STROKER_H has entered beta stage.  It now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1514
      works very  well, but  its interface might  change a bit  in the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1515
      future.  More on this in later releases.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1516
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1517
    - The documentation for  FT_Size_Metrics didn't appear properly in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1518
      the API reference.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1519
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1520
    - The file docs/VERSION.DLL has been updated to explain versioning
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1521
      with FreeType  (i.e., comparing release/libtool/so  numbers, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1522
      how to use them in autoconf scripts).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1523
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1524
    - The  installation  documentation  has been  seriously  revamped.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1525
      Everything is now in the `docs' directory.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1526
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1527
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1528
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1529
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1530
CHANGES BETWEEN 2.1.3 and 2.1.2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1531
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1532
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1533
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1534
    - FT_Vector_Transform  had  been  incorrectly modified  in  2.1.2,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1535
      resulting  in  incorrect   transformations  being  applied  (for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1536
      example, rotations were processed in opposite angles).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1537
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1538
    - The format  8 and 12 TrueType charmap  enumeration routines have
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1539
      been fixed (FT_Get_Next_Char returned invalid values).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1540
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1541
    - The  PFR font driver  returned incorrect  advance widths  if the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1542
      outline  and metrics resolution  defined in  the font  file were
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1543
      different.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1544
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1545
    - FT_Glyph_To_Bitmap now returns  successfully when called with an
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1546
      FT_BitmapGlyph argument (it previously returned an error).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1547
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1548
    - A bug  in the Type 1  loader that prevented  valid font bounding
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1549
      boxes to be loaded from multiple master fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1550
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1551
    - The SFNT  validation code has been rewritten.   FreeType can now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1552
      load `broken'  fonts that were  usable on Windows, but  not with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1553
      previous versions of the library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1554
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1555
    - The computation of bearings in the BDF driver has been fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1556
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1557
    - The Postscript hinter crashed when trying to hint certain glyphs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1558
      (more precisely,  when trying to  apply hints to an  empty glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1559
      outline).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1560
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1561
    - The  TrueType glyph  loader  now supports  composites in  `Apple
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1562
      format'  (they differ slightly  from Microsoft/OpenType  ones in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1563
      the way transformation offsets are computed).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1564
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1565
    - FreeType was  very slow at opening certain  asian CID/CFF fonts,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1566
      due to  fixed increment  in dynamic array  re-allocations.  This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1567
      has  been changed  to  exponential behaviour  to get  acceptable
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1568
      performance.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1569
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1570
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1571
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1572
  II. IMPORTANT CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1573
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1574
    - The PCF driver now supports gzip-compressed font files natively.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1575
      This means that  you will be able to use  all these bitmap fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1576
      that  come with  XFree86 with  FreeType (and  libXft/libXft2, by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1577
      extension).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1578
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1579
    - The  automatic and  postscript hinters  have both  been updated.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1580
      This  results in  a relatively  important increase  of rendering
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1581
      quality since  many nasty defaults have been suppressed.  Please
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1582
      visit the web page:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1583
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1584
        http://www.freetype.org/hinting/smooth-hinting.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1585
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1586
      for additional details on this topic.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1587
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1588
    - The `load_flags' parameter of `FT_Load_Glyph' is now an FT_Int32
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1589
      (instead  of just  being  an FT_Int).   This  breaks source  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1590
      binary  compatibility for  16bit systems  only,  while retaining
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1591
      both of them for 32 and 64 bit ones.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1592
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1593
      Some new flags have been added consequently:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1594
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1595
        FT_LOAD_NO_AUTOHINT   :: Disable the use of the auto-hinter
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1596
                                 (but not native format hinters).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1597
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1598
        FT_LOAD_TARGET_NORMAL :: Hint and render for normal
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1599
                                 anti-aliased displays.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1600
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1601
        FT_LOAD_TARGET_MONO   :: Hint and render for 1-bit displays.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1602
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1603
        FT_LOAD_TARGET_LCD    :: Hint and render for horizontal RGB or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1604
                                 BGR sub-pixel displays (like LCD
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1605
                                 screens).  THIS IS STILL
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1606
                                 EXPERIMENTAL!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1607
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1608
        FT_LOAD_TARGET_LCD_V  :: Same as FT_LOAD_TARGET_LCD, for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1609
                                 vertical sub-pixel displays (like
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1610
                                 rotated LCD screens).  THIS IS STILL
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1611
                                 EXPERIMENTAL!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1612
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1613
      FT_LOAD_MONOCHROME   is  still   supported,  but   only  affects
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1614
      rendering, not the hinting.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1615
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1616
      Note that the `ftview'  demo program available in the `ft2demos'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1617
      package  has been  updated to  support LCD-optimized  display on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1618
      non-paletted displays (under Win32 and X11).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1619
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1620
    - The  PFR  driver  now  supports embedded  bitmaps  (all  formats
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1621
      supported), and returns correct kerning metrics for all glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1622
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1623
    - The TrueType charmap loader  now supports certain `broken' fonts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1624
      that load under Windows without problems.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1625
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1626
    - The cache API has been slightly modified (it's still a beta!):
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1627
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1628
       - The type  FTC_ImageDesc has been removed; it  is now replaced
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1629
         by  FTC_ImageTypeRec.   Note that  one  of  its  fields is  a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1630
         `load_flag' parameter for FT_Load_Glyph.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1631
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1632
       - The  field  `num_grays' of  FT_SBitRec  has  been changed  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1633
         `max_grays'  in  order to  fit  within  a  single byte.   Its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1634
         maximum value is thus 255 (instead of 256 as previously).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1635
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1636
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1637
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1638
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1639
    - Added support  for the  DESTDIR variable during  `make install'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1640
      This simplifies packaging of FreeType.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1641
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1642
    - Included modified  copies of the  ZLib sources in  `src/gzip' in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1643
      order to support  gzip-compressed PCF fonts.  We do  not use the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1644
      system-provided  zlib  for  now,   though  this  is  a  probable
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1645
      enhancement for future releases.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1646
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1647
    - The DocMaker tool used to generate the on-line API reference has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1648
      been   completely    rewritten.    It   is    now   located   in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1649
      `src/tools/docmaker/docmaker.py'.  Features:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1650
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1651
        - better cross-referenced output
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1652
        - more polished output
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1653
        - uses Python regular expressions  (though it didn't speed the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1654
          program)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1655
        - much  more  modular structure,  which  allows for  different
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1656
          `backends'  in  order to  generate  HTML,  XML, or  whatever
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1657
          format.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1658
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1659
      One can regenerate the API reference by calling:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1660
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1661
         python src/tools/docmaker/docmaker.py \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1662
                --prefix=ft2 \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1663
                --title=FreeType-2.1.3 \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1664
                --output=<outputdirectory>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1665
                include/freetype/*.h \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1666
                include/freetype/config/*.h \
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1667
                include/freetype/cache/*.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1668
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1669
    - A new, experimental, support for incremental font loading (i.e.,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1670
      loading  of fonts  where the  glyphs are  not in  the  font file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1671
      itself, but provided by an external component, like a Postscript
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1672
      interpreter) has been added by Graham Asher.  This is still work
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1673
      in progress, however.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1674
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1675
    - A new,  EXPERIMENTAL, path stroker  has been added.   It doesn't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1676
      suffer  from  severe  rounding  errors  and  treat  bezier  arcs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1677
      directly.  Still work in progress (i.e. not part of the official
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1678
      API).   See  the file  <freetype/ftstroker.h>  for  some of  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1679
      details.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1680
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1681
    - The massive  re-formatting of sources and  internal re-design is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1682
      still under-way.  Many  internal functions, constants, and types
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1683
      have been renamed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1684
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1685
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1686
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1687
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1688
CHANGES BETWEEN 2.1.2 and 2.1.1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1689
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1690
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1691
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1692
    - Many  font drivers didn't  select a  Unicode charmap  by default
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1693
      when a new face  was opened (with the FT_CONFIG_OPTION_USE_CMAPS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1694
      options enabled),  causing many applications  to not be  able to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1695
      display text correctly with the 2.1.x releases.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1696
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1697
    - The  PFR driver had  a bug  in its  composite loading  code that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1698
      produces incorrectly placed accents with many fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1699
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1700
    - The Type42 driver crashed sometimes due to a nasty bug.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1701
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1702
    - The Type 1 custom encoding  charmap didn't handle the case where
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1703
      the first glyph index wasn't 0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1704
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1705
    - A  serious  typo  in  the  TrueType  composite  loader  produced
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1706
      incorrectly placed  glyphs in fonts  like `Wingdings' and  a few
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1707
      others.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1708
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1709
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1710
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1711
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1712
    - The Win32  Visual C++ project  file has been updated  to include
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1713
      the PFR driver as well.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1714
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1715
    - `freetype.m4' is  now installed by default by  `make install' on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1716
      Unix systems.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1717
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1718
    - The function  FT_Get_PS_Font_Info now works with  CID and Type42
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1719
      fonts as well.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1720
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1721
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1722
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1723
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1724
CHANGES BETWEEN 2.1.1 and 2.1.0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1725
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1726
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1727
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1728
    - The  `version_info'  returned   by  `freetype-config'  in  2.1.0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1729
      returned an invalid value.  It now returns 9:1:3 (2.0.9 returned
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1730
      9:0:3).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1731
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1732
    - Version 2.1.0  couldn't be linked against  applications on Win32
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1733
      and  Amiga systems  due  to  a new  debug  function that  wasn't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1734
      properly   propagated  to   the  system-specific   directory  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1735
      `builds'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1736
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1737
    - Various MacOS and Mac OS X specific fixes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1738
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1739
    - Fixed  a bug in  the TrueType  charmap validation  routines that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1740
      made version  2.1.0 too restrictive  -- many popular  fonts have
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1741
      been rejected.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1742
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1743
    - There was  still a very small difference  between the monochrome
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1744
      glyph bitmaps produced by FreeType 1.x and FreeType 2.x with the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1745
      bytecode  interpreter enabled.   This was  caused by  an invalid
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1746
      flag setting in the TrueType glyph loader, making the rasterizer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1747
      change  its  drop-out   control  mode.   Now  the results should
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1748
      _really_ be completely identical.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1749
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1750
    - The TrueType name table loader has been improved to support many
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1751
      popular  though buggy Asian  fonts.  It  now ignores  empty name
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1752
      entries,  invalid  pointer offsets  and  a  few other  incorrect
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1753
      subtleties.  Moreover,  name strings  are now loaded  on demand,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1754
      which reduces the memory load  of many faces (e.g. the ARIAL.TTF
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1755
      font file contains a 10kByte name table with 70 names).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1756
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1757
    - Fixed a bug in the Postscript hinter that prevented family blues
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1758
      substitution to happen correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1759
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1760
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1761
  II. NEW FEATURES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1762
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1763
    - Three new font drivers in this release:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1764
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1765
      * A  BDF  font driver,  contributed  by  Franco Zappa  Nardelli,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1766
        heavily  modified   by  Werner  Lemberg.    It  also  supports
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1767
        anti-aliased bitmaps (using a slightly extended BDF format).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1768
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1769
      * A Type42  font driver, contributed by Roberto  Alameda.  It is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1770
        still experimental but seems to work relatively well.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1771
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1772
      * A PFR  font driver, contributed  by David Turner  himself.  It
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1773
        doesn't  support PFR  hinting --  note that  BitStream  has at
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1774
        least two patents on this format!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1775
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1776
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1777
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1778
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1779
    - The  cache  sub-system has  been  optimized  in important  ways.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1780
      Cache hits are now significantly faster.  For example, using the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1781
      CMap cache is about  twice faster than calling FT_Get_Char_Index
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1782
      on most platforms.  Similarly, using an SBit cache is about five
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1783
      times faster  than loading the  bitmaps from a bitmap  file, and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1784
      300 to  500 times  faster than generating  them from  a scalable
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1785
      format.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1786
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1787
      Note that  you should recompile  your sources if you  designed a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1788
      custom  cache  class for  the  FT2  Cache  subsystem, since  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1789
      changes performed are source, but not binary, compatible.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1790
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1791
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1792
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1793
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1794
CHANGES BETWEEN 2.1.0 and 2.0.9
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1795
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1796
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1797
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1798
    - The  TrueType bytecode  interpreter  has been  fixed to  produce
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1799
      _exactly_ the same output as FreeType 1.x.  Previous differences
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1800
      were due  to slightly distinct  fixed-point computation routines
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1801
      used to perform dot products and vector length measurements.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1802
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1803
      It seems  that native TrueType hinting  is _extremely_ sensitive
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1804
      to  rounding errors.  The  required vector  computation routines
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1805
      have been optimized and placed within the `ttinterp.c' file.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1806
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1807
    - Fixed the parsing of accelerator tables in the PCF font driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1808
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1809
    - Fixed the Type1 glyph loader  routine used to compute the font's
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1810
      maximum advance width.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1811
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1812
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1813
  II. NEW FEATURES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1814
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1815
    - The `configure' script used on Unix systems has been modified to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1816
      check  that  GNU  Make  is  being used  to  build  the  library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1817
      Otherwise,  it  will display  a  message  proposing  to use  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1818
      GNUMAKE environment variable to name it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1819
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1820
      The Unix-specific file README.UNX has been modified accordingly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1821
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1822
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1823
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1824
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1825
    - The  FreeType  License in  `docs/FTL.TXT'  has  been updated  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1826
      include  a  proposed preferred  disclaimer.   If  you are  using
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1827
      FreeType in your products, you are encouraged (but not mandated)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1828
      to use the following text in your documentation:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1829
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1830
      """
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1831
        Portions of this software are copyright © 1996-2002 The
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1832
        FreeType Project (www.freetype.org).  All rights reserved.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1833
      """
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1834
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1835
    - The default size of the render pool has been reduced to 16kByte.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1836
      This  shouldn't result  in any  noticeable  performance penalty,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1837
      unless you are  using the engine as-is to  render very large and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1838
      complex glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1839
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1840
    - The  FreeType 2  redesign has  begun.  More  information  can be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1841
      found at this URL:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1842
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1843
        http://www.freetype.org/freetype2/redesign.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1844
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1845
      The following  internal changes  have been performed  within the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1846
      sources of this release:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1847
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1848
        - Many   internal  types   have  been   renamed   to  increase
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1849
          consistency.   The  following  should  be true,  except  for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1850
          public types:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1851
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1852
            * All structure  types have a name ending  in `Rec' (short
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1853
              for `record').
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1854
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1855
            * A  pointer-to-structure type  has the  same name  as the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1856
              structure, _without_ the `Rec' suffix.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1857
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1858
              Example:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1859
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1860
                typedef struct FooRec_
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1861
                {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1862
                  ...
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1863
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1864
                } FooRec, *Foo;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1865
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1866
        - Many   internal  macros  have   been  renamed   to  increase
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1867
          consistency.  The following should be true:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1868
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1869
            * All  macros  have a  name  beginning  with `FT_'.   This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1870
              required a few changes like
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1871
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1872
                ALLOC   => FT_ALLOC
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1873
                FREE    => FT_FREE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1874
                REALLOC => FT_REALLOC
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1875
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1876
            * All  macros are completely  UPPERCASE.  This  required a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1877
              few changes like:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1878
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1879
                READ_Short  => FT_READ_SHORT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1880
                NEXT_Short  => FT_NEXT_SHORT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1881
                GET_ULongLE => FT_GET_ULONG_LE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1882
                MEM_Set     => FT_MEM_SET
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1883
                MEM_Copy    => FT_MEM_COPY
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1884
                etc.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1885
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1886
            * Whenever   possible,   all   macro  names   follow   the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1887
              FT_<OBJECT>_<METHOD> pattern.  For example
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1888
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1889
                ACCESS_Frame   => FT_FRAME_ENTER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1890
                FORGET_Frame   => FT_FRAME_EXIT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1891
                EXTRACT_Frame  => FT_FRAME_EXTRACT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1892
                RELEASE_Frame  => FT_FRAME_RELEASE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1893
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1894
                FILE_Pos       => FT_STREAM_POS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1895
                FILE_Seek      => FT_STREAM_SEEK
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1896
                FILE_Read      => FT_STREAM_READ
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1897
                FILE_ReadAt    => FT_STREAM_READ_AT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1898
                READ_Fields    => FT_STREAM_READ_FIELDS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1899
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1900
        - Many  internal functions  have  been renamed  to follow  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1901
          FT_<Object>_<Method> pattern.  For example:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1902
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1903
            FT_Seek_Stream       => FT_Stream_Seek
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1904
            FT_Read_Stream_At    => FT_Stream_ReadAt
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1905
            FT_Done_Stream       => FT_Stream_Close
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1906
            FT_New_Stream        => FT_Stream_Open
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1907
            FT_New_Memory_Stream => FT_Stream_OpenMemory
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1908
            FT_Extract_Frame     => FT_Stream_ExtractFrame
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1909
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1910
          Note that method names do not contain `_'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1911
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1912
        - The FT_ALLOC_ARRAY  and FT_REALLOC_ARRAY have  been replaced
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1913
          with  FT_NEW_ARRAY and  FT_RENEW_ARRAY which  do not  take a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1914
          type  as the  fourth argument.   Instead, the  array element
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1915
          type  size is computed  automatically from  the type  of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1916
          target pointer used.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1917
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1918
        - A  new object  class, FT_CMap,  has been  introduced.  These
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1919
          internal  objects are  used to  model character  maps.  This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1920
          eases  the support  of additional  charmap types  within the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1921
          engine.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1922
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1923
        - A new  configuration file named `ftstdlib.h'  has been added
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1924
          to `include/freetype/config'.  It  is used to define aliases
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1925
          for  _every_ routine  of the  ISO  C library  that the  font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1926
          engine   uses.    Each    aliases   has   a   `ft_'   prefix
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1927
          (e.g. `ft_strlen' is an alias for `strlen').
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1928
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1929
          This is  used to  ease the porting  of FreeType 2  to exotic
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1930
          runtime environments where the ISO C Library isn't available
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1931
          (e.g.  XFree86 extension modules).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1932
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1933
      More details are available in the `ChangeLog' file.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1934
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1935
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1936
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1937
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1938
CHANGES BETWEEN 2.0.9 and 2.0.8
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1939
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1940
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1941
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1942
    - Certain fonts like `foxjump.ttf' contain broken name tables with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1943
      invalid entries and wild offsets.  This caused FreeType to crash
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1944
      when trying to load them.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1945
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1946
      The  SFNT `name'  table  loader has  been  fixed to  be able  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1947
      support these strange fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1948
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1949
      Moreover, the code  in charge of processing this  table has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1950
      changed  to always favour  Windows-formatted entries  over other
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1951
      ones.  Hence,  a font that works  on Windows but not  on the Mac
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1952
      will  load cleanly in  FreeType and  report accurate  values for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1953
      Family & PostScript names.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1954
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1955
    - The CID font driver has been fixed.  It unfortunately returned a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1956
      Postscript   Font   name   with   a   leading   slash,   as   in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1957
      `/MunhwaGothic-Regular'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1958
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1959
    - FreeType  2 should now  compile fine  on AIX  4.3.3 as  a shared
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1960
      library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1961
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1962
    - A  bug  in the  Postscript  hinter  has  been found  and  fixed,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1963
      removing un-even stem widths at small pixel sizes (like 14-17).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1964
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1965
      This  improves the  quality of  a certain  number  of Postscript
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1966
      fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1967
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1968
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1969
  II. NEW FEATURES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1970
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1971
    - A  new function  named  `FT_Library_Version' has  been added  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1972
      return  the current  library's major,  minor, and  patch version
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1973
      numbers.   This is  important since  the  macros FREETYPE_MAJOR,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1974
      FREETYPE_MINOR,  and  FREETYPE_PATCH  cannot  be used  when  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1975
      library is dynamically linked by a program.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1976
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1977
    - Two   new  APIs   have  been   added:   `FT_Get_First_Char'  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1978
      `FT_Get_Next_Char'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1979
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1980
      Together,  these can  be used  to iterate  efficiently  over the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1981
      currently  selected  charmap of  a  given  face.   Read the  API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1982
      reference for more details.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1983
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1984
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1985
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1986
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1987
    - The FreeType sources are  under heavy internal re-factoring.  As
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1988
      a consequence,  we have created  a branch named `STABLE'  on the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1989
      CVS to hold all future releases/fixes in the 2.0.x family.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1990
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1991
      The  HEAD  branch  now  contains  the  re-factored  sources  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1992
      shouldn't  be used for  testing or  packaging new  releases.  In
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1993
      case you  would like  to access the  2.0.9 sources from  our CVS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1994
      repository, use the tag `VER-2-0-9'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1995
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1996
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1997
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1998
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  1999
CHANGES BETWEEN 2.0.8 and 2.0.7
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2000
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2001
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2002
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2003
    - There was  a small but  nasty bug in  `freetype-config.in' which
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2004
      caused the `freetype-config' script to fail on Unix.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2005
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2006
      This didn't prevent the installation  of the library or even its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2007
      execution, but caused problems  when trying to compile many Unix
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2008
      packages that depend on it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2009
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2010
    - Some TrueType or OpenType fonts embedded in PDF documents do not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2011
      have  a  'cmap',  'post'  and  'name'  as  is  required  by  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2012
      specification.  FreeType no longer refuses to load such fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2013
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2014
    - Various fixes to the PCF font driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2015
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2016
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2017
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2018
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2019
CHANGES BETWEEN 2.0.7 and 2.0.6
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2020
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2021
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2022
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2023
    - Fixed  two  bugs in  the  Type 1  font  driver.   The first  one
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2024
      resulted in a memory leak in subtle cases.  The other one caused
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2025
      FreeType to crash when  trying to load `.gsf' files (Ghostscript
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2026
      so-called Postscript fonts).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2027
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2028
      (This  made _many_  KDE applications  crash on  certain systems.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2029
       FreeType _is_ becoming a critical system component on Linux :-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2030
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2031
    - Fixed a memory leak in the CFF font driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2032
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2033
    - Fixed a memory leak in the PCF font driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2034
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2035
    - Fixed       the        Visual       C++       project       file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2036
      `builds/win32/visualc/freetype.dsp' since  it didn't include the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2037
      Postscript hinter component, causing errors at build time.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2038
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2039
    - Fixed a  small rendering bug  in the anti-aliased  renderer that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2040
      only  occurred when  trying to  draw  thin (less  than 1  pixel)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2041
      strokes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2042
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2043
    - Fixed  `builds/unix/freetype2.a4' which  is used  to  generate a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2044
      valid `freetype2.m4' for use with autoconf.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2045
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2046
    - Fixed the OpenVMS Makefiles.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2047
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2048
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2049
  II. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2050
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2051
    - Added  `configure'  and   `install'  scripts  to  the  top-level
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2052
      directory.  A GNU-style installation is thus now easily possible
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2053
      with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2054
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2055
        ./configure  <options>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2056
        make
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2057
        make install
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2058
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2059
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2060
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2061
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2062
CHANGES BETWEEN 2.0.6 and 2.0.5
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2063
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2064
  I. IMPORTANT BUG FIXES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2065
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2066
    - It wasn't possible to load embedded bitmaps when the auto-hinter
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2067
      was used.  This is now fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2068
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2069
    - The TrueType  font driver  didn't load some  composites properly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2070
      (the  sub-glyphs  were  slightly  shifted,  and  this  was  only
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2071
      noticeable when using monochrome rendering).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2072
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2073
    - Various  fixes  to the  auto-hinter.   They  merely improve  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2074
      output of sans-serif fonts.   Note that there are still problems
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2075
      with serifed fonts and composites (accented characters).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2076
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2077
    - All scalable  font drivers erroneously  returned un-fitted glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2078
      advances when hinting was  requested.  This created problems for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2079
      a number  of layout applications.  This  is a very  old bug that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2080
      got  undetected mainly  because most  test/demo  program perform
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2081
      rounding explicitly or implicitly (through the cache).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2082
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2083
    - `FT_Glyph_To_Bitmap' did erroneously  modify the source glyph in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2084
      certain cases.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2085
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2086
    - `glnames.py'  still contained  a bug  that made  FreeType return
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2087
      invalid names for certain glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2088
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2089
    - The  library crashed  when  loading certain  Type  1 fonts  like
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2090
      `sadn.pfb'  (`Stalingrad  Normal'),   which  appear  to  contain
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2091
      pathetic font info dictionaries.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2092
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2093
    - The TrueType glyph  loader is now much more  paranoid and checks
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2094
      everything when loading a given glyph image.  This was necessary
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2095
      to avoid problems (crashes and/or memory overwrites) with broken
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2096
      fonts that came from a really buggy automatic font converter.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2097
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2098
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2099
  II. IMPORTANT UPDATES AND NEW FEATURES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2100
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2101
    - Important updates to the Mac-specific parts of the library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2102
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2103
    - The caching sub-system has  been completely re-designed, and its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2104
      API has  evolved (the  old one is  still supported  for backward
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2105
      compatibility).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2106
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2107
      The documentation for it is  not yet completed, sorry.  For now,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2108
      you are encouraged to continue  using the old API.  However, the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2109
      ftview  demo program in  the ft2demos  package has  already been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2110
      updated to use the new caching functions.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2111
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2112
    - A new charmap cache is provided too.  See `FTC_CMapCache'.  This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2113
      is useful to perform  character code -> glyph index translations
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2114
      quickly, without the need for an opened FT_Face.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2115
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2116
    - A NEW POSTSCRIPT HINTER module  has been added to support native
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2117
      hints in  the following  formats: PostScript Type  1, PostScript
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2118
      CID, and CFF/CEF.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2119
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2120
      Please test!  Note that  the auto-hinter produces better results
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2121
      for a number of  badly-hinted fonts (mostly auto-generated ones)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2122
      though.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2123
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2124
    - A memory debugger is now  part of the standard FreeType sources.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2125
      To      enable      it,      define      FT_DEBUG_MEMORY      in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2126
      <freetype/config/ftoption.h>, and recompile the library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2127
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2128
      Additionally, define  the _environment_ variable FT_DEBUG_MEMORY
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2129
      and run any program using FreeType.  When the library is exited,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2130
      a  summary  of memory  footprints  and  possible  leaks will  be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2131
      displayed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2132
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2133
      This works transparently with  _any_ program that uses FreeType.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2134
      However, you  will need a lot  of memory to  use this (allocated
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2135
      blocks are never  released to the heap to  detect double deletes
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2136
      easily).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2137
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2138
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2139
  III. MISCELLANEOUS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2140
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2141
    - We  are  aware  of  subtle  differences between  the  output  of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2142
      FreeType  versions   1  and  2  when  it   comes  to  monochrome
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2143
      TrueType-hinted glyphs.   These are  most probably due  to small
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2144
      differences in the monochrome rasterizers and will be worked out
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2145
      in an upcoming release.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2146
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2147
    - We have decided to fork the sources in a `stable' branch, and an
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2148
      `unstable' one, since FreeType  is becoming a critical component
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2149
      of many Unix systems.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2150
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2151
      The next  bug-fix releases of  the library will be  named 2.0.7,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2152
      2.0.8, etc.,  while the `2.1'  branch will contain a  version of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2153
      the sources where we will start major reworking of the library's
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2154
      internals, in order to produce FreeType 2.2.0 (or even 3.0) in a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2155
      more distant future.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2156
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2157
      We  also hope  that this  scheme will  allow much  more frequent
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2158
      releases than in the past.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2159
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2160
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2161
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2162
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2163
CHANGES BETWEEN 2.0.5 and 2.0.4
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2164
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2165
  NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER.  THIS MODULE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2166
  WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2167
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2168
  - Fixed a bug that made  certain glyphs, like `Cacute', `cacute' and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2169
    `lslash'  unavailable from Unicode  charmaps of  Postscript fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2170
    This prevented the correct display of Polish text, for example.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2171
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2172
  - The kerning table of Type 1 fonts was loaded by FreeType, when its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2173
    AFM    file    was    attached    to    its    face,    but    the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2174
    FT_FACE_FLAG_HAS_KERNING   bit  flags   was  not   set  correctly,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2175
    preventing FT_Get_Kerning to return meaningful values.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2176
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2177
  - Improved  SFNT (TrueType  & OpenType)  charmap  support.  Slightly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2178
    better performance, as well as support for the new formats defined
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2179
    by the OpenType 1.3 specification (8, 10, and 12)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2180
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2181
  - Fixed a  serious typo in `src/base/ftcalc.c'  which caused invalid
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2182
    computations in certain rare cases, producing ugly artefacts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2183
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2184
  - The  size  of the  EM  square is  computed  with  a more  accurate
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2185
    algorithm for Postscript fonts.   The old one caused slight errors
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2186
    with embedded fonts found in PDF documents.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2187
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2188
  - Fixed  a  bug in  the  cache  manager  that prevented  normal  LRU
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2189
    behaviour  within the cache  manager, causing  unnecessary reloads
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2190
    (for FT_Face and FT_Size objects only).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2191
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2192
  - Added  a new  function named  `FT_Get_Name_Index' to  retrieve the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2193
    glyph index of a given glyph name, when found in a face.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2194
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2195
  - Added  a new function  named `FT_Get_Postscript_Name'  to retrieve
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2196
    the `unique' Postscript font name of a given face.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2197
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2198
  - Added   a   new   public   header  size   named   FT_SIZES_H   (or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2199
    <freetype/ftsizes.h>) providing  new FT_Size-management functions:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2200
    FT_New_Size, FT_Activate_Size, FT_Done_Size.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2201
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2202
  - Fixed a  reallocation bug that  generated a dangling  pointer (and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2203
    possibly    memory    leaks)    with    Postscript    fonts    (in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2204
    src/psaux/psobjs.c).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2205
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2206
  - Many fixes for 16-bit correctness.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2207
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2208
  - Removed many pedantic compiler warnings from the sources.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2209
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2210
  - Added an Amiga build directory in `builds/amiga'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2211
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2212
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2213
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2214
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2215
CHANGES BETWEEN 2.0.4 and 2.0.3
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2216
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2217
  - Fixed a rather annoying bug that was introduced in 2.0.3.  Namely,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2218
    the font  transformation set through  FT_Set_Transform was applied
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2219
    twice to auto-hinted glyphs, resulting in incorrectly rotated text
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2220
    output.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2221
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2222
  - Fixed _many_  compiler warnings.   FT2 should now  compile cleanly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2223
    with Visual  C++'s most pedantic warning level  (/W4).  It already
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2224
    compiled fine with GCC and a few other compilers.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2225
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2226
  - Fixed a bug  that prevented the linear advance  width of composite
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2227
    TrueType glyphs to be correctly returned.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2228
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2229
  - Fixed    the    Visual    C++    project    files    located    in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2230
    `builds/win32/visualc' (previous versions  used older names of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2231
    library).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2232
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2233
  - Many  32-bit constants  have an  `L' appended  to their  value, in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2234
    order to improve the 16-bitness  of the code.  Someone is actually
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2235
    trying to use FT2 on an Atari ST machine!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2236
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2237
  - Updated  the  `builds/detect.mk' file  in  order to  automatically
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2238
    build FT2  on AIX systems.   AIX uses `/usr/sbin/init'  instead of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2239
    `/sbin/init' and wasn't previously  detected as a Unix platform by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2240
    the FreeType build system.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2241
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2242
  - Updated  the  Unix-specific  portions  of the  build  system  (new
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2243
    libtool version, etc.).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2244
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2245
  - The  SFNT kerning  loader now  ensures  that the  table is  sorted
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2246
    (since some problem fonts do not meet this requirement).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2247
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2248
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2249
=======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2250
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2251
CHANGES BETWEEN 2.0.3 and 2.0.2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2252
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2253
  I. CHANGES TO THE MODULES / FONT DRIVERS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2254
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2255
    - THE  AUTO-HINTER HAS  BEEN SLIGHTLY  IMPROVED, in  order  to fix
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2256
      several annoying artefacts, mainly:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2257
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2258
        - Blue  zone alignment  of  horizontal stems  wasn't performed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2259
          correctly, resulting in artefacts  like the `d' being placed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2260
          one pixel below the `b' in some fonts like Time New Roman.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2261
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2262
        - Overshoot thresholding  wasn't performed correctly, creating
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2263
          unpleasant artefacts at large character pixel sizes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2264
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2265
        - Composite glyph loading has  been simplified.  This gets rid
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2266
          of  various artefacts  where the  components of  a composite
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2267
          glyphs were not correctly spaced.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2268
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2269
      These are  the last changes to the  current auto-hinting module.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2270
      A new  hinting sub-system is currently  in the work  in order to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2271
      support native hints  in Type 1 / CFF /  OpenType fonts, as well
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2272
      as globally improve rendering.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2273
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2274
    - The  PCF  driver has  been  fixed.   It  reported invalid  glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2275
      dimensions for the fonts available on Solaris.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2276
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2277
    - The Type  1, CID and CFF  drivers have been modified  to fix the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2278
      computation of the EM size.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2279
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2280
    - The Type 1  driver has been fixed to avoid  a dangerous bug that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2281
      crashed the library with non-conforming fonts (i.e. ones that do
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2282
      not place the .notdef glyph at position 0).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2283
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2284
    - The TrueType  driver had a  rather subtle bug  (dangling pointer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2285
      when loading  composite glyphs) that could crash  the library in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2286
      rare occasions!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2287
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2288
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2289
  II. HIGH-LEVEL API CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2290
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2291
    - The error  code enumeration values have been  changed.  An error
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2292
      value  is decomposed  in  a  generic error  code,  and a  module
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2293
      number.  see <freetype/fterrors.h> for details.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2294
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2295
    - A   new  public   header   file  has   been  introduced,   named
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2296
      FT_TRIGONOMETRY_H     (include/freetype/fttrig.h),     providing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2297
      trigonometric functions to  compute sines, cosines, arctangents,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2298
      etc. with 16.16 fixed precision.  The implementation is based on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2299
      the CORDIC  algorithm and is very fast  while being sufficiently
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2300
      accurate.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2301
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2302
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2303
  III. INTERNALS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2304
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2305
    - Added  BeOS-specific files  in the  old build  sub-system.  Note
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2306
      that no changes were required to compile the library with Jam.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2307
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2308
    - The  configuration  is now  capable  of automatically  detecting
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2309
      64-bit integers  on a set  of predefined compilers  (GCC, Visual
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2310
      C++, Borland C++) and will use them by default.  This provides a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2311
      small performance boost.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2312
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2313
    - A  small memory leak  that happened  when opening  0-sized files
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2314
      (duh!)  have been fixed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2315
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2316
    - Fixed bezier  stack depth  bug in the  routines provided  by the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2317
      FT_BBOX_H  header   file.   Also  fixed  similar   bugs  in  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2318
      rasterizers.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2319
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2320
    - The outline bounding  box code has been rewritten  to use direct
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2321
      computations,  instead of  bezier sub-division,  to  compute the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2322
      exact bounding box of glyphs.   This is slightly slower but more
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2323
      accurate.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2324
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2325
    - The build system has been  improved and fixed, mainly to support
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2326
      `make'  on Windows  2000  correctly, avoid  problems with  `make
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2327
      distclean' on non Unix systems, etc.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2328
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2329
    - Hexadecimal  constants  have been  suffixed  with  `U' to  avoid
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2330
      problems with certain compilers on 64-bit platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2331
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2332
    - A new directory named `src/tools' has been created.  It contains
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2333
      Python scripts and simple unit test programs used to develop the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2334
      library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2335
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2336
    - The DocMaker tool has been  moved from `docs' to `src/tools' and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2337
      has been updated with the following:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2338
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2339
         - Now accepts the `--title=XXXX' or `-t XXXX' option from the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2340
           command line to set the project's name in the generated API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2341
           reference.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2342
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2343
         - Now accepts the `--output=DIR'  or `-o DIR' option from the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2344
           command line to set  the output directory for all generated
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2345
           HTML files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2346
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2347
         - Now accepts the `--prefix=XXXX' or `-p XXX' option from the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2348
           command  line  to  set  the  file prefix  to  use  for  all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2349
           generated HTML files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2350
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2351
         - Now generates the current  time/data on each generated page
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2352
           in order to distinguish between versions.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2353
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2354
      DocMaker  can be  used with  other  projects now,  not only  FT2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2355
      (e.g. MLib, FTLayout, etc.).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2356
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2357
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2358
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2359
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2360
CHANGES BETWEEN 2.0.2 and 2.0.1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2361
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2362
  I. CHANGES TO THE MODULES / FONT DRIVERS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2363
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2364
    - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2365
      avoid legal problems  with the Apple patents.  It  seems that we
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2366
      mistakenly  turned this option  on in  previous releases  of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2367
      build.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2368
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2369
      Note that if  you want to use the  bytecode interpreter in order
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2370
      to get high-quality TrueType  rendering, you will need to toggle
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2371
      by        hand        the        definition        of        the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2372
      TT_CONFIG_OPTION_BYTECODE_INTERPRETER   macro    in   the   file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2373
      `include/freetype/config/ftoption.h'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2374
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2375
    - The CFF driver has been improved by Tom Kacvinsky and Sander van
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2376
      der Wal:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2377
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2378
      * Support for `seac' emulation.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2379
      * Support for `dotsection'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2380
      * Support for retrieving glyph names through
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2381
        `FT_Get_Glyph_Name'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2382
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2383
      The first two items are necessary to correctly a large number of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2384
      Type 1 fonts converted to the CFF formats by Adobe Acrobat.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2385
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2386
    - The Type 1 driver was also improved by Tom & others:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2387
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2388
      * Better EM size computation.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2389
      * Better support for synthetic (transformed) fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2390
      * The  Type 1  driver returns  the charstrings  corresponding to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2391
        each glyph in the  `glyph->control_data' field after a call to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2392
        `FT_Load_Glyph' (thanks Ha Shao).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2393
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2394
    - Various other bugfixes, including the following:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2395
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2396
      * Fixed a nasty memory leak in the Type 1 driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2397
      * The autohinter  and the pcf  driver used static  writable data
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2398
        when they shouldn't.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2399
      * Many casts were added to  make the code more 64-bits safe.  It
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2400
        also now compiles on Windows XP 64-bits without warnings.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2401
      * Some incorrect writable statics were removed in the `autohint'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2402
        and `pcf' drivers.  FreeType 2 now compiles on Epoc again.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2403
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2404
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2405
  II. CHANGES TO THE HIGH-LEVEL API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2406
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2407
    - The library header files inclusion scheme has been changed.  The
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2408
      old scheme looked like:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2409
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2410
        #include <freetype/freetype.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2411
        #include <freetype/ftglyph.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2412
        #include <freetype/ftcache.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2413
        #include <freetype/cache/ftimage.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2414
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2415
      Now you should use:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2416
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2417
        #include <ft2build.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2418
        #include FT_FREETYPE_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2419
        #include FT_GLYPH_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2420
        #include FT_CACHE_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2421
        #include FT_CACHE_IMAGE_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2422
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2423
      NOTE THAT  THE OLD  INCLUSION SCHEME WILL  STILL WORK  WITH THIS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2424
      RELEASE.  HOWEVER, WE  DO NOT GUARANTEE THAT THIS  WILL STILL BE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2425
      TRUE IN THE NEXT ONE (A.K.A. FREETYPE 2.1).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2426
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2427
      The  file <ft2build.h>  is used  to define  the  header filename
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2428
      macros.  The complete and  commented list of macros is available
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2429
      in the API reference under the section name `Header File Macros'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2430
      in Chapter I.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2431
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2432
      For more information, see section I of the following document:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2433
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2434
        http://www.freetype.org/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2435
          freetype2/docs/tutorial/step1.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2436
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2437
      or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2438
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2439
        http://freetype.sourceforge.net/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2440
          freetype2/docs/tutorial/step1.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2441
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2442
    - Many, many comments have been added to the public source file in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2443
      order to  automatically generate  the API Reference  through the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2444
      `docmaker.py' Python script.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2445
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2446
      The latter has been updated  to support the grouping of sections
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2447
      in chapters and better index sort.  See:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2448
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2449
        http://www.freetype.org/freetype2/docs/reference/ft2-toc.html
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2450
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2451
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2452
  III. CHANGES TO THE BUILD PROCESS
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2453
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2454
    - If you  are not  building FreeType 2  with its own  build system
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2455
      (but with your own Makefiles or project files), you will need to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2456
      be  aware that  the  build  process has  changed  a little  bit.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2457
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2458
      You don't  need to put the  `src' directory in  the include path
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2459
      when  compiling  any FT2  component.   Instead,  simply put  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2460
      component's directory in the current include path.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2461
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2462
      So, if you were doing something like:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2463
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2464
        cc -c -Iinclude -Isrc src/base/ftbase.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2465
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2466
      change the line to:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2467
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2468
        cc -c -Iinclude -Isrc/base src/base/ftbase.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2469
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2470
      If you were doing something like:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2471
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2472
        cd src/base
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2473
        cc -c -I../../include -I.. ftbase.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2474
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2475
      change it to:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2476
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2477
        cd src/base
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2478
        cc -c -I../../include ftbase.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2479
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2480
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2481
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2482
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2483
CHANGES BETWEEN 2.0.1 and 2.0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2484
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2485
  2.0.1 introduces a few changes:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2486
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2487
    - Fixed many bugs related to  the support of CFF / OpenType fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2488
      These  formats are  now much  better supported  though  there is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2489
      still work planned to  deal with charset tables and PDF-embedded
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2490
      CFF files that use the old `seac' command.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2491
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2492
    - The  library could not  be compiled  in debug  mode with  a very
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2493
      small  number   of  C  compilers   whose  pre-processors  didn't
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2494
      implement the `##'  directive correctly (i.e. per se  the ANSI C
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2495
      specification!)  An elegant fix was found.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2496
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2497
    - Added  support for  the  free Borland  command-line C++  Builder
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2498
      compiler.   Use `make  setup bcc32'.   Also fixed  a  few source
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2499
      lines that generated new warnings with BCC32.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2500
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2501
    - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2502
      a conic Bezier arc.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2503
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2504
    - Updated the INSTALL file to add IDE compilation.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2505
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2506
    - Other  minor bug  fixes,  from  invalid Type  1  style flags  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2507
      correct   support   of  synthetic   (obliqued)   fonts  in   the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2508
      auto-hinter, better support for embedded bitmaps in a SFNT font.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2509
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2510
    - Fixed some problems with `freetype-config'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2511
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2512
  Finally, the `standard' scheme for including FreeType headers is now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2513
  gradually changing,  but this will  be explained in a  later release
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2514
  (probably 2.0.2).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2515
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2516
  And very  special thanks to Tom Kacvinsky  and YAMANO-UCHI Hidetoshi
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2517
  for their contributions!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2518
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2519
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2520
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2521
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2522
CHANGES BETWEEN beta8 and 2.0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2523
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2524
  - Changed  the default  installation  path for  public headers  from
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2525
    `include/freetype' to `include/freetype2'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2526
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2527
    Also added a new `freetype-config' that is automatically generated
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2528
    and installed  on Unix and  Cygwin systems.  The script  itself is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2529
    used to retrieve the current  install path, C compilation flags as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2530
    well as linker flags.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2531
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2532
  - Fixed several small bugs:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2533
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2534
    * Incorrect max advance width for fixed-pitch Type 1 fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2535
    * Incorrect glyph names for certain TrueType fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2536
    * The  glyph advance  was not  copied when  FT_Glyph_To_Bitmap was
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2537
      called.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2538
    * The  linearHoriAdvance  and  linearVertAdvance  fields  were not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2539
      correctly returned for glyphs processed by the auto-hinter.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2540
    * `type1z'  renamed back to  `type1'; the  old `type1'  module has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2541
      been removed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2542
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2543
  - Revamped the  build system  to make it  a lot more  generic.  This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2544
    will  allow us  to  re-use  nearly un-modified  in  lots of  other
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2545
    projects (including FreeType Layout).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2546
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2547
  - Changed `cid' to use `psaux' too.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2548
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2549
  - Added the  cache sub-system.  See <freetype/ftcache.h>  as well as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2550
    the sources  in `src/cache'.  Note  that it compiles but  is still
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2551
    untested for now.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2552
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2553
  - Updated `docs/docmaker.py', a draft  API reference is available at
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2554
    http://www.freetype.org/ft2api.html.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2555
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2556
  - Changed `type1' to use `psaux'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2557
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2558
  - Created a  new module named  `psaux' to hold  the Type 1 &  Type 2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2559
    parsing routines.  It should be  used by `type1', `cid', and `cff'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2560
    in the future.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2561
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2562
  - Fixed an important bug in `FT_Glyph_Get_CBox'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2563
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2564
  - Fixed  some compiler  warnings  that happened  since the  TrueType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2565
    bytecode decoder was deactivated by default.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2566
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2567
  - Fixed two memory leaks:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2568
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2569
    * The    memory   manager   (16    bytes)   isn't    released   in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2570
      FT_Done_FreeType!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2571
    * Using custom input streams, the  copy of the original stream was
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2572
      never released.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2573
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2574
  - Fixed the  auto-hinter by performing automatic  computation of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2575
    `filling direction' of each glyph.   This is done through a simple
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2576
    and  fast approximation, and  seems to  work (problems  spotted by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2577
    Werner though).  The Arphic fonts are a lot nicer though there are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2578
    still a lot of things to do to handle Asian fonts correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2579
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2580
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2581
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2582
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2583
BETA-8 (RELEASE CANDIDATE) CHANGES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2584
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2585
  - Deactivated the TrueType bytecode interpreter by default.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2586
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2587
  - Deactivated the `src/type1' font driver.  Now `src/type1z' is used
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2588
    by default.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2589
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2590
  - Updates to the build system.  We now compile the library correctly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2591
    under  Unix  system  through  `configure' which  is  automatically
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2592
    called on the first `make' invocation.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2593
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2594
  - Added the auto-hinting module!  Fixing some bugs here and there.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2595
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2596
  - Found some bugs in the  composite loader (seac) of the Type1-based
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2597
    font drivers.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2598
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2599
  - Renamed the directory `freetype2/config' to `freetype2/builds' and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2600
    updated all relevant files.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2601
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2602
  - Found a memory leak in the `type1' driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2603
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2604
  - Incorporated Tom's patches to  support flex operators correctly in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2605
    OpenType/CFF fonts.  Now all I need is to support pure CFF and CEF
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2606
    fonts to be done with this driver :-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2607
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2608
  - Added the  Windows FNT/FON driver in `src/winfonts'.   For now, it
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2609
    always  `simulates'   a  Unicode  charmap,  so   it  shouldn't  be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2610
    considered completed right now.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2611
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2612
    It  is there  to be  more a  proof of  concept than  anything else
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2613
    anyway.  The driver is a single  C source file, that compiles to 3
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2614
    Kb of code.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2615
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2616
    I'm  still working on  the PCF/BDF  drivers, but  I'm too  lazy to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2617
    finish them now.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2618
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2619
  - CHANGES TO THE HIGH-LEVEL API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2620
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2621
    * FT_Get_Kerning has a new parameter that allows you to select the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2622
      coordinates of the kerning  vector (font units, scaled, scaled +
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2623
      grid-fitted).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2624
    * The  outline functions are  now in <freetype/ftoutln.h>  and not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2625
      part of <freetype/freetype.h> anymore.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2626
    * <freetype/ftmodule.h>    now     contains    declarations    for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2627
       FT_New_Library, FT_Done_Library, FT_Add_Default_Modules.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2628
    * The so-called convenience  functions have moved from `ftoutln.c'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2629
      to  `ftglyph.c',  and  are  thus available  with  this  optional
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2630
      component    of   the   library.     They   are    declared   in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2631
      <freetype/ftglyph.h> now.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2632
    * Anti-aliased  rendering is now  the default  for FT_Render_Glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2633
      (i.e. corresponds to render_mode == 0 == ft_render_mode_normal).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2634
      To generate a monochrome bitmap, use ft_render_mode_mono, or the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2635
      FT_LOAD_MONOCHROME     flag    in    FT_Load_Glyph/FT_Load_Char.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2636
      FT_LOAD_ANTI_ALIAS is still defined, but values to 0.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2637
    * <freetype/freetype.h>  now include <freetype/config/ftconfig.h>,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2638
      solving a few headaches :-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2639
    * The type FT_GlyphSlotRec has now a `library' field.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2640
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2641
  - CHANGES TO THE `ftglyph.h' API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2642
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2643
    This API has  been severely modified in order  to make it simpler,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2644
    clearer, and more  efficient.  It certainly now looks  like a real
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2645
    `glyph factory'  object, and allows client  applications to manage
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2646
    (i.e.  transform,  bbox  and  render) glyph  images  without  ever
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2647
    knowing their original format.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2648
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2649
  - Added  support  for CID-keyed  fonts  to  the  CFF driver.   Maybe
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2650
    support for pure CFF + CEF fonts should come in?
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2651
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2652
  - Cleaned up  source code in order  to avoid two  functions with the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2653
    same name.  Also  changed the names of the  files in `type1z' from
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2654
    `t1XXXX' to `z1XXXX' in order to avoid any conflicts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2655
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2656
    `make multi' now works well :-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2657
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2658
    Also removed the use of `cidafm' for now, even if the source files
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2659
    are  still there.  This  functionality will  certainly  go into  a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2660
    specific module.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2661
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2662
  - ADDED SUPPORT FOR THE AUTO-HINTER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2663
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2664
    It  works :-) I  have a  demo program  which simply  is a  copy of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2665
    `ftview'       that      does       a      `FT_Add_Module(library,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2666
    &autohinter_module_class)' after  library initialization, and Type
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2667
    1 & OpenType/CFF fonts are now hinted.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2668
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2669
    CID  fonts are  not hinted,  as they  include no  charmap  and the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2670
    auto-hinter doesn't include  `generic' global metrics computations
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2671
    yet.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2672
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2673
    Now, I need to release this thing to the FreeType 2 source.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2674
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2675
  - CHANGES TO THE RENDERER MODULES
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2676
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2677
    The  monochrome  and smooth  renderers  are  now  in two  distinct
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2678
    directories, namely `src/raster1' and `src/smooth'.  Note that the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2679
    old `src/renderer' is now gone.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2680
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2681
    I ditched  the 5-gray-levels renderers.  Basically,  it involved a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2682
    simple #define toggle in 'src/raster1/ftraster.c'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2683
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2684
    FT_Render_Glyph,  FT_Outline_Render  &  FT_Outline_Get_Bitmap  now
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2685
    select the best renderer  available, depending on render mode.  If
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2686
    the current renderer for a  given glyph image format isn't capable
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2687
    of supporting  the render mode, another  one will be  found in the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2688
    library's list.   This means that client applications  do not need
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2689
    to  switch or  set  the  renderers themselves  (as  in the  latest
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2690
    change), they'll get what they want automatically.  At last.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2691
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2692
    Changed the demo programs accordingly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2693
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2694
  - MAJOR INTERNAL REDESIGN:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2695
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2696
    A lot of internal modifications  have been performed lately on the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2697
    source in order to provide the following enhancements:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2698
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2699
    * More generic module support:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2700
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2701
      The FT_Module  type is  now defined to  represent a handle  to a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2702
      given  module.   The  file  <freetype/ftmodule.h>  contains  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2703
      FT_Module_Class definition, as well as the module-loading public
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2704
      API.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2705
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2706
      The  FT_Driver type  is still  defined, and  still  represents a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2707
      pointer to  a font driver.  Note that  FT_Add_Driver is replaced
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2708
      by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2709
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2710
    * Support for generic glyph image types:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2711
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2712
      The FT_Renderer  type is a pointer  to a module  used to perform
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2713
      various operations on glyph image.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2714
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2715
      Each renderer is  capable of handling images in  a single format
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2716
      (e.g. ft_glyph_format_outline).  Its functions are used to:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2717
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2718
      - transform an glyph image
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2719
      - render a glyph image into a bitmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2720
      - return the control box (dimensions) of a given glyph image
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2721
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2722
      The scan converters `ftraster.c' and `ftgrays.c' have been moved
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2723
      to the new directory `src/renderer', and are used to provide two
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2724
      default renderer modules.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2725
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2726
      One corresponds  to the `standard' scan-converter,  the other to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2727
      the `smooth' one.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2728
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2729
      he  current  renderer  can  be  set  through  the  new  function
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2730
      FT_Set_Renderer.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2731
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2732
      The old raster-related function FT_Set_Raster, FT_Get_Raster and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2733
      FT_Set_Raster_Mode have now disappeared, in favor of the new:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2734
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2735
        FT_Get_Renderer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2736
        FT_Set_Renderer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2737
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2738
      See the file <freetype/ftrender.h> for more details.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2739
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2740
      These  changes  were  necessary  to properly  support  different
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2741
      scalable formats in the future, like bi-color glyphs, etc.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2742
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2743
    * Glyph loader object:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2744
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2745
      A  new  internal  object,  called  a  'glyph  loader'  has  been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2746
      introduced in the base layer.  It is used by all scalable format
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2747
      font drivers to load glyphs and composites.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2748
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2749
      This object  has been  created to reduce  the code size  of each
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2750
      driver,  as  each  one  of  them  basically  re-implemented  its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2751
      functionality.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2752
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2753
      See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2754
      more information.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2755
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2756
    * FT_GlyphSlot has new fields:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2757
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2758
      In  order   to  support  extended  features   (see  below),  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2759
      FT_GlyphSlot structure has a few new fields:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2760
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2761
      linearHoriAdvance:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2762
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2763
        This  field  gives  the   linearly  scaled  (i.e.  scaled  but
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2764
        unhinted) advance  width for the  glyph, expressed as  a 16.16
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2765
        fixed pixel value.  This is useful to perform WYSIWYG text.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2766
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2767
      linearVertAdvance:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2768
        This field  gives the linearly  scaled advance height  for the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2769
        glyph  (relevant in  vertical  glyph layouts  only).  This  is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2770
        useful to perform WYSIWYG text.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2771
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2772
        Note that  the two above field replace  the removed `metrics2'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2773
        field in the glyph slot.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2774
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2775
      advance:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2776
        This field is a vector  that gives the transformed advance for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2777
        the glyph.   By default, it corresponds to  the advance width,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2778
        unless  FT_LOAD_VERTICAL_LAYOUT  was  specified  when  calling
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2779
        FT_Load_Glyph or FT_Load_Char.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2780
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2781
      bitmap_left:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2782
        This  field gives  the  distance in  integer  pixels from  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2783
        current pen position  to the left-most pixel of  a glyph image
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2784
        IF IT IS  A BITMAP.  It is only valid  when the `format' field
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2785
        is set to `ft_glyph_format_bitmap', for example, after calling
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2786
        the new function FT_Render_Glyph.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2787
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2788
      bitmap_top:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2789
        This  field gives  the  distance in  integer  pixels from  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2790
        current pen position (located on the baseline) to the top-most
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2791
        pixel of the  glyph image IF IT IS  A BITMAP.  Positive values
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2792
        correspond to upwards Y.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2793
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2794
      loader:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2795
        This  is a  new  private  field for  the  glyph slot.   Client
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2796
        applications should not touch it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2797
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2798
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2799
    * Support for transforms and direct rendering in FT_Load_Glyph:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2800
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2801
      Most of the functionality found in <freetype/ftglyph.h> has been
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2802
      moved to the core library.  Hence, the following:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2803
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2804
      - A   transform   can   be   specified  for   a   face   through
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2805
        FT_Set_Transform.  this transform  is applied by FT_Load_Glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2806
        to  scalable glyph  images (i.e.  NOT TO  BITMAPS)  before the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2807
        function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2808
        was set in the load flags.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2809
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2810
      - Once  a  glyph image  has  been  loaded,  it can  be  directly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2811
        converted  to  a  bitmap  by  using  the  new  FT_Render_Glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2812
        function.  Note that this  function takes the glyph image from
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2813
        the glyph slot,  and converts it to a  bitmap whose properties
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2814
        are returned  in `face.glyph.bitmap', `face.glyph.bitmap_left'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2815
        and `face.glyph.bitmap_top'.  The  original native image might
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2816
        be lost after the conversion.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2817
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2818
      - When using the new  bit flag FT_LOAD_RENDER, the FT_Load_Glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2819
        and   FT_Load_Char   functions   will   call   FT_Render_Glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2820
        automatically when needed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2821
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2822
  - Reformatted all  modules source  code in order  to get rid  of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2823
    basic data types redifinitions (i.e. `TT_Int' instead of `FT_Int',
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2824
    `T1_Fixed'  instead  of  `FT_Fixed').  Hence  the  format-specific
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2825
    prefixes like  `TT_', `T1_',  `T2_' and `CID_'  are only  used for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2826
    relevant structures.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2827
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2828
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2829
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2830
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2831
OLD CHANGES FOR BETA 7
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2832
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2833
  - bug-fixed the  OpenType/CFF parser.  It  now loads and displays my
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2834
    two  fonts nicely,  but I'm  pretty certain  that more  testing is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2835
    needed :-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2836
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2837
  - fixed the crummy Type 1 hinter, it now handles accented characters
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2838
    correctly (well, the accent is  not always well placed, but that's
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2839
    another problem..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2840
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2841
  - added the CID-keyed Type 1 driver in `src/cid'.  Works pretty well
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2842
    for only 13 Kb of code  ;-) Doesn't read AFM files though, nor the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2843
    really useful CMAP files..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2844
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2845
  - fixed  two  bugs  in  the  smooth  renderer  (src/base/ftgrays.c).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2846
    Thanks to Boris Letocha for spotting them and providing a fix.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2847
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2848
  - fixed potential `divide by zero' bugs in ftcalc.c.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2849
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2850
  - added source  code for  the OpenType/CFF driver  (still incomplete
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2851
    though..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2852
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2853
  - modified the  SFNT driver slightly  to perform more  robust header
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2854
    checks  in TT_Load_SFNT_Header.  This prevents certain  font files
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2855
    (e.g.  some  Type  1  Multiple  Masters)  from  being  incorrectly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2856
    `recognized' as TrueType font files..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2857
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2858
  - moved a lot of stuff from  the TrueType driver to the SFNT module,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2859
    this   allows   greater   code   re-use   between   font   drivers
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2860
    (e.g. TrueType, OpenType, Compact-TrueType, etc..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2861
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2862
  - added a tiny segment cache to the SFNT Charmap 4 decoder, in order
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2863
    to minimally speed it up..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2864
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2865
  - added  support for  Multiple Master  fonts in  `type1z'.  There is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2866
    also a new file named <freetype/ftmm.h> which defines functions to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2867
    manage them from client applications.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2868
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2869
    The new file `src/base/ftmm.c' is also optional to the engine..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2870
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2871
  - various  formatting changes (e.g.  EXPORT_DEF ->  FT_EXPORT_DEF) +
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2872
    small bug fixes in FT_Load_Glyph, the `type1' driver, etc..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2873
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2874
  - a minor fix to the Type 1 driver to let them apply the font matrix
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2875
    correctly (used for many oblique fonts..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2876
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2877
  - some fixes for 64-bit systems (mainly changing some FT_TRACE calls
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2878
    to use %p instead of %lx).  Thanks to Karl Robillard.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2879
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2880
  - fixed  some bugs  in  the sbit  loader (src/base/sfnt/ttsbit.c)  +
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2881
    added  a new flag,  FT_LOAD_CROP_BITMAP to  query that  bitmaps be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2882
    cropped when  loaded from a file  (maybe I should  move the bitmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2883
    cropper to the base layer ??).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2884
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2885
  - changed the default  number of gray levels of  the smooth renderer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2886
    to 256  (instead of  the previous 128).  Of course, the  human eye
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2887
    can't see any difference ;-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2888
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2889
  - removed TT_MAX_SUBGLYPHS,  there is no static limit  on the number
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2890
    of subglyphs in a TrueType font now..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2891
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2892
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2893
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2894
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2895
OLD CHANGES 16 May 2000
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2896
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2897
  - tagged `BETA-6'  in the  CVS tree.  This one is a  serious release
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2898
    candidate even though it doesn't incorporate the auto-hinter yet..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2899
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2900
  - various obsolete files were removed, and copyright header updated
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2901
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2902
  - finally  updated  the  standard   raster  to  fix  the  monochrome
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2903
    rendering bug + re-enable  support for 5-gray levels anti-aliasing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2904
    (suck, suck..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2905
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2906
  - created new header files, and modified sources accordingly:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2907
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2908
     <freetype/fttypes.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2909
       - simple FreeType types, without the API
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2910
     <freetype/internal/ftmemory.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2911
       - definition of memory-management macros
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2912
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2913
  - added   the   `DSIG'   (OpenType   Digital   Signature)   tag   to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2914
    <freetype/tttags.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2915
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2916
  - light update/cleaning of the build system + changes to the sources
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2917
    in  order  to  get  rid  of _all_  compiler  warnings  with  three
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2918
    compilers, i.e:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2919
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2920
    gcc with `-ansi -pedantic -Wall -W', Visual C++ with `/W3 /WX' and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2921
    LCC
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2922
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2923
    IMPORTANT NOTE FOR WIN32-LCC USERS:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2924
    |
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2925
    |  It seems the C pre-processor  that comes with LCC is broken, it
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2926
    |  doesn't  recognize  the  ANSI  standard  directives  #  and  ##
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2927
    |  correctly   when  one  of   the  argument  is  a  macro.  Also,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2928
    |  something like:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2929
    |
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2930
    |     #define F(x)  print##x
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2931
    |
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2932
    |     F(("hello"))
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2933
    |
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2934
    |  will get incorrectly translated to:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2935
    |
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2936
    |     print "hello")
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2937
    |
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2938
    |  by its pre-processor.  For this reason, you simply cannot build
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2939
    |  FreeType 2 in debug mode with this compiler..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2940
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2941
  - yet  another massive grunt work.  I've  changed the  definition of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2942
    the EXPORT_DEF,  EXPORT_FUNC, BASE_DEF &  BASE_FUNC macros.  These
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2943
    now take an argument, which is the function's return value type.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2944
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2945
    This  is necessary to  compile FreeType  as a  DLL on  Windows and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2946
    OS/2.  Depending on the compiler used, a compiler-specific keyword
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2947
    like  __export or __system  must be  placed before  (VisualC++) or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2948
    after (BorlandC++) the type..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2949
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2950
    Of course, this needed a lot of changes throughout the source code
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2951
    to make it compile again...  All cleaned up now, apparently..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2952
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2953
    Note also  that there is a  new EXPORT_VAR macro  defined to allow
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2954
    the   _declaration_    of   an   exportable    public   (constant)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2955
    variable.  This  is  the   case  of  the  raster  interfaces  (see
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2956
    ftraster.h and ftgrays.h), as well as each module's interface (see
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2957
    sfdriver.h, psdriver.h, etc..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2958
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2959
  - new feature: it  is now possible to pass  extra parameters to font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2960
                 drivers  when creating  a new  face object.  For now,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2961
                 this capability is unused.  It could however prove to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2962
                 be useful in a near future..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2963
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2964
      the FT_Open_Args structure was  changes, as well as the internal
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2965
      driver interface  (the specific `init_face'  module function has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2966
      now a different signature).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2967
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2968
  - updated the tutorial (not finished though).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2969
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2970
  - updated the top-level BUILD  document
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2971
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2972
  - fixed  a  potential memory  leak  that  could  occur when  loading
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2973
    embedded bitmaps.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2974
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2975
  - added     the     declaration     of     FT_New_Memory_Face     in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2976
    <freetype/freetype.h>, as  it was  missing from the  public header
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2977
    (the implementation was already in `ftobjs.c').
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2978
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2979
  - the file <freetype/fterrors.h> has been seriously updated in order
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2980
    to allow  the automatic generation  of error message tables.   See
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2981
    the comments within it for more information.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2982
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2983
  - major directory  hierarchy re-organisation.  This was done for two
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2984
    things:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2985
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2986
      * first,  to ease  the `manual'  compilation of  the  library by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2987
        requiring at lot less include paths :-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2988
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2989
      * second,  to  allow  external  programs to  effectively  access
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2990
        internal  data  fields.  For example,  this  can be  extremely
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2991
        useful if  someone wants  to write a  font producer or  a font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2992
        manager on top of FreeType.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2993
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2994
    Basically, you  should now use  the 'freetype/' prefix  for header
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2995
    inclusion, as in:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2996
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2997
        #include <freetype/freetype.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2998
        #include <freetype/ftglyph.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  2999
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3000
    Some new include sub-directories are available:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3001
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3002
     a. the  `freetype/config' directory,  contains two files  used to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3003
        configure  the  build  of  the  library.  Client  applications
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3004
        should  not need  to look  at these  normally, but they can if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3005
        they want.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3006
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3007
        #include <freetype/config/ftoption.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3008
        #include <freetype/config/ftconfig.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3009
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3010
     b. the `freetype/internal'  directory, contains header files that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3011
        describes library  internals.  These are the header files that
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3012
        were  previously  found  in  the `src/base'  and  `src/shared'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3013
        directories.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3014
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3015
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3016
    As  usual, the build  system and  the demos  have been  updated to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3017
    reflect the change..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3018
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3019
    Here's a layout of the new directory hierarchy:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3020
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3021
    TOP_DIR
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3022
      include/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3023
         freetype/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3024
            freetype.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3025
            ...
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3026
            config/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3027
              ftoption.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3028
              ftconfig.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3029
              ftmodule.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3030
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3031
            internal/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3032
              ftobjs.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3033
              ftstream.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3034
              ftcalc.h
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3035
              ...
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3036
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3037
      src/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3038
         base/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3039
            ...
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3040
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3041
         sfnt/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3042
         psnames/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3043
         truetype/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3044
         type1/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3045
         type1z/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3046
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3047
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3048
    Compiling a module is now  much easier, for example, the following
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3049
    should work when in the TOP_DIR directory on an ANSI build:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3050
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3051
       gcc -c -I./include -I./src/base src/base/ftbase.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3052
       gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3053
       etc..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3054
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3055
    (of course, using -Iconfig/<system> if you provide system-specific
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3056
     configuration files).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3057
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3058
  - updated the structure of FT_Outline_Funcs in order to allow direct
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3059
    coordinate scaling within  the outline decomposition routine (this
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3060
    is  important for virtual  `on' points  with TrueType  outlines) +
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3061
    updates to the rasters to support this..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3062
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3063
  - updated  the OS/2  table  loading code  in `src/sfnt/ttload.c'  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3064
    order to support version 2 of the table (see OpenType 1.2 spec)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3065
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3066
  - created  `include/tttables.h'  and  `include/t1tables.h' to  allow
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3067
    client applications to access some of  the SFNT and T1 tables of a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3068
    face  with  a  procedural  interface (see  `FT_Get_Sfnt_Table')  +
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3069
    updates to internal source files to reflect the change..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3070
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3071
  - some  cleanups in  the source  code to  get rid  of  warnings when
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3072
    compiling with the `-Wall -W -ansi -pedantic' options in gcc.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3073
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3074
  - debugged and moved the smooth renderer to `src/base/ftgrays.c' and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3075
    its header to `include/ftgrays.h'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3076
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3077
  - updated TT_MAX_SUBGLYPHS  to 96 as some CJK  fonts have composites
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3078
    with up to 80 sub-glyphs !! Thanks to Werner
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3079
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3080
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3081
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3082
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3083
OLD CHANGES - 14-apr-2000
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3084
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3085
  - fixed  a bug  in  the  TrueType glyph  loader  that prevented  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3086
    correct loading of some CJK glyphs in mingli.ttf
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3087
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3088
  - improved the standard Type 1 hinter in `src/type1'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3089
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3090
  - fixed two bugs  in the experimental Type 1  driver in `src/type1z'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3091
    to handle the new XFree86 4.0 fonts (and a few other ones..)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3092
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3093
  - the smooth  renderer is now  complete and supports  sub-banding to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3094
    render large glyphs  at high speed.  However, it is still  located
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3095
    in `demos/src/ftgrays.c' and should move to the  library itself in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3096
    the next  beta.  NOTE: The  smooth  renderer  doesn't  compile  in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3097
    stand-alone mode anymore, but this should be fixed RSN..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3098
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3099
  - introduced convenience  functions to  more easily deal  with glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3100
    images, see  `include/ftglyph.h' for more details, as  well as the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3101
    new  demo program  named `demos/src/ftstring.c'  that demonstrates
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3102
    its use
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3103
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3104
  - implemented  FT_LOAD_NO_RECURSE in  both the  TrueType and  Type 1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3105
    drivers  (this  is required  by  the  auto-hinter  to improve  its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3106
    results).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3107
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3108
  - changed   the  raster   interface,  in   order  to   allow  client
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3109
    applications  to   provide  their   own  span-drawing   callbacks.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3110
    However,   only   the   smooth   renderer   supports   this.   See
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3111
    `FT_Raster_Params' in the file `include/ftimage.h'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3112
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3113
  - fixed  a small bug  in FT_MulFix  that caused  incorrect transform
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3114
    computation!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3115
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3116
  - Note: The tutorial is out-of-date.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3117
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3118
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3119
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3120
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3121
OLD CHANGES - 12-mar-2000
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3122
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3123
  - changed  the  layout  of  configuration  files  :  now,  all  ANSI
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3124
    configuration         files         are         located         in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3125
    `freetype2/config'.  System-specific over-rides  can be  placed in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3126
    `freetype2/config/<system>'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3127
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3128
  - moved all configuration macros to `config/ftoption.h'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3129
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3130
  - improvements in the Type 1 driver with AFM support
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3131
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3132
  - changed the fields  in the FT_Outline structure :  the old `flags'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3133
    array is re-named `tags', while all ancient flags are encoded into
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3134
    a single unsigned int named `flags'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3135
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3136
  - introduced     new      flags     in     FT_Outline.flags     (see
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3137
    ft_outline_.... enums in `ftimage.h').
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3138
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3139
  - changed outline functions to `FT_Outline_<action>' syntax
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3140
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3141
  - added a smooth anti-alias renderer to the demonstration programs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3142
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3143
  - added Mac graphics driver (thanks Just)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3144
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3145
  - FT_Open_Face  changed  in  order   to  received  a  pointer  to  a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3146
    FT_Open_Args descriptor..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3147
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3148
  - various  cleanups,  a  few  more API  functions  implemented  (see
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3149
    FT_Attach_File)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3150
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3151
  - updated some docs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3152
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3153
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3154
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3155
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3156
OLD CHANGES - 22-feb-2000
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3157
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3158
  - introduced the `psnames' module.  It is used to:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3159
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3160
      o convert  a Postscript glyph  name into the  equivalent Unicode
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3161
        character code (used by the  Type 1 driver(s) to synthesize on
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3162
        the fly a Unicode charmap).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3163
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3164
      o provide an  interface to retrieve the Postscript  names of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3165
        Macintosh,  Adobe  Standard &  Adobe  Expert character  codes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3166
        (the Macintosh  names are  used by the  SFNT-module postscript
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3167
        names support routines, while the other two tables are used by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3168
        the Type 1 driver(s)).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3169
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3170
  - introduced the `type1z' alternate Type 1 driver.  This is a (still
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3171
    experimental) driver  for the Type  1 format that  will ultimately
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3172
    replace the one  in `src/type1'.  It uses pattern matching to load
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3173
    data from the font, instead of a finite  state analyzer.  It works
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3174
    much better than the `old' driver with `broken' fonts.  It is also
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3175
    much smaller (under 15 Kb).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3176
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3177
  - the  Type 1  drivers (both  in `src/type1'  and  `src/type1z') are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3178
    nearly  complete.  They  both  provide automatic  Unicode  charmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3179
    synthesis through  the `psnames' module.  No re-encoding vector is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3180
    needed.  (note  that they  still  leak  memory  due to  some  code
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3181
    missing, and I'm getting lazy).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3182
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3183
    Trivial AFM support has been added to read kerning information but
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3184
    wasn't exactly tested as it should ;-)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3185
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3186
  - The TrueType  glyph loader has  been seriously rewritten  (see the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3187
    file  `src/truetype/ttgload.c'.  It is now  much, much  simpler as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3188
    well as  easier to read,  maintain and understand  :-) Preliminary
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3189
    versions introduced a  memory leak that has been  reported by Jack
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3190
    Davis, and is now fixed..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3191
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3192
  - introduced  the new  `ft_glyph_format_plotter', used  to represent
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3193
    stroked outlines  like Windows `Vector' fonts, and  certain Type 1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3194
    fonts  like `Hershey'.  The corresponding  raster will  be written
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3195
    soon.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3196
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3197
  - FT_New_Memory_Face  is  gone.  Likewise,  FT_Open_Face has  a  new
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3198
    interface that uses a structure  to describe the input stream, the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3199
    driver (if required), etc..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3200
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3201
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3202
TODO
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3203
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3204
  - Write FT_Get_Glyph_Bitmap and FT_Load_Glyph_Bitmap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3205
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3206
  - Add a function like FT_Load_Character(face, char_code, load_flags)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3207
    that  would   really  embed  a  call   to  FT_Get_Char_Index  then
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3208
    FT_Load_Glyph to ease developer's work.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3209
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3210
  - Update the tutorial!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3211
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3212
  - consider adding  support for Multiple  Master fonts in the  Type 1
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3213
    drivers.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3214
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3215
  - Test the AFM routines of the  Type 1 drivers to check that kerning
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3216
    information is returned correctly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3217
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3218
  - write a decent auto-gridding component  !! We need this to release
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3219
    FreeType 2.0 gold !
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3220
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3221
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3222
less urgent needs:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3223
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3224
  - add a CFF/Type2 driver
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3225
  - add a BDF driver
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3226
  - add a FNT/PCF/HBF driver
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3227
  - add a Speedo driver from the X11 sources
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3228
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3229
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3230
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3231
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3232
OLDER CHANGES - 27-jan-2000
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3233
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3234
  - updated the  `sfnt' module  interface to allow  several SFNT-based
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3235
    drivers to co-exist peacefully
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3236
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3237
  - updated  the `T1_Face'  type  to better  separate Postscript  font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3238
    content  from the  rest of  the FT_Face  structure.  Might be used
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3239
    later by the CFF/Type2 driver..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3240
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3241
  - added an experimental replacement Type 1 driver featuring advanced
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3242
    (and speedy) pattern matching to retrieve the data from postscript
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3243
    fonts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3244
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3245
  - very minor  changes in the implementation  of FT_Set_Char_Size and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3246
    FT_Set_Pixel_Sizes (they now implement default to lighten the font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3247
    driver's code).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3248
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3249
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3250
======================================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3251
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3252
OLD MESSAGE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3253
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3254
This file summarizes the changes  that occurred  since the last `beta'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3255
of FreeType 2. Because the list is important, it has been divided into
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3256
separate sections:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3257
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3258
Table Of Contents:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3259
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3260
    I   High-Level Interface (easier !)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3261
   II   Directory Structure
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3262
  III   Glyph Image Formats
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3263
   IV   Build System
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3264
    V   Portability
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3265
   VI   Font Drivers
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3266
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3267
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3268
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3269
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3270
High-Level Interface:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3271
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3272
  The high-level API has been considerably simplified.  Here is how:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3273
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3274
    - resource objects have disappeared.  this means that face objects
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3275
      can now be created with  a single function call (see FT_New_Face
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3276
      and FT_Open_Face)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3277
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3278
    - when calling  either FT_New_Face  & FT_Open_Face, a  size object
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3279
      and a glyph slot object  are automatically created for the face,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3280
      and can  be accessed  through `face->glyph' and  `face->size' if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3281
      one really  needs to.   In most cases,  there's no need  to call
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3282
      FT_New_Size or FT_New_Glyph.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3283
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3284
    - similarly,  FT_Load_Glyph  now  only  takes  a  `face'  argument
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3285
      (instead  of a  glyph  slot  and a  size).  Also,  its  `result'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3286
      parameter is  gone, as the glyph  image type is  returned in the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3287
      field `face->glyph.format'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3288
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3289
    - the list  of available  charmaps is directly  accessible through
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3290
      `face->charmaps', counting `face->num_charmaps'  elements.  Each
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3291
      charmap  has an  'encoding'  field which  specifies which  known
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3292
      encoding it deals with.  Valid values are, for example:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3293
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3294
          ft_encoding_unicode      (for ASCII, Latin-1 and Unicode)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3295
          ft_encoding_apple_roman
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3296
          ft_encoding_sjis
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3297
          ft_encoding_adobe_standard
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3298
          ft_encoding_adobe_expert
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3299
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3300
      other  values may  be added  in the  future.  Each charmap still
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3301
      holds  its `platform_id'  and `encoding_id'  values in  case the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3302
      encoding is too exotic for the current library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3303
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3304
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3305
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3306
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3307
Directory Structure:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3308
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3309
  Should seem obvious to most of you:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3310
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3311
     freetype/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3312
         config/        -- configuration sub-makefiles
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3313
            ansi/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3314
            unix/       -- platform-specific configuration files
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3315
            win32/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3316
            os2/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3317
            msdos/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3318
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3319
         include/       -- public header  files, those to  be included
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3320
                           directly by client apps
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3321
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3322
         src/           -- sources of the library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3323
           base/        -- the base layer
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3324
           sfnt/        -- the sfnt `driver'  (see the drivers section
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3325
                           below)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3326
           truetype/    -- the truetype driver
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3327
           type1/       -- the type1 driver
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3328
           shared/      -- some header files shared between drivers
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3329
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3330
         demos/         -- demos/tools
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3331
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3332
         docs/          -- documentation (a bit empty for now)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3333
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3334
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3335
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3336
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3337
Glyph Image Formats:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3338
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3339
  Drivers are now able to  register new glyph image formats within the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3340
  library.  For  now, the  base layer supports  of course  bitmaps and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3341
  vector  outlines, but  one  could imagine  something different  like
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3342
  colored bitmaps, bi-color vectors or whatever else (Metafonts anyone
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3343
  ??).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3344
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3345
  See  the   file  `include/ftimage.h'.   Note  also  that   the  type
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3346
  FT_Raster_Map  is gone,  and  is now  replaced  by FT_Bitmap,  which
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3347
  should encompass all known bitmap types.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3348
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3349
  Each new  image format  must provide at  least one `raster',  i.e. a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3350
  module capable of  transforming the glyph image into a bitmap.  It's
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3351
  also possible  to change the default  raster used for  a given glyph
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3352
  image format.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3353
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3354
  The default outline  scan-converter now uses 128 levels  of grays by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3355
  default,  which tends  to smooth  many  things.  Note that the  demo
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3356
  programs have been updated significantly in order to display these..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3357
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3358
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3359
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3360
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3361
Build system:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3362
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3363
  You still need  GNU Make to build the library.  The build system has
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3364
  been very seriously re-vamped in order to provide things like :
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3365
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3366
   - automatic host platform  detection (reverting to 'config/ansi' if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3367
     it is not detected, with pseudo-standard compilation flags)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3368
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3369
   - the ability to compile from the Makefiles with very different and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3370
     exotic compilers.  Note that linking the library can be difficult
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3371
     for some platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3372
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3373
     For example, the file `config/win32/lcclib.bat' is invoked by the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3374
     build system to create the `.lib' file with LCC-Win32 because its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3375
     librarian  has too  many flaws  to be  invoked directly  from the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3376
     Makefile.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3377
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3378
  Here's how it works:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3379
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3380
  - the first time you type `make',  the build system runs a series of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3381
    sub-makefiles  in order  to detect  your host  platform.  It  then
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3382
    dumps what it found, and creates a file called `config.mk' in  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3383
    current  directory.  This is a  sub-Makefile used  to  define many
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3384
    important Make variables used to build the library.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3385
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3386
  - the second time, the build system detects the `config.mk' then use
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3387
    it  to  build the  library.  All object  files  go  into 'obj'  by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3388
    default,  as well  as the  library file,  but this  can  easily be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3389
    changed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3390
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3391
  Note that  you can run `make  setup' to force  another host platform
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3392
  detection  even   if  a  `config.mk'  is  present   in  the  current
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3393
  directory.  Another solution  is  simply to  delete  the file,  then
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3394
  re-run make.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3395
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3396
  Finally, the  default compiler  for all platforms  is gcc  (for now,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3397
  this will hopefully changed in the future).  You can however specify
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3398
  a different  compiler by specifying  it after the 'setup'  target as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3399
  in:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3400
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3401
      gnumake setup lcc         on Win32 to use the LCC compiler
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3402
      gnumake setup visualc     on Win32 to use Visual C++
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3403
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3404
  See  the file  `config/<system>/detect.mk' for  a list  of supported
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3405
  compilers for your platforms.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3406
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3407
  It should be relatively easy  to write new detection rules files and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3408
  config.mk..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3409
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3410
  Finally, to  build the demo programs,  go to `demos'  and launch GNU
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3411
  Make, it will use the `config.mk'  in the top directory to build the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3412
  test programs..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3413
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3414
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3415
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3416
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3417
Portability:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3418
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3419
  In  the  previous  beta,  a  single FT_System  object  was  used  to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3420
  encompass  all  low-level  operations like  thread  synchronisation,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3421
  memory management and i/o access.  This has been greatly simplified:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3422
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3423
    - thread synchronisation  has been dropped, for  the simple reason
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3424
      that the library  is already re-entrant, and that  if you really
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3425
      need  two  threads accessing  the  same  FT_Library, you  should
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3426
      really synchronize access to it yourself with a simple mutex.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3427
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3428
    - memory  management is  performed  through a  very simple  object
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3429
      called `FT_Memory',  which really is a table  containing a table
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3430
      of pointers to  functions like malloc, realloc and  free as well
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3431
      as some user data (closure).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3432
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3433
    - resources have disappeared (they created more problems than they
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3434
      solved), and  i/o management have  been simplified greatly  as a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3435
      result.  Streams are  defined through  FT_Stream objects,  which
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3436
      can be either memory-based or disk-based.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3437
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3438
      Note that  each face  has its own  stream, which is  closed only
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3439
      when  the  face object  is  destroyed.  Hence,  a function  like
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3440
      TT_Flush_Face in 1.x cannot be directly  supported.  However, if
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3441
      you really need something like  this, you can easily tailor your
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3442
      own streams  to achieve the same  feature at a  lower level (and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3443
      use FT_Open_Face instead of FT_New_Face to create the face).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3444
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3445
  See the file  `include/ftsystem.h' for more details, as  well as the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3446
  implementations found in `config/unix' and `config/ansi'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3447
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3448
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3449
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3450
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3451
Font Drivers:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3452
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3453
  The  Font Driver  interface has  been modified  in order  to support
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3454
  extensions & versioning.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3455
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3456
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3457
  The  list of  the font  drivers that  are statically  linked  to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3458
  library at compile time is  managed through a new configuration file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3459
  called `config/<platform>/ftmodule.h'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3460
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3461
  This  file is  autogenerated  when  invoking  `make modules'.   This
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3462
  target  will  parse  all  sub-directories  of  'src', looking  for a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3463
  `module.mk' rules  file, used  to describe  the driver to  the build
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3464
  system.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3465
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3466
  Hence, one  should call  `make modules' each  time a font  driver is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3467
  added or removed from the `src' directory.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3468
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3469
  Finally, this  version  provides  a `pseudo-driver'  in  `src/sfnt'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3470
  This  driver  doesn't  support  font  files  directly, but  provides
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3471
  services used by all TrueType-like font drivers.  Hence, its code is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3472
  shared between  the TrueType & OpenType  font formats,  and possibly
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3473
  more formats to come if we're lucky..
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3474
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3475
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3476
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3477
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3478
Extensions support:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3479
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3480
  The extensions support is inspired by the one found in 1.x.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3481
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3482
  Now, each font driver has  its own `extension registry', which lists
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3483
  which extensions  are available  for the font  faces managed  by the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3484
  driver.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3485
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3486
  Extension ids are  now strings, rather than 4-byte  tags, as this is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3487
  usually more readable.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3488
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3489
  Each extension has:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3490
    - some data, associated to each face object
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3491
    - an interface (table of function pointers)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3492
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3493
  An extension  that is format-specific should  simply register itself
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3494
  to the correct font driver.  Here is some example code:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3495
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3496
   // Registering an extensions
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3497
   //
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3498
   FT_Error  FT_Init_XXXX_Extension( FT_Library  library )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3499
   {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3500
     FT_DriverInterface*  tt_driver;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3501
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3502
     driver = FT_Get_Driver( library, "truetype" );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3503
     if (!driver) return FT_Err_Unimplemented_Feature;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3504
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3505
     return FT_Register_Extension( driver, &extension_class );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3506
   }
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3507
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3508
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3509
   // Implementing the extensions
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3510
   //
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3511
   FT_Error  FT_Proceed_Extension_XXX( FT_Face  face )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3512
   {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3513
     FT_XXX_Extension            ext;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3514
     FT_XXX_Extension_Interface  ext_interface;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3515
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3516
     ext = FT_Get_Extension( face, "extensionid", &ext_interface );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3517
     if (!ext) return error;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3518
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3519
     return ext_interface->do_it(ext);
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3520
   }
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3521
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3522
------------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3523
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3524
Copyright 2000-2011 by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3525
David Turner, Robert Wilhelm, and Werner Lemberg.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3526
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3527
This  file  is  part  of the  FreeType  project, and may  only be  used,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3528
modified,  and  distributed  under  the  terms of  the FreeType  project
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3529
license, LICENSE.TXT.   By continuing to use, modify, or distribute this
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3530
file you  indicate that  you have  read the  license and understand  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3531
accept it fully.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3532
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3533
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3534
Local Variables:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3535
version-control: never
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3536
coding: utf-8
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3537
End:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3538
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
  3539
--- end of CHANGES ---