Lines Matching +full:gobject +full:- +full:introspection
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
15 Android, Qt, or application-specific widget libraries.
19 text-rendering pipeline, and will discuss the APIs available to
33 (namely, direction, language, and script, but also higher-level
43 objects. HarfBuzz can use FreeType's built-in functions for
52 for working with key components of GNOME's higher-level libraries
59 gets Unicode data about the input-buffer code points.
66 types of information can change with different variation-axis
76 <section id="integration-glib">
77 <title>GNOME integration, GLib, and GObject</title>
93 Unicode-data functions and a data type for script
96 <filename>hb-glib.h</filename> header file.
100 url="https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html">Unicode
112 You can attach this Unicode-functions structure to your buffer,
116 #include <hb-glib.h>
142 Finally, GLib also provides a reference-counted object type called <ulink
143 …url="https://developer.gnome.org/glib/stable/glib-Byte-Arrays.html#GBytes"><type>GBytes</type></ul…
154 GObject. For HarfBuzz, the main advantage of GObject is a
156 url="https://gi.readthedocs.io/en/latest/">GObject
157 Introspection</ulink>. This is a middleware facility that can be
163 <section id="integration-freetype">
166 FreeType is the free-software font-rendering engine included in
168 operating systems, and used by cross-platform programs like
176 face-object and font-object level and for the font-functions
177 virtual-method structure of a font object. These functions
179 or font-loading, to use HarfBuzz for shaping. To use the
180 FreeType-integration API, include the
181 <filename>hb-ft.h</filename> header.
206 #include <hb-ft.h>
261 font-functions structure is the set of methods that HarfBuzz
272 and HarfBuzz will use FreeType for the font-functions in
278 parameters, such as variation-axis coordinates)
292 function variant that does not provide the lifecycle-management
293 feature. As with the font-object case, if you use this version
314 <section id="integration-cairo">
320 by using callback-based 'user fonts'.
324 for buffers. To use the Cairo-integration API, link against libharfbuzz-cairo,
325 and include the <filename>hb-cairo.h</filename> header. For easy buildsystem
326 integration, HarfBuzz comes with a <filename>harfbuzz-cairo.pc</filename>
327 pkg-config file.
338 The Cairo fonts created in this way make use of Cairo's user-font facilities.
356 <section id="integration-uniscribe">
366 shaping API can serve as a drop-in replacement for Uniscribe's shaping
379 …url="https://docs.microsoft.com/en-us/windows/desktop/api/Usp10/nf-usp10-scriptplace"><function>Sc…
395 correctly between HarfBuzz's low-level data types (such as
398 read the <xref linkend="buffers-language-script-and-direction"
401 used, and see <xref linkend="shaping-buffer-output" /> for the
416 …url="https://docs.microsoft.com/en-us/windows/desktop/api/wingdi/ns-wingdi-logfontw"><type>LOGFONT…
418 structure holds font-wide attributes, including metrics, size,
421 <!--
426 https://docs.microsoft.com/en-us/windows/desktop/Intl/script-cache
428 -->
441 <literal>uniscribe</literal> shaper back-end in the <xref
443 option is not a Uniscribe-integration facility.
447 <command>hb-shape</command> command-line utility, which hands
454 Because this back-end is only used when testing HarfBuzz
460 <section id="integration-coretext">
467 drop-in-replacement functionality for Core Text that it strives
477 part. This includes support for AAT-specific TrueType tables
489 is slightly lower-level than Core Text, provides
492 …<ulink url="https://developer.apple.com/documentation/coretext/ctfont-q6r"><type>CTFontRef</type><…
530 but it can be an easy detail to miss in cross-platform
535 <literal>coretext</literal> shaper back-end in the <xref
537 option is not a Core Text-integration facility.
541 <command>hb-shape</command> command-line utility, which hands
547 Because this back-end is only used when testing HarfBuzz
553 <section id="integration-icu">
556 Although HarfBuzz includes its own Unicode-data functions, it
563 <type>hb_unicode_funcs_t</type> Unicode-functions structure
572 Unicode-functions structure populated with the ICU function for
574 Unicode-functions structure to your buffer:
582 and ICU will be used for Unicode-data access.
598 library (<filename class="libraryfile">libharfbuzz-icu.so</filename>)
604 by specifying the <literal>--with-icu=builtin</literal>
605 compile-time option.
610 <section id="integration-python">
613 As noted in the <xref linkend="integration-glib" /> section,
615 url="https://wiki.gnome.org/Projects/GObjectIntrospection">GObject
616 Introspection</ulink> (GI) to provide bindings for Python.