diff options
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 */ |