# FreeType-2.3.0 API Reference

# OpenType Validation

## Synopsis

| FT_VALIDATE_OTXXX |  | FT_OpenType_Validate |  | FT_OpenType_Free

This section contains the declaration of functions to validate some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF).

#### FT_VALIDATE_OTXXX
    #define FT_VALIDATE_BASE  0x0100
    #define FT_VALIDATE_GDEF  0x0200
    #define FT_VALIDATE_GPOS  0x0400
    #define FT_VALIDATE_GSUB  0x0800
    #define FT_VALIDATE_JSTF  0x1000

    #define FT_VALIDATE_OT  FT_VALIDATE_BASE | \
                            FT_VALIDATE_GDEF | \
                            FT_VALIDATE_GPOS | \
                            FT_VALIDATE_GSUB | \
                            FT_VALIDATE_JSTF
A list of bit-field constants used with FT_OpenType_Validate to indicate which OpenType tables should be validated.
values
FT_VALIDATE_BASE | Validate BASE table.
FT_VALIDATE_GDEF | Validate GDEF table.
FT_VALIDATE_GPOS | Validate GPOS table.
FT_VALIDATE_GSUB | Validate GSUB table.
FT_VALIDATE_JSTF | Validate JSTF table.
FT_VALIDATE_OT | Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF).

[Index] |  | [TOC]

#### FT_OpenType_Validate
      FT_EXPORT( FT_Error )
      FT_OpenType_Validate( FT_Face    face,
                            FT_UInt    validation_flags,
                            FT_Bytes  *BASE_table,
                            FT_Bytes  *GDEF_table,
                            FT_Bytes  *GPOS_table,
                            FT_Bytes  *GSUB_table,
                            FT_Bytes  *JSTF_table );
Validate various OpenType tables to assure that all offsets and indices are valid. The idea is that a higher-level library which actually does the text layout can access those tables without error checking (which can be quite time consuming).
input
face | A handle to the input face.
validation_flags | A bit field which specifies the tables to be validated. See FT_VALIDATE_OTXXX for possible values.
output
BASE_table | A pointer to the BASE table.
GDEF_table | A pointer to the GDEF table.
GPOS_table | A pointer to the GPOS table.
GSUB_table | A pointer to the GSUB table.
JSTF_table | A pointer to the JSTF table.
return
FreeType error code. 0 means success.
note
This function only works with OpenType fonts, returning an error otherwise. After use, the application should deallocate the five tables with FT_OpenType_Free. A NULL value indicates that the table either doesn't exist in the font, or the application hasn't asked for validation.

[Index] |  | [TOC]

#### FT_OpenType_Free
      FT_EXPORT( void )
      FT_OpenType_Free( FT_Face   face,
                        FT_Bytes  table );
Free the buffer allocated by OpenType validator.
input
face | A handle to the input face.
table | The pointer to the buffer that is allocated by FT_OpenType_Validate.
note
This function must be used to free the buffer allocated by FT_OpenType_Validate only.

[Index] |  | [TOC]