Pango Reference Manual: PangoFcDecoder

## PangoFcDecoder PangoFcDecoder — Custom font encoding handling |

## Synopsis

    struct              PangoFcDecoder;
    struct              PangoFcDecoderClass;
    FcCharSet *         pango_fc_decoder_get_charset        (PangoFcDecoder *decoder,
                                                             PangoFcFont *fcfont);
    PangoGlyph          pango_fc_decoder_get_glyph          (PangoFcDecoder *decoder,
                                                             PangoFcFont *fcfont,
                                                             guint32 wc);

## Object Hierarchy

      GObject
       +----PangoFcDecoder

## Description

PangoFcDecoder represents a decoder that an application provides for handling a font that is encoded in a custom way.

## Details

### struct PangoFcDecoder

    struct PangoFcDecoder;

PangoFcDecoder is a virtual base class that implementations will inherit from. It's the interface that is used to define a custom encoding for a font. These objects are created in your code from a function callback that was originally registered with `pango_fc_font_map_add_decoder_find_func()`. Pango requires information about the supported charset for a font as well as the individual character to glyph conversions. Pango gets that information via the get_charset and get_glyph callbacks into your object implementation.

Since 1.6

### struct PangoFcDecoderClass

    struct PangoFcDecoderClass {
      FcCharSet  *(*get_charset) (PangoFcDecoder *decoder,
    			      PangoFcFont    *fcfont);
      PangoGlyph  (*get_glyph)   (PangoFcDecoder *decoder,
    			      PangoFcFont    *fcfont,
    			      guint32         wc);
    };

Class structure for PangoFcDecoder.

`get_charset` () | This returns an FcCharset given a PangoFcFont that includes a list of supported characters in the font. The FcCharSet that is returned should be an internal reference to your code. Pango will not free this structure. It is important that you make this callback fast because this callback is called separately for each character to determine Unicode coverage.
`get_glyph` () | This returns a single PangoGlyph for a given Unicode code point.

Since 1.6

### pango_fc_decoder_get_charset ()

    FcCharSet *         pango_fc_decoder_get_charset        (PangoFcDecoder *decoder,
                                                             PangoFcFont *fcfont);

Generates an FcCharSet of supported characters for the fcfont given. The returned FcCharSet will be a reference to an internal value stored by the PangoFcDecoder and must not be modified or freed.

`decoder` : | a PangoFcDecoder
`fcfont` : | the PangoFcFont to query.
Returns : | the FcCharset for `fcfont`; must not be modified or freed.

Since 1.6

### pango_fc_decoder_get_glyph ()

    PangoGlyph          pango_fc_decoder_get_glyph          (PangoFcDecoder *decoder,
                                                             PangoFcFont *fcfont,
                                                             guint32 wc);

Generates a PangoGlyph for the given Unicode point using the custom decoder. For complex scripts where there can be multiple glyphs for a single character, the decoder will return whatever glyph is most convenient for it. (Usually whatever glyph is directly in the fonts character map table.)

`decoder` : | a PangoFcDecoder
`fcfont` : | a PangoFcFont to query.
`wc` : | the Unicode code point to convert to a single PangoGlyph.
Returns : | the glyph index, or 0 if the glyph isn't covered by the font.

Since 1.6