Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
pangoxft-render.h
Go to the documentation of this file.
1/* Pango
2 * pangoxft-render.h: Rendering routines for the Xft library
3 *
4 * Copyright (C) 2004 Red Hat Software
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
22#ifndef __PANGOXFT_RENDER_H__
23#define __PANGOXFT_RENDER_H__
24
26
28
29#define _XFT_NO_COMPAT_
30#include <X11/Xlib.h>
31#include <X11/Xft/Xft.h>
32#if defined(XftVersion) && XftVersion >= 20000
33#else
34#error "must have Xft version 2 or newer"
35#endif
36
39typedef struct _PangoXftRendererPrivate PangoXftRendererPrivate;
40
41#ifdef __GI_SCANNER__
42#define PANGO_XFT_TYPE_RENDERER (pango_xft_renderer_get_type())
43#define PANGO_XFT_RENDERER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_XFT_TYPE_RENDERER, PangoXftRenderer))
44#define PANGO_XFT_IS_RENDERER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_XFT_TYPE_RENDERER))
45#define PANGO_XFT_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_XFT_TYPE_RENDERER, PangoXftRendererClass))
46#define PANGO_XFT_IS_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_XFT_TYPE_RENDERER))
47#define PANGO_XFT_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_XFT_TYPE_RENDERER, PangoXftRendererClass))
48#else
49#define PANGO_TYPE_XFT_RENDERER (pango_xft_renderer_get_type())
50#define PANGO_XFT_RENDERER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_XFT_RENDERER, PangoXftRenderer))
51#define PANGO_IS_XFT_RENDERER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_XFT_RENDERER))
52#define PANGO_XFT_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_XFT_RENDERER, PangoXftRendererClass))
53#define PANGO_IS_XFT_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_XFT_RENDERER))
54#define PANGO_XFT_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_XFT_RENDERER, PangoXftRendererClass))
55#endif
56
57/**
58 * PangoXftRenderer:
59 *
60 * `PangoXftRenderer` is a subclass of `PangoRenderer` used for rendering
61 * with Pango's Xft backend. It can be used directly, or it can be
62 * further subclassed to modify exactly how drawing of individual
63 * elements occurs.
64 *
65 * Since: 1.8
66 */
68{
69 /*< private >*/
71
72 Display *display;
73 int screen;
74 XftDraw *draw;
75
77};
78
79/**
80 * PangoXftRendererClass:
81 * @composite_trapezoids: draw the specified trapezoids using
82 * the current color and other attributes for @part
83 * @composite_glyphs: draw the specified glyphs using
84 * the current foreground color and other foreground
85 * attributes
86 *
87 * The class structure for `PangoXftRenderer`
88 *
89 * Since: 1.8
90 */
92{
93 /*< private >*/
95
96 /*< public >*/
98 PangoRenderPart part,
99 XTrapezoid *trapezoids,
100 int n_trapezoids);
101 void (*composite_glyphs) (PangoXftRenderer *xftrenderer,
102 XftFont *xft_font,
103 XftGlyphSpec *glyphs,
104 int n_glyphs);
105};
106
109
112 int screen);
115 XftDraw *draw);
118 PangoColor *default_color);
119
121void pango_xft_render (XftDraw *draw,
122 XftColor *color,
123 PangoFont *font,
124 PangoGlyphString *glyphs,
125 gint x,
126 gint y);
128void pango_xft_picture_render (Display *display,
129 Picture src_picture,
130 Picture dest_picture,
131 PangoFont *font,
132 PangoGlyphString *glyphs,
133 gint x,
134 gint y);
137 XftColor *color,
138 PangoMatrix *matrix,
139 PangoFont *font,
140 PangoGlyphString *glyphs,
141 int x,
142 int y);
145 XftColor *color,
146 PangoLayoutLine *line,
147 int x,
148 int y);
150void pango_xft_render_layout (XftDraw *draw,
151 XftColor *color,
152 PangoLayout *layout,
153 int x,
154 int y);
155
157
158#endif /* __PANGOXFT_RENDER_H__ */
159
#define G_END_DECLS
Definition gmacros.h:910
#define G_BEGIN_DECLS
Definition gmacros.h:909
#define G_GNUC_CONST
Definition gmacros.h:637
gsize GType
Definition gtype.h:427
int gint
Definition gtypes.h:55
typedefG_BEGIN_DECLS struct _PangoColor PangoColor
Definition pango-color.h:31
typedefG_BEGIN_DECLS struct _PangoLayout PangoLayout
typedefG_BEGIN_DECLS struct _PangoMatrix PangoMatrix
PangoRenderPart
#define PANGO_AVAILABLE_IN_1_8
#define PANGO_AVAILABLE_IN_ALL
PANGO_AVAILABLE_IN_1_8 void pango_xft_render_layout(XftDraw *draw, XftColor *color, PangoLayout *layout, int x, int y)
PANGO_AVAILABLE_IN_1_8 GType pango_xft_renderer_get_type(void) G_GNUC_CONST
PANGO_AVAILABLE_IN_1_8 void pango_xft_renderer_set_default_color(PangoXftRenderer *xftrenderer, PangoColor *default_color)
PANGO_AVAILABLE_IN_1_8 void pango_xft_render_transformed(XftDraw *draw, XftColor *color, PangoMatrix *matrix, PangoFont *font, PangoGlyphString *glyphs, int x, int y)
PANGO_AVAILABLE_IN_ALL void pango_xft_render(XftDraw *draw, XftColor *color, PangoFont *font, PangoGlyphString *glyphs, gint x, gint y)
PANGO_AVAILABLE_IN_ALL void pango_xft_picture_render(Display *display, Picture src_picture, Picture dest_picture, PangoFont *font, PangoGlyphString *glyphs, gint x, gint y)
PANGO_AVAILABLE_IN_1_8 void pango_xft_renderer_set_draw(PangoXftRenderer *xftrenderer, XftDraw *draw)
PANGO_AVAILABLE_IN_1_8 void pango_xft_render_layout_line(XftDraw *draw, XftColor *color, PangoLayoutLine *line, int x, int y)
PANGO_AVAILABLE_IN_1_8 PangoRenderer * pango_xft_renderer_new(Display *display, int screen)
struct _PangoXftRendererPrivate PangoXftRendererPrivate
void(* composite_glyphs)(PangoXftRenderer *xftrenderer, XftFont *xft_font, XftGlyphSpec *glyphs, int n_glyphs)
PangoRendererClass parent_class
void(* composite_trapezoids)(PangoXftRenderer *xftrenderer, PangoRenderPart part, XTrapezoid *trapezoids, int n_trapezoids)
PangoRenderer parent_instance
PangoXftRendererPrivate * priv