diff options
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2019-05-23 10:30:59 +0900 |
---|---|---|
committer | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2019-05-23 10:30:59 +0900 |
commit | 03feb9376b54c489e24478954a11061e9b0d6db7 (patch) | |
tree | 3e20c6c3295c24d0d4053a68062bcc7e9c49a224 /src/ftfont.h | |
parent | 72047556fa391016ab507c02c2f489c97b53f088 (diff) | |
download | emacs-03feb9376b54c489e24478954a11061e9b0d6db7.tar.gz |
Make Cairo build obey hint-style font setting (Bug#35781)
* src/ftfont.h (ftfont_open2): Remove extern.
(ftfont_fix_match, ftfont_add_rendering_parameters)
(ftfont_entity_pattern): Add externs.
(struct font_info): Remove member bitmap_strike_index.
(struct font_info) [USE_CAIRO]: Remove member ft_size_draw. All uses removed.
Add member bitmap_position_unit.
* src/xftfont.c (xftfont_fix_match, xftfont_add_rendering_parameters): Move
functions from here ...
* src/ftfont.c (ftfont_fix_match, ftfont_add_rendering_parameters): ... to
here. All uses changed.
* src/xftfont.c (xftfont_open): Extract FcPattern creation from font entity
from here ...
* src/ftfont.c (ftfont_entity_pattern): ... to here.
* src/xftfont.c (syms_of_xftfont): Move DEFSYMs for Fontconfig's rendering
parameters from here ...
* src/ftfont.c (syms_of_ftfont): ... to here.
* src/ftfont.c (ftfont_open, ftfont_open2): Undo introduction of
bitmap_strike_index. Merge functions into ftfont_open.
* src/ftcrfont.c (ftcrfont_open): Align code with xftfont_open rather than
ftfont_open.
(ftcrfont_close): Likewise.
(ftcrfont_has_char, ftcrfont_encode_char):
(ftcrfont_otf_capability) [HAVE_LIBOTF]:
(ftcrfont_variation_glyphs) [HAVE_OTF_GET_VARIATION_GLYPHS]: New functions.
(ftcrfont_driver): Register them.
(ftcrfont_get_bitmap, ftcrfont_anchor_point):
(ftcrfont_shape) [HAVE_M17N_FLT && HAVE_LIBOTF]: Use bitmap_position_unit
instead of bitmap_strike_index to screen bitmap fonts.
(ftcrfont_get_bitmap, ftcrfont_anchor_point):
(ftcrfont_otf_capability) [HAVE_LIBOTF]:
(ftcrfont_shape) [HAVE_M17N_FLT && HAVE_LIBOTF]:
(ftcrfont_variation_glyphs) [HAVE_OTF_GET_VARIATION_GLYPHS]: Temporarily
assign ftcrfont_info->ft_size and call corresponding ftfont functions.
(ftcrfont_draw): Don't flush cairo surface when exporting.
Diffstat (limited to 'src/ftfont.h')
-rw-r--r-- | src/ftfont.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/ftfont.h b/src/ftfont.h index adbda49ff1c..7860469491f 100644 --- a/src/ftfont.h +++ b/src/ftfont.h @@ -37,10 +37,9 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ #endif /* HAVE_LIBOTF */ extern FcCharSet *ftfont_get_fc_charset (Lisp_Object); -extern Lisp_Object ftfont_open2 (struct frame *f, - Lisp_Object entity, - int pixel_size, - Lisp_Object font_object); +extern void ftfont_fix_match (FcPattern *, FcPattern *); +extern void ftfont_add_rendering_parameters (FcPattern *, Lisp_Object); +extern FcPattern *ftfont_entity_pattern (Lisp_Object, int); /* This struct is shared by the XFT, Freetype, and Cairo font backends. Members up to and including 'matrix' are common, the @@ -54,17 +53,14 @@ struct font_info #endif /* HAVE_LIBOTF */ FT_Size ft_size; int index; - /* Index of the bitmap strike used as a fallback for - FT_Set_Pixel_Sizes failure. If the value is non-negative, then - ft_size is not of the requested size. Otherwise it is -1. */ - FT_Int bitmap_strike_index; FT_Matrix matrix; #ifdef USE_CAIRO cairo_scaled_font_t *cr_scaled_font; - /* To prevent cairo from cluttering the activated FT_Size maintained - in ftfont.c, we activate this special FT_Size before drawing. */ - FT_Size ft_size_draw; + /* Scale factor from the bitmap strike metrics in 1/64 pixels, used + as the hb_position_t value in HarfBuzz, to those in (scaled) + pixels. The value is 0 for scalable fonts. */ + double bitmap_position_unit; /* Font metrics cache. */ struct font_metrics **metrics; short metrics_nrows; |