Annotation of researchv9/X11/src/X.V11R1/server/ddx/mfb/mfbfont.c, 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: /* $Header: mfbfont.c,v 1.14 87/09/03 13:50:48 toddb Exp $ */
                     25: #include "X.h"
                     26: #include "Xmd.h"
                     27: #include "Xproto.h"
                     28: #include "fontstruct.h"
                     29: #include "dixfontstr.h"
                     30: #include "scrnintstr.h"
                     31: 
                     32: #include "mfb.h"
                     33: 
                     34: /*
                     35:  * Take advantage of the per-screen private information field in the font to
                     36:  * encode the results of fairly complex tests of the font's metric fields.
                     37:  * ValidateFont need merely examine the code to select the output routines to
                     38:  * be pointed to in the GC.
                     39:  */
                     40: Bool
                     41: mfbRealizeFont( pscr, pFont)
                     42:     ScreenPtr  pscr;
                     43:     FontPtr    pFont;
                     44: {
                     45:     /*
                     46:      * pGC->font is now known to be valid
                     47:      */
                     48:     int                        index = pscr->myNum;
                     49:     FontInfoPtr                pfi = pFont->pFI;
                     50:     CharInfoPtr                maxb = &pfi->maxbounds;
                     51:     CharInfoPtr                minb = &pfi->minbounds;
                     52: 
                     53:     /*
                     54:      * pick the fastest output routines that can do the job.
                     55:      */
                     56:     if (   maxb->metrics.rightSideBearing -
                     57:                minb->metrics.leftSideBearing > 32      /* big glyphs */
                     58:          || pfi->drawDirection != FontLeftToRight
                     59:          || pfi->noOverlap == 0)
                     60:        pFont->devPriv[ index] = (pointer)FT_VARPITCH;
                     61:     else  /* an optimizable case */
                     62:     {
                     63:        if (     maxb->metrics.leftSideBearing ==
                     64:                    minb->metrics.leftSideBearing /* fixed pitch */
                     65:              && maxb->metrics.leftSideBearing == 0       /* fixed pitch */
                     66:              && maxb->metrics.rightSideBearing ==
                     67:                    minb->metrics.rightSideBearing /* fixed pitch */
                     68:              && maxb->metrics.characterWidth ==
                     69:                    minb->metrics.characterWidth  /* fixed pitch */
                     70:              && maxb->metrics.ascent ==
                     71:                    minb->metrics.ascent          /* fixed height */
                     72:              && maxb->metrics.descent ==
                     73:                    minb->metrics.descent)  /* fixed height */
                     74:            pFont->devPriv[ index] = (pointer)FT_FIXPITCH;
                     75:        else
                     76:            pFont->devPriv[ index] = (pointer)FT_SMALLPITCH;
                     77:     }
                     78:     return (TRUE);
                     79: }
                     80: 
                     81: /*
                     82:  * no storage allocated in mfbRealizeFont, so there is nothing to do
                     83:  */
                     84: Bool
                     85: mfbUnrealizeFont( pscr, pFont)
                     86:     ScreenPtr  pscr;
                     87:     FontPtr    pFont;
                     88: {
                     89:     return (TRUE);
                     90: }

unix.superglobalmegacorp.com

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