… | |
… | |
74 | |
74 | |
75 | #if PANGO_VERSION_CHECK (1, 16, 0) |
75 | #if PANGO_VERSION_CHECK (1, 16, 0) |
76 | /* pango 1.24 is ABI-incompatible with 1.22, but distros */ |
76 | /* pango 1.24 is ABI-incompatible with 1.22, but distros */ |
77 | /* usually package it under the same name, so a runtime check */ |
77 | /* usually package it under the same name, so a runtime check */ |
78 | /* is required */ |
78 | /* is required */ |
79 | /* unfortunately, pango fdoesn't sipport runtime checks in < 1.16 */ |
79 | /* unfortunately, pango doesn't support runtime checks in < 1.16 */ |
80 | /* so there is no real way to ensure binary compatibility portably */ |
80 | /* so there is no real way to ensure binary compatibility portably */ |
81 | /* greta move, pango */ |
81 | /* great move, pango */ |
82 | if (pango_version () > PANGO_VERSION_ENCODE (1, 23, 0)) |
82 | if (pango_version () > PANGO_VERSION_ENCODE (1, 23, 0)) |
83 | PANGO_FC_FONT (font)->fontmap = fontmap; |
83 | PANGO_FC_FONT (font)->fontmap = fontmap; |
84 | #endif |
84 | #endif |
85 | |
85 | |
86 | return font; |
86 | return font; |
… | |
… | |
227 | font->size = 0; |
227 | font->size = 0; |
228 | font->glyph_info = g_hash_table_new (NULL, NULL); |
228 | font->glyph_info = g_hash_table_new (NULL, NULL); |
229 | } |
229 | } |
230 | |
230 | |
231 | static void |
231 | static void |
232 | pango_opengl_font_class_init (PangoOpenGLFontClass *class) |
232 | pango_opengl_font_class_init (PangoOpenGLFontClass *klass) |
233 | { |
233 | { |
234 | GObjectClass *object_class = G_OBJECT_CLASS (class); |
234 | GObjectClass *object_class = G_OBJECT_CLASS (klass); |
235 | PangoFontClass *font_class = PANGO_FONT_CLASS (class); |
235 | PangoFontClass *font_class = PANGO_FONT_CLASS (klass); |
236 | PangoFcFontClass *fc_font_class = PANGO_FC_FONT_CLASS (class); |
236 | PangoFcFontClass *fc_font_class = PANGO_FC_FONT_CLASS (klass); |
237 | |
237 | |
238 | object_class->finalize = pango_opengl_font_finalize; |
238 | object_class->finalize = pango_opengl_font_finalize; |
239 | |
239 | |
240 | font_class->get_glyph_extents = pango_opengl_font_get_glyph_extents; |
240 | font_class->get_glyph_extents = pango_opengl_font_get_glyph_extents; |
241 | |
241 | |
… | |
… | |
248 | { |
248 | { |
249 | PangoOpenGLFont *font = (PangoOpenGLFont *)font_; |
249 | PangoOpenGLFont *font = (PangoOpenGLFont *)font_; |
250 | PangoFcFont *fcfont = (PangoFcFont *)font; |
250 | PangoFcFont *fcfont = (PangoFcFont *)font; |
251 | PangoOpenGLGlyphInfo *info; |
251 | PangoOpenGLGlyphInfo *info; |
252 | |
252 | |
253 | info = g_hash_table_lookup (font->glyph_info, GUINT_TO_POINTER (glyph)); |
253 | info = (PangoOpenGLGlyphInfo *)g_hash_table_lookup (font->glyph_info, GUINT_TO_POINTER (glyph)); |
254 | |
254 | |
255 | if ((info == NULL) && create) |
255 | if ((info == NULL) && create) |
256 | { |
256 | { |
257 | info = g_slice_new0 (PangoOpenGLGlyphInfo); |
257 | info = g_slice_new0 (PangoOpenGLGlyphInfo); |
258 | |
258 | |
… | |
… | |
388 | |
388 | |
389 | static gboolean |
389 | static gboolean |
390 | pango_opengl_free_glyph_info_callback (gpointer key, gpointer value, gpointer data) |
390 | pango_opengl_free_glyph_info_callback (gpointer key, gpointer value, gpointer data) |
391 | { |
391 | { |
392 | PangoOpenGLFont *font = PANGO_OPENGL_FONT (data); |
392 | PangoOpenGLFont *font = PANGO_OPENGL_FONT (data); |
393 | PangoOpenGLGlyphInfo *info = value; |
393 | PangoOpenGLGlyphInfo *info = (PangoOpenGLGlyphInfo *)value; |
394 | |
394 | |
395 | if (font->glyph_cache_destroy && info->cached_glyph) |
395 | if (font->glyph_cache_destroy && info->cached_glyph) |
396 | (*font->glyph_cache_destroy) (info->cached_glyph); |
396 | (*font->glyph_cache_destroy) (info->cached_glyph); |
397 | |
397 | |
398 | g_slice_free (PangoOpenGLGlyphInfo, info); |
398 | g_slice_free (PangoOpenGLGlyphInfo, info); |