Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
ftgasp.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * ftgasp.h
4 *
5 * Access of TrueType's 'gasp' table (specification).
6 *
7 * Copyright (C) 2007-2024 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 FTGASP_H_
20#define FTGASP_H_
21
22#include <freetype/freetype.h>
23
24#ifdef FREETYPE_H
25#error "freetype.h of FreeType 1 has been loaded!"
26#error "Please fix the directory search order for header files"
27#error "so that freetype.h of FreeType 2 is found first."
28#endif
29
30
32
33
34 /**************************************************************************
35 *
36 * @section:
37 * gasp_table
38 *
39 * @title:
40 * Gasp Table
41 *
42 * @abstract:
43 * Retrieving TrueType 'gasp' table entries.
44 *
45 * @description:
46 * The function @FT_Get_Gasp can be used to query a TrueType or OpenType
47 * font for specific entries in its 'gasp' table, if any. This is mainly
48 * useful when implementing native TrueType hinting with the bytecode
49 * interpreter to duplicate the Windows text rendering results.
50 */
51
52 /**************************************************************************
53 *
54 * @enum:
55 * FT_GASP_XXX
56 *
57 * @description:
58 * A list of values and/or bit-flags returned by the @FT_Get_Gasp
59 * function.
60 *
61 * @values:
62 * FT_GASP_NO_TABLE ::
63 * This special value means that there is no GASP table in this face.
64 * It is up to the client to decide what to do.
65 *
66 * FT_GASP_DO_GRIDFIT ::
67 * Grid-fitting and hinting should be performed at the specified ppem.
68 * This **really** means TrueType bytecode interpretation. If this bit
69 * is not set, no hinting gets applied.
70 *
71 * FT_GASP_DO_GRAY ::
72 * Anti-aliased rendering should be performed at the specified ppem.
73 * If not set, do monochrome rendering.
74 *
75 * FT_GASP_SYMMETRIC_SMOOTHING ::
76 * If set, smoothing along multiple axes must be used with ClearType.
77 *
78 * FT_GASP_SYMMETRIC_GRIDFIT ::
79 * Grid-fitting must be used with ClearType's symmetric smoothing.
80 *
81 * @note:
82 * The bit-flags `FT_GASP_DO_GRIDFIT` and `FT_GASP_DO_GRAY` are to be
83 * used for standard font rasterization only. Independently of that,
84 * `FT_GASP_SYMMETRIC_SMOOTHING` and `FT_GASP_SYMMETRIC_GRIDFIT` are to
85 * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT` and
86 * `FT_GASP_DO_GRAY` are consequently ignored).
87 *
88 * 'ClearType' is Microsoft's implementation of LCD rendering, partly
89 * protected by patents.
90 *
91 * @since:
92 * 2.3.0
93 */
94#define FT_GASP_NO_TABLE -1
95#define FT_GASP_DO_GRIDFIT 0x01
96#define FT_GASP_DO_GRAY 0x02
97#define FT_GASP_SYMMETRIC_GRIDFIT 0x04
98#define FT_GASP_SYMMETRIC_SMOOTHING 0x08
99
100
101 /**************************************************************************
102 *
103 * @function:
104 * FT_Get_Gasp
105 *
106 * @description:
107 * For a TrueType or OpenType font file, return the rasterizer behaviour
108 * flags from the font's 'gasp' table corresponding to a given character
109 * pixel size.
110 *
111 * @input:
112 * face ::
113 * The source face handle.
114 *
115 * ppem ::
116 * The vertical character pixel size.
117 *
118 * @return:
119 * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no
120 * 'gasp' table in the face.
121 *
122 * @note:
123 * If you want to use the MM functionality of OpenType variation fonts
124 * (i.e., using @FT_Set_Var_Design_Coordinates and friends), call this
125 * function **after** setting an instance since the return values can
126 * change.
127 *
128 * @since:
129 * 2.3.0
130 */
133 FT_UInt ppem );
134
135 /* */
136
137
139
140#endif /* FTGASP_H_ */
141
142
143/* END */
FT_Get_Gasp(FT_Face face, FT_UInt ppem)
#define FT_END_HEADER
Definition ftheader.h:57
#define FT_BEGIN_HEADER
Definition ftheader.h:37
unsigned int FT_UInt
Definition fttypes.h:234
signed int FT_Int
Definition fttypes.h:223
#define FT_EXPORT(x)