aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2007-11-19 05:16:48 +0000
committerKenichi Handa2007-11-19 05:16:48 +0000
commit5a74d0e5072fdd7b9dbbe67a2fff9675256e2338 (patch)
treef1185912af76a2704f6e78fdc93531bbc5b429c7 /src
parent6aae9c92a054675325908d41adc3496b513a85c2 (diff)
downloademacs-5a74d0e5072fdd7b9dbbe67a2fff9675256e2338.tar.gz
emacs-5a74d0e5072fdd7b9dbbe67a2fff9675256e2338.zip
(struct font_bitmap): New member bits_per_pixel.
(struct font_driver): New members start_for_frame and end_for_frame. (struct font_data_list): New struct. (font_put_frame_data, font_get_frame_data): Extern them.
Diffstat (limited to 'src')
-rw-r--r--src/font.h42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/font.h b/src/font.h
index bc15dc779fc..9d4bc9b6a1c 100644
--- a/src/font.h
+++ b/src/font.h
@@ -197,6 +197,7 @@ struct font_metrics
197 197
198struct font_bitmap 198struct font_bitmap
199{ 199{
200 int bits_per_pixel;
200 int rows; 201 int rows;
201 int width; 202 int width;
202 int pitch; 203 int pitch;
@@ -407,17 +408,49 @@ struct font_driver
407 int (*otf_drive) P_ ((struct font *font, Lisp_Object features, 408 int (*otf_drive) P_ ((struct font *font, Lisp_Object features,
408 Lisp_Object gstring_in, int from, int to, 409 Lisp_Object gstring_in, int from, int to,
409 Lisp_Object gstring_out, int idx, int alternate_subst)); 410 Lisp_Object gstring_out, int idx, int alternate_subst));
411
412 /* Optional.
413 Make the font driver ready for frame F. Usually this function
414 makes some data specific to F and store it in F by calling
415 font_put_frame_data (). */
416 int (*start_for_frame) P_ ((FRAME_PTR f));
417
418 /* Optional.
419 End using the driver for frame F. Usually this function free
420 some data stored for F. */
421 int (*end_for_frame) P_ ((FRAME_PTR f));
410}; 422};
411 423
412 424
425/* Chain of font drivers. There's one global font driver list
426 (font_driver_list in font.c). In addition, each frame has it's own
427 font driver list at FRAME_PTR->font_driver_list. */
428
413struct font_driver_list 429struct font_driver_list
414{ 430{
415 /* 1 iff this driver is currently used. */ 431 /* 1 iff this driver is currently used. It is igonred in the global
432 font driver list.*/
416 int on; 433 int on;
434 /* Pointer to the font driver. */
417 struct font_driver *driver; 435 struct font_driver *driver;
436 /* Pointer to the next element of the chain. */
418 struct font_driver_list *next; 437 struct font_driver_list *next;
419}; 438};
420 439
440
441/* Chain of arbitrary data specific to each font driver. Each frame
442 has it's own font data list at FRAME_PTR->font_data_list. */
443
444struct font_data_list
445{
446 /* Pointer to the font driver. */
447 struct font_driver *driver;
448 /* Data specific to the font driver. */
449 void *data;
450 /* Pointer to the next element of the chain. */
451 struct font_data_list *next;
452};
453
421extern int enable_font_backend; 454extern int enable_font_backend;
422 455
423EXFUN (Ffont_spec, MANY); 456EXFUN (Ffont_spec, MANY);
@@ -486,6 +519,13 @@ extern int font_drive_otf P_ ((struct font *font, Lisp_Object otf_features,
486 int alternate_subst)); 519 int alternate_subst));
487#endif /* HAVE_LIBOTF */ 520#endif /* HAVE_LIBOTF */
488 521
522extern int font_put_frame_data P_ ((FRAME_PTR f,
523 struct font_driver *driver,
524 void *data));
525extern void *font_get_frame_data P_ ((FRAME_PTR f,
526 struct font_driver *driver));
527
528
489#ifdef HAVE_FREETYPE 529#ifdef HAVE_FREETYPE
490extern struct font_driver ftfont_driver; 530extern struct font_driver ftfont_driver;
491#endif /* HAVE_FREETYPE */ 531#endif /* HAVE_FREETYPE */