(glyph_struct, cache_bitmap): Cache bitmap data, not GDI object which
is a scarce resource.
This commit is contained in:
parent
9127e20e66
commit
ebbf77eacd
1 changed files with 27 additions and 6 deletions
33
src/w32bdf.h
33
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))
|
||||
|
|
Loading…
Add table
Reference in a new issue