misc/libfreetype/docs/CHANGES
author unc0rr
Sat, 17 Nov 2012 00:15:30 +0400
branchphysfslayer
changeset 8040 448d61778ca7
parent 5172 88f2e05288ba
permissions -rw-r--r--
Keeping bruteforce
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 ---