1 /****************************************************************************
5 * Access of TrueType's 'gasp' table (specification).
7 * Copyright (C) 2007-2023 by
8 * David Turner, Robert Wilhelm, and Werner Lemberg.
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.
22 #include <freetype/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."
34 /**************************************************************************
43 * Retrieving TrueType 'gasp' table entries.
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.
52 /**************************************************************************
58 * A list of values and/or bit-flags returned by the @FT_Get_Gasp
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.
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.
72 * Anti-aliased rendering should be performed at the specified ppem.
73 * If not set, do monochrome rendering.
75 * FT_GASP_SYMMETRIC_SMOOTHING ::
76 * If set, smoothing along multiple axes must be used with ClearType.
78 * FT_GASP_SYMMETRIC_GRIDFIT ::
79 * Grid-fitting must be used with ClearType's symmetric smoothing.
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).
88 * 'ClearType' is Microsoft's implementation of LCD rendering, partly
89 * protected by patents.
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
101 /**************************************************************************
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
113 * The source face handle.
116 * The vertical character pixel size.
119 * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no
120 * 'gasp' table in the face.
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
132 FT_Get_Gasp( FT_Face face,
140 #endif /* FTGASP_H_ */