|  |  |  | Cairo: A Vector Graphics Library |  | 
|---|---|---|---|---|
typedef cairo_font_face_t; cairo_font_face_t* cairo_font_face_reference (cairo_font_face_t *font_face); void cairo_font_face_destroy (cairo_font_face_t *font_face); cairo_status_t cairo_font_face_status (cairo_font_face_t *font_face); void* cairo_font_face_get_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key); cairo_status_t cairo_font_face_set_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); enum cairo_font_type_t; cairo_font_type_t cairo_font_face_get_type (cairo_font_face_t *font_face);
typedef struct _cairo_font_face cairo_font_face_t;
A cairo_font_face_t specifies all aspects of a font other
than the size or font matrix (a font matrix is used to distort
a font by sheering it or scaling it unequally in the two
directions) . A font face can be set on a cairo_t by using
cairo_set_font_face(); the size and font matrix are set with
cairo_set_font_size() and cairo_set_font_matrix().
cairo_font_face_t* cairo_font_face_reference (cairo_font_face_t *font_face);
Increases the reference count on font_face by one. This prevents
font_face from being destroyed until a matching call to
cairo_font_face_destroy() is made.
| font_face: | a cairo_font_face_t, (may be NULL in which case this function does nothing). | 
| Returns : | the referenced cairo_font_face_t. | 
void cairo_font_face_destroy (cairo_font_face_t *font_face);
Decreases the reference count on font_face by one. If the result
is zero, then font_face and all associated resources are freed.
See cairo_font_face_reference().
| font_face: | a cairo_font_face_t | 
cairo_status_t cairo_font_face_status (cairo_font_face_t *font_face);
Checks whether an error has previously occurred for this font face
| font_face: | a cairo_font_face_t | 
| Returns : | CAIRO_STATUS_SUCCESSor another error such asCAIRO_STATUS_NO_MEMORY. | 
void* cairo_font_face_get_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key);
Return user data previously attached to font_face using the specified
key.  If no user data has been attached with the given key this
function returns NULL.
| font_face: | a cairo_font_face_t | 
| key: | the address of the cairo_user_data_key_t the user data was attached to | 
| Returns : | the user data previously attached or NULL. | 
cairo_status_t cairo_font_face_set_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy);
Attach user data to font_face.  To remove user data from a font face,
call this function with the key that was used to set it and NULL
for data.
| font_face: | a cairo_font_face_t | 
| key: | the address of a cairo_user_data_key_t to attach the user data to | 
| user_data: | the user data to attach to the font face | 
| destroy: | a cairo_destroy_func_t which will be called when the font face is destroyed or when new user data is attached using the same key. | 
| Returns : | CAIRO_STATUS_SUCCESSorCAIRO_STATUS_NO_MEMORYif a
slot could not be allocated for the user data. | 
typedef enum _cairo_font_type {
    CAIRO_FONT_TYPE_TOY,
    CAIRO_FONT_TYPE_FT,
    CAIRO_FONT_TYPE_WIN32,
    CAIRO_FONT_TYPE_ATSUI
} cairo_font_type_t;
cairo_font_type_t is used to describe the type of a given font face or scaled font. The font types are also known as "font backends" within cairo.
The type of a font face is determined by the function used to
create it, which will generally be of the form
cairo_type_font_face_create. The font face type can be queried
with cairo_font_face_get_type()
The various cairo_font_face functions can be used with a font face of any type.
The type of a scaled font is determined by the type of the font
face passed to cairo_scaled_font_create. The scaled font type can
be queried with cairo_scaled_font_get_type()
The various cairo_scaled_font functions can be used with scaled fonts of any type, but some font backends also provide type-specific functions that must only be called with a scaled font of the appropriate type. These functions have names that begin with cairo_type_scaled_font such as cairo_ft_scaled_font_lock_face.
The behavior of calling a type-specific function with a scaled font of the wrong type is undefined.
New entries may be added in future versions.
Since 1.2
cairo_font_type_t cairo_font_face_get_type (cairo_font_face_t *font_face);
This function returns the type of the backend used to create a font face. See cairo_font_type_t for available types.
| font_face: | a cairo_font_face_t | 
| Returns : | The type of font_face. | 
Since 1.2