Annotation of researchv9/X11/src/X.V11R1/server/include/font.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 FONT_H
                     25: #define FONT_H 1
                     26: #define FONT_FILE_VERSION      4
                     27: 
                     28: #include "servermd.h"
                     29: 
                     30: #define NullCharInfo ((CharInfoPtr)0)
                     31: #define NullFontInfo ((FontInfoPtr)0)
                     32: #define LeftToRight 0
                     33: #define RightToLeft 1
                     34: #define BottomToTop 2
                     35: #define TopToBottom 3
                     36: /*
                     37:  * for linear char sets
                     38:  */
                     39: #define n1dChars(pfi) ((pfi)->lastCol - (pfi)->firstCol + 1)
                     40: #define chFirst firstCol       /* usage:  pfi->chFirst */
                     41: #define chLast lastCol         /* usage:  pfi->chLast */
                     42: 
                     43: /*
                     44:  * for 2D char sets
                     45:  */
                     46: #define n2dChars(pfi)  (((pfi)->lastCol - (pfi)->firstCol + 1) * \
                     47:                         ((pfi)->lastRow - (pfi)->firstRow + 1))
                     48: 
                     49: /*
                     50:  * Some macros that font converters and font i/o routines will need.
                     51:  */
                     52: 
                     53: #define        GLWIDTHPIXELS(pci) \
                     54:        ((pci)->metrics.rightSideBearing - (pci)->metrics.leftSideBearing)
                     55: #define        GLHEIGHTPIXELS(pci) \
                     56:        ((pci)->metrics.ascent + (pci)->metrics.descent)
                     57: 
                     58: 
                     59: /*
                     60:  * the following macro definitions describe a font file image in memory
                     61:  */
                     62: #define ADDRCharInfoRec( pfi)  \
                     63:        ((CharInfoRec *) &(pfi)[1])
                     64: 
                     65: #define ADDRCHARGLYPHS( pfi)   \
                     66:        (((char *) &(pfi)[1]) + BYTESOFCHARINFO(pfi))
                     67: #define ADDRXTHISCHARINFO( pf, ch ) \
                     68:         ((CharInfoRec *) &((pf)->pCI[ch]))
                     69: 
                     70: 
                     71: /*
                     72:  * pad out glyphs to a CARD32 boundary
                     73:  */
                     74: #define ADDRXFONTPROPS( pfi)  \
                     75:        ((DIXFontProp *) ((char *)ADDRCHARGLYPHS( pfi) + BYTESOFGLYPHINFO(pfi)))
                     76: 
                     77: #define ADDRSTRINGTAB( pfi)  \
                     78:        ((char *)ADDRXFONTPROPS( pfi) + BYTESOFPROPINFO(pfi))
                     79: 
                     80: #define        BYTESOFFONTINFO(pfi)    (sizeof(FontInfoRec))
                     81: #define BYTESOFCHARINFO(pfi)   (sizeof(CharInfoRec) * n2dChars(pfi))
                     82: #define        BYTESOFPROPINFO(pfi)    (sizeof(FontPropRec) * (pfi)->nProps)
                     83: #define        BYTESOFSTRINGINFO(pfi)  ((pfi)->lenStrings)
                     84: #define        BYTESOFGLYPHINFO(pfi)   (((pfi)->maxbounds.byteOffset+3) & ~0x3)
                     85:  
                     86: #define        GLYPHWIDTHBYTES(pci)    (((GLYPHWIDTHPIXELS(pci))+7) >> 3)
                     87: #define        GLYPHHEIGHTPIXELS(pci)  (pci->metrics.ascent + pci->metrics.descent)
                     88: #define        GLYPHWIDTHPIXELS(pci)   (pci->metrics.rightSideBearing \
                     89:                                    - pci->metrics.leftSideBearing)
                     90: #define GLWIDTHPADDED( bc)     ((bc+7) & ~0x7)
                     91: 
                     92: #if GLYPHPADBYTES == 0 || GLYPHPADBYTES == 1
                     93: #define        GLYPHWIDTHBYTESPADDED(pci)      (GLYPHWIDTHBYTES(pci))
                     94: #endif
                     95: 
                     96: #if GLYPHPADBYTES == 2
                     97: #define        GLYPHWIDTHBYTESPADDED(pci)      ((GLYPHWIDTHBYTES(pci)+1) & ~0x1)
                     98: #endif
                     99: 
                    100: #if GLYPHPADBYTES == 4
                    101: #define        GLYPHWIDTHBYTESPADDED(pci)      ((GLYPHWIDTHBYTES(pci)+3) & ~0x3)
                    102: #endif
                    103: 
                    104: #if GLYPHPADBYTES == 8 /* for a cray? */
                    105: #define        GLYPHWIDTHBYTESPADDED(pci)      ((GLYPHWIDTHBYTES(pci)+7) & ~0x7)
                    106: #endif
                    107: 
                    108: typedef struct _FontProp *FontPropPtr;
                    109: typedef struct _CharInfo *CharInfoPtr;
                    110: typedef struct _FontInfo *FontInfoPtr;
                    111: typedef unsigned int DrawDirection;
                    112: typedef struct _ExtentInfo *ExtentInfoPtr;
                    113: 
                    114: 
                    115: #endif /* FONT_H */

unix.superglobalmegacorp.com

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