diff options
author | Robert Pluim <rpluim@gmail.com> | 2019-01-26 12:31:02 +0100 |
---|---|---|
committer | Robert Pluim <rpluim@gmail.com> | 2019-02-08 09:05:11 +0100 |
commit | 9e0d69b5a17a0fa3b0dd099a51584a85f3ddb5bf (patch) | |
tree | b6dcbce3d3d4ff5a6719814d26a95747118b4f67 /src/ftfont.h | |
parent | 24905e92179c2ee8cd02c26b4a7058fbd238ece7 (diff) | |
download | emacs-9e0d69b5a17a0fa3b0dd099a51584a85f3ddb5bf.tar.gz emacs-9e0d69b5a17a0fa3b0dd099a51584a85f3ddb5bf.tar.bz2 emacs-9e0d69b5a17a0fa3b0dd099a51584a85f3ddb5bf.zip |
Unify three font info structures
* src/ftfont.h (struct font_info): New type, unifies similar types
from ftcrfont.c, ftfont.c and xftfont.c
* src/xftfont.c (struct xftfont_info): Remove, replace with struct
font_info. Adjust all uses.
* src/ftcrfont.c (struct ftcrfont_info): Likewise.
* src/ftfont.c (struct ftfont_info): Likewise.
Diffstat (limited to 'src/ftfont.h')
-rw-r--r-- | src/ftfont.h | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/src/ftfont.h b/src/ftfont.h index 4201b2c2d67..b6b0c5ba47b 100644 --- a/src/ftfont.h +++ b/src/ftfont.h @@ -26,13 +26,13 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ #include FT_FREETYPE_H #include FT_SIZES_H #ifdef FT_BDF_H -#include FT_BDF_H +# include FT_BDF_H #endif #ifdef HAVE_LIBOTF -#include <otf.h> +# include <otf.h> #ifdef HAVE_M17N_FLT -#include <m17n-flt.h> +# include <m17n-flt.h> #endif /* HAVE_M17N_FLT */ #endif /* HAVE_LIBOTF */ @@ -41,6 +41,35 @@ extern Lisp_Object ftfont_open2 (struct frame *f, Lisp_Object entity, int pixel_size, Lisp_Object font_object); -extern size_t ftfont_info_size; + +/* This struct is shared by the XFT, Freetype, and Cairo font + backends. Members up to and including 'matrix' are common, the + rest depend on which backend is in use. */ +struct font_info +{ + struct font font; +#ifdef HAVE_LIBOTF + bool maybe_otf; /* Flag to tell if this may be OTF or not. */ + OTF *otf; +#endif /* HAVE_LIBOTF */ + FT_Size ft_size; + int index; + FT_Matrix matrix; + +#ifdef USE_CAIRO + cairo_font_face_t *cr_font_face; + /* 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; + /* Font metrics cache. */ + struct font_metrics **metrics; + short metrics_nrows; +#else + /* These are used by the XFT backend. */ + Display *display; + XftFont *xftfont; + unsigned x_display_id; +#endif +}; #endif /* EMACS_FTFONT_H */ |