summaryrefslogtreecommitdiff
path: root/src/w32bdf.h
diff options
context:
space:
mode:
authorJason Rumney <jasonr@gnu.org>2000-09-29 21:21:54 +0000
committerJason Rumney <jasonr@gnu.org>2000-09-29 21:21:54 +0000
commitebbf77eacd2db70a073eb51ab2583f92156f828c (patch)
tree6dd34cdf1a566fdb37f2261582d5b203eaf24fbc /src/w32bdf.h
parent9127e20e661969ff6ab5977825a43dbf85f8802a (diff)
downloademacs-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.h33
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))