# FreeType-2.1.8 API Reference

# Multiple Masters

## Synopsis

| FT_MM_Axis |  | FT_Set_MM_Design_Coordinates
| FT_Multi_Master |  | FT_Set_MM_Blend_Coordinates
| FT_Get_Multi_Master |  |

The following types and functions are used to manage Multiple Master fonts, i.e. the selection of specific design instances by setting design axis coordinates.

#### FT_MM_Axis

      typedef struct  FT_MM_Axis_
      {
        FT_String*  name;
        FT_Long     minimum;
        FT_Long     maximum;

      } FT_MM_Axis;

A simple structure used to model a given axis in design space for Multiple Masters fonts.

fields

name | The axis's name.
minimum | The axis's minimum design coordinate.
maximum | The axis's maximum design coordinate.

#### FT_Multi_Master

      typedef struct  FT_Multi_Master_
      {
        FT_UInt     num_axis;
        FT_UInt     num_designs;
        FT_MM_Axis  axis[T1_MAX_MM_AXIS];

      } FT_Multi_Master;

A structure used to model the axes and space of a Multiple Masters font.

fields

num_axis | Number of axes. Cannot exceed 4.
num_designs | Number of designs; should ne normally 2^num_axis even though the Type 1 specification strangely allows for intermediate designs to be present. This number cannot exceed 16.
axis | A table of axis descriptors.

#### FT_Get_Multi_Master

      FT_EXPORT( FT_Error )
      FT_Get_Multi_Master( FT_Face           face,
                           FT_Multi_Master  *amaster );

Retrieves the Multiple Master descriptor of a given font.

input

face | A handle to the source face.

output

amaster | The Multiple Masters descriptor.

return
FreeType error code. 0 means success.

#### FT_Set_MM_Design_Coordinates

      FT_EXPORT( FT_Error )
      FT_Set_MM_Design_Coordinates( FT_Face   face,
                                    FT_UInt   num_coords,
                                    FT_Long*  coords );

For Multiple Masters fonts, choose an interpolated font design through design coordinates.

inout

face | A handle to the source face.

input

num_coords | The number of design coordinates (must be equal to the number of axes in the font).
coords | An array of design coordinates.

return
FreeType error code. 0 means success.

#### FT_Set_MM_Blend_Coordinates

      FT_EXPORT( FT_Error )
      FT_Set_MM_Blend_Coordinates( FT_Face    face,
                                   FT_UInt    num_coords,
                                   FT_Fixed*  coords );

For Multiple Masters fonts, choose an interpolated font design through normalized blend coordinates.

inout

face | A handle to the source face.

input

num_coords | The number of design coordinates (must be equal to the number of axes in the font).
coords | The design coordinates array (each element must be between 0 and 1.0).

return
FreeType error code. 0 means success.