コード例 #1
0
static PangoCairoFontGlyphExtentsCacheEntry *
_pango_cairo_font_private_get_glyph_extents_cache_entry (PangoCairoFontPrivate  *cf_priv,
							 PangoGlyph              glyph)
{
  PangoCairoFontGlyphExtentsCacheEntry *entry;
  guint idx;

  idx = glyph & GLYPH_CACHE_MASK;
  entry = cf_priv->glyph_extents_cache + idx;

  if (entry->glyph != glyph)
    {
      compute_glyph_extents (cf_priv, glyph, entry);
    }

  return entry;
}
コード例 #2
0
static PangoCairoWin32GlyphInfo *
pango_cairo_win32_font_get_glyph_info (PangoFont   *font,
				       PangoGlyph   glyph)
{
  PangoCairoWin32Font *cwfont = (PangoCairoWin32Font *)font;
  PangoCairoWin32GlyphInfo *info;

  info = g_hash_table_lookup (cwfont->glyph_info, GUINT_TO_POINTER (glyph));
  if (!info)
    {
      info = g_new0 (PangoCairoWin32GlyphInfo, 1);
      
      compute_glyph_extents (font, glyph,
			     &info->ink_rect,
			     &info->logical_rect);
      
      g_hash_table_insert (cwfont->glyph_info, GUINT_TO_POINTER (glyph), info);
    }

  return info;
}