FreeType-2.2.1 API Reference

TrueTypeGX/AAT Validation

Synopsis

FT_VALIDATE_GX_LENGTHFT_TrueTypeGX_FreeFT_ClassicKern_Free
FT_VALIDATE_GXXXXFT_VALIDATE_CKERNXXX
FT_TrueTypeGX_ValidateFT_ClassicKern_Validate


This section contains the declaration of functions to validate some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop, lcar).


FT_VALIDATE_GX_LENGTH


#define FT_VALIDATE_GX_LENGTH     (FT_VALIDATE_GX_LAST_INDEX + 1)


The number of tables checked in this module. Use it as a parameter for the ‘table-length’ argument of function FT_TrueTypeGX_Validate.



[Index] [TOC]

FT_VALIDATE_GXXXX


#define FT_VALIDATE_feat  FT_VALIDATE_GX_BITFIELD( feat )
#define FT_VALIDATE_mort  FT_VALIDATE_GX_BITFIELD( mort )
#define FT_VALIDATE_morx  FT_VALIDATE_GX_BITFIELD( morx )
#define FT_VALIDATE_bsln  FT_VALIDATE_GX_BITFIELD( bsln )
#define FT_VALIDATE_just  FT_VALIDATE_GX_BITFIELD( just )
#define FT_VALIDATE_kern  FT_VALIDATE_GX_BITFIELD( kern )
#define FT_VALIDATE_opbd  FT_VALIDATE_GX_BITFIELD( opbd )
#define FT_VALIDATE_trak  FT_VALIDATE_GX_BITFIELD( trak )
#define FT_VALIDATE_prop  FT_VALIDATE_GX_BITFIELD( prop )
#define FT_VALIDATE_lcar  FT_VALIDATE_GX_BITFIELD( lcar )

#define FT_VALIDATE_GX  ( FT_VALIDATE_feat | \
                          FT_VALIDATE_mort | \
                          FT_VALIDATE_morx | \
                          FT_VALIDATE_bsln | \
                          FT_VALIDATE_just | \
                          FT_VALIDATE_kern | \
                          FT_VALIDATE_opbd | \
                          FT_VALIDATE_trak | \
                          FT_VALIDATE_prop | \
                          FT_VALIDATE_lcar )


A list of bit-field constants used with FT_TrueTypeGX_Validate to indicate which TrueTypeGX/AAT Type tables should be validated.


values
FT_VALIDATE_feat

Validate ‘feat’ table.

FT_VALIDATE_mort

Validate ‘mort’ table.

FT_VALIDATE_morx

Validate ‘morx’ table.

FT_VALIDATE_bsln

Validate ‘bsln’ table.

FT_VALIDATE_just

Validate ‘just’ table.

FT_VALIDATE_kern

Validate ‘kern’ table.

FT_VALIDATE_opbd

Validate ‘opbd’ table.

FT_VALIDATE_trak

Validate ‘trak’ table.

FT_VALIDATE_prop

Validate ‘prop’ table.

FT_VALIDATE_lcar

Validate ‘lcar’ table.

FT_VALIDATE_GX

Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop and lcar).


[Index] [TOC]

FT_TrueTypeGX_Validate


  FT_EXPORT( FT_Error )
  FT_TrueTypeGX_Validate( FT_Face   face,
                          FT_UInt   validation_flags,
                          FT_Bytes  tables[FT_VALIDATE_GX_LENGTH],
                          FT_UInt   table_length );


Validate various TrueTypeGX 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_GXXXX for possible values.

table_length

The size of the ‘tables’ array. Normally, FT_VALIDATE_GX_LENGTH should be passed.

output
tables

The array where all validated sfnt tables are stored. The array itself must be allocated by a client.

return

FreeType error code. 0 means success.

note

This function only works with TrueTypeGX fonts, returning an error otherwise.

After use, the application should deallocate the buffers pointed to by each ‘tables’ element, by calling FT_TrueTypeGX_Free. A NULL value indicates that the table either doesn't exist in the font, the application hasn't asked for validation, or the validator doesn't have the ability to validate the sfnt table.


[Index] [TOC]

FT_TrueTypeGX_Free


  FT_EXPORT( void )
  FT_TrueTypeGX_Free( FT_Face   face,
                      FT_Bytes  table );


Free the buffer allocated by TrueTypeGX validator.


input
face

A handle to the input face.

table

The pointer to the buffer allocated by FT_TrueTypeGX_Validate.

note

This function must be used to free the buffer allocated by FT_TrueTypeGX_Validate only.


[Index] [TOC]

FT_VALIDATE_CKERNXXX


#define FT_VALIDATE_MS     ( FT_VALIDATE_GX_START << 0 )
#define FT_VALIDATE_APPLE  ( FT_VALIDATE_GX_START << 1 )

#define FT_VALIDATE_CKERN  ( FT_VALIDATE_MS | FT_VALIDATE_APPLE )


A list of bit-field constants used with FT_ClassicKern_Validate to indicate the classic kern dialect or dialects. If the selected type doesn't fit, FT_ClassicKern_Validate regards the table as invalid.


values
FT_VALIDATE_MS

Handle the ‘kern’ table as a classic Microsoft kern table.

FT_VALIDATE_APPLE

Handle the ‘kern’ table as a classic Apple kern table.

FT_VALIDATE_CKERN

Handle the ‘kern’ as either classic Apple or Microsoft kern table.


[Index] [TOC]

FT_ClassicKern_Validate


  FT_EXPORT( FT_Error )
  FT_ClassicKern_Validate( FT_Face    face,
                           FT_UInt    validation_flags,
                           FT_Bytes  *ckern_table );


Validate classic (16bit format) kern table to assure that the 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).

The ‘kern’ table validator in FT_TrueTypeGX_Validate deals with both the new 32bit format and the classic 16bit format, while FT_ClassicKern_Validate only supports the classic 16bit format.


input
face

A handle to the input face.

validation_flags

A bit field which specifies the dialect to be validated. See FT_VALIDATE_CKERNXXX for possible values.

output
ckern_table

A pointer to the kern table.

return

FreeType error code. 0 means success.

note

After use, the application should deallocate the buffers pointed to by ‘ckern_table’, by calling FT_ClassicKern_Free. A NULL value indicates that the table doesn't exist in the font.


[Index] [TOC]

FT_ClassicKern_Free


  FT_EXPORT( void )
  FT_ClassicKern_Free( FT_Face   face,
                       FT_Bytes  table );


Free the buffer allocated by classic Kern validator.


input
face

A handle to the input face.

table

The pointer to the buffer that is allocated by FT_ClassicKern_Validate.

note

This function must be used to free the buffer allocated by FT_ClassicKern_Validate only.


[Index] [TOC]