misc/libfreetype/docs/DEBUG
author dag10
Sun, 07 Apr 2013 19:43:18 -0400
changeset 8889 74abe69d8569
parent 5172 88f2e05288ba
permissions -rw-r--r--
Merge.
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
Debugging within the FreeType sources
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
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     4
I. Configuration macros
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     5
-----------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     6
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     7
There  are several ways  to enable  debugging features  in a  FreeType 2
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     8
builds.   This is controlled  through the  definition of  special macros
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     9
located in the file `ftoptions.h'.  The macros are:
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
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    12
  FT_DEBUG_LEVEL_ERROR
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    13
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    14
    #define this macro  if you want to compile  the FT_ERROR macro calls
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    15
    to  print error messages  during program  execution.  This  will not
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    16
    stop  the  program.   Very  useful  to  spot  invalid  fonts  during
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    17
    development and to code workarounds for them.
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
  FT_DEBUG_LEVEL_TRACE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    20
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    21
    #define this macro  if you want to compile  both macros FT_ERROR and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    22
    FT_TRACE.   This also  includes the  variants  FT_TRACE0, FT_TRACE1,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    23
    FT_TRACE2, ..., FT_TRACE7.
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
    The  trace  macros are  used  to  send  debugging messages  when  an
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    26
    appropriate  `debug  level' is  configured  at  runtime through  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    27
    FT2_DEBUG environment variable (more on this later).
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
  FT_DEBUG_MEMORY
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    30
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    31
    If  this macro is  #defined, the  FreeType engine  is linked  with a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    32
    small  but  effective  debugging  memory  manager  that  tracks  all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    33
    allocations and frees that are performed within the font engine.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    34
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    35
    When  the  FT2_DEBUG_MEMORY   environment  variable  is  defined  at
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    36
    runtime,  a call  to FT_Done_FreeType  will dump  memory statistics,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    37
    including the list of leaked memory blocks with the source locations
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    38
    where these were allocated.  It is always a very good idea to define
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    39
    this in development builds.  This works with _any_ program linked to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    40
    FreeType, but  requires a big  deal of memory (the  debugging memory
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    41
    manager never frees the blocks to the heap in order to detect double
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    42
    frees).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    43
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    44
    When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    45
    manager is ignored, and performance is unaffected.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    46
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
II. Debugging macros
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    49
--------------------
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
Several macros can be used within the FreeType sources to help debugging
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    52
its code:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    53
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    54
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    55
  1. FT_ERROR(( ... ))
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    56
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    57
    This macro is  used to send debug messages  that indicate relatively
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    58
    serious  errors (like  broken font  files),  but will  not stop  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    59
    execution of  the running program.   Its code is compiled  only when
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    60
    either FT_DEBUG_LEVEL_ERROR  or FT_DEBUG_LEVEL_TRACE are  defined in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    61
    `ftoption.h'.
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
    Note that you  have to use a printf-like  signature, but with double
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    64
    parentheses, like in
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
      FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
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
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    69
  2. FT_ASSERT( condition )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    70
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    71
    This macro  is used to check  strong assertions at  runtime.  If its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    72
    condition isn't TRUE,  the program will abort with  a panic message.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    73
    Its   code   is  compiled   when   either  FT_DEBUG_LEVEL_ERROR   or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    74
    FT_DEBUG_LEVEL_TRACE are defined.  You don't need double parentheses
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    75
    here.  For example
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    76
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    77
      FT_ASSERT( ptr != NULL );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    78
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
  3. FT_TRACE( level, (message...) )
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
    The  FT_TRACE  macro  is  used  to  send  general-purpose  debugging
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    83
    messages during  program execution.   This macro uses  an *implicit*
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    84
    macro named FT_COMPONENT used to name the current FreeType component
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    85
    being run.
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
    The developer should always  define FT_COMPONENT as appropriate, for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    88
    example as in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    89
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    90
      #undef  FT_COMPONENT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    91
      #define FT_COMPONENT  trace_io
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    92
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    93
    The  value  of  the  FT_COMPONENT  macro  is  an  enumeration  named
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    94
    trace_XXXX where XXXX  is one of the component  names defined in the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    95
    internal file `freetype/internal/fttrace.h'.  If you modify FreeType
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    96
    source  and insert  new trace_XXXX macro,  you  must register  it in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    97
    fttrace.h. If you insert or remove many trace macros,  you can check
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    98
    the undefined or the unused trace macro by src/tools/chktrcmp.py.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    99
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   100
    Each  such component  is assigned  a `debug  level', ranging  from 0
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   101
    to  7,  through  the  use  of  the  FT2_DEBUG  environment  variable
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   102
    (described below) when a program linked with FreeType starts.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   103
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   104
    When FT_TRACE  is called, its  level is compared  to the one  of the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   105
    corresponding component.   Messages with trace  levels *higher* than
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   106
    the corresponding component level are filtered and never printed.
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
    This  means that  trace messages  with level  0 are  always printed,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   109
    those with level 2 are only  printed when the component level is *at
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   110
    least* 2.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   111
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   112
    The  second  parameter  to  FT_TRACE must  contain  parentheses  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   113
    correspond to a printf-like call, as in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   114
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   115
      FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
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
    The shortcut macros  FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   118
    can be  used with  constant level indices,  and are much  cleaner to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   119
    use, as in
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
     FT_TRACE2(( "your %s is not %s\n", "foo", "bar" ));
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
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   124
III. Environment variables
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   125
--------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   126
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   127
The  following  environment   variables  control  debugging  output  and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   128
behaviour of FreeType at runtime.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   129
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
  FT2_DEBUG
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   132
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   133
    This   variable  is   only  used   when  FreeType   is   built  with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   134
    FT_DEBUG_LEVEL_TRACE defined.  It contains a list of component level
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   135
    definitions, following this format:
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
       component1:level1 component2:level2 component3:level3 ...
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   138
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   139
    where `componentX' is the name of a tracing component, as defined in
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   140
    `fttrace.h',  but  without the  `trace_'  prefix.   `levelX' is  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   141
    corresponding level to use at runtime.
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
    `any'  is a  special  component  name that  will  be interpreted  as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   144
    `any/all components'.  For example, the following definitions
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   145
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   146
       set FT2_DEBUG=any:2 memory:5 io:4        (on Windows)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   147
       export FT2_DEBUG="any:2 memory:5 io:4"   (on Linux with bash)
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   148
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   149
    both stipulate that  all components should have level  2, except for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   150
    the memory and io components which will be set to trace levels 5 and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   151
    4, respectively.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   152
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
  FT2_DEBUG_MEMORY
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   155
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   156
    This  environment variable, when  defined, tells  FreeType to  use a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   157
    debugging memory  manager that will  track leaking memory  blocks as
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   158
    well as other  common errors like double frees.   It is also capable
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   159
    of  reporting  _where_  the  leaking blocks  were  allocated,  which
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   160
    considerably saves time when debugging new additions to the library.
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
    This  code  is  only  compiled  when  FreeType  is  built  with  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   163
    FT_DEBUG_MEMORY macro  #defined in  `ftoption.h' though, it  will be
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   164
    ignored in other builds.
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
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   167
  FT2_ALLOC_TOTAL_MAX
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   168
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   169
    This  variable is ignored  if FT2_DEBUG_MEMORY  is not  defined.  It
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   170
    allows you to specify a maximum heap size for all memory allocations
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   171
    performed by FreeType.   This is very useful to  test the robustness
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   172
    of  the  font  engine and  programs  that  use  it in  tight  memory
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   173
    conditions.
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
    If it is  undefined, or if its value is  not strictly positive, then
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   176
    no allocation bounds are checked at runtime.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   177
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   178
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   179
  FT2_ALLOC_COUNT_MAX
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   180
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   181
    This  variable is ignored  if FT2_DEBUG_MEMORY  is not  defined.  It
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   182
    allows  you  to  specify  a  maximum number  of  memory  allocations
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   183
    performed    by     FreeType    before    returning     the    error
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   184
    FT_Err_Out_Of_Memory.  This is useful  for debugging and testing the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   185
    engine's robustness.
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
    If it is  undefined, or if its value is  not strictly positive, then
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   188
    no allocation bounds are checked at runtime.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   189
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
Copyright 2002, 2003, 2004, 2005, 2009 by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   193
David Turner, Robert Wilhelm, and Werner Lemberg.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   194
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   195
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
   196
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
   197
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
   198
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
   199
accept it fully.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   200
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   201
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   202
--- end of DEBUG ---