# FreeType-2.1.4 API Reference

# Multiple Masters

## Synopsys

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