Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
/***************************************************************************/
2
/*                                                                         */
3
/*  ftgasp.h                                                               */
4
/*                                                                         */
5
/*    Access of TrueType's `gasp' table (specification).                   */
6
/*                                                                         */
7
/*  Copyright 2007, 2008 by                                                */
8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9
/*                                                                         */
10
/*  This file is part of the FreeType project, and may only be used,       */
11
/*  modified, and distributed under the terms of the FreeType project      */
12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13
/*  this file you indicate that you have read the license and              */
14
/*  understand and accept it fully.                                        */
15
/*                                                                         */
16
/***************************************************************************/
17
 
18
 
19
#ifndef _FT_GASP_H_
20
#define _FT_GASP_H_
21
 
22
#include 
23
#include FT_FREETYPE_H
24
 
25
#ifdef FREETYPE_H
26
#error "freetype.h of FreeType 1 has been loaded!"
27
#error "Please fix the directory search order for header files"
28
#error "so that freetype.h of FreeType 2 is found first."
29
#endif
30
 
31
 
32
  /***************************************************************************
33
   *
34
   * @section:
35
   *   gasp_table
36
   *
37
   * @title:
38
   *   Gasp Table
39
   *
40
   * @abstract:
41
   *   Retrieving TrueType `gasp' table entries.
42
   *
43
   * @description:
44
   *   The function @FT_Get_Gasp can be used to query a TrueType or OpenType
45
   *   font for specific entries in its `gasp' table, if any.  This is
46
   *   mainly useful when implementing native TrueType hinting with the
47
   *   bytecode interpreter to duplicate the Windows text rendering results.
48
   */
49
 
50
  /*************************************************************************
51
   *
52
   * @enum:
53
   *   FT_GASP_XXX
54
   *
55
   * @description:
56
   *   A list of values and/or bit-flags returned by the @FT_Get_Gasp
57
   *   function.
58
   *
59
   * @values:
60
   *   FT_GASP_NO_TABLE ::
61
   *     This special value means that there is no GASP table in this face.
62
   *     It is up to the client to decide what to do.
63
   *
64
   *   FT_GASP_DO_GRIDFIT ::
65
   *     Grid-fitting and hinting should be performed at the specified ppem.
66
   *     This *really* means TrueType bytecode interpretation.
67
   *
68
   *   FT_GASP_DO_GRAY ::
69
   *     Anti-aliased rendering should be performed at the specified ppem.
70
   *
71
   *   FT_GASP_SYMMETRIC_SMOOTHING ::
72
   *     Smoothing along multiple axes must be used with ClearType.
73
   *
74
   *   FT_GASP_SYMMETRIC_GRIDFIT ::
75
   *     Grid-fitting must be used with ClearType's symmetric smoothing.
76
   *
77
   * @note:
78
   *   `ClearType' is Microsoft's implementation of LCD rendering, partly
79
   *   protected by patents.
80
   *
81
   * @since:
82
   *   2.3.0
83
   */
84
#define FT_GASP_NO_TABLE               -1
85
#define FT_GASP_DO_GRIDFIT           0x01
86
#define FT_GASP_DO_GRAY              0x02
87
#define FT_GASP_SYMMETRIC_SMOOTHING  0x08
88
#define FT_GASP_SYMMETRIC_GRIDFIT    0x10
89
 
90
 
91
  /*************************************************************************
92
   *
93
   * @func:
94
   *   FT_Get_Gasp
95
   *
96
   * @description:
97
   *   Read the `gasp' table from a TrueType or OpenType font file and
98
   *   return the entry corresponding to a given character pixel size.
99
   *
100
   * @input:
101
   *   face :: The source face handle.
102
   *   ppem :: The vertical character pixel size.
103
   *
104
   * @return:
105
   *   Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no
106
   *   `gasp' table in the face.
107
   *
108
   * @since:
109
   *   2.3.0
110
   */
111
  FT_EXPORT( FT_Int )
112
  FT_Get_Gasp( FT_Face  face,
113
               FT_UInt  ppem );
114
 
115
/* */
116
 
117
#endif /* _FT_GASP_H_ */
118
 
119
 
120
/* END */