diff options
author | Jason Rumney <jasonr@gnu.org> | 2000-09-29 21:21:54 +0000 |
---|---|---|
committer | Jason Rumney <jasonr@gnu.org> | 2000-09-29 21:21:54 +0000 |
commit | ebbf77eacd2db70a073eb51ab2583f92156f828c (patch) | |
tree | 6dd34cdf1a566fdb37f2261582d5b203eaf24fbc /src/w32bdf.h | |
parent | 9127e20e661969ff6ab5977825a43dbf85f8802a (diff) | |
download | emacs-ebbf77eacd2db70a073eb51ab2583f92156f828c.tar.gz |
(glyph_struct, cache_bitmap): Cache bitmap data, not GDI object which
is a scarce resource.
Diffstat (limited to 'src/w32bdf.h')
-rw-r--r-- | src/w32bdf.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/w32bdf.h b/src/w32bdf.h index 218cc0331dc..47f3067d290 100644 --- a/src/w32bdf.h +++ b/src/w32bdf.h @@ -28,9 +28,29 @@ Boston, MA 02111-1307, USA. */ #define BDF_SECOND_OFFSET_TABLE 0x80 #define BDF_SECOND_OFFSET(x) ((x) & 0x7f) #define BDF_FIRST_OFFSET(x) (((x) >> 8) | (((x) & 0x80) << 1)) +#define BDF_CODEPOINT_MAX (BDF_FIRST_OFFSET_TABLE * BDF_SECOND_OFFSET_TABLE) +#define BDF_CODEPOINT_RANGE_COVER_P(x) (((x) >= 0) && ((x) <= BDF_CODEPOINT_MAX)) + +#define BDF_FONT_CACHE_SIZE 3000 +#define BDF_FONT_CLEAR_SIZE 600 + +/* + GLYPH METRIC (# ... character's reference point) + ^ + y | (urx, ury) + | ^ +----------------+ + a | b| |character | <- font bounding Box + x | b| | | + i | h| | #(bbox, bboy) | + s | v +----------------+ + | (llx, lly) + | <----------------> + | bbw + +-----------------------> + origin x axis + */ + -#define BDF_FONT_CACHE_SIZE 5000 -#define BDF_FONT_CLEAR_SIZE 1000 /* Structure of glyph information of one character. */ typedef struct @@ -42,7 +62,8 @@ typedef struct typedef struct { glyph_metric metric; - int bitmap_size; /* byte lengh of the following slots */ + int row_byte_size; /* size in bytes occupied by one row of the bitmap */ + int bitmap_size; /* size in bytes of the following slots */ unsigned char *bitmap; /* */ } glyph_struct; @@ -52,7 +73,9 @@ typedef struct { glyph_metric metric; pfont_char psrc; - HBITMAP hbmp; + int row_byte_size; + int bitmap_size; + unsigned char *pbmp; } cache_bitmap; typedef struct fchar @@ -69,7 +92,6 @@ typedef struct unsigned char *font; unsigned char *seeked; DWORD size; - font_char *chtbl[BDF_FIRST_OFFSET_TABLE]; int llx, lly, urx, ury; /* Font bounding box */ @@ -87,7 +109,6 @@ typedef struct int pixsz; } bdffont; - #define BDF_FILE_SIZE_MAX 256*1024*1024 /* 256Mb */ #define BDF_FONT_FILE(font) (((bdffont*)(font))->filename) #define MAKELENDSHORT(c1, c2) (unsigned short)((c1) | ((c2) << 8)) |