Skip to content

FreeType » Docs » Format-Specific API » BDF and PCF Files


BDF and PCF Files

Synopsis

This section contains the declaration of functions specific to BDF and PCF fonts.

BDF_PropertyType

Defined in FT_BDF_H (freetype/ftbdf.h).

  typedef enum  BDF_PropertyType_
  {
    BDF_PROPERTY_TYPE_NONE     = 0,
    BDF_PROPERTY_TYPE_ATOM     = 1,
    BDF_PROPERTY_TYPE_INTEGER  = 2,
    BDF_PROPERTY_TYPE_CARDINAL = 3

  } BDF_PropertyType;

A list of BDF property types.

values

BDF_PROPERTY_TYPE_NONE

Value 0 is used to indicate a missing property.

BDF_PROPERTY_TYPE_ATOM

Property is a string atom.

BDF_PROPERTY_TYPE_INTEGER

Property is a 32-bit signed integer.

BDF_PROPERTY_TYPE_CARDINAL

Property is a 32-bit unsigned integer.


BDF_Property

Defined in FT_BDF_H (freetype/ftbdf.h).

  typedef struct BDF_PropertyRec_*  BDF_Property;

A handle to a BDF_PropertyRec structure to model a given BDF/PCF property.


BDF_PropertyRec

Defined in FT_BDF_H (freetype/ftbdf.h).

  typedef struct  BDF_PropertyRec_
  {
    BDF_PropertyType  type;
    union {
      const char*     atom;
      FT_Int32        integer;
      FT_UInt32       cardinal;

    } u;

  } BDF_PropertyRec;

This structure models a given BDF/PCF property.

fields

type

The property type.

u.atom

The atom string, if type is BDF_PROPERTY_TYPE_ATOM. May be NULL, indicating an empty string.

u.integer

A signed integer, if type is BDF_PROPERTY_TYPE_INTEGER.

u.cardinal

An unsigned integer, if type is BDF_PROPERTY_TYPE_CARDINAL.


FT_Get_BDF_Charset_ID

Defined in FT_BDF_H (freetype/ftbdf.h).

  FT_EXPORT( FT_Error )
  FT_Get_BDF_Charset_ID( FT_Face       face,
                         const char*  *acharset_encoding,
                         const char*  *acharset_registry );

Retrieve a BDF font character set identity, according to the BDF specification.

input

face

A handle to the input face.

output

acharset_encoding

Charset encoding, as a C string, owned by the face.

acharset_registry

Charset registry, as a C string, owned by the face.

return

FreeType error code. 0 means success.

note

This function only works with BDF faces, returning an error otherwise.


FT_Get_BDF_Property

Defined in FT_BDF_H (freetype/ftbdf.h).

  FT_EXPORT( FT_Error )
  FT_Get_BDF_Property( FT_Face           face,
                       const char*       prop_name,
                       BDF_PropertyRec  *aproperty );

Retrieve a BDF property from a BDF or PCF font file.

input

face

A handle to the input face.

name

The property name.

output

aproperty

The property.

return

FreeType error code. 0 means success.

note

This function works with BDF and PCF fonts. It returns an error otherwise. It also returns an error if the property is not in the font.

A ‘property’ is a either key-value pair within the STARTPROPERTIES … ENDPROPERTIES block of a BDF font or a key-value pair from the info->props array within a FontRec structure of a PCF font.

Integer properties are always stored as ‘signed’ within PCF fonts; consequently, BDF_PROPERTY_TYPE_CARDINAL is a possible return value for BDF fonts only.

In case of error, aproperty->type is always set to BDF_PROPERTY_TYPE_NONE.