<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:doc="http://www.gtk.org/introspection/doc/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
  <include name="PangoFc" version="1.0"/>
  <include name="freetype2" version="2.0"/>
  <package name="pangoft2"/>
  <c:include name="pango/pangoft2.h"/>
  <doc:format name="gi-docgen"/>
  <namespace name="PangoFT2" version="1.0" shared-library="libpangoft2-1.0.so.0" c:identifier-prefixes="PangoFT2" c:symbol-prefixes="pango_ft2">
    <function-macro name="FONT_MAP" c:identifier="PANGO_FT2_FONT_MAP" introspectable="0">
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <class name="FontMap" c:symbol-prefix="font_map" c:type="PangoFT2FontMap" parent="PangoFc.FontMap" glib:type-name="PangoFT2FontMap" glib:get-type="pango_ft2_font_map_get_type">
      <doc xml:space="preserve">The `PangoFT2FontMap` is the `PangoFontMap` implementation for FreeType fonts.</doc>
      <implements name="Gio.ListModel"/>
      <constructor name="new" c:identifier="pango_ft2_font_map_new" version="1.2">
        <doc xml:space="preserve">Create a new `PangoFT2FontMap` object.

A fontmap is used to cache information about available fonts,
and holds certain global parameters such as the resolution and
the default substitute function (see
[method@PangoFT2.FontMap.set_default_substitute]).</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the newly created fontmap object. Unref
with g_object_unref() when you are finished with it.</doc>
          <type name="Pango.FontMap" c:type="PangoFontMap*"/>
        </return-value>
      </constructor>
      <function name="for_display" c:identifier="pango_ft2_font_map_for_display" introspectable="0">
        <doc xml:space="preserve">Returns a `PangoFT2FontMap`.

This font map is cached and should
not be freed. If the font map is no longer needed, it can
be released with pango_ft2_shutdown_display(). Use of the
global PangoFT2 fontmap is deprecated; use pango_ft2_font_map_new()
instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a `PangoFT2FontMap`.</doc>
          <type name="Pango.FontMap" c:type="PangoFontMap*"/>
        </return-value>
      </function>
      <method name="create_context" c:identifier="pango_ft2_font_map_create_context" version="1.2" introspectable="0" deprecated="1" deprecated-version="1.22">
        <doc xml:space="preserve">Create a `PangoContext` for the given fontmap.</doc>
        <doc-deprecated xml:space="preserve">Use [method@Pango.FontMap.create_context] instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the newly created context; free with
    g_object_unref().</doc>
          <type name="Pango.Context" c:type="PangoContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="fontmap" transfer-ownership="none">
            <doc xml:space="preserve">a `PangoFT2FontMap`</doc>
            <type name="FontMap" c:type="PangoFT2FontMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_default_substitute" c:identifier="pango_ft2_font_map_set_default_substitute" version="1.2" deprecated="1" deprecated-version="1.46">
        <doc xml:space="preserve">Sets a function that will be called to do final configuration
substitution on a `FcPattern` before it is used to load
the font.

This function can be used to do things like set
hinting and antialiasing options.</doc>
        <doc-deprecated xml:space="preserve">Use [method@PangoFc.FontMap.set_default_substitute]
instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fontmap" transfer-ownership="none">
            <doc xml:space="preserve">a `PangoFT2FontMap`</doc>
            <type name="FontMap" c:type="PangoFT2FontMap*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
            <doc xml:space="preserve">function to call to to do final config tweaking
       on #FcPattern objects.</doc>
            <type name="SubstituteFunc" c:type="PangoFT2SubstituteFunc"/>
          </parameter>
          <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
            <doc xml:space="preserve">data to pass to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">function to call when @data is no longer used.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_resolution" c:identifier="pango_ft2_font_map_set_resolution" version="1.2">
        <doc xml:space="preserve">Sets the horizontal and vertical resolutions for the fontmap.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fontmap" transfer-ownership="none">
            <doc xml:space="preserve">a `PangoFT2FontMap`</doc>
            <type name="FontMap" c:type="PangoFT2FontMap*"/>
          </instance-parameter>
          <parameter name="dpi_x" transfer-ownership="none">
            <doc xml:space="preserve">dots per inch in the X direction</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="dpi_y" transfer-ownership="none">
            <doc xml:space="preserve">dots per inch in the Y direction</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="substitute_changed" c:identifier="pango_ft2_font_map_substitute_changed" version="1.2" deprecated="1" deprecated-version="1.46">
        <doc xml:space="preserve">Call this function any time the results of the
default substitution function set with
pango_ft2_font_map_set_default_substitute() change.

That is, if your substitution function will return different
results for the same input pattern, you must call this function.</doc>
        <doc-deprecated xml:space="preserve">Use [method@PangoFc.FontMap.substitute_changed]
instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fontmap" transfer-ownership="none">
            <doc xml:space="preserve">a `PangoFT2FontMap`</doc>
            <type name="FontMap" c:type="PangoFT2FontMap*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <function-macro name="IS_FONT_MAP" c:identifier="PANGO_FT2_IS_FONT_MAP" introspectable="0">
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <callback name="SubstituteFunc" c:type="PangoFT2SubstituteFunc">
      <doc xml:space="preserve">Function type for doing final config tweaking on prepared FcPatterns.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="pattern" transfer-ownership="none">
          <doc xml:space="preserve">the FcPattern to tweak.</doc>
          <type name="fontconfig.Pattern" c:type="FcPattern*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">user data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function name="font_get_coverage" c:identifier="pango_ft2_font_get_coverage">
      <doc xml:space="preserve">Gets the `PangoCoverage` for a `PangoFT2Font`.

Use [method@Pango.Font.get_coverage] instead.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a `PangoCoverage`</doc>
        <type name="Pango.Coverage" c:type="PangoCoverage*"/>
      </return-value>
      <parameters>
        <parameter name="font" transfer-ownership="none">
          <doc xml:space="preserve">a Pango FT2 font</doc>
          <type name="Pango.Font" c:type="PangoFont*"/>
        </parameter>
        <parameter name="language" transfer-ownership="none">
          <doc xml:space="preserve">a language tag.</doc>
          <type name="Pango.Language" c:type="PangoLanguage*"/>
        </parameter>
      </parameters>
    </function>
    <function name="font_get_face" c:identifier="pango_ft2_font_get_face" introspectable="0">
      <doc xml:space="preserve">Returns the native FreeType2 `FT_Face` structure
used for this `PangoFont`.

This may be useful if you want to use FreeType2
functions directly.

Use [method@PangoFc.Font.lock_face] instead; when you are
done with a face from [method@PangoFc.Font.lock_face], you
must call [method@PangoFc.Font.unlock_face].</doc>
      <return-value nullable="1">
        <doc xml:space="preserve">a pointer to a `FT_Face` structure,
  with the size set correctly</doc>
        <type name="freetype2.Face" c:type="FT_Face"/>
      </return-value>
      <parameters>
        <parameter name="font" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoFont`</doc>
          <type name="Pango.Font" c:type="PangoFont*"/>
        </parameter>
      </parameters>
    </function>
    <function name="font_get_kerning" c:identifier="pango_ft2_font_get_kerning">
      <doc xml:space="preserve">Retrieves kerning information for a combination of two glyphs.

Use pango_fc_font_kern_glyphs() instead.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The amount of kerning (in Pango units) to
  apply for the given combination of glyphs.</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="font" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoFont`</doc>
          <type name="Pango.Font" c:type="PangoFont*"/>
        </parameter>
        <parameter name="left" transfer-ownership="none">
          <doc xml:space="preserve">the left `PangoGlyph`</doc>
          <type name="Pango.Glyph" c:type="PangoGlyph"/>
        </parameter>
        <parameter name="right" transfer-ownership="none">
          <doc xml:space="preserve">the right `PangoGlyph`</doc>
          <type name="Pango.Glyph" c:type="PangoGlyph"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_context" c:identifier="pango_ft2_get_context" introspectable="0" deprecated="1" deprecated-version="1.22">
      <doc xml:space="preserve">Retrieves a `PangoContext` for the default PangoFT2 fontmap
(see pango_ft2_font_map_for_display()) and sets the resolution
for the default fontmap to @dpi_x by @dpi_y.</doc>
      <doc-deprecated xml:space="preserve">Use [method@Pango.FontMap.create_context] instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the new `PangoContext`</doc>
        <type name="Pango.Context" c:type="PangoContext*"/>
      </return-value>
      <parameters>
        <parameter name="dpi_x" transfer-ownership="none">
          <doc xml:space="preserve">the horizontal DPI of the target device</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="dpi_y" transfer-ownership="none">
          <doc xml:space="preserve">the vertical DPI of the target device</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_unknown_glyph" c:identifier="pango_ft2_get_unknown_glyph">
      <doc xml:space="preserve">Return the index of a glyph suitable for drawing unknown
characters with @font, or %PANGO_GLYPH_EMPTY if no suitable
glyph found.

If you want to draw an unknown-box for a character that
is not covered by the font, use PANGO_GET_UNKNOWN_GLYPH()
instead.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a glyph index into @font, or %PANGO_GLYPH_EMPTY</doc>
        <type name="Pango.Glyph" c:type="PangoGlyph"/>
      </return-value>
      <parameters>
        <parameter name="font" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoFont`</doc>
          <type name="Pango.Font" c:type="PangoFont*"/>
        </parameter>
      </parameters>
    </function>
    <function name="render" c:identifier="pango_ft2_render">
      <doc xml:space="preserve">Renders a `PangoGlyphString` onto a FreeType2 bitmap.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve">the FreeType2 bitmap onto which to draw the string</doc>
          <type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
        </parameter>
        <parameter name="font" transfer-ownership="none">
          <doc xml:space="preserve">the font in which to draw the string</doc>
          <type name="Pango.Font" c:type="PangoFont*"/>
        </parameter>
        <parameter name="glyphs" transfer-ownership="none">
          <doc xml:space="preserve">the glyph string to draw</doc>
          <type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve">the x position of the start of the string (in pixels)</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve">the y position of the baseline (in pixels)</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_layout" c:identifier="pango_ft2_render_layout">
      <doc xml:space="preserve">Render a `PangoLayout` onto a FreeType2 bitmap</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve">a FT_Bitmap to render the layout onto</doc>
          <type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
        </parameter>
        <parameter name="layout" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoLayout`</doc>
          <type name="Pango.Layout" c:type="PangoLayout*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve">the X position of the left of the layout (in pixels)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve">the Y position of the top of the layout (in pixels)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_layout_line" c:identifier="pango_ft2_render_layout_line">
      <doc xml:space="preserve">Render a `PangoLayoutLine` onto a FreeType2 bitmap</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve">a FT_Bitmap to render the line onto</doc>
          <type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
        </parameter>
        <parameter name="line" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoLayoutLine`</doc>
          <type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve">the x position of start of string (in pixels)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve">the y position of baseline (in pixels)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_layout_line_subpixel" c:identifier="pango_ft2_render_layout_line_subpixel" version="1.6">
      <doc xml:space="preserve">Render a `PangoLayoutLine` onto a FreeType2 bitmap, with he
location specified in fixed-point Pango units rather than
pixels.

(Using this will avoid extra inaccuracies from rounding
to integer pixels multiple times, even if the final glyph
positions are integers.)</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve">a FT_Bitmap to render the line onto</doc>
          <type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
        </parameter>
        <parameter name="line" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoLayoutLine`</doc>
          <type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve">the x position of start of string (in Pango units)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve">the y position of baseline (in Pango units)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_layout_subpixel" c:identifier="pango_ft2_render_layout_subpixel" version="1.6">
      <doc xml:space="preserve">Render a `PangoLayout` onto a FreeType2 bitmap, with he
location specified in fixed-point Pango units rather than
pixels.

(Using this will avoid extra inaccuracies from rounding
to integer pixels multiple times, even if the final glyph
positions are integers.)</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve">a FT_Bitmap to render the layout onto</doc>
          <type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
        </parameter>
        <parameter name="layout" transfer-ownership="none">
          <doc xml:space="preserve">a `PangoLayout`</doc>
          <type name="Pango.Layout" c:type="PangoLayout*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve">the X position of the left of the layout (in Pango units)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve">the Y position of the top of the layout (in Pango units)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_transformed" c:identifier="pango_ft2_render_transformed" version="1.6">
      <doc xml:space="preserve">Renders a `PangoGlyphString` onto a FreeType2 bitmap, possibly
transforming the layed-out coordinates through a transformation
matrix.

Note that the transformation matrix for @font is not
changed, so to produce correct rendering results, the @font
must have been loaded using a `PangoContext` with an identical
transformation matrix to that passed in to this function.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bitmap" transfer-ownership="none">
          <doc xml:space="preserve">the FreeType2 bitmap onto which to draw the string</doc>
          <type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
        </parameter>
        <parameter name="matrix" transfer-ownership="none" nullable="1" allow-none="1">
          <doc xml:space="preserve">a `PangoMatrix`</doc>
          <type name="Pango.Matrix" c:type="const PangoMatrix*"/>
        </parameter>
        <parameter name="font" transfer-ownership="none">
          <doc xml:space="preserve">the font in which to draw the string</doc>
          <type name="Pango.Font" c:type="PangoFont*"/>
        </parameter>
        <parameter name="glyphs" transfer-ownership="none">
          <doc xml:space="preserve">the glyph string to draw</doc>
          <type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve">the x position of the start of the string (in Pango
  units in user space coordinates)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve">the y position of the baseline (in Pango units
  in user space coordinates)</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="shutdown_display" c:identifier="pango_ft2_shutdown_display">
      <doc xml:space="preserve">Free the global fontmap. (See pango_ft2_font_map_for_display())
Use of the global PangoFT2 fontmap is deprecated.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
  </namespace>
</repository>
