/* font.h -- Interface definition for font handling.
- Copyright (C) 2006-2014 Free Software Foundation, Inc.
+ Copyright (C) 2006-2015 Free Software Foundation, Inc.
Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H13PRO009
/* List of font-objects opened from the font-entity. */
FONT_OBJLIST_INDEX = FONT_SPEC_MAX,
- /* Font-entity from which the font-object is opened. */
- FONT_ENTITY_INDEX = FONT_SPEC_MAX,
-
/* This value is the length of font-entity vector. */
FONT_ENTITY_MAX,
is not available. */
FONT_FILE_INDEX,
- /* Format of the font (symbol) or nil if unknown. */
- FONT_FORMAT_INDEX,
-
/* This value is the length of font-object vector. */
FONT_OBJECT_MAX
};
#define FONT_OBJECT_P(x) \
(FONTP (x) && (ASIZE (x) & PSEUDOVECTOR_SIZE_MASK) == FONT_OBJECT_MAX)
-/* True iff ENTITY can't be loaded. */
-#define FONT_ENTITY_NOT_LOADABLE(entity) \
- EQ (AREF (entity, FONT_OBJLIST_INDEX), Qt)
-
-/* Flag ENTITY not loadable. */
-#define FONT_ENTITY_SET_NOT_LOADABLE(entity) \
- ASET (entity, FONT_OBJLIST_INDEX, Qt)
-
-
/* Check macros for various font-related objects. */
#define CHECK_FONT(x) \
/* Compute the total metrics of the NGLYPHS glyphs specified by
the font FONT and the sequence of glyph codes CODE, and store the
result in METRICS. */
- int (*text_extents) (struct font *font,
- unsigned *code, int nglyphs,
- struct font_metrics *metrics);
+ void (*text_extents) (struct font *font,
+ unsigned *code, int nglyphs,
+ struct font_metrics *metrics);
#ifdef HAVE_WINDOW_SYSTEM
#endif /* HAVE_WINDOW_SYSTEM */
- /* Optional.
- Return an outline data for glyph-code CODE of FONT. The format
- of the outline data depends on the font-driver. */
- void *(*get_outline) (struct font *font, unsigned code);
-
- /* Optional.
- Free OUTLINE (that is obtained by the above method). */
- void (*free_outline) (struct font *font, void *outline);
-
/* Optional.
Get coordinates of the INDEXth anchor point of the glyph whose
code is CODE. Store the coordinates in *X and *Y. Return 0 if
extern Lisp_Object font_make_entity (void);
extern Lisp_Object font_make_object (int, Lisp_Object, int);
+#if defined (HAVE_XFT) || defined (HAVE_FREETYPE) || defined (HAVE_NS)
+extern Lisp_Object font_build_object (int, Lisp_Object, Lisp_Object, double);
+#endif
extern Lisp_Object find_font_encoding (Lisp_Object);
extern int font_registry_charsets (Lisp_Object, struct charset **,
extern int font_parse_xlfd (char *name, ptrdiff_t len, Lisp_Object font);
extern ptrdiff_t font_unparse_xlfd (Lisp_Object font, int pixel_size,
char *name, int bytes);
-extern int font_unparse_fcname (Lisp_Object font, int pixel_size,
- char *name, int bytes);
extern void register_font_driver (struct font_driver *driver, struct frame *f);
extern void free_font_driver_list (struct frame *f);
#ifdef ENABLE_CHECKING