]> code.delx.au - gnu-emacs/blobdiff - src/w32bdf.h
(LIBS_CARBON): New define to specify libraries for
[gnu-emacs] / src / w32bdf.h
index 2f08890d97af1fb360e360d91c07990503619e7a..23939bfd7d827a2150956ebd9f21086c625ef4a3 100644 (file)
@@ -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) */