SynopsisPangoXftFont; PangoXftFontMap; #define PANGO_RENDER_TYPE_XFT PangoContext* pango_xft_get_context (Display *display, int screen); PangoFontMap* pango_xft_get_font_map (Display *display, int screen); void pango_xft_set_default_substitute (Display *display, int screen, PangoXftSubstituteFunc func, gpointer data, GDestroyNotify notify); void (*PangoXftSubstituteFunc) (FcPattern *pattern, gpointer data); void pango_xft_substitute_changed (Display *display, int screen); void pango_xft_shutdown_display (Display *display, int screen); XftFont* pango_xft_font_get_font (PangoFont *font); Display* pango_xft_font_get_display (PangoFont *font); gboolean pango_xft_font_has_char (PangoFont *font, gunichar wc); FT_Face pango_xft_font_lock_face (PangoFont *font); void pango_xft_font_unlock_face (PangoFont *font); guint pango_xft_font_get_glyph (PangoFont *font, gunichar wc); PangoGlyph pango_xft_font_get_unknown_glyph (PangoFont *font, gunichar wc); PangoXftRenderer; PangoXftRendererClass; PangoRenderer* pango_xft_renderer_new (Display *display, int screen); void pango_xft_renderer_set_draw (PangoXftRenderer *xftrenderer, XftDraw *draw); void pango_xft_renderer_set_default_color (PangoXftRenderer *xftrenderer, PangoColor *default_color); void pango_xft_render (XftDraw *draw, XftColor *color, PangoFont *font, PangoGlyphString *glyphs, gint x, gint y); void pango_xft_picture_render (Display *display, Picture src_picture, Picture dest_picture, PangoFont *font, PangoGlyphString *glyphs, gint x, gint y); void pango_xft_render_transformed (XftDraw *draw, XftColor *color, PangoMatrix *matrix, PangoFont *font, PangoGlyphString *glyphs, int x, int y); void pango_xft_render_layout_line (XftDraw *draw, XftColor *color, PangoLayoutLine *line, int x, int y); void pango_xft_render_layout (XftDraw *draw, XftColor *color, PangoLayout *layout, int x, int y); Object HierarchyGObject +----PangoFont +----PangoFcFont +----PangoXftFont GObject +----PangoFontMap +----PangoFcFontMap +----PangoXftFontMap GObject +----PangoRenderer +----PangoXftRenderer DescriptionThe Xft library is a library for displaying fonts on the X window system; internally it uses the fontconfig library to locate font files, and the FreeType library to load and render fonts. The Xft backend is the recommended Pango font backend for screen display with X. (The Cairo back end is another possibility.)
Using the Xft backend is generally straightforward;
A range of functions for drawing pieces of a layout, such as individual layout lines and glyphs strings are provided. You can also directly create a PangoXftRenderer. Finally, in some advanced cases, it is useful to derive from PangoXftRenderer. Deriving from PangoXftRenderer is useful for two reasons. One reason is be to support custom attributes by overriding PangoRendererClass virtual functions like 'prepare_run' or 'draw_shape'. The reason is to customize exactly how the final bits are drawn to the destination by overriding the PangoXftRendererClass virtual functions 'composite_glyphs' and 'composite_trapezoids'. DetailsPangoXftFonttypedef struct _PangoXftFont PangoXftFont; PangoXftFont is an implementation of PangoFcFont using the Xft library for rendering. It is used in conjunction with PangoXftFontMap. PangoXftFontMaptypedef struct _PangoXftFontMap PangoXftFontMap; PangoXftFontMap is an implementation of PangoFcFontMap suitable for the Xft library as the renderer. It is used in to create fonts of type PangoXftFont. PANGO_RENDER_TYPE_XFT#define PANGO_RENDER_TYPE_XFT "PangoRenderXft" Warning
A string constant that was used to identify shape engines that work
with the Xft backend. See pango_xft_get_context ()PangoContext* pango_xft_get_context (Display *display, int screen); Warning
Retrieves a PangoContext appropriate for rendering with Xft fonts on the given screen of the given display.
pango_xft_get_font_map ()PangoFontMap* pango_xft_get_font_map (Display *display, int screen); Returns the PangoXftFontmap for the given display and screen. The fontmap is owned by Pango and will be valid until the display is closed.
Since 1.2 pango_xft_set_default_substitute ()void pango_xft_set_default_substitute (Display *display, int screen, PangoXftSubstituteFunc func, gpointer data, GDestroyNotify notify); 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.
Since 1.2 PangoXftSubstituteFunc ()void (*PangoXftSubstituteFunc) (FcPattern *pattern, gpointer data); Function type for doing final config tweaking on prepared FcPatterns.
pango_xft_substitute_changed ()void pango_xft_substitute_changed (Display *display, int screen);
Call this function any time the results of the
default substitution function set with
Since 1.2 pango_xft_shutdown_display ()void pango_xft_shutdown_display (Display *display, int screen);
Release any resources that have been cached for the
combination of
Since 1.2 pango_xft_font_get_font ()XftFont* pango_xft_font_get_font (PangoFont *font); Returns the XftFont of a font.
pango_xft_font_get_display ()Display* pango_xft_font_get_display (PangoFont *font); Returns the X display of the XftFont of a font.
pango_xft_font_has_char ()gboolean pango_xft_font_has_char (PangoFont *font, gunichar wc); Warning
Determines whether
Use
Since 1.2 pango_xft_font_lock_face ()FT_Face pango_xft_font_lock_face (PangoFont *font); Warning
Gets the FreeType FT_Face associated with a font,
This face will be kept around until you call
Use
Since 1.2 pango_xft_font_unlock_face ()void pango_xft_font_unlock_face (PangoFont *font); Warning
Releases a font previously obtained with
Use
Since 1.2 pango_xft_font_get_glyph ()guint pango_xft_font_get_glyph (PangoFont *font, gunichar wc); Warning
Gets the glyph index for a given Unicode character
for
Use
Since 1.2 pango_xft_font_get_unknown_glyph ()PangoGlyph pango_xft_font_get_unknown_glyph (PangoFont *font, gunichar wc); Warning
Returns the index of a glyph suitable for drawing
Use
PangoXftRenderertypedef struct _PangoXftRenderer PangoXftRenderer; PangoXftRenderer is a subclass of PangoRenderer used for rendering with Pango's Xft backend. It can be used directly, or it can be further subclassed to modify exactly how drawing of individual elements occurs.
Since 1.8 PangoXftRendererClasstypedef struct { void (*composite_trapezoids) (PangoXftRenderer *xftrenderer, PangoRenderPart part, XTrapezoid *trapezoids, int n_trapezoids); void (*composite_glyphs) (PangoXftRenderer *xftrenderer, XftFont *xft_font, XftGlyphSpec *glyphs, int n_glyphs); } PangoXftRendererClass; The class structure for PangoXftRenderer
Since 1.8 pango_xft_renderer_new ()PangoRenderer* pango_xft_renderer_new (Display *display, int screen);
Create a new PangoXftRenderer to allow rendering Pango objects
with the Xft library. You must call
Since 1.8 pango_xft_renderer_set_draw ()void pango_xft_renderer_set_draw (PangoXftRenderer *xftrenderer, XftDraw *draw); Sets the XftDraw object that the renderer is drawing to. The renderer must not be currently active.
Since 1.8 pango_xft_renderer_set_default_color ()void pango_xft_renderer_set_default_color (PangoXftRenderer *xftrenderer, PangoColor *default_color); Sets the default foreground color for a XftRenderer.
Since 1.8 pango_xft_render ()void pango_xft_render (XftDraw *draw, XftColor *color, PangoFont *font, PangoGlyphString *glyphs, gint x, gint y); Renders a PangoGlyphString onto an XftDraw object wrapping an X drawable.
pango_xft_picture_render ()void pango_xft_picture_render (Display *display, Picture src_picture, Picture dest_picture, PangoFont *font, PangoGlyphString *glyphs, gint x, gint y); Renders a PangoGlyphString onto an Xrender Picture object.
pango_xft_render_transformed ()void pango_xft_render_transformed (XftDraw *draw, XftColor *color, PangoMatrix *matrix, PangoFont *font, PangoGlyphString *glyphs, int x, int y);
Renders a PangoGlyphString onto a XftDraw, possibly
transforming the layed-out coordinates through a transformation
matrix. Note that the transformation matrix for
Since 1.8 pango_xft_render_layout_line ()void pango_xft_render_layout_line (XftDraw *draw, XftColor *color, PangoLayoutLine *line, int x, int y); Render a PangoLayoutLine onto a XftDraw
Since 1.8 pango_xft_render_layout ()void pango_xft_render_layout (XftDraw *draw, XftColor *color, PangoLayout *layout, int x, int y); Render a PangoLayout onto a XftDraw
Since 1.8 |