diff options
| author | Kenichi Handa | 2007-11-19 05:16:48 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2007-11-19 05:16:48 +0000 |
| commit | 5a74d0e5072fdd7b9dbbe67a2fff9675256e2338 (patch) | |
| tree | f1185912af76a2704f6e78fdc93531bbc5b429c7 /src | |
| parent | 6aae9c92a054675325908d41adc3496b513a85c2 (diff) | |
| download | emacs-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.h | 42 |
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 | ||
| 198 | struct font_bitmap | 198 | struct 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 | |||
| 413 | struct font_driver_list | 429 | struct 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 | |||
| 444 | struct 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 | |||
| 421 | extern int enable_font_backend; | 454 | extern int enable_font_backend; |
| 422 | 455 | ||
| 423 | EXFUN (Ffont_spec, MANY); | 456 | EXFUN (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 | ||
| 522 | extern int font_put_frame_data P_ ((FRAME_PTR f, | ||
| 523 | struct font_driver *driver, | ||
| 524 | void *data)); | ||
| 525 | extern void *font_get_frame_data P_ ((FRAME_PTR f, | ||
| 526 | struct font_driver *driver)); | ||
| 527 | |||
| 528 | |||
| 489 | #ifdef HAVE_FREETYPE | 529 | #ifdef HAVE_FREETYPE |
| 490 | extern struct font_driver ftfont_driver; | 530 | extern struct font_driver ftfont_driver; |
| 491 | #endif /* HAVE_FREETYPE */ | 531 | #endif /* HAVE_FREETYPE */ |