Upload tizen 2.0 beta source
[external/pango1.0.git] / pango / pangoft2.h
1 /* Pango
2  * pangoft2.h:
3  *
4  * Copyright (C) 1999 Red Hat Software
5  * Copyright (C) 2000 Tor Lillqvist
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */
22
23 #ifndef __PANGOFT2_H__
24 #define __PANGOFT2_H__
25
26 #include <fontconfig/fontconfig.h>
27
28 #include <pango/pango-layout.h>
29 #include <pango/pangofc-font.h>
30
31 G_BEGIN_DECLS
32
33 #ifndef PANGO_DISABLE_DEPRECATED
34 #define PANGO_RENDER_TYPE_FT2 "PangoRenderFT2"
35 #endif
36
37 #define PANGO_TYPE_FT2_FONT_MAP              (pango_ft2_font_map_get_type ())
38 #define PANGO_FT2_FONT_MAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FT2_FONT_MAP, PangoFT2FontMap))
39 #define PANGO_FT2_IS_FONT_MAP(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FT2_FONT_MAP))
40
41 typedef struct _PangoFT2FontMap      PangoFT2FontMap;
42
43 typedef void (*PangoFT2SubstituteFunc) (FcPattern *pattern,
44                                         gpointer   data);
45
46 /* Calls for applications */
47
48 void pango_ft2_render             (FT_Bitmap         *bitmap,
49                                    PangoFont         *font,
50                                    PangoGlyphString  *glyphs,
51                                    gint               x,
52                                    gint               y);
53 void pango_ft2_render_transformed (FT_Bitmap         *bitmap,
54                                    const PangoMatrix *matrix,
55                                    PangoFont         *font,
56                                    PangoGlyphString  *glyphs,
57                                    int                x,
58                                    int                y);
59
60 void pango_ft2_render_layout_line          (FT_Bitmap        *bitmap,
61                                             PangoLayoutLine  *line,
62                                             int               x,
63                                             int               y);
64 void pango_ft2_render_layout_line_subpixel (FT_Bitmap        *bitmap,
65                                             PangoLayoutLine  *line,
66                                             int               x,
67                                             int               y);
68 void pango_ft2_render_layout               (FT_Bitmap        *bitmap,
69                                             PangoLayout      *layout,
70                                             int               x,
71                                             int               y);
72 void pango_ft2_render_layout_subpixel      (FT_Bitmap        *bitmap,
73                                             PangoLayout      *layout,
74                                             int               x,
75                                             int               y);
76
77 GType pango_ft2_font_map_get_type (void) G_GNUC_CONST;
78
79 PangoFontMap *pango_ft2_font_map_new                    (void);
80 void          pango_ft2_font_map_set_resolution         (PangoFT2FontMap        *fontmap,
81                                                          double                  dpi_x,
82                                                          double                  dpi_y);
83 void          pango_ft2_font_map_set_default_substitute (PangoFT2FontMap        *fontmap,
84                                                          PangoFT2SubstituteFunc  func,
85                                                          gpointer                data,
86                                                          GDestroyNotify          notify);
87 void          pango_ft2_font_map_substitute_changed     (PangoFT2FontMap         *fontmap);
88 #ifndef PANGO_DISABLE_DEPRECATED
89 PangoContext *pango_ft2_font_map_create_context         (PangoFT2FontMap         *fontmap);
90 #endif
91
92
93 /* API for rendering modules
94  */
95 #ifndef PANGO_DISABLE_DEPRECATED
96 PangoContext      *pango_ft2_get_context          (double dpi_x,
97                                                    double dpi_y);
98 PangoFontMap      *pango_ft2_font_map_for_display (void);
99 void               pango_ft2_shutdown_display     (void);
100
101 PangoGlyph     pango_ft2_get_unknown_glyph (PangoFont       *font);
102 int            pango_ft2_font_get_kerning  (PangoFont       *font,
103                                             PangoGlyph       left,
104                                             PangoGlyph       right);
105 FT_Face        pango_ft2_font_get_face     (PangoFont       *font);
106 PangoCoverage *pango_ft2_font_get_coverage (PangoFont       *font,
107                                             PangoLanguage   *language);
108 #endif /* PANGO_DISABLE_DEPRECATED */
109
110 G_END_DECLS
111
112 #endif /* __PANGOFT2_H__ */