]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/lib/font/bitmap/pcf.h
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / lib / font / bitmap / pcf.h
diff --git a/Xserver/lib/font/bitmap/pcf.h b/Xserver/lib/font/bitmap/pcf.h
new file mode 100644 (file)
index 0000000..752c841
--- /dev/null
@@ -0,0 +1,93 @@
+/* $XConsortium: pcf.h,v 1.2 94/04/17 20:17:15 keith Exp $ */
+
+/*
+
+Copyright (c) 1991  X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the X Consortium.
+
+*/
+
+/*
+ * Author:  Keith Packard, MIT X Consortium
+ */
+
+#ifndef _PCF_H_
+#define _PCF_H_
+
+/*
+ * Information used to read/write PCF fonts
+ */
+
+typedef struct _PCFTable {
+    CARD32      type;
+    CARD32      format;
+    CARD32      size;
+    CARD32      offset;
+}           PCFTableRec, *PCFTablePtr;
+
+#define PCF_FILE_VERSION       (('p'<<24)|('c'<<16)|('f'<<8)|1)
+#define        PCF_FORMAT_MASK         0xffffff00
+
+#define PCF_DEFAULT_FORMAT     0x00000000
+#define PCF_INKBOUNDS          0x00000200
+#define PCF_ACCEL_W_INKBOUNDS  0x00000100
+#define PCF_COMPRESSED_METRICS 0x00000100
+
+#define PCF_FORMAT_MATCH(a,b) (((a)&PCF_FORMAT_MASK) == ((b)&PCF_FORMAT_MASK))
+
+#define PCF_GLYPH_PAD_MASK     (3<<0)
+#define PCF_BYTE_MASK          (1<<2)
+#define PCF_BIT_MASK           (1<<3)
+#define PCF_SCAN_UNIT_MASK     (3<<4)
+
+#define PCF_BYTE_ORDER(f)      (((f) & PCF_BYTE_MASK)?MSBFirst:LSBFirst)
+#define PCF_BIT_ORDER(f)       (((f) & PCF_BIT_MASK)?MSBFirst:LSBFirst)
+#define PCF_GLYPH_PAD_INDEX(f) ((f) & PCF_GLYPH_PAD_MASK)
+#define PCF_GLYPH_PAD(f)       (1<<PCF_GLYPH_PAD_INDEX(f))
+#define PCF_SCAN_UNIT_INDEX(f) (((f) & PCF_SCAN_UNIT_MASK) >> 4)
+#define PCF_SCAN_UNIT(f)       (1<<PCF_SCAN_UNIT_INDEX(f))
+#define PCF_FORMAT_BITS(f)     ((f) & (PCF_GLYPH_PAD_MASK|PCF_BYTE_MASK|PCF_BIT_MASK|PCF_SCAN_UNIT_MASK))
+
+#define PCF_SIZE_TO_INDEX(s)   ((s) == 4 ? 2 : (s) == 2 ? 1 : 0)
+#define PCF_INDEX_TO_SIZE(b)   (1<<b)
+
+#define PCF_FORMAT(bit,byte,glyph,scan) (\
+    (PCF_SIZE_TO_INDEX(scan) << 4) | \
+    (((bit) == MSBFirst ? 1 : 0) << 3) | \
+    (((byte) == MSBFirst ? 1 : 0) << 2) | \
+    (PCF_SIZE_TO_INDEX(glyph) << 0))
+
+#define PCF_PROPERTIES             (1<<0)
+#define PCF_ACCELERATORS           (1<<1)
+#define PCF_METRICS                (1<<2)
+#define PCF_BITMAPS                (1<<3)
+#define PCF_INK_METRICS                    (1<<4)
+#define        PCF_BDF_ENCODINGS           (1<<5)
+#define PCF_SWIDTHS                (1<<6)
+#define PCF_GLYPH_NAMES                    (1<<7)
+#define PCF_BDF_ACCELERATORS       (1<<8)
+
+#endif                         /* _PCF_H_ */