… | |
… | |
73 | pango_opengl_font_map_new (void) |
73 | pango_opengl_font_map_new (void) |
74 | { |
74 | { |
75 | PangoOpenGLFontMap *fontmap; |
75 | PangoOpenGLFontMap *fontmap; |
76 | FT_Error error; |
76 | FT_Error error; |
77 | |
77 | |
78 | /* Make sure that the type system is initialized */ |
|
|
79 | g_type_init (); |
|
|
80 | |
|
|
81 | fontmap = g_object_new (PANGO_TYPE_OPENGL_FONT_MAP, NULL); |
78 | fontmap = (PangoOpenGLFontMap *)g_object_new (PANGO_TYPE_OPENGL_FONT_MAP, NULL); |
82 | |
79 | |
83 | error = FT_Init_FreeType (&fontmap->library); |
80 | error = FT_Init_FreeType (&fontmap->library); |
84 | if (error != FT_Err_Ok) |
81 | if (error != FT_Err_Ok) |
85 | g_critical ("pango_opengl_font_map_new: Could not initialize freetype"); |
82 | g_critical ("pango_opengl_font_map_new: Could not initialize freetype"); |
86 | |
83 | |
87 | return (PangoFontMap *)fontmap; |
84 | return (PangoFontMap *)fontmap; |
88 | } |
85 | } |
89 | |
86 | |
90 | void |
87 | void |
91 | pango_opengl_font_map_set_default_substitute (PangoOpenGLFontMap *fontmap, |
88 | pango_opengl_font_map_set_default_substitute (PangoOpenGLFontMap *fontmap, |
92 | PangoOpenGLSubstituteFunc func, |
89 | PangoOpenGLSubstituteFunc func, |
93 | gpointer data, |
90 | gpointer data, |
94 | GDestroyNotify notify) |
91 | GDestroyNotify notify) |
95 | { |
92 | { |
96 | if (fontmap->substitute_destroy) |
93 | if (fontmap->substitute_destroy) |
97 | fontmap->substitute_destroy (fontmap->substitute_data); |
94 | fontmap->substitute_destroy (fontmap->substitute_data); |
98 | |
95 | |
99 | fontmap->substitute_func = func; |
96 | fontmap->substitute_func = func; |
… | |
… | |
134 | PangoContext * |
131 | PangoContext * |
135 | pango_opengl_font_map_create_context (PangoOpenGLFontMap *fontmap) |
132 | pango_opengl_font_map_create_context (PangoOpenGLFontMap *fontmap) |
136 | { |
133 | { |
137 | g_return_val_if_fail (PANGO_OPENGL_IS_FONT_MAP (fontmap), NULL); |
134 | g_return_val_if_fail (PANGO_OPENGL_IS_FONT_MAP (fontmap), NULL); |
138 | |
135 | |
139 | return pango_fc_font_map_create_context (PANGO_FC_FONT_MAP (fontmap)); |
136 | return pango_font_map_create_context (PANGO_FONT_MAP (fontmap)); |
140 | } |
137 | } |
141 | |
138 | |
142 | FT_Library |
139 | FT_Library |
143 | _pango_opengl_font_map_get_library (PangoFontMap *fontmap_) |
140 | _pango_opengl_font_map_get_library (PangoFontMap *fontmap_) |
144 | { |
141 | { |
145 | PangoOpenGLFontMap *fontmap = (PangoOpenGLFontMap *)fontmap_; |
142 | PangoOpenGLFontMap *fontmap = (PangoOpenGLFontMap *)fontmap_; |
146 | |
143 | |
147 | return fontmap->library; |
144 | return fontmap->library; |
148 | } |
145 | } |
149 | |
|
|
150 | |
146 | |
151 | /** |
147 | /** |
152 | * _pango_opengl_font_map_get_renderer: |
148 | * _pango_opengl_font_map_get_renderer: |
153 | * @fontmap: a #PangoOpenGLFontmap |
149 | * @fontmap: a #PangoOpenGLFontmap |
154 | * |
150 | * |
… | |
… | |
158 | **/ |
154 | **/ |
159 | PangoRenderer * |
155 | PangoRenderer * |
160 | _pango_opengl_font_map_get_renderer (PangoOpenGLFontMap *fontmap) |
156 | _pango_opengl_font_map_get_renderer (PangoOpenGLFontMap *fontmap) |
161 | { |
157 | { |
162 | if (!fontmap->renderer) |
158 | if (!fontmap->renderer) |
163 | fontmap->renderer = g_object_new (PANGO_TYPE_OPENGL_RENDERER, NULL); |
159 | fontmap->renderer = (PangoRenderer *)g_object_new (PANGO_TYPE_OPENGL_RENDERER, NULL); |
164 | |
160 | |
165 | return fontmap->renderer; |
161 | return fontmap->renderer; |
166 | } |
162 | } |
167 | |
163 | |
168 | static void |
164 | static void |
… | |
… | |
174 | FcConfigSubstitute (NULL, pattern, FcMatchPattern); |
170 | FcConfigSubstitute (NULL, pattern, FcMatchPattern); |
175 | |
171 | |
176 | if (fontmap->substitute_func) |
172 | if (fontmap->substitute_func) |
177 | fontmap->substitute_func (pattern, fontmap->substitute_data); |
173 | fontmap->substitute_func (pattern, fontmap->substitute_data); |
178 | |
174 | |
179 | #if 0 |
|
|
180 | FcValue v; |
|
|
181 | if (FcPatternGet (pattern, FC_DPI, 0, &v) == FcResultNoMatch) |
|
|
182 | FcPatternAddDouble (pattern, FC_DPI, fontmap->dpi_y); |
|
|
183 | #endif |
|
|
184 | FcDefaultSubstitute (pattern); |
175 | FcDefaultSubstitute (pattern); |
185 | } |
176 | } |
186 | |
177 | |
187 | static PangoFcFont * |
178 | static PangoFcFont * |
188 | pango_opengl_font_map_new_font (PangoFcFontMap *fcfontmap, |
179 | pango_opengl_font_map_new_font (PangoFcFontMap *fcfontmap, |
… | |
… | |
190 | { |
181 | { |
191 | return (PangoFcFont *)_pango_opengl_font_new (PANGO_OPENGL_FONT_MAP (fcfontmap), pattern); |
182 | return (PangoFcFont *)_pango_opengl_font_new (PANGO_OPENGL_FONT_MAP (fcfontmap), pattern); |
192 | } |
183 | } |
193 | |
184 | |
194 | static void |
185 | static void |
195 | pango_opengl_font_map_class_init (PangoOpenGLFontMapClass *class) |
186 | pango_opengl_font_map_class_init (PangoOpenGLFontMapClass *klass) |
196 | { |
187 | { |
197 | GObjectClass *gobject_class = G_OBJECT_CLASS (class); |
188 | GObjectClass *gobject_class = G_OBJECT_CLASS (klass); |
198 | PangoFcFontMapClass *fcfontmap_class = PANGO_FC_FONT_MAP_CLASS (class); |
189 | PangoFcFontMapClass *fcfontmap_class = PANGO_FC_FONT_MAP_CLASS (klass); |
199 | |
190 | |
200 | gobject_class->finalize = pango_opengl_font_map_finalize; |
191 | gobject_class->finalize = pango_opengl_font_map_finalize; |
201 | fcfontmap_class->default_substitute = pango_opengl_font_map_default_substitute; |
192 | fcfontmap_class->default_substitute = pango_opengl_font_map_default_substitute; |
202 | fcfontmap_class->new_font = pango_opengl_font_map_new_font; |
193 | fcfontmap_class->new_font = pango_opengl_font_map_new_font; |
203 | } |
194 | } |