summaryrefslogtreecommitdiff
path: root/pango
Commit message (Collapse)AuthorAgeFilesLines
* Bug 397337 – Use is_ellipsized and is_wrapped to optimize propertyBehdad Esfahbod2007-01-161-2/+5
| | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Bug 397337 – Use is_ellipsized and is_wrapped to optimize property changes * pango/pango-layout.c (pango_layout_set_wrap), (pango_layout_set_ellipsize): Using is_ellipsized and is_wrapped, only clear lines if wrap/ellipsize change has any effect on the lines. svn path=/trunk/; revision=2168
* *.c, *.h: Removed spaces followed b tabs.Behdad Esfahbod2007-01-1612-34/+34
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Removed spaces followed b tabs. svn path=/trunk/; revision=2166
* *.c, *.h: Replace preceding sequences of 8 spaces with tabs.Behdad Esfahbod2007-01-1653-1972/+1972
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Replace preceding sequences of 8 spaces with tabs. svn path=/trunk/; revision=2165
* *.c, *.h: Drop trailing whitespace.Behdad Esfahbod2007-01-1685-2458/+2458
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Drop trailing whitespace. svn path=/trunk/; revision=2163
* Bug 328585 – Need to know if a layout has unknown glyphs Patch fromBehdad Esfahbod2007-01-164-2/+66
| | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Bug 328585 – Need to know if a layout has unknown glyphs Patch from LingNing Zhang * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_copy), (pango_layout_get_unknown_glyphs_count), (pango_layout_clear_lines): * pango/pango-layout.h: New public function: pango_layout_get_unknown_glyphs_count() * pango/pango.def: * docs/tmpl/layout.sgml: * docs/pango-sections.txt: Update. svn path=/trunk/; revision=2162
* Align spaces.Behdad Esfahbod2007-01-161-2/+2
| | | | svn path=/trunk/; revision=2161
* Part of Bug 326693 – PangoLayouts should be query-able about theirBehdad Esfahbod2007-01-164-6/+45
| | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Part of Bug 326693 – PangoLayouts should be query-able about their effective properties (width / wrapped / ellipsized / etc) * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_copy), (pango_layout_is_wrapped), (pango_layout_clear_lines), (process_line): * pango/pango-layout.h: New public function: pango_layout_is_wrapped() * pango/pango.def: * docs/tmpl/layout.sgml: * docs/pango-sections.txt: Update. svn path=/trunk/; revision=2160
* Bug 397327 – pango-layout.c: 'pango_layout_is_ellipsized' must return aBehdad Esfahbod2007-01-161-1/+1
| | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Bug 397327 – pango-layout.c: 'pango_layout_is_ellipsized' must return a value * pango/pango-layout.c (pango_layout_is_ellipsized): Use g_return_val_if_fail() instead of g_return_if_fail(). svn path=/trunk/; revision=2159
* Fix width calculation. Was causing ellipsization to stop at a zero-widthBehdad Esfahbod2007-01-162-10/+21
| | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> * pango/ellipsize.c (get_cluster_width): Fix width calculation. Was causing ellipsization to stop at a zero-width glyph that was part of a bigger cluster. * pango/ellipsize.c (remove_one_span): Skip over zero-width clusters, otherwise ellipsization will stop at a zero-width cluster. * pango/pango-glyph-item.c (_pango_glyph_item_iter_next_cluster), (_pango_glyph_item_iter_prev_cluster): Fix yet another bug with in prev_cluster that was making it not work for any interesting cluster. svn path=/trunk/; revision=2158
* Bug 363510 – Ability to query whether a PangoLayout is effectivelyBehdad Esfahbod2007-01-165-5/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> Bug 363510 – Ability to query whether a PangoLayout is effectively ellipsized (as opposed to the set_ellpisize()/get_ellipsize() methods which only set a request, or return the set request respectively) Patch from Milosz Derezynski * pango/pango-layout.h: * pango/ellipsize.c (_pango_layout_line_ellipsize): * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_init), (pango_layout_copy), (pango_layout_is_ellipsized), (pango_layout_clear_lines), (pango_layout_line_postprocess): New public function: pango_layout_is_ellipsized() * pango/pango.def: * docs/tmpl/layout.sgml: * docs/pango-sections.txt: Update. svn path=/trunk/; revision=2150
* Fix background rendering being off in presence of rise attributes.Behdad Esfahbod2007-01-161-1/+1
| | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> * pango/pango-renderer.c (pango_renderer_draw_layout_line): Fix background rendering being off in presence of rise attributes. svn path=/trunk/; revision=2148
* Update centered_baseline in presence of gravity attributes.Behdad Esfahbod2007-01-161-13/+11
| | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> * pango/pango-context.c (itemize_state_init), (itemize_state_update_for_new_run): Update centered_baseline in presence of gravity attributes. svn path=/trunk/; revision=2147
* Use pango_layout(_iter)?_get_line_readonly() instead ofBehdad Esfahbod2007-01-164-5/+5
| | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> * examples/cairotwisted.c (draw_text): * pango/pangocairo-win32font.c (max_glyph_width): * pango/pangofc-font.c (max_glyph_width): * pango/pangowin32.c (max_glyph_width), (pango_win32_render_layout): * pango/pangox.c (pango_x_render_layout): Use pango_layout(_iter)?_get_line_readonly() instead of pango_layout(_iter)?_get_line(). svn path=/trunk/; revision=2146
* New attribute types PANGO_ATTR_GRAVITY and PANGO_ATTR_GRAVITY_HINT. NewBehdad Esfahbod2007-01-168-297/+456
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> * pango/pango-attributes.h: * pango/pango-attributes.c: New attribute types PANGO_ATTR_GRAVITY and PANGO_ATTR_GRAVITY_HINT. New public functions: pango_attr_gravity_new() pango_attr_gravity_hint_new() * pango/pango-context.c (update_attr_iterator), (itemize_state_init), (itemize_state_add_character), (get_shaper_and_font), (itemize_state_update_for_new_run): Handle gravity and gravity_hint attributes. * pango/pango-utils.h: * pango/pango-utils.c: New public function: pango_parse_enum() * pango/pango-markup.c (span_parse_func): Parse gravity and gravity_hint attributes for <span>. Optimize a bit. * pango/pango-markup.c (parse_absolute_size), (attr_strcmp), (span_parse_int), (span_parse_boolean), (span_parse_color), (span_parse_enum), (span_parse_func): Use pango_scan_int(), pango_color_parse(), and pango_parse_enum(). Also, ignore '-' and '_' differences when matching attribute names for <span>. * examples/renderdemo.c (parse_enum), (parse_ellipsis), (parse_gravity), (parse_gravity_hint), (parse_hinting), (parse_wrap): Use a generic parse_enum() that uses pango_parse_enum(). * modules/basic/basic-fc.c (basic_engine_shape): * pango/pangofc-fontmap.c (pango_fc_make_pattern): Use PANGO_GRAVITY_IS_VERTICAL(). * pango/pango.def: * docs/pango-sections.txt: * docs/tmpl/text-attributes.sgml: * docs/tmpl/utils.sgml: Update. svn path=/trunk/; revision=2145
* Bug 323173 – Add layout of mixed direction text for vertical layoutBehdad Esfahbod2007-01-1618-201/+598
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-15 Behdad Esfahbod <behdad@gnome.org> Bug 323173 – Add layout of mixed direction text for vertical layout * pango/pango-gravity.h: * pango/pango-gravity.c: Moved gravity stuff here. New public API: PangoGravityHint pango_gravity_get_for_matrix() pango_gravity_get_for_script() * pango/pango-context.h: * pango/pango-context.c (pango_context_init), (update_resolved_gravity), (itemize_state_update_for_new_run): Support gravity hint. New public API: pango_context_set_gravity_hint() pango_context_get_gravity_hint() * pango/pango-utils.c: * pango/pango-matrix.c: * pango/pango-matrix.h: * pango/pango-types.h: Moved gravity and matrix stuff into its own header. pango-types.h includes both pango-matrix.h and pango-gravity.h * pango/pango.h: Include new headers. * pango/pango.def: * pango/Makefile.am: Update. * docs/pango-docs.sgml: * docs/pango-sections.txt: * docs/tmpl/glyphs.sgml: * docs/tmpl/main.sgml: * docs/tmpl/vertical.sgml: Add a section for Vertical Text. * examples/renderdemo.c (do_output), (parse_gravity_hint), (parse_options): Support gravity hint. * examples/test-mixed.txt: New test, mixed Latin, Arabic, Chinese text. svn path=/trunk/; revision=2144
* updatedHans Breuer2007-01-132-12/+13
| | | | | | | | | 2007-01-13 Hans Breuer <hans@breuer.org> * pango/makefile.msc pango/opentype/makefile.msc : updated svn path=/trunk/; revision=2139
* Remove .cvsignore files (moved to svn:ignore prop)Behdad Esfahbod2007-01-093-31/+0
| | | | svn path=/trunk/; revision=2137
* Don't introduce bitfields in public struct and rename PangoAnalysis.Behdad Esfahbod2007-01-084-8/+11
| | | | | | | | | | | | | | | | | | 2007-01-08 Behdad Esfahbod <behdad@gnome.org> * docs/pango-sections.txt: * docs/tmpl/glyphs.sgml: * docs/tmpl/main.sgml: * pango/pango-context.c (itemize_state_add_character): * pango/pango-item.h: * pango/pango-layout.c (pango_layout_run_get_extents): * pango/pango-renderer.c (pango_renderer_draw_layout_line): Don't introduce bitfields in public struct and rename PangoAnalysis. centered_baseline to PangoAnalysis.flags and introduce PANGO_ANALYSIS_FLAGS_CENTERED_BASELINE. svn path=/trunk/; revision=2134
* Fix typo in docs.Behdad Esfahbod2007-01-081-1/+1
| | | | svn path=/trunk/; revision=2133
* Spell-check the docs.Behdad Esfahbod2007-01-0737-132/+130
| | | | svn path=/trunk/; revision=2130
* Improve docs, and mention g_unichar_iszerowidth().Behdad Esfahbod2007-01-041-2/+5
| | | | | | | | | | 2007-01-04 Behdad Esfahbod <behdad@gnome.org> * pango/pango-utils.c: Improve docs, and mention g_unichar_iszerowidth(). svn path=/trunk/; revision=2127
* Part of Bug 332266 – gdk_draw_layout fails for coordinates >= 2^21Behdad Esfahbod2007-01-047-70/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-04 Behdad Esfahbod <behdad@gnome.org> Part of Bug 332266 – gdk_draw_layout fails for coordinates >= 2^21 * pango/pango-types.h: * pango/pango-matrix.c: New public API: pango_matrix_transform_distance() pango_matrix_transform_point() pango_matrix_transform_rectangle() pango_matrix_transform_pixel_rectangle() * pango/pango-utils.h: * pango/pango-utils.c: New public API: pango_units_from_double() pango_units_to_double() pango_extents_to_pixels() * pango/pango-layout.c (pango_layout_get_pixel_extents), (pango_layout_line_get_pixel_extents): Use pango_extents_to_pixels(). * pango/pangocairo-fcfont.c: (pango_cairo_fc_font_glyph_extents_cache_init), (compute_glyph_extents): Use pango_units_from_double(). * examples/renderdemo.c (do_output): Use pango_matrix_transform_pixel_rectangle(); * pango/pango.def: * docs/pango-sections.txt: * docs/tmpl/glyphs.sgml: Update. svn path=/trunk/; revision=2126
* Bug 390877 – Don't feed pango-features.h to glib-mkenums Patch fromBehdad Esfahbod2007-01-031-1/+1
| | | | | | | | | | | | 2007-01-03 Behdad Esfahbod <behdad@gnome.org> Bug 390877 – Don't feed pango-features.h to glib-mkenums Patch from Yevgen Muntyan * pango/Makefile.am: Move pango-features.h to pangoinclude_HEADERS. svn path=/trunk/; revision=2124
* Bug 384543 – FcFontMatch misuseBehdad Esfahbod2006-12-245-8/+15
| | | | | | | | | | | | | | | | | 2006-12-23 Behdad Esfahbod <behdad@gnome.org> Bug 384543 – FcFontMatch misuse * pango/pangofc-fontmap.c (pango_fc_face_describe): Call FcConfigSubstitute and FcDefaultSubstitute before calling FcFontMatch. * pango/pangoft2.c (load_fallback_face): Call _pango_ft2_font_map_default_substitute(). * pango/pangocairo-fcfontmap.c (pango_cairo_fc_font_map_context_substitute): Handle the case of context == NULL.
* Improve docs.Behdad Esfahbod2006-12-241-1/+21
| | | | | | 2006-12-23 Behdad Esfahbod <behdad@gnome.org> * pango/pango-utils.c (pango_language_get_default): Improve docs.
* Bug 326099 – Setting width, indentation and ellipsizing doesn't work asBehdad Esfahbod2006-12-192-3/+8
| | | | | | | | | | | | | 2006-12-19 Behdad Esfahbod <behdad@gnome.org> Bug 326099 – Setting width, indentation and ellipsizing doesn't work as I would expect * pango/ellipsize.c (_pango_layout_line_ellipsize): Account for indentation when deciding what width to ellipsize for. * pango/pango-layout.c (get_alignment): Don't bother about conditioning on the line direction for center alignment.
* Avoid some floating-point operations by caching the y value for theBehdad Esfahbod2006-12-181-8/+10
| | | | | | | | 2006-12-17 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-render.c (pango_cairo_renderer_draw_glyphs): Avoid some floating-point operations by caching the y value for the baseline, using it for glyphs having y_offset of 0.
* Bug 385478 – Fix tests on OPD platformFrederic Crozat2006-12-161-1/+1
| | | | | | | | | 2006-12-15 Frederic Crozat <fcrozat@mandriva.com> Bug 385478 – Fix tests on OPD platform * pango/check.defs: Fix tests on OPD platform to report correct symbols name.
* Bug 319808 – Patch to let pango support artifical italic, bold and boldBehdad Esfahbod2006-12-131-19/+84
| | | | | | | | | | | | 2006-12-13 Behdad Esfahbod <behdad@gnome.org> Bug 319808 – Patch to let pango support artifical italic, bold and bold italic styles for the fonts which don't have these styles. Patch from James Su * pango/pangofc-fontmap.c (pango_fc_face_describe), (create_face), (pango_fc_family_list_faces): Create fake Bold, Italic, and Bold Italic faces for fonts that do not have one.
* Bug 385478 – Fix tests on OPD platformGwenole Beauchesne2006-12-131-2/+7
| | | | | | | | | 2006-12-13 Gwenole Beauchesne <gbeauchesne@mandriva.com> Bug 385478 – Fix tests on OPD platform * pango/check.defs: Improve symbols extraction for OPD-based platforms (e.g. ppc64, ia64).
* Cache layout ink and logical extents.Behdad Esfahbod2006-12-072-35/+50
| | | | | | | | | | | | 2006-12-07 Behdad Esfahbod <behdad@gnome.org> * pango/pango-layout-private.h: * pango/pango-layout.c (pango_layout_get_extents_internal), (pango_layout_get_extents), (pango_layout_clear_lines), (pango_layout_line_leaked), (pango_layout_line_get_extents), (pango_layout_iter_copy), (pango_layout_get_iter), (pango_layout_iter_get_layout_extents): Cache layout ink and logical extents.
* New generated public header file pango-features.h. Currently contains theBehdad Esfahbod2006-12-0710-19/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-12-06 Behdad Esfahbod <behdad@gnome.org> * configure.in: * pango/Makefile.am: New generated public header file pango-features.h. Currently contains the version information. In the future, can be expanded to define which backends have been enabled, etc. * pango/pango.def: * pango/pango-utils.h: * pango/pango-utils.c: New public macros and functions: PANGO_VERSION_ENCODE(), PANGO_VERSION_MAJOR, PANGO_VERSION_MINOR, PANGO_VERSION_MICRO, PANGO_VERSION, PANGO_VERSION_STRING, PANGO_VERSION_CHECK(), pango_version(), pango_version_string(), pango_version_check(). * docs/pango-docs.sgml: * docs/pango-sections.txt: * docs/tmpl/pango-version.sgml: Docs for new symbols, in a new section. * examples/renderdemo.c (show_version): If run-time Pango lib version is different than the compile-time one, show that one too. * pango/pango.h: #include <pango-utils.h> as well as almost all other public pango-*.h headers (though, the other ones were already included indirectly). The only public pango-*.h header pango.h shouldn't include are pango-ot.h (which is really misnamed) and pango-modules.h (that should not be needed by 99.99% users anyway). * docs/Makefile.am: * docs/check.docs: Test to check that all symbols are documented and properly hooked into documentation tree. * pango/pango.rc.in: * pango/pangoft2.rc.in: * pango/pangowin32.rc.in: Update, reflecting some internal symbol changes. * pango/check.defs: Improve.
* Set context language to pango_language_get_default() instead of hardcodingBehdad Esfahbod2006-12-061-3/+6
| | | | | | | | | 2006-12-06 Behdad Esfahbod <behdad@gnome.org> * examples/renderdemo.c (do_output): Set context language to pango_language_get_default() instead of hardcoding "en-US". * pango/pango-utils.c (pango_language_get_default): Improve docs.
* Bug 333982 – Fallback to $LANG whenever NULL PangoLanguage is used PatchBehdad Esfahbod2006-12-064-1/+96
| | | | | | | | | | | | | | | | | | | | | 2006-12-06 Behdad Esfahbod <behdad@gnome.org> Bug 333982 – Fallback to $LANG whenever NULL PangoLanguage is used Patch from LingNing Zhang * docs/pango-sections.txt: * docs/tmpl/utils.sgml: * pango/pango-context.c: * pango/pango-types.h: * pango/pango-utils.c (_pango_get_lc_ctype), (pango_language_get_default): * pango/pango.def: New public function pango_language_get_default(). Note that, this does not make Pango fallback to the default language automatically, but the user can use this function to set the default language of the locale on a context: pango_context_set_language (context, pango_language_get_default());
* Bug 373856 – Wish: Function to convert a GdkColor to a string Patch fromBehdad Esfahbod2006-12-063-0/+24
| | | | | | | | | | | | | | 2006-12-06 Behdad Esfahbod <behdad@gnome.org> Bug 373856 – Wish: Function to convert a GdkColor to a string Patch from Matthew Barnes * docs/pango-sections.txt: * docs/tmpl/text-attributes.sgml: * pango/pango-attributes.h: * pango/pango.def: * pango/pango-color.c (pango_color_to_string): New public function pango_color_to_string().
* Add new functions: pango_layout_iter_get_line_readonly()Behdad Esfahbod2006-12-054-9/+142
| | | | | | | | | | | | | | | | | | | | | | | 2006-12-05 Behdad Esfahbod <behdad@gnome.org> * docs/pango-sections.txt: * docs/tmpl/layout.sgml: * pango/pango-layout.c (pango_layout_get_lines_readonly), (pango_layout_get_line_readonly), (pango_layout_iter_get_run_readonly), (_pango_layout_iter_get_line), (pango_layout_iter_get_line), (pango_layout_iter_get_line_readonly): * pango/pango-layout.h: * pango/pango-renderer.c (pango_renderer_draw_layout): * pango/pango.def: Add new functions: pango_layout_iter_get_line_readonly() pango_layout_get_lines_readonly() pango_layout_iter_get_line_readonly() pango_layout_iter_get_run_readonly() These should be used when you do not intend to modify the run/line, which is more than most of the time. So, update your app, benefit from more optimizations (in this case, line extents caching)!
* Bug 135683 – Cache glyphstring extentsBehdad Esfahbod2006-12-043-7/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | 2006-12-04 Behdad Esfahbod <behdad@gnome.org> Bug 135683 – Cache glyphstring extents * pango/pango-layout.c (pango_layout_get_lines), (pango_layout_get_line), (pango_layout_line_leaked), (pango_layout_line_get_extents), (pango_layout_line_new), (pango_layout_iter_get_run), (pango_layout_iter_get_line): Cache line extents. Line extents are cached only if the user doesn't have a pointer to the line or any of its runs. Functions that give away such pointers mark the line as "leak"ed. * pango/pango-layout.c (pango_layout_index_to_line_and_extents), (pango_layout_xy_to_index), (pango_layout_index_to_pos): Use _pango_layout_iter_get_line() which is like pango_layout_iter_get_line() but doesn't leak the line. * pango/pango-layout-private.h: Add pango_layout_iter_get_line() duplicate _pango_layout_iter_get_line_readonly() that doesn't leak the line. * pango/pango-renderer.c (pango_renderer_draw_layout): Use _pango_layout_iter_get_line_readonly().
* Improve upon last change. Suggested by Carl Worth: use cairo_rectangle(x +Behdad Esfahbod2006-12-041-11/+2
| | | | | | | | | 2006-12-04 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-render.c (_pango_cairo_renderer_draw_frame): Improve upon last change. Suggested by Carl Worth: use cairo_rectangle(x + width, y, -width, height) to do a rectangle with the other orientation.
* Fix handling of boxes drawn in do_path mode. Previously we were doing oneBehdad Esfahbod2006-12-041-21/+54
| | | | | | | | | | | | | | 2006-12-04 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-render.c (_pango_cairo_renderer_draw_frame), (_pango_cairo_renderer_draw_box_glyph), (_pango_cairo_renderer_draw_unknown_glyph): Fix handling of boxes drawn in do_path mode. Previously we were doing one rectangle and stroke it if in show mode, and leave it alone if in path mode. That doesn't really work. Now we do two rectangles, for the outer and inner rects of the box border, but with different orientations, such that pango_cairo_layout_path(); cairo_fill(); works for hexboxes now.
* Replace PANGO_IS_RENDERER with PANGO_IS_RENDERER_FAST that is just aBehdad Esfahbod2006-12-041-13/+14
| | | | | | | | | | | | | | 2006-12-04 Behdad Esfahbod <behdad@gnome.org> * pango/pango-renderer.c (pango_renderer_draw_layout_line), (pango_renderer_draw_glyphs), (pango_renderer_draw_rectangle), (pango_renderer_draw_error_underline), (pango_renderer_draw_trapezoid), (pango_renderer_draw_glyph), (pango_renderer_activate), (pango_renderer_deactivate), (pango_renderer_set_color), (pango_renderer_get_color), (pango_renderer_part_changed), (pango_renderer_prepare_run), (pango_renderer_set_matrix): Replace PANGO_IS_RENDERER with PANGO_IS_RENDERER_FAST that is just a NULL-check.
* Don't cache run_logical_rect in PangoLayoutIter. Just cache run_width thatBehdad Esfahbod2006-12-011-36/+59
| | | | | | | | | | | 2006-12-01 Behdad Esfahbod <behdad@gnome.org> * pango/pango-layout.c (pango_layout_run_get_width), (update_run), (pango_layout_iter_copy), (pango_layout_iter_get_run_extents): Don't cache run_logical_rect in PangoLayoutIter. Just cache run_width that can be fastly computed using pango_glyph_string_get_width(). Avoids one pango_font_get_glyph_extents() call per glyph per layout rendering. We are down to 1 now.
* Rework the way we compute the real_width to avoid callingBehdad Esfahbod2006-11-301-7/+13
| | | | | | | | | | 2006-11-30 Behdad Esfahbod <behdad@gnome.org> * pango/pango-layout.c (pango_layout_get_extents_internal): Rework the way we compute the real_width to avoid calling pango_layout_get_extents(), and so, avoid one pango_font_get_glyph_extents() call per glyph per layout rendering. We now make 2 such calls.
* Don't call into pango_glyph_string_extents() if we don't need anything outBehdad Esfahbod2006-11-301-2/+3
| | | | | | | | | 2006-11-30 Behdad Esfahbod <behdad@gnome.org> * pango/pango-renderer.c (pango_renderer_draw_layout_line): Don't call into pango_glyph_string_extents() if we don't need anything out of it! (Ok, that function returns immediately in that case, but still, avoiding the call overhead.)
* Use G_LOCK_* wrappers for GStaticMutex.Behdad Esfahbod2006-11-301-3/+3
| | | | | | | 2006-11-30 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-render.c (acquire_renderer), (release_renderer): Use G_LOCK_* wrappers for GStaticMutex.
* Revert two of the cast changes from last commit, to make sure theBehdad Esfahbod2006-11-283-4/+14
| | | | | | | | | | | | 2006-11-28 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-font.c (_pango_cairo_font_install), (_pango_cairo_font_get_font_face), (_pango_cairo_font_get_scaled_font): * pango/pangocairo-private.h: * pango/pangocairo-render.c (pango_cairo_renderer_draw_glyphs): Revert two of the cast changes from last commit, to make sure the test-pangocairo-fontmap-mismatch test doesn't crash.
* Use simple, fast, casts instead of PANGO_CAIRO_*() macros where the objectBehdad Esfahbod2006-11-285-27/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-11-28 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-fcfont.c (pango_cairo_fc_font_get_font_face), (pango_cairo_fc_font_install), (pango_cairo_fc_font_finalize), (pango_cairo_fc_font_get_metrics), (pango_cairo_fc_font_shutdown), (_pango_cairo_fc_font_new): * pango/pangocairo-fcfontmap.c (pango_cairo_fc_font_map_set_resolution), (pango_cairo_fc_font_map_get_resolution_cairo), (pango_cairo_fc_font_map_get_renderer), (pango_cairo_fc_font_map_finalize), (pango_cairo_fc_font_map_get_resolution_fc), (pango_cairo_fc_font_map_create_font): * pango/pangocairo-font.c (_pango_cairo_font_install), (_pango_cairo_font_get_font_face), (_pango_cairo_font_get_scaled_font), (_pango_cairo_font_get_hex_box_info): * pango/pangocairo-fontmap.c (pango_cairo_create_layout): * pango/pangocairo-render.c (set_color), (_pango_cairo_renderer_draw_unknown_glyph), (pango_cairo_renderer_draw_glyphs), (pango_cairo_renderer_draw_rectangle), (pango_cairo_renderer_draw_error_underline): Use simple, fast, casts instead of PANGO_CAIRO_*() macros where the object cannot have reached us if it wasn't of the right type.
* Make renderer-cache really thread-safe this time. Last try was not quiteBehdad Esfahbod2006-11-251-10/+18
| | | | | | | | | | | 2006-11-25 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-render.c (acquire_renderer), (release_renderer), (_pango_cairo_do_glyph_string), (_pango_cairo_do_layout_line), (_pango_cairo_do_layout): Make renderer-cache really thread-safe this time. Last try was not quite thread-safe theoretically, because pointer assignments are not necessarily atomic on some archs. Anyway, this one should do it.
* Bug 377975 – bug in _pango_glyph_item_iter_next_clusterBehdad Esfahbod2006-11-221-4/+4
| | | | | | | | | | 2006-11-22 Behdad Esfahbod <behdad@gnome.org> Bug 377975 – bug in _pango_glyph_item_iter_next_cluster * pango/pango-glyph-item.c (_pango_glyph_item_iter_next_cluster), (_pango_glyph_item_iter_prev_cluster): Fix condition for ending a cluster.
* Fix typo in private docs.Behdad Esfahbod2006-11-211-1/+1
| | | | | | 2006-11-21 Behdad Esfahbod <behdad@gnome.org> * pango/pango-glyph-item.c: Fix typo in private docs.
* Bug 356666 – pango is not thread-safe, nautilus does not honour thatBehdad Esfahbod2006-11-201-49/+47
| | | | | | | | | | | | 2006-11-20 Behdad Esfahbod <behdad@gnome.org> Bug 356666 – pango is not thread-safe, nautilus does not honour that * pango/pangocairo-render.c (acquire_renderer), (release_renderer), (_pango_cairo_do_glyph_string), (_pango_cairo_do_layout_line), (_pango_cairo_do_layout): Instead of using a per-fontmap renderer, use a locally cached one, but make sure only one thread uses the cached renderer. Fixes the raciest point in pangocairo.