# FreeType-2.9.1 API Reference

# Size Management

## Synopsis

FT_New_Size | FT_Done_Size | FT_Activate_Size |

When creating a new face object (e.g., with FT_New_Face), an FT_Size object is automatically created and used to store all pixel-size dependent information, available in the ‘face->size’ field.

It is however possible to create more sizes for a given face, mostly in order to manage several character pixel sizes of the same font family and style. See FT_New_Size and FT_Done_Size.

Note that FT_Set_Pixel_Sizes and FT_Set_Char_Size only modify the contents of the current ‘active’ size; you thus need to use FT_Activate_Size to change it.

99% of applications won't need the functions provided here, especially if they use the caching sub-system, so be cautious when using these.

### FT_New_Size

Defined in FT_SIZES_H (freetype/ftsizes.h).

      FT_EXPORT( FT_Error )
      FT_New_Size( FT_Face   face,
                   FT_Size*  size );

Create a new size object from a given face object.

#### input

face | A handle to a parent face object.

#### output

asize | A handle to a new size object.

#### return

FreeType error code. 0 means success.

#### note

You need to call FT_Activate_Size in order to select the new size for upcoming calls to FT_Set_Pixel_Sizes, FT_Set_Char_Size, FT_Load_Glyph, FT_Load_Char, etc.

### FT_Done_Size

Defined in FT_SIZES_H (freetype/ftsizes.h).

      FT_EXPORT( FT_Error )
      FT_Done_Size( FT_Size  size );

Discard a given size object. Note that FT_Done_Face automatically discards all size objects allocated with FT_New_Size.

#### input

size | A handle to a target size object.

#### return

FreeType error code. 0 means success.

### FT_Activate_Size

Defined in FT_SIZES_H (freetype/ftsizes.h).

      FT_EXPORT( FT_Error )
      FT_Activate_Size( FT_Size  size );

Even though it is possible to create several size objects for a given face (see FT_New_Size for details), functions like FT_Load_Glyph or FT_Load_Char only use the one that has been activated last to determine the ‘current character pixel size’.

This function can be used to ‘activate’ a previously created size object.

#### input

size | A handle to a target size object.

#### return

FreeType error code. 0 means success.

#### note

If ‘face’ is the size's parent face object, this function changes the value of ‘face->size’ to the input size handle.