summaryrefslogtreecommitdiff
path: root/pango/pangofc-font.c
Commit message (Collapse)AuthorAgeFilesLines
* Bug 685167 - migrate docs to no-tmpl flavourBehdad Esfahbod2013-09-271-0/+18
| | | | Patch from Rafał Mużyło.
* Use g_value_take_objectBehdad Esfahbod2012-08-291-3/+1
|
* Port pangofc-font.c to GWeakRefBehdad Esfahbod2012-08-291-24/+26
|
* More churnBehdad Esfahbod2012-08-281-6/+5
|
* Deprecate pango_fc_font_kern_glyphs()Behdad Esfahbod2012-08-251-0/+1
| | | | No use for this anymore.
* Deprecate pango-ot.hBehdad Esfahbod2012-08-231-2/+0
| | | | | | Still needs document Deprecated tags to be done. Soon to add pango-hb.h
* Annotations: add missing colons after symbol namesPavel Holejsovsky2012-06-041-3/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=677407
* Bug 625807 - approximate character width is 0 on pangoft2Behdad Esfahbod2010-08-061-3/+45
| | | | Fix regression.
* [cairo] Refactor common code in create_metrics_for_context()Behdad Esfahbod2010-05-041-48/+3
|
* Bug 341481 - pangocairo kerning problem with nonidentity scalingBehdad Esfahbod2009-11-171-0/+19
| | | | | Finally fix this embarrassing bug. The fix is a kludge, but it will be redone for 1.28 (harfbuzz-ng) anyway.
* Bug 589133 – Firefox 3.5 complains about invalid weak referencesBehdad Esfahbod2009-07-201-2/+11
|
* Bug 585806 – crash during pango_fc_font_map_shutdownBehdad Esfahbod2009-07-201-3/+0
|
* Bug 586814 – Crashes related to fontmap destruction after upgradeBehdad Esfahbod2009-06-241-1/+5
| | | | Followup patch from Morten.
* [pangofc] Be more tolerant on the "fontmap" property settingBehdad Esfahbod2009-04-081-1/+1
| | | | | | | | | | | | | | | | | | Bug 578336 – ABI breakage from 1.22 to 1.24 in fontmap field of PangoFcFont Commit 9305b9a9995e84ace3818a90346820ef8c47a3ce introduced a "fontmap" property in PangoFcFont and expected all subclasses to set it upon construction. And PangoFcFontSet was changed to not set fcfont->fontmap anymore. Relax this change to make it backward compatible by: 1) Making "fontmap" property a not-construct-only property 2) In PangoFcFontSet, set "fontmap" if not already set This should make it backward compatible, while allowing new code to set the property instead of relying on PangoFcFontSet to do it.
* [pangofc] Share cmap cache between PangoFcFont's of the same face (#567160)Behdad Esfahbod2009-03-131-28/+13
|
* [pangofc] Add a "fontmap" property to PangoFcFontBehdad Esfahbod2009-03-131-4/+38
| | | | | | | | | | | Gecko uses its own PangoFcFontMap subclass with its own PangoFontSet. Previously we were setting font->fontmap in our own private PangoFcFontSet. Now it's up to the PangoFcFont subclass to set it when creating the new font object. Also adds the following backend-public symbol: pango_fc_font_map_find_decoder()
* Bug 566727 – PangoFontsetLazyBehdad Esfahbod2009-01-281-0/+3
| | | | | | | | | | | | | | | | | | 2009-01-27 Behdad Esfahbod <behdad@gnome.org> Bug 566727 – PangoFontsetLazy * pango/pangofc-fontmap.c: Rework caching. Cache FcFontSort results separately from PangoFontset's. Add PangoFcFontset which is lazy and does not create fonts until it really needs to. Use FcFontMatch() and only do FcFontSort() if fallback fonts are needed. svn path=/trunk/; revision=2809
* Change PangoFc font loading API such that PangoContext is not passed down.Behdad Esfahbod2009-01-281-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-01-09 Behdad Esfahbod <behdad@gnome.org> * docs/pango-sections.txt: * docs/tmpl/pangofc-fontmap.sgml: * docs/tmpl/text-attributes.sgml: * pango/pangocairo-fc.h: * pango/pangocairo-fcfont.c (get_font_size), (get_gravity_class), (get_gravity), (_pango_cairo_fc_font_new): * pango/pangocairo-fcfontmap.c (pango_cairo_fc_font_map_font_key_substitute), (pango_cairo_fc_font_map_create_font), (pango_cairo_fc_font_map_class_init): * pango/pangofc-font.c (_pango_fc_font_get_font_key), (_pango_fc_font_set_font_key): * pango/pangofc-fontmap.c (pango_fc_font_key_equal), (pango_fc_font_key_hash), (pango_fc_font_key_free), (pango_fc_font_key_copy), (get_context_matrix), (pango_fc_font_key_init), (pango_fc_font_key_get_pattern), (pango_fc_font_key_get_matrix), (pango_fc_font_key_get_context_key), (pango_fc_font_map_init), (pango_fc_font_map_class_init), (pango_fc_font_map_add), (_pango_fc_font_map_remove), (pango_fc_make_pattern), (pango_fc_font_map_new_font), (pango_fc_default_substitute), (pango_fc_font_map_get_patterns), (pango_fc_font_map_load_fontset): * pango/pangofc-fontmap.h: * pango/pangofc-private.h: Change PangoFc font loading API such that PangoContext is not passed down. We use a new opaque struct called PangoFcFontKey. This struct is in fact our font hash key. This avoids problems where previously we were using context members that were not necessarily considered by the pangofc layer when caching. This is in preparation for lazy loading of fonts in the pangofc fontmap. svn path=/trunk/; revision=2804
* Fix more warnings.Behdad Esfahbod2008-12-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-12-25 Behdad Esfahbod <behdad@gnome.org> * pango/modules.c (pango_module_load), (script_info_free): * pango/opentype/harfbuzz-gpos.c (HB_Load_GPOS_Table): * pango/pango-bidi-type.c: * pango/pango-coverage.c (pango_coverage_ref), (pango_coverage_unref): * pango/pango-engine.c (pango_engine_shape_real_covers), (fallback_engine_shape), (fallback_engine_covers): * pango/pango-fontmap.c (pango_font_map_init): * pango/pango-ot-ruleset.c (pango_ot_ruleset_finalize), (pango_ot_ruleset_new): * pango/pangofc-decoder.c (pango_fc_decoder_init), (pango_fc_decoder_class_init): * pango/pangofc-font.c (pango_fc_font_find_shaper), (pango_fc_font_get_coverage): * pango/pangofc-fontmap.c (pango_fc_font_map_list_families), (pango_fc_make_pattern), (pango_fc_font_map_get_patterns), (get_first_font), (_pango_fc_font_map_get_coverage), (cleanup_font), (pango_fc_font_description_from_pattern), (pango_fc_face_list_sizes), (pango_fc_family_list_faces): * pango/pangoft2-fontmap.c (pango_ft2_font_map_get_resolution): * pango/pangoft2-render.c (pango_ft2_renderer_init), (pango_ft2_renderer_draw_trapezoid): * pango/pangoft2.c (pango_ft2_font_get_face), (pango_ft2_font_real_unlock_face), (pango_ft2_free_glyph_info_callback): Fix more warnings. svn path=/trunk/; revision=2766
* Bug 563356 – The input area of firefox and the blank width after text inBehdad Esfahbod2008-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | 2008-12-05 Behdad Esfahbod <behdad@gnome.org> Bug 563356 – The input area of firefox and the blank width after text in gnome-menu was stretched too wide, under pango-1.22.3 * docs/tmpl/fonts.sgml: * pango/pango-impl-utils.h: * pango/pangocairo-atsuifont.c (pango_cairo_atsui_font_create_metrics_for_context): * pango/pangocairo-win32font.c (pango_cairo_win32_font_create_metrics_for_context): * pango/pangofc-font.c (pango_fc_font_create_metrics_for_context): For approximate_char_width calculation take each char's width into account. That is, do a weighted average instead of uniform average. g_unichar_iszerowidth() chars count as 0, g_unichar_iswide() chars count 2, and the rest count as 1. Pretty much wcwidth() behavior. See bug report for rationale. svn path=/trunk/; revision=2747
* Bug 558254 – Internal reference handling messed upBehdad Esfahbod2008-10-281-0/+3
| | | | | | | | | | | | 2008-10-28 Behdad Esfahbod <behdad@gnome.org> Bug 558254 – Internal reference handling messed up * pango/pangofc-font.c (pango_fc_font_get_coverage): * pango/pangofc-fontmap.c (pango_fc_font_map_finalize): Make sure fonts->fontmap is set to NULL when fontmap finalizes. svn path=/trunk/; revision=2734
* Bug 143542 – PangoFT2Fontmap leakBehdad Esfahbod2008-08-221-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-22 Behdad Esfahbod <behdad@gnome.org> Bug 143542 – PangoFT2Fontmap leak * pango/fonts.c: * pango/pangoatsui.c (pango_atsui_font_finalize), (_pango_atsui_font_set_font_map): * pango/pangocairo-font.c (_pango_cairo_font_get_metrics), (_pango_cairo_font_private_get_hex_box_info): * pango/pangocairo-win32font.c (_pango_cairo_win32_font_new): * pango/pangofc-font.c (pango_fc_font_get_metrics): * pango/pangofc-fontmap.c (pango_fc_font_map_add), (_pango_fc_font_map_remove), (cleanup_font): * pango/pangowin32-fontmap.c (pango_win32_font_neww), (pango_win32_font_map_real_find_font): * pango/pangowin32.c (pango_win32_font_finalize): * pango/pangox-fontmap.c (pango_x_font_map_load_font): * pango/pangox.c (pango_x_font_new), (pango_x_font_finalize): Make the reference the font->fontmap reference weak. The code for setting the reference must look like this: g_assert (font->fontmap == NULL); font->fontmap = (PangoFontMap *) fontmap; g_object_add_weak_pointer (G_OBJECT (font->fontmap), (gpointer *) (gpointer) &font->fontmap); And releasing it like: g_assert (font->fontmap != NULL); g_object_remove_weak_pointer (G_OBJECT (font->fontmap), (gpointer *) (gpointer) &font->fontmap); font->fontmap = NULL; I have converted all fontmaps. The win32 and atsui ones can use some simple testing. The PangoFc fonts actually don't need the weakref as the fontmap already provides a similar link by itself. svn path=/trunk/; revision=2704
* Make the following API public:Behdad Esfahbod2008-08-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-08-05 Behdad Esfahbod <behdad@gnome.org> * pango/pango-context.c: * pango/pango-context.h: Make the following API public: pango_context_new() pango_context_set_font_map() * pango/pango-fontmap.c (pango_font_map_create_context): * pango/pango-fontmap.h: New public API: pango_font_map_create_context() * pango/pangocairo-context.c (pango_cairo_create_context): * pango/pangocairo-font.c (_pango_cairo_font_get_metrics), (_pango_cairo_font_private_get_hex_box_info): * pango/pangocairo-fontmap.c (pango_cairo_font_map_create_context): * pango/pangocairo.h: Deprecate pango_cairo_font_map_create_context(). * pango/pangofc-font.c (pango_fc_font_get_metrics): * pango/pangofc-fontmap.c (pango_fc_font_map_create_context): * pango/pangofc-fontmap.h: Deprecate pango_fc_font_map_create_context(). * pango/pangoft2-fontmap.c (pango_ft2_font_map_create_context), (pango_ft2_get_context): * pango/pangoft2.h: Deprecate pango_ft2_font_map_create_context(). * pango/pangowin32.c (pango_win32_get_context), (pango_win32_font_get_metrics): * pango/pangowin32.h: Deprecate pango_win32_get_context(). * pango/pangoxft-font.c (_pango_xft_font_get_mini_font): * pango/pangoxft-fontmap.c (pango_xft_get_context): * pango/pangoxft.h: Deprecate pango_xft_get_context(). * pango/pangox-fontmap.c (pango_x_font_map_for_display): * pango/pangox.c (get_context_info), (pango_x_get_context), (pango_x_context_set_funcs), (pango_x_render_layout_line): Deprecate pango_x_get_context(), again. * docs/pango-sections.txt: * docs/tmpl/fonts.sgml: * pango-view/viewer-pangocairo.c (pangocairo_view_get_context): * pango-view/viewer-pangoft2.c (pangoft2_view_get_context): * pango-view/viewer-pangox.c (pangox_view_get_context): * pango-view/viewer-pangoxft.c (pangoxft_view_get_context): * pango/check.defs: * pango/pango.def: Update. svn path=/trunk/; revision=2675
* Include "config.h" instead of <config.h> Command used: find -nameJohan Dahlin2008-06-221-1/+1
| | | | | | | | | | | | 2008-06-21 Johan Dahlin <jdahlin@async.com.br> * *.[ch]: Include "config.h" instead of <config.h> Command used: find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g' Rubberstamped by Behdad svn path=/trunk/; revision=2657
* Bug 537186 – Make PangoFcFont pattern property readableBehdad Esfahbod2008-06-091-1/+27
| | | | | | | | | | | | 2008-06-09 Behdad Esfahbod <behdad@gnome.org> Bug 537186 – Make PangoFcFont pattern property readable * pango/pangofc-font.c (pango_fc_font_class_init), (pango_fc_font_get_property): Make it readable. svn path=/trunk/; revision=2649
* Bug 485536 – underline_position can be zeroBehdad Esfahbod2007-11-301-15/+27
| | | | | | | | | | | | | | | | | 2007-11-29 Behdad Esfahbod <behdad@gnome.org> Bug 485536 – underline_position can be zero * pango/pango-utils.c (pango_cairo_quantize_line_geometry): Document that returned position may be zero. * pango/pangocairo-win32font.c (pango_cairo_win32_font_create_metrics_for_context): * pango/pangofc-font.c (get_face_metrics): Handle case of underline_position==0 after rounding. svn path=/trunk/; revision=2506
* Bug 472924 – Mark some classes abstractBehdad Esfahbod2007-10-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 2007-10-24 Behdad Esfahbod <behdad@gnome.org> Bug 472924 – Mark some classes abstract * pango/fonts.c: * pango/pango-fontmap.c: * pango/pangofc-font.c: * pango/pangofc-fontmap.c: Public API chance: Mark the following types as abstract: PangoFont PangoFontFace PangoFontFamily PangoFontMap PangoFcFont PangoFcFontMap svn path=/trunk/; revision=2465
* Bug 481537 – compiler warning fixes Patch from Kjartan MaraasBehdad Esfahbod2007-10-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 2007-10-15 Behdad Esfahbod <behdad@gnome.org> Bug 481537 – compiler warning fixes Patch from Kjartan Maraas * pango/break.c (pango_get_log_attrs): * pango/pango-attributes.c (pango_attr_list_insert_internal): * pango/pango-layout.c (process_item), (justify_clusters): * pango/pango-markup.c (span_parse_boolean): * pango/pango-ot-ruleset.c (pango_ot_ruleset_finalize), (pango_ot_ruleset_new): * pango/pango-utils.c (pango_scan_int): * pango/pangocairo-font.c (_pango_cairo_font_install): * pango/pangofc-font.c (pango_fc_font_create_metrics_for_context): * pango/pangoft2.c (load_fallback_face): * pango/pangox-fontmap.c (pango_x_get_coverage_win): * pango/pangox.c (itemize_string_foreach): Fix warnings. svn path=/trunk/; revision=2444
* Bug 466755 – pango hangul is crashing in gnome-about because it isBehdad Esfahbod2007-08-141-6/+17
| | | | | | | | | | | | | | | | | 2007-08-14 Behdad Esfahbod <behdad@gnome.org> Bug 466755 – pango hangul is crashing in gnome-about because it is failing to retrieve a font. * pango/pangofc-font.c (pango_fc_font_real_get_glyph), (pango_fc_font_kern_glyphs), (pango_fc_font_get_raw_extents): Protect against NULL face. * pango/shape.c (pango_shape): Improve error message by writing out shaping engine type name and the text too. svn path=/trunk/; revision=2396
* Quantize kerning adjustment, otherwise all the metrics hinting effort willBehdad Esfahbod2007-04-121-2/+9
| | | | | | | | | | | | | | | | | | 2007-04-12 Behdad Esfahbod <behdad@gnome.org> * pango/pango-ot-buffer.c (apply_gpos_ltr), (apply_gpos_rtl), (pango_ot_buffer_output): * pango/pango-types.h: * pango/pangofc-font.c (pango_fc_font_kern_glyphs): * pango/pangofc-private.h: Quantize kerning adjustment, otherwise all the metrics hinting effort will be ruined by a non-whole-pixel kerning value. In the future we want to take lsb_delta and rsb_delta into the game before quantizing the adjustment here, but we don't have those values handy right now. svn path=/trunk/; revision=2225
* *.c, *.h: Replace preceding sequences of 8 spaces with tabs.Behdad Esfahbod2007-01-161-11/+11
| | | | | | | | | 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-161-44/+44
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Drop trailing whitespace. svn path=/trunk/; revision=2163
* Use pango_layout(_iter)?_get_line_readonly() instead ofBehdad Esfahbod2007-01-161-1/+1
| | | | | | | | | | | | | | | | 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
* Spell-check the docs.Behdad Esfahbod2007-01-071-2/+2
| | | | svn path=/trunk/; revision=2130
* Bug 369670 – Checked g_free callsBehdad Esfahbod2006-11-021-2/+1
| | | | | | | | | | | | | 2006-11-02 Behdad Esfahbod <behdad@gnome.org> Bug 369670 – Checked g_free calls * pango/pango-coverage.c (pango_coverage_unref): * pango/pango-layout.c (pango_layout_finalize), (pango_layout_set_text): * pango/pangofc-font.c (pango_fc_font_finalize): * pango/pangox-fontmap.c (pango_x_font_map_read_alias_file): Remove redundant checks before g_free() calls.
* Bug 355435 – Invalid calls to pango_map_get_engine() Patch fromBehdad Esfahbod2006-09-111-1/+3
| | | | | | | | | | | | | | 2006-09-11 Behdad Esfahbod <behdad@gnome.org> Bug 355435 – Invalid calls to pango_map_get_engine() Patch from Theppitak Karoonboonyanan * pango/break.c (pango_get_log_attrs): * pango/pango-renderer.c (add_underline): * pango/pangofc-font.c (pango_fc_font_find_shaper): * pango/pangowin32.c (pango_win32_font_find_shaper): * pango/pangox.c (pango_x_font_find_shaper): Pass a PangoScript to pango_map_get_engine, not a gunichar!
* Bug 342525 – With PangoFc and PangoWin32, approximate digit width is notBehdad Esfahbod2006-05-221-3/+28
| | | | | | | | | | | | | | | | | | | | | | | 2006-05-22 Behdad Esfahbod <behdad@gnome.org> Bug 342525 – With PangoFc and PangoWin32, approximate digit width is not what it says * pango/pangocairo-win32font.c (max_glyph_width), (create_metrics_for_context): Use max digit width instead of average. Reverted the following changes: * pango/pangofc-font.c (pango_fc_font_create_metrics_for_context): Likewise for PangoFc. Compute average instead of max. (max_glpyh_with): Now unused, drop. * pango/pangowin32.c (pango_win32_font_get_metrics): Calculate average digit width correctly, not as max of the digit widths. (#342525) Note that this code doesn't really get much used currently (instead the code in pangocairo-win32font.c is used), fixed only for completeness. (max_glpyh_with): Now unused, drop.
* New function pango_font_describe_with_absolute_size().Behdad Esfahbod2006-05-221-1/+18
| | | | | | | | | | | | | | | | | 2006-05-22 Behdad Esfahbod <behdad@gnome.org> * pango/pango-font.h, pango/fonts.c: New function pango_font_describe_with_absolute_size(). * pango/pangocairo-font.c (_pango_cairo_font_get_hex_box_info): * pango/pangocairo-win32font.c (create_metrics_for_context): * pango/pangofc-font.c (pango_fc_font_class_init), (pango_fc_font_describe_absolute), (pango_fc_font_create_metrics_for_context): * pango/pangowin32.c (pango_win32_font_class_init), (pango_win32_font_get_metrics), (pango_win32_font_describe), (pango_win32_font_describe_absolute): Implement and use PangoFontClass->describe_absolute.
* Bug 342525 – With PangoFc and PangoWin32, approximate digit width is notBehdad Esfahbod2006-05-221-28/+3
| | | | | | | | | | | 2006-05-21 Behdad Esfahbod <behdad@gnome.org> Bug 342525 – With PangoFc and PangoWin32, approximate digit width is not what it says * pango/pangofc-font.c (pango_fc_font_create_metrics_for_context): Likewise for PangoFc. Compute average instead of max. (max_glpyh_with): Now unused, drop.
* Bug 329664 – Move gunichar_to_glyph cache from PangoCairoFcFont toBehdad Esfahbod2006-04-291-10/+49
| | | | | | | | | | | | | | | | 2006-04-29 Behdad Esfahbod <behdad@gnome.org> Bug 329664 – Move gunichar_to_glyph cache from PangoCairoFcFont to PangoFcFont Patch from LingNing Zhang. * pango/pangocairo-fcfont.c (pango_cairo_fc_font_finalize), (pango_cairo_fc_font_glyph_extents_cache_init), (pango_cairo_fc_font_get_glyph_extents_cache_entry), (pango_cairo_fc_font_class_init), (pango_cairo_fc_font_init): * pango/pangofc-font.c (pango_fc_font_finalize), (pango_fc_font_real_get_glyph): Move gunichar->glyph cache to pangofc-font.c
* Bug 307196 – Unhinted fonts are measured incorrectly and drawingBehdad Esfahbod2006-04-291-8/+37
| | | | | | | | | | | | | | | 2006-04-29 Behdad Esfahbod <behdad@gnome.org> Bug 307196 – Unhinted fonts are measured incorrectly and drawing problems occur as a result * pango/pangofc-font.c (get_face_metrics), (pango_fc_font_get_raw_extents): * pango/pangoxft-font.c (_pango_xft_font_new): Rollback previous change that forced metrics hinting always on. * pango/pangocairo-fcfont.c (_pango_cairo_fc_font_new): Set fcfont metrics hinting based on cairo font options.
* Don't use is_hinted. Metrics are always hinted now.Behdad Esfahbod2006-04-281-37/+8
| | | | | | | | | | | 2006-04-28 Behdad Esfahbod <behdad@gnome.org> * pango/pangofc-font.c (get_face_metrics), (pango_fc_font_get_raw_extents): Don't use is_hinted. Metrics are always hinted now. * pango/pangoxft-font.c (_pango_xft_font_new): Remove hack that forced is_hinted to TRUE.
* Hook up pango-utils.h into the documentation, as we are installing itBehdad Esfahbod2006-03-311-1/+1
| | | | | | | | 2006-03-30 Behdad Esfahbod <behdad@gnome.org> Hook up pango-utils.h into the documentation, as we are installing it anyway. Move some internal stuff to pango-impl-utils.h and make source files include that instead.
* Fix blurred underlines on Win32 (#332656):Tor Lillqvist2006-03-311-24/+4
| | | | | | | | | | | | | | | | | | | | | 2006-03-30 Tor Lillqvist <tml@novell.com> Fix blurred underlines on Win32 (#332656): * pango/pango-utils.c (pango_quantize_line_geometry): New public function. Used to be the static quantize_position() in pangofc-font.c * pango/pango-utils.h: Declare it. * pango/pango.def: Here, too. * pango/pangofc-font.c (quantize_position): Remove. (get_face_metrics): Use pango_quantize_line_geometry() instead. * pango/pangocairo-win32font.c (create_metrics_for_context): Call pango_quantize_line_geometry() for underline and strikethrough geometries.
* Bug 314239 – pangocairo crashes when font cannot be readBehdad Esfahbod2006-02-211-0/+11
| | | | | | | | | | 2006-02-21 Behdad Esfahbod <behdad@gnome.org> Bug 314239 – pangocairo crashes when font cannot be read * pango/pangocairo-fcfont.c, pango/pangocairo-font.c: Hack up to not crash if we cannot create cairo_scaled_font_t for PangoFont (font is not readable, removed, etc.)
* Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap withBehdad Esfahbod2006-02-051-4/+4
| | | | | | | | | | | | | | | | | | | | | | | 2006-02-04 Behdad Esfahbod <behdad@gnome.org> * pango/pango-types.h: Change PANGO_GLYPH_EMPTY to 0x0FFFFFFF, to not overlap with PANGO_GLYPH_UNKNOWN_FLAG (0x10000000). Define PANGO_GET_UNKNOWN_GLYPH(wc) that simply returns wc|PANGO_GLYPH_UNKNOWN_FLAG. * docs/pango-sections.txt, docs/tmpl/glyphs.sgml: Document new symbols. * modules/*/*.c: Use PANGO_GET_UNKNOWN_GLYPH instead of various backend-specific functions. * pango/pangofc-font.c, pango/pangoft.c, pango/pangoxft-font.c, * pango/pangowin32.c, pango/pangox.c: Suggest using PANGO_GET_UNKNOWN_GLYPH in docs. * pango/pangofc-font.h: Deprecate pango_fc_font_get_unknown_glyph(). * pango/pangowin32.h: Deprecate pango_win32_get_unknown_glyph().
* Finish the 'glyph 0' work of this morning: PANGO_GLYPH_NULL that IBehdad Esfahbod2006-02-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-02-02 Behdad Esfahbod <behdad@gnome.org> Finish the 'glyph 0' work of this morning: PANGO_GLYPH_NULL that I introduced is renamed to PANGO_GLYPH_EMPTY. It means, no rendering should be performed. The backends however, still return 0 if a glyph is not found. The modules then are free to replace this 0 glyph with an unknown character. * modules/arabic/arabic-fc.c, modules/basic/basic-atsui.c, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c, modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c, modules/thai/thai-fc.c, modules/tibetan/tibetan-fc.c, pango/pangox.c, pango/pangowin32.c: Adapt to above change. Backends return 0 if glyph not found. * pango/fonts.c (pango_font_get_glyph_extents): If font is not usable (!PANGO_IS_FONT (font)), return the generic UNKNOWN_GLYPH metrics. This is used when your backends are misconfigured and you don't find *any* font at all. * pango/pango-engince.c: Add unknown glyphs in fallback shaper, instead of empty glyphs. * pango/shape.c: Call the fall-back shaper if shaper fails, instead of generating a dummy glyph string ourselves. * pango/pango-layout.c (imposed_shape, shape_tab): Use PANGO_GLYPH_EMPTY instead of glyph 0. * pango/pango-renderer.c (pango_renderer_draw_glyph): No-op on PANGO_GLYPH_EMPTY instead of glyph 0. * pango/pangocairo-atsuifont.c, pango/pangocairo-win32font.c, pango/pangocairo-fcfont.c, pango/pangocairo-font.c, pango/pangocairo-private.h: install_font returns a boolean now. * pango/pangocairo-render.c, pango/pangoxft-render.c: Handle font and hex-box failures more gracefully by drawing a generic unknown-box glyph. * pango/pangoft2.c, pango/pangoft2-render.c: Draw the generic unknown-box glyph here too. For unknown glyphs though, if the font is TTF (FT_IS_SFNT), use the zero-indexed glyph, otherwise, draw a box of proper size.
* Use PANGO_GLYPH_NULL for when no glyph should be drawn. UseBehdad Esfahbod2006-02-021-3/+7
| | | | | | | | | | | | | | | | | | | | | | | 2006-02-02 Behdad Esfahbod <behdad@gnome.org> * modules/arabic/arabic-fc.c, modules/basic/basic-atsui.c, modules/basic/basic-fc.c, modules/basic/basic-win32.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c, modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c, modules/thai/thai-fc.c, modules/tibetan/tibetan-fc.c, pango/fonts.c, pango/pango-engine-private.h pango/pango-types.h, pango/pangocairo-fcfont.c, pango/pangocairo-font.c, pango/pangocairo-private.h, pango/pangocairo-render.c, pango/pangofc-decoder.c, pango/pangofc-font.c, pango/pangoft2-render.c, pango/pangoft2.c pango/pangowin32.c, pango/pangox.c, pango/pangoxft-font.c pango/pangoxft-private.h, pango/pangoxft-render.c, pango/shape.c: Use PANGO_GLYPH_NULL for when no glyph should be drawn. Use PANGO_GLYPH_UNKNOWN_FLAG for all backends to mark unknown flags. There's no need for pango_font_get_unknown_glyph() anymore, since all backends know how to handle PANGO_GLYPH_UNKNOWN_FLAG gracefully. We may add that in the future however. (fixes bug #73147, closes bug #329524)
* If locking font face failed, do not assert, just return zero glyphs withBehdad Esfahbod2006-01-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-01-29 Behdad Esfahbod <behdad@gnome.org> * modules/arabic/arabic-fc.c, modules/basic/basic-fc.c modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c modules/thai/thai-ot.c, modules/thai/thai-shaper.c modules/tibetan/tibetan-fc.c: If locking font face failed, do not assert, just return zero glyphs with an implicit warning. * pango/fonts.c, pango/glyphstring.c pango/modules.c pango/pango-color.c, pango/pango-context.c pango/pango-coverage.c, pango/pango-fontmap.c pango/pango-glyph-item.c, pango/pango-item.c pango/pango-layout.c, pango/pango-markup.c pango/pango-ot-buffer.c, pango/pango-script.c pango/pango-tabs.c, pango/pango-utils.c pango/pangoatsui-fontmap.c, pango/pangocairo-fcfont.c pango/pangocairo-fcfontmap.c, pango/pangocairo-fontmap.c pango/pangocairo-win32font.c, pango/pangofc-font.c pango/pangofc-fontmap.c, pango/pangoft2-fontmap.c pango/pangoft2-render.c, pango/pangoft2.c pango/pangowin32-fontcache.c, pango/pangoxft-font.c pango/pangoxft-render.c, pango/break.c pango/ellipsize.c: Use g_slice for allocating all types. Also, change some g_error's to g_critical's...
* Make matrix parameter const.Behdad Esfahbod2006-01-211-2/+2
| | | | | | | | | | | | | | | 2006-01-21 Behdad Esfahbod <behdad@gnome.org> * pango/pango-types.h, pango/pango-utils.h (pango_matrix_get_font_scale_factor): Make matrix parameter const. * pango/fonts.c, pango/pango-context.c, pango/pango-coverage.c, pango/pango-fontset.c, pango/pango-layout.c, pango/pango-renderer.c, pango/pango-types.h, pango/pango-utils.c, pango/pangocairo-atsuifont.c, pango/pangofc-font.c, pango/pangoft2-fontmap.c, pango/pangowin32-fontmap.c, pango/pangowin32.c, pango/pangox-fontmap.c, pango/pangoxft-font.c: Replace "Returns:" with "Return value:" in docs.