FreeType-2.8.1 API Reference

OpenType Validation

Synopsis

FT_OpenType_Validate 
FT_OpenType_FreeFT_VALIDATE_OTXXX

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

FT_OpenType_Validate

Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).

  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 that 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 that 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.


FT_OpenType_Free

Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).

  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.


FT_VALIDATE_OTXXX

Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).

#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_MATH  0x2000

#define FT_VALIDATE_OT  ( FT_VALIDATE_BASE | \
                          FT_VALIDATE_GDEF | \
                          FT_VALIDATE_GPOS | \
                          FT_VALIDATE_GSUB | \
                          FT_VALIDATE_JSTF | \
                          FT_VALIDATE_MATH )

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_MATH

Validate MATH table.

FT_VALIDATE_OT

Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).