X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/865203c3b7dbf3c99be9038089a91b459793a165..640a07706b1bdd45a0cbaadd49b72d2c5d79377b:/src/w32bdf.h diff --git a/src/w32bdf.h b/src/w32bdf.h index 2f08890d97..23939bfd7d 100644 --- a/src/w32bdf.h +++ b/src/w32bdf.h @@ -21,16 +21,36 @@ Boston, MA 02111-1307, USA. */ /* Based heavily on code by H. Miyashita for Meadow (a descendant of MULE for W32). */ -#ifndef __W32BDF_H__ -#define __W32BDF_H__ +#ifndef EMACS_W32BDF_H +#define EMACS_W32BDF_H #define BDF_FIRST_OFFSET_TABLE 0x200 #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 */ @@ -85,9 +107,9 @@ typedef struct int width; int height; int pixsz; + int nchars; } 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)) @@ -101,4 +123,7 @@ int w32_BDF_TextOut (bdffont *fontp, HDC hdc, int left, int bytelen, int fixed_pitch_size); int w32_BDF_to_x_font (char *file, char* xstr, int len); -#endif /* __W32BDF_H__ */ +#endif /* EMACS_W32BDF_H */ + +/* arch-tag: 7499e9f2-197e-44cc-9274-373f00b51eec + (do not change this comment) */