Skip to content

FreeType » Docs » Format-Specific API » Gasp Table

# Gasp Table

## Synopsis

The function `FT_Get_Gasp` can be used to query a TrueType or OpenType font for specific entries in its ‘gasp’ table, if any. This is mainly useful when implementing native TrueType hinting with the bytecode interpreter to duplicate the Windows text rendering results.

## FT_GASP_XXX

Defined in FT_GASP_H (freetype/ftgasp.h).

    #define FT_GASP_NO_TABLE               -1
    #define FT_GASP_DO_GRIDFIT           0x01
    #define FT_GASP_DO_GRAY              0x02
    #define FT_GASP_SYMMETRIC_GRIDFIT    0x04
    #define FT_GASP_SYMMETRIC_SMOOTHING  0x08

A list of values and/or bit-flags returned by the `FT_Get_Gasp` function.

#### values

FT_GASP_NO_TABLE | This special value means that there is no GASP table in this face. It is up to the client to decide what to do.
FT_GASP_DO_GRIDFIT | Grid-fitting and hinting should be performed at the specified ppem. This really means TrueType bytecode interpretation. If this bit is not set, no hinting gets applied.
FT_GASP_DO_GRAY | Anti-aliased rendering should be performed at the specified ppem. If not set, do monochrome rendering.
FT_GASP_SYMMETRIC_SMOOTHING | If set, smoothing along multiple axes must be used with ClearType.
FT_GASP_SYMMETRIC_GRIDFIT | Grid-fitting must be used with ClearType's symmetric smoothing.

#### note

The bit-flags `FT_GASP_DO_GRIDFIT` and `FT_GASP_DO_GRAY` are to be used for standard font rasterization only. Independently of that, `FT_GASP_SYMMETRIC_SMOOTHING` and `FT_GASP_SYMMETRIC_GRIDFIT` are to be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT` and `FT_GASP_DO_GRAY` are consequently ignored).

‘ClearType’ is Microsoft's implementation of LCD rendering, partly protected by patents.

#### since

2.3.0

## FT_Get_Gasp

Defined in FT_GASP_H (freetype/ftgasp.h).

      FT_EXPORT( FT_Int )
      FT_Get_Gasp( FT_Face  face,
                   FT_UInt  ppem );

For a TrueType or OpenType font file, return the rasterizer behaviour flags from the font's ‘gasp’ table corresponding to a given character pixel size.

#### input

face | The source face handle.
ppem | The vertical character pixel size.

#### return

Bit flags (see `FT_GASP_XXX`), or `FT_GASP_NO_TABLE` if there is no ‘gasp’ table in the face.

#### note

If you want to use the MM functionality of OpenType variation fonts (i.e., using `FT_Set_Var_Design_Coordinates` and friends), call this function after setting an instance since the return values can change.

#### since

2.3.0