]> code.delx.au - gnu-emacs/blobdiff - src/w32bdf.h
*** empty log message ***
[gnu-emacs] / src / w32bdf.h
index 218cc0331dced4f322b98c3b4c54ef24889df968..dd8cfa276bfb52d1733ad36c3790ef629b456567 100644 (file)
@@ -1,5 +1,6 @@
 /* Definitions and header for handling BDF fonts on the Microsoft W32 API.
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2004, 2005,
+                 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -15,8 +16,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 /* Based heavily on code by H. Miyashita for Meadow (a descendant of
    MULE for W32). */
@@ -28,9 +29,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 +63,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 +74,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 +93,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 +108,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))
@@ -102,3 +125,6 @@ int w32_BDF_TextOut (bdffont *fontp, HDC hdc, int left,
 int w32_BDF_to_x_font (char *file, char* xstr, int len);
 
 #endif  /* EMACS_W32BDF_H */
+
+/* arch-tag: 7499e9f2-197e-44cc-9274-373f00b51eec
+   (do not change this comment) */