## PangoFcFontMap PangoFcFontMap — Base fontmap class for Fontconfig-based backends |

## Functions

PangoContext * | pango_fc_font_map_create_context ()
PangoFcDecoder * | (*PangoFcDecoderFindFunc) ()
void | pango_fc_font_map_add_decoder_find_func ()
PangoFcDecoder * | pango_fc_font_map_find_decoder ()
void | pango_fc_font_map_cache_clear ()
void | pango_fc_font_map_config_changed ()
void | pango_fc_font_map_shutdown ()
void | pango_fc_font_map_set_config ()
FcConfig * | pango_fc_font_map_get_config ()
PangoFontDescription * | pango_fc_font_description_from_pattern ()

## Types and Values

| PangoFcFontMap
| PangoFcFontMapClass
#define | PANGO_FC_FONT_FEATURES
#define | PANGO_FC_GRAVITY
#define | PANGO_FC_VERSION
#define | PANGO_FC_PRGNAME
#define | PANGO_FC_FONT_VARIATIONS

## Object Hierarchy

        GObject
        ╰── PangoFontMap
            ╰── PangoFcFontMap
                ├── PangoFT2FontMap
                ╰── PangoXftFontMap

## Implemented Interfaces

PangoFcFontMap implements GListModel.

## Description

PangoFcFontMap is a base class for font map implementations using the Fontconfig and FreeType libraries. It is used in the

Xft and FreeType

backends shipped with Pango, but can also be used when creating new backends. Any backend deriving from this base class will take advantage of the wide range of shapers implemented using FreeType that come with Pango.

## Functions

### pango_fc_font_map_create_context ()

    PangoContext *
    pango_fc_font_map_create_context (PangoFcFontMap *fcfontmap);

`pango_fc_font_map_create_context` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `pango_font_map_create_context()` instead.

Creates a new context for this fontmap. This function is intended only for backend implementations deriving from PangoFcFontMap; it is possible that a backend will store additional information needed for correct operation on the PangoContext after calling this function.

#### Parameters

fcfontmap | a PangoFcFontMap |

#### Returns

a new PangoContext.

[transfer full]

Since: 1.4

### PangoFcDecoderFindFunc ()

    PangoFcDecoder *
    (*PangoFcDecoderFindFunc) (FcPattern *pattern,
                               gpointer user_data);

Callback function passed to `pango_fc_font_map_add_decoder_find_func()`.

#### Parameters

pattern | a fully resolved FcPattern specifying the font on the system |
user_data | user data passed to `pango_fc_font_map_add_decoder_find_func()` |

#### Returns

a new reference to a custom decoder for this pattern, or `NULL` if the default decoder handling should be used.

### pango_fc_font_map_add_decoder_find_func ()

    void
    pango_fc_font_map_add_decoder_find_func
                                   (PangoFcFontMap *fcfontmap,
                                    PangoFcDecoderFindFunc findfunc,
                                    gpointer user_data,
                                    GDestroyNotify dnotify);

This function saves a callback method in the PangoFcFontMap that will be called whenever new fonts are created. If the function returns a PangoFcDecoder, that decoder will be used to determine both coverage via a FcCharSet and a one-to-one mapping of characters to glyphs. This will allow applications to have application-specific encodings for various fonts.

#### Parameters

fcfontmap | The PangoFcFontMap to add this method to. |
findfunc | The PangoFcDecoderFindFunc callback function |
user_data | User data. |
dnotify | A GDestroyNotify callback that will be called when the fontmap is finalized and the decoder is released. |

Since: 1.6

### pango_fc_font_map_find_decoder ()

    PangoFcDecoder *
    pango_fc_font_map_find_decoder (PangoFcFontMap *fcfontmap,
                                    FcPattern *pattern);

Finds the decoder to use for `pattern` . Decoders can be added to a font map using `pango_fc_font_map_add_decoder_find_func()`.

#### Parameters

fcfontmap | The PangoFcFontMap to use. |
pattern | The FcPattern to find the decoder for. |

#### Returns

a newly created PangoFcDecoder object or `NULL` if no decoder is set for `pattern` .

[transfer full][nullable]

Since: 1.26

### pango_fc_font_map_cache_clear ()

    void
    pango_fc_font_map_cache_clear (PangoFcFontMap *fcfontmap);

Clear all cached information and fontsets for this font map; this should be called whenever there is a change in the output of the `default_substitute()` virtual function of the font map, or if fontconfig has been reinitialized to new configuration.

#### Parameters

fcfontmap | a PangoFcFontMap |

Since: 1.4

### pango_fc_font_map_config_changed ()

    void
    pango_fc_font_map_config_changed (PangoFcFontMap *fcfontmap);

Informs font map that the fontconfig configuration (ie, FcConfig object) used by this font map has changed. This currently calls `pango_fc_font_map_cache_clear()` which ensures that list of fonts, etc will be regenerated using the updated configuration.

#### Parameters

fcfontmap | a PangoFcFontMap |

Since: 1.38

### pango_fc_font_map_shutdown ()

    void
    pango_fc_font_map_shutdown (PangoFcFontMap *fcfontmap);

Clears all cached information for the fontmap and marks all fonts open for the fontmap as dead. (See the `shutdown()` virtual function of PangoFcFont.) This function might be used by a backend when the underlying windowing system for the font map exits. This function is only intended to be called only for backend implementations deriving from PangoFcFontMap.

#### Parameters

fcfontmap | a PangoFcFontMap |

Since: 1.4

### pango_fc_font_map_set_config ()

    void
    pango_fc_font_map_set_config (PangoFcFontMap *fcfontmap,
                                  FcConfig *fcconfig);

Set the FcConfig for this font map to use. The default value is `NULL`, which causes Fontconfig to use its global "current config". You can create a new FcConfig object and use this API to attach it to a font map.

This is particularly useful for example, if you want to use application fonts with Pango. For that, you would create a fresh FcConfig, add your app fonts to it, and attach it to a new Pango font map.

If `fcconfig` is different from the previous config attached to the font map, `pango_fc_font_map_config_changed()` is called.

This function acquires a reference to the FcConfig object; the caller does NOT need to retain a reference.

[skip]

#### Parameters

fcfontmap | a PangoFcFontMap |
fcconfig | a `FcConfig`, or `NULL`. | [nullable]

Since: 1.38

### pango_fc_font_map_get_config ()

    FcConfig *
    pango_fc_font_map_get_config (PangoFcFontMap *fcfontmap);

Fetches the `FcConfig` attached to a font map.

See also: `pango_fc_font_map_set_config()`

[skip]

#### Parameters

fcfontmap | a PangoFcFontMap |

#### Returns

the `FcConfig` object attached to `fcfontmap` , which might be `NULL`.

[nullable]

Since: 1.38

### pango_fc_font_description_from_pattern ()

    PangoFontDescription *
    pango_fc_font_description_from_pattern
                                   (FcPattern *pattern,
                                    gboolean include_size);

Creates a PangoFontDescription that matches the specified Fontconfig pattern as closely as possible. Many possible Fontconfig pattern values, such as `FC_RASTERIZER` or `FC_DPI`, don't make sense in the context of PangoFontDescription, so will be ignored.

#### Parameters

pattern | a FcPattern |
include_size | if `TRUE`, the pattern will include the size from the `pattern` ; otherwise the resulting pattern will be unsized. (only `FC_SIZE` is examined, not `FC_PIXEL_SIZE`) |

#### Returns

a new PangoFontDescription. Free with `pango_font_description_free()`.

Since: 1.4

## Types and Values

### PangoFcFontMap

    typedef struct _PangoFcFontMap PangoFcFontMap;

PangoFcFontMap is a base class for font map implementations using the Fontconfig and FreeType libraries. To create a new backend using Fontconfig and FreeType, you derive from this class and implement a `new_font()` virtual function that creates an instance deriving from PangoFcFont.

### PangoFcFontMapClass

    typedef struct _PangoFcFontMapClass PangoFcFontMapClass;

Class structure for PangoFcFontMap.

#### Members

### PANGO_FC_FONT_FEATURES

    #define PANGO_FC_FONT_FEATURES "fontfeatures"

String representing a fontconfig property name that Pango reads from font patterns to populate list of OpenType features to be enabled for the font by default.

The property will have a number of string elements, each of which is the OpenType feature tag of one feature to enable.

This is equivalent to FC_FONT_FEATURES in versions of fontconfig that have that.

Since: 1.34

### PANGO_FC_GRAVITY

    #define PANGO_FC_GRAVITY "pangogravity"

String representing a fontconfig property name that Pango sets on any fontconfig pattern it passes to fontconfig if a PangoGravity other than `PANGO_GRAVITY_SOUTH` is desired.

The property will have a PangoGravity value as a string, like "east". This can be used to write fontconfig configuration rules to choose different fonts for horizontal and vertical writing directions.

Since: 1.20

### PANGO_FC_VERSION

    #define PANGO_FC_VERSION "pangoversion"

String representing a fontconfig property name that Pango sets on any fontconfig pattern it passes to fontconfig.

The property will have an integer value equal to what `pango_version()` returns. This can be used to write fontconfig configuration rules that only affect certain pango versions (or only pango-using applications, or only non-pango-using applications).

Since: 1.20

### PANGO_FC_PRGNAME

    #define PANGO_FC_PRGNAME "prgname"

String representing a fontconfig property name that Pango sets on any fontconfig pattern it passes to fontconfig.

The property will have a string equal to what `g_get_prgname()` returns. This can be used to write fontconfig configuration rules that only affect certain applications.

This is equivalent to FC_PRGNAME in versions of fontconfig that have that.

Since: 1.24

### PANGO_FC_FONT_VARIATIONS

    #define PANGO_FC_FONT_VARIATIONS "fontvariations"

String representing a fontconfig property name that Pango reads from font patterns to populate list of OpenType font variations to be used for a font.

The property will have a string elements, each of which a comma-separated list of OpenType axis setting of the form AXIS=VALUE.

## See Also

PangoFcFont | The base class for fonts; creating a new Fontconfig-based backend involves deriving from both PangoFcFontMap and PangoFcFont.