Annotation of researchv9/X11/src/X.V11R1/server/include/fontstruct.h, revision 1.1.1.1

1.1       root        1: /***********************************************************
                      2: Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
                      3: and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
                      4: 
                      5:                         All Rights Reserved
                      6: 
                      7: Permission to use, copy, modify, and distribute this software and its 
                      8: documentation for any purpose and without fee is hereby granted, 
                      9: provided that the above copyright notice appear in all copies and that
                     10: both that copyright notice and this permission notice appear in 
                     11: supporting documentation, and that the names of Digital or MIT not be
                     12: used in advertising or publicity pertaining to distribution of the
                     13: software without specific, written prior permission.  
                     14: 
                     15: DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
                     16: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
                     17: DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
                     18: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                     19: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
                     20: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
                     21: SOFTWARE.
                     22: 
                     23: ******************************************************************/
                     24: #ifndef FONTSTRUCT_H
                     25: #define FONTSTRUCT_H 1
                     26: #include "font.h"
                     27: #include "misc.h"
                     28: 
                     29: /*
                     30:  * This file describes the Server Natural Font format.
                     31:  * SNF fonts are both CPU-dependent and frame buffer bit order dependent.
                     32:  * This file is used by:
                     33:  *     1)  the server, to hold font information read out of font files.
                     34:  *     2)  font converters
                     35:  *
                     36:  * Each font file contains the following
                     37:  * data structures, with no padding in-between.
                     38:  *
                     39:  *     1)  The XFONTINFO structure
                     40:  *             hand-padded to a two-short boundary.
                     41:  *
                     42:  *     2)  The XCHARINFO array
                     43:  *             indexed directly with character codes, both on disk
                     44:  *             and in memory.
                     45:  *
                     46:  *     3)  Character glyphs
                     47:  *             padded in the server-natural way, and
                     48:  *             ordered in the device-natural way.
                     49:  *             End of glyphs padded to 32-bit boundary.
                     50:  *
                     51:  *     4)  nProps font properties
                     52:  *
                     53:  *     5)  a sequence of null-terminated strings, for font properties
                     54:  */
                     55: 
                     56: 
                     57: typedef struct _FontProp { 
                     58:        CARD32  name;           /* offset of string */
                     59:        INT32   value;          /* number or offset of string */
                     60:        Bool    indirect;       /* value is a string offset */
                     61: } FontPropRec;
                     62: 
                     63: typedef struct _CharInfo {
                     64:     xCharInfo  metrics;        /* info preformatted for Queries */
                     65:     unsigned   byteOffset:24;  /* byte offset of the raster from pGlyphs */
                     66:     Bool       exists:1;       /* true iff glyph exists for this char */
                     67:     unsigned   pad:7;          /* must be zero for now */
                     68: } CharInfoRec;
                     69: 
                     70: /*
                     71:  * maxbounds.byteOffset is the total number of bytes in the glyph array,
                     72:  * and maxbounds.bitOffset is total width of the unpadded font.
                     73:  */
                     74: typedef struct _FontInfo {
                     75:     unsigned int       version1;   /* version stamp */
                     76:     unsigned int       allExist;
                     77:     unsigned int       drawDirection;
                     78:     unsigned int       noOverlap;
                     79:     unsigned int       constantMetrics;
                     80:     unsigned int       terminalFont;   /* constant metrics &&
                     81:                                           width of glyph == width of char &&
                     82:                                           height of glyph == height of font
                     83:                                        */
                     84:     unsigned int       linear:1;       /* true if nRows == 0 */
                     85:     unsigned int       padding:31;
                     86:     unsigned int       firstCol;
                     87:     unsigned int       lastCol;
                     88:     unsigned int       firstRow;
                     89:     unsigned int       lastRow;
                     90:     unsigned int       nProps;
                     91:     unsigned int       lenStrings; /* length in bytes of string table */
                     92:     unsigned int       chDefault;  /* default character */ 
                     93:     unsigned int       fontDescent; /* minimum for quality typography */
                     94:     unsigned int       fontAscent;  /* minimum for quality typography */
                     95:     CharInfoRec                minbounds;  /* MIN of glyph metrics over all chars */
                     96:     CharInfoRec                maxbounds;  /* MAX of glyph metrics over all chars */
                     97:     unsigned int       pixDepth;   /* intensity bits per pixel */
                     98:     unsigned int       glyphSets;  /* number of sets of glyphs, for
                     99: ONT                                        sub-pixel positioning */
                    100:     unsigned int       version2;   /* version stamp double-check */
                    101: } FontInfoRec;
                    102: 
                    103: typedef struct _ExtentInfo {
                    104:     DrawDirection      drawDirection;
                    105:     int                        fontAscent;
                    106:     int                        fontDescent;
                    107:     int                        overallAscent;
                    108:     int                        overallDescent;
                    109:     int                        overallWidth;
                    110:     int                        overallLeft;
                    111:     int                        overallRight;
                    112: } ExtentInfoRec;
                    113: 
                    114: #endif /* FONTSTRUCT_H */
                    115: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.