summaryrefslogtreecommitdiff
path: root/pango/glyphstring.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-07-08 17:29:54 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-07-08 17:29:54 +0000
commitb935a4bd82366ca770be6ce6f64f2aefce8e1a65 (patch)
treeaf9e23f1c1652478e1f4c63185d63175febad7ed /pango/glyphstring.c
parent35a7c23baabda073fea6da3a593fb718c9ac8c89 (diff)
downloadpango-b935a4bd82366ca770be6ce6f64f2aefce8e1a65.tar.gz
Part of Bug 135683 – Cache glyphstring extents
2006-07-08 Behdad Esfahbod <behdad@gnome.org> Part of Bug 135683 – Cache glyphstring extents * docs/pango-sections.txt: * docs/tmpl/glyphs.sgml: * pango/pango.def: * pango/pango-glyph.h: * pango/glyphstring.c (pango_glyph_string_get_width): New function. Much faster than calling pango_glyph_string_extents and using logical_rect.width. * pango/pango-renderer.c (add_underline), (add_strikethrough), (pango_renderer_draw_layout_line): Use the new function for optimization.
Diffstat (limited to 'pango/glyphstring.c')
-rw-r--r--pango/glyphstring.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/pango/glyphstring.c b/pango/glyphstring.c
index c4c5c8cd..82770349 100644
--- a/pango/glyphstring.c
+++ b/pango/glyphstring.c
@@ -264,6 +264,33 @@ pango_glyph_string_extents (PangoGlyphString *glyphs,
}
/**
+ * pango_glyph_string_get_width:
+ * @glyphs: a #PangoGlyphString
+ * @font: a #PangoFont
+ *
+ * Computes the logical width of the glyph string as can also be computed
+ * using pango_glyph_string_extents(). However, since this only computes the
+ * width, it's much faster. This is in fact only a convenience function that
+ * computes the sum of geometry.width for each glyph in the @glyphs.
+ *
+ * Return value: the logical width of the glyph string.
+ *
+ * Since: 1.14
+ */
+int
+pango_glyph_string_get_width (PangoGlyphString *glyphs,
+ PangoFont *font)
+{
+ int i;
+ int width = 0;
+
+ for (i = 0; i < glyphs->num_glyphs; i++)
+ width += &glyphs->glyphs[i].geometry.width;
+
+ return width;
+}
+
+/**
* pango_glyph_string_get_logical_widths:
* @glyphs: a #PangoGlyphString
* @text: the text corresponding to the glyphs