summaryrefslogtreecommitdiff
path: root/pango/pangocairo-fcfontmap.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'ch/83' into 'master'Matthias Clasen2020-09-181-0/+2
|\ | | | | | | | | | | | | Add pango_fc_font_map_set_default_substitute Closes #83 See merge request GNOME/pango!191
| * add pango_fc_font_map_set_default_substituteCaleb Hearon2020-06-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | added: pango_fc_font_map_set_default_substitute pango_fc_font_map_default_substitute_changed deprecated: pango_ft2_font_map_set_default_substitute pango_ft2_font_map_changed pango_xft_font_map_set_default_substitute pango_xft_font_map_changed Now PangoCairoFcFontMap will call what is passed to pango_fc_font_map_set_default_substitute when it is time. The deprecated functions make calls to the parent (FC) class now. The user-supplied callbacks are executed in the exact same places as before.
* | cairo: Use the proper FcConfigMatthias Clasen2020-08-181-1/+1
|/ | | | | | When calling into FcConfig api, passing NULL means "use the default config". But we may have a set config that we should be using for all fontconfig calls.
* Drop an unused functionMatthias Clasen2019-07-121-29/+0
| | | | | We don't use _pango_cairo_fc_font_map_get_library anymore.
* Header cleanupMatthias Clasen2019-07-041-2/+2
| | | | | | | Abolish the PANGO_ENABLE_BACKEND and PANGO_ENABLE_ENGINE defines. All backend-only apis are moved into private headers, all apis that were engine-only are marked as deprecated, since engines are.
* Ignore undefined macros when importing freetype / 2Emmanuele Bassi2017-05-311-0/+5
| | | | Missing inclusions of freetype via Cairo.
* Add pango_font_map_changed()Alexander Larsson2013-02-261-0/+11
| | | | | | | This is needed as a base class sometimes needs to invalidate the fontmap. https://bugzilla.gnome.org/show_bug.cgi?id=694626
* Track changes in FontMaps using a serialAlexander Larsson2012-12-061-2/+20
| | | | | | | | This adds the pango_font_map_get_serial method that lets you see if a fontmap has changes since the last check. It adds implementations to all current fontmaps. https://bugzilla.gnome.org/show_bug.cgi?id=340066
* Bug 567165 – Apply all pattern matricesBehdad Esfahbod2009-01-281-5/+5
| | | | | | | | | | | | | | 2009-01-09 Behdad Esfahbod <behdad@gnome.org> Bug 567165 – Apply all pattern matrices * pango/pangocairo-fcfont.c (_pango_cairo_fc_font_new): * pango/pangofc-fontmap.c (pango_fc_font_map_new_font): Apply all FC_MATRIX values, not just the first one. Fixes synthetic italic rotated text with ft2 and xft backends. Can't believe no one ever noticed that they are broken... svn path=/trunk/; revision=2808
* Change PangoFc font loading API such that PangoContext is not passed down.Behdad Esfahbod2009-01-281-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Finalize FreeType library after finalizing the FC fontmap. Fixes segfaultBehdad Esfahbod2009-01-021-2/+2
| | | | | | | | | | | 2009-01-02 Behdad Esfahbod <behdad@gnome.org> * pango/pangocairo-fcfontmap.c (pango_cairo_fc_font_map_finalize): * pango/pangoft2-fontmap.c (pango_ft2_font_map_finalize): Finalize FreeType library after finalizing the FC fontmap. Fixes segfault in the PangoFT2FontMap's finalize. svn path=/trunk/; revision=2775
* Fix warnings.Behdad Esfahbod2008-12-261-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-12-25 Behdad Esfahbod <behdad@gnome.org> * pango/break.c (pango_default_break): * pango/fonts.c (find_field_any), (pango_font_class_init), (pango_font_init), (pango_font_metrics_ref), (pango_font_metrics_unref), (pango_font_family_class_init), (pango_font_family_init), (pango_font_face_class_init), (pango_font_face_init): * pango/pango-attributes.c (pango_attr_list_ref), (pango_attr_list_unref), (pango_attr_iterator_get_font): * pango/pango-layout.c (pango_layout_set_height), (extents_free), (no_shape_filter_func), (pango_layout_line_ref), (pango_layout_line_unref), (pango_layout_get_item_properties): * pango/pango-markup.c (end_element_handler), (text_handler), (b_parse_func), (big_parse_func), (span_parse_func), (i_parse_func), (markup_parse_func), (s_parse_func), (sub_parse_func), (sup_parse_func), (small_parse_func), (tt_parse_func), (u_parse_func): * pango/pango-ot-info.c (get_glyph_class): * pango/pango-renderer.c (get_item_properties), (pango_renderer_default_prepare_run): * pango/pango-utils.c (_pango_shape_shape): * pango/pangocairo-fcfontmap.c (pango_cairo_fc_font_map_get_font_type), (pango_cairo_fc_font_map_context_substitute), (pango_cairo_fc_font_map_context_key_get), (pango_cairo_fc_font_map_context_key_copy), (pango_cairo_fc_font_map_context_key_free), (pango_cairo_fc_font_map_context_key_hash), (pango_cairo_fc_font_map_context_key_equal): * pango/pangocairo-fontmap.c (pango_cairo_font_map_new_for_font_type), (pango_cairo_font_map_set_default): * pango/pangocairo-render.c (pango_cairo_renderer_init): * pango/pangox-fontcache.c (free_cache_entry): * pango/pangox-fontmap.c (close_display_cb), (list_families_foreach), (pango_x_font_map_load_font), (ignore_error): * pango/pangox.c (average_width_foreach), (subfonts_foreach), (pango_x_font_find_shaper), (pango_x_get_unknown_glyph), (pango_x_get_item_properties), (pango_x_apply_ligatures), (pango_x_font_get_unknown_glyph): * pango/pangoxft-fontmap.c (pango_xft_font_map_init), (close_display_cb): * pango/querymodules.c (show_version): Fix warnings. svn path=/trunk/; revision=2765
* 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
* Part of Bug 474708 – pangocairo leaks memoryBehdad Esfahbod2007-09-081-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | 2007-09-07 Behdad Esfahbod <behdad@gnome.org> Part of Bug 474708 – pangocairo leaks memory * pango/pangocairo-font.c (_pango_cairo_font_private_get_hex_box_info): Fix a couple leaks. * pango/pangocairo-atsui.h: * pango/pangocairo-atsuifontmap.c (pango_cairo_atsui_font_map_finalize): * pango/pangocairo-fc.h: * pango/pangocairo-fcfontmap.c (pango_cairo_fc_font_map_finalize): * pango/pangocairo-win32.h: * pango/pangocairo-win32fontmap.c (pango_cairo_win32_font_map_finalize): Remove unused leftover renderer variable. * pango/pangofc-fontmap.c (pango_fc_font_map_finalize): Fix thinko. svn path=/trunk/; revision=2424
* Bug 347236 – provide pango_cairo_font_get_scaled_font Bug 347235 – AddBehdad Esfahbod2007-06-111-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-06-10 Behdad Esfahbod <behdad@gnome.org> Bug 347236 – provide pango_cairo_font_get_scaled_font Bug 347235 – Add pango_cairo_font_map_get_font_type Bug 353291 – Provide pango_cairo_font_map_new_for_font_type * pango/pangocairo-font.c: New public API: pango_cairo_font_get_scaled_font() * pango/pangocairo-fontmap.c: New public API: pango_cairo_font_map_new_for_font_type() pango_cairo_font_map_get_font_type() * pango/pangocairo-fcfontmap.c: Implement get_font_type() method. * pango/pangocairo.h: * pango/pangocairo-private.h: * docs/pango-sections.txt: * docs/tmpl/pangocairo.sgml: * pango/pangocairo.def: Update. svn path=/trunk/; revision=2336
* Bug 337593 – move glyph extents code (and cache) from pangocairo-*font.cBehdad Esfahbod2007-06-101-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | 2007-06-09 Behdad Esfahbod <behdad@gnome.org> Bug 337593 – move glyph extents code (and cache) from pangocairo-*font.c into pangocairo-font.c * pango/pangocairo-fontmap.c: * pango/pangocairo-fcfontmap.c: Remove per-fontmap renderer. We've not been using it for a while and there is no reason to use it. * pango/pangocairo-font.c * pango/pangocairo-fcfont.c: Most most code (including glyph extents caching) from fcfont.c to font.c. Simplifies individual backends a lot. ATSUI and Win32 cairo backends should adapt. * pango/pangocairo-render.c * pango/pangocairo-private.h: Update to reflect above changes. svn path=/trunk/; revision=2335
* *.c, *.h: Drop trailing whitespace.Behdad Esfahbod2007-01-161-10/+10
| | | | | | | | | 2007-01-16 Behdad Esfahbod <behdad@gnome.org> *.c, *.h: Drop trailing whitespace. svn path=/trunk/; revision=2163
* Bug 384543 – FcFontMatch misuseBehdad Esfahbod2006-12-241-2/+3
| | | | | | | | | | | | | | | | | 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.
* Use simple, fast, casts instead of PANGO_CAIRO_*() macros where the objectBehdad Esfahbod2006-11-281-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 337924 – cleanups for issues reported by various compilers PatchBehdad Esfahbod2006-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-04-11 Behdad Esfahbod <behdad@gnome.org> Bug 337924 – cleanups for issues reported by various compilers Patch from Kjartan Maraas. * examples/viewer-x.c (update): * modules/arabic/arabic-fc.c (fallback_shape), (arabic_engine_shape): * modules/basic/basic-fc.c (fallback_shape), (basic_engine_shape): * modules/basic/basic-x.c: * modules/hangul/hangul-fc.c: * modules/hebrew/hebrew-fc.c (hebrew_engine_shape): * 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/break.c: * pango/modules.c: * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table): * pango/pango-attributes.c (pango_attr_list_filter): * pango/pango-engine.c: * pango/pango-fontset.c: * pango/pango-layout.c (pango_layout_set_text), (pango_layout_xy_to_index), (pango_layout_get_cursor_pos): * pango/pango-markup.c (text_handler): * pango/pango-utils.c (read_alias_file): * pango/pangocairo-fcfont.c (G_DEFINE_TYPE_WITH_CODE): * pango/pangocairo-fcfontmap.c (G_DEFINE_TYPE_WITH_CODE): * pango/pangocairo-font.c (_pango_cairo_font_get_hex_box_info): * pango/pangox-fontmap.c (pango_x_make_matching_xlfd): * tests/dump-boundaries.c (fail): Remove unused variables. Remove excess semicolon after DEFINE_TYPE macros.
* If locking font face failed, do not assert, just return zero glyphs withBehdad Esfahbod2006-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 sure #include <config.h> is the first include in the file. (bugBehdad Esfahbod2006-01-141-0/+1
| | | | | | | 2006-01-14 Behdad Esfahbod <behdad@gnome.org> * */*.c, */*/*.c: Make sure #include <config.h> is the first include in the file. (bug #158870, based on patch by Luis Menina)
* Rework handling of context-specific options: drop get_render_key() and addOwen Taylor2005-07-211-20/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-07-19 Owen Taylor <otaylor@redhat.com> * pango/pango-fcfontmap.[ch]: Rework handling of context-specific options: drop get_render_key() and add a opaque "context key" (get_context_key() and friends). Also add a function to get the resolution. * pango/pango-fcfontmap.c pango/pangofc-font.h: - Move the 'lang' into the fontset key lookup and get rid of the funky list-of-hash-tables - Make lookups of fontsets and fonts dependent on the context key for the context. - Simplify the pattern/fontset caching to have one finite-size cache rather than an infinite first-level and a finite-size second level. * pango/pangocairo.h pango/pangocairo-private.h pango/pangocairo-fontmap.c: Add pango_cairo_context_get/set_resolution(), pango_cairo_context_set/get_font_options to allow controlling the resolution and font rendering options for a specific PangoContext. * pango/pangocairo-fcfont.c pango/pangocairo-fcfontmap pango/pangocairo-win32font.c: Implement resolution and font options handling adapt to related Cairo changes. * docs/pango-sections.txt docs/Makefile.am pango/pangowin32.c: Doc updates and build fixes. * pango/pangofc-fontmap.c (pango_fc_make_pattern): Create patterns with FC_SIZE as well as FC_PIXEL_SIZE to work around a libgnomeprint bug. (#309477)
* Add a new context_substitute() virtual function that replacesOwen Taylor2005-06-141-2/+7
| | | | | | | | | | | | | | | | 2005-05-17 Owen Taylor <otaylor@redhat.com> * pango/pangofc-fontmap.[ch]: Add a new context_substitute() virtual function that replaces default_substitute() and adds a PangoContext argument. * pango/pangocairo.h pango/pangocairo-fontmap.c docs/pango-sections.txt: Add pango_cairo_context_set/get_hinting() to control hinting on individual contexts. * pango/pangocairo-fcfont.c pango/pangocairo-fcfontmap.c: Implement hinting control for the for the fontconfig/cairo backend.
* Include the effect of the CTM in the FC_PIXEL_SIZE we set in theOwen Taylor2005-03-151-4/+6
| | | | | | | | | | | | | | | | | | | | | 2005-03-15 Owen Taylor <otaylor@redhat.com> * pango/pangofc-fontmap.c: Include the effect of the CTM in the FC_PIXEL_SIZE we set in the FcPattern. (Fixes problems with getting the wrong font when drawing the same font at multiple scales. Reported by Keith Packard.) * pango/pangofc-fontmap.h pango/pangocairo-fcfontmap.c pango/pangocairo-fc.h pango/pangocairo-fontfont.c: Add the PangoFontDescription to create_font() ... we need it to get the right pixel size to combine with the CTM. * pango/pangofc-fontmap.c (pango_fc_fontmap_get_dpi): Extract out the logic for finding the DPI from the size-listing code. (pango_fc_font_map_get_render_key): Handle mix of absolute and not sizes correctly.
* Open the file with mode "wb", include cairo-png.h.Owen Taylor2005-02-031-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | 2005-02-03 Owen Taylor <otaylor@redhat.com> * examples/cairosimple.c: Open the file with mode "wb", include cairo-png.h. * examples/xftview.c examples/cairoview.c: Set WM_NORMAL_HINTS to avoid triggering a metacity bug. * examples/cairoview.c: Include cairo-xlib.h. * configure.in: Add checks for the Win32 Cairo backend. (not committing the code yet). * examples/Makefile.am pango/Makefile.am: add CAIRO_CFLAGS. * pango/pangocairo-fc.h pango/pangocairo-fcfont.c pango/pangocairo-fcfontmap.c pango/pangofc-fontmap.[ch]: Rework Cairo/Fontconfig backend to use the current Cairo API. Make some PangoFcFontMap changes to enable that. * pango/pango/pangocairo-private.h pango/pangocairo-render.c: Update for cairo_font_t changes.
* Add checks for CairoOwen Taylor2005-01-091-0/+140
Sat Jan 8 16:46:37 2005 Owen Taylor <otaylor@redhat.com> * configure.in: Add checks for Cairo * pango/Makefile.am: Add libpangocairo. * pango/pangocairo-font.c pango/pangocairo-fontmap.c pango/pangocairo.h pango/pangocairo-private.h pango/pangocairo-fcfont.c pango/pangocairo-fcfontmap.c pango/pangocairo-fc.h: Start of a Cairo/FreeType backend. * pango/pangofc-fontmap.[ch]: Add a "get_render_key" virtual function to allow subclasses to specialize the details of how caching works. Add a default implementation that's a little more sophisticated than what was there before. * pango/pangoft2-private.h pangofc-font.c pangoft2.c: Move default implementations of has_char(), get_glyph() to the base class. * pango/pangofc-private.h pango/pangoft2-private.h: Move PANGO_UNITS_26_6 and friends to pango/pangofc-private.h. * examples/renderdemo.[ch] examples/pangoft2topgm.c examples/xftview.c: Allow passing in a custom function to transform drawing. * examples/Makefile.am examples/cairoview.c: Add a Cairo/Xlib example program. * examples/cairosimple.c: Simple Cairo example with output to a PNG. * pango/pango-layout.c (pango_layout_line_get_extents): Fix bug where line ink rect was always including 0, 0.