## PangoFcFont

PangoFcFont — Base font class for Fontconfig-based backends

## Functions

FT_Face | pango_fc_font_lock_face ()
void | pango_fc_font_unlock_face ()
gboolean | pango_fc_font_has_char ()
guint | pango_fc_font_get_glyph ()
PangoGlyph | pango_fc_font_get_unknown_glyph ()
void | pango_fc_font_kern_glyphs ()

## Properties

PangoFcFontMap * | fontmap | Read / Write
gpointer | pattern | Read / Write / Construct Only

## Types and Values

struct | PangoFcFont
struct | PangoFcFontClass
#define | PANGO_RENDER_TYPE_FC

## Object Hierarchy

        GObject
        ╰── PangoFont
            ╰── PangoFcFont

## Description

PangoFcFont is a base class for font implementation 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_lock_face ()

    FT_Face
    pango_fc_font_lock_face (PangoFcFont *font);

Gets the FreeType FT_Face associated with a font, This face will be kept around until you call `pango_fc_font_unlock_face()`.

#### Parameters

font | a PangoFcFont. |

#### Returns

the FreeType FT_Face associated with `font` .

Since: 1.4

### pango_fc_font_unlock_face ()

    void
    pango_fc_font_unlock_face (PangoFcFont *font);

Releases a font previously obtained with `pango_fc_font_lock_face()`.

#### Parameters

font | a PangoFcFont. |

Since: 1.4

### pango_fc_font_has_char ()

    gboolean
    pango_fc_font_has_char (PangoFcFont *font,
                            gunichar wc);

Determines whether `font` has a glyph for the codepoint `wc` .

#### Parameters

font | a PangoFcFont |
wc | Unicode codepoint to look up |

#### Returns

`TRUE` if `font` has the requested codepoint.

Since: 1.4

### pango_fc_font_get_glyph ()

    guint
    pango_fc_font_get_glyph (PangoFcFont *font,
                             gunichar wc);

Gets the glyph index for a given Unicode character for `font` . If you only want to determine whether the font has the glyph, use `pango_fc_font_has_char()`.

#### Parameters

font | a PangoFcFont |
wc | Unicode character to look up |

#### Returns

the glyph index, or 0, if the Unicode character doesn't exist in the font.

Since: 1.4

### pango_fc_font_get_unknown_glyph ()

    PangoGlyph
    pango_fc_font_get_unknown_glyph (PangoFcFont *font,
                                     gunichar wc);

`pango_fc_font_get_unknown_glyph` is deprecated and should not be used in newly-written code.

Returns the index of a glyph suitable for drawing `wc` as an unknown character.

Use `PANGO_GET_UNKNOWN_GLYPH()` instead.

#### Parameters

font | a PangoFcFont |
wc | the Unicode character for which a glyph is needed. |

#### Returns

a glyph index into `font` .

Since: 1.4

### pango_fc_font_kern_glyphs ()

    void
    pango_fc_font_kern_glyphs (PangoFcFont *font,
                               PangoGlyphString *glyphs);

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

Adjust each adjacent pair of glyphs in `glyphs` according to kerning information in `font` .

#### Parameters

font | a PangoFcFont |
glyphs | a PangoGlyphString |

Since: 1.4

## Types and Values

### struct PangoFcFont

    struct PangoFcFont;

PangoFcFont is a base class for font implementations using the Fontconfig and FreeType libraries and is used in conjunction with PangoFcFontMap. When deriving from this class, you need to implement all of its virtual functions other than `shutdown()` along with the `get_glyph_extents()` virtual function from PangoFont.

### struct PangoFcFontClass

    struct PangoFcFontClass {
      FT_Face    (*lock_face)         (PangoFcFont      *font);
      void       (*unlock_face)       (PangoFcFont      *font);
      gboolean   (*has_char)          (PangoFcFont      *font,
    				   gunichar          wc);
      guint      (*get_glyph)         (PangoFcFont      *font,
    				   gunichar          wc);
      PangoGlyph (*get_unknown_glyph) (PangoFcFont      *font,
    				   gunichar          wc);
      void       (*shutdown)          (PangoFcFont      *font);
    };

Class structure for PangoFcFont.

#### Members

`lock_face` () | Returns the FT_Face of the font and increases the reference count for the face by one. |
`unlock_face` () | Decreases the reference count for the FT_Face of the font by one. When the count is zero, the PangoFcFont subclass is allowed to free the FT_Face. |
`has_char` () | Return `TRUE` if the the font contains a glyph corresponding to the specified character. |
`get_glyph` () | Gets the glyph that corresponds to the given Unicode character. |
`get_unknown_glyph` () | Gets the glyph that should be used to display an unknown-glyph indication for the specified Unicode character. May be `NULL`. | [nullable]
`shutdown` () | Performs any font-specific shutdown code that needs to be done when pango_fc_font_map_shutdown is called. May be `NULL`. | [nullable]

### PANGO_RENDER_TYPE_FC

    #define PANGO_RENDER_TYPE_FC "PangoRenderFc"

A string constant used to identify shape engines that work with the fontconfig based backends. See the `engine_type` field of PangoEngineInfo.

## Property Details

### The `“fontmap”` property

      “fontmap”                  PangoFcFontMap *

The PangoFc font map this font is associated with (Since: 1.26).

Flags: Read / Write

### The `“pattern”` property

      “pattern”                  gpointer

The fontconfig pattern for this font.

Flags: Read / Write / Construct Only

## See Also

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