Annotation of researchv9/X11/src/X.V11R1/server/ddx/mi/mipolypnt.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: mipolypnt.c,v 1.7 87/09/11 07:20:17 toddb Exp $ */
                     25: #include "X.h"
                     26: #include "Xprotostr.h"
                     27: #include "pixmapstr.h"
                     28: #include "gcstruct.h"
                     29: #include "windowstr.h"
                     30: 
                     31: void
                     32: miPolyPoint(pDrawable, pGC, mode, npt, pptInit)
                     33:     DrawablePtr        pDrawable;
                     34:     GCPtr              pGC;
                     35:     int                mode;           /* Origin or Previous */
                     36:     int                npt;
                     37:     xPoint             *pptInit;
                     38: {
                     39: 
                     40:     int                xorg;
                     41:     int                yorg;
                     42:     int                nptTmp;
                     43:     int                        fsOld, fsNew;
                     44:     int                        *pwidthInit, *pwidth;
                     45:     int                        i;
                     46:     register xPoint    *ppt;
                     47: 
                     48: 
                     49:     if (pDrawable->type == DRAWABLE_WINDOW)
                     50:     {
                     51:        xorg = ((WindowPtr)pDrawable)->absCorner.x;
                     52:        yorg = ((WindowPtr)pDrawable)->absCorner.y;
                     53:     }
                     54:     else
                     55:     {
                     56:        xorg = 0;
                     57:        yorg = 0;
                     58:     }
                     59: 
                     60:     /* make pointlist origin relative */
                     61:     if (mode == CoordModePrevious)
                     62:     {
                     63:         ppt = pptInit;
                     64:         nptTmp = npt;
                     65:        nptTmp--;
                     66:        while(nptTmp--)
                     67:        {
                     68:            ppt++;
                     69:            ppt->x += (ppt-1)->x;
                     70:            ppt->y += (ppt-1)->y;
                     71:        }
                     72:     }
                     73: 
                     74:     if(pGC->miTranslate)
                     75:     {
                     76:        ppt = pptInit;
                     77:        nptTmp = npt;
                     78:        while(nptTmp--)
                     79:        {
                     80:            ppt->x += xorg;
                     81:            ppt++->y += yorg;
                     82:        }
                     83:     }
                     84: 
                     85:     fsOld = pGC->fillStyle;
                     86:     fsNew = FillSolid;
                     87:     if(pGC->fillStyle != FillSolid)
                     88:     {
                     89:        DoChangeGC(pGC, GCFillStyle, &fsNew, 0);
                     90:        ValidateGC(pDrawable, pGC);
                     91:     }
                     92:     if(!(pwidthInit = (int *)ALLOCATE_LOCAL(npt * sizeof(int))))
                     93:        return;
                     94:     pwidth = pwidthInit;
                     95:     for(i = 0; i < npt; i++)
                     96:        *pwidth++ = 1;
                     97:     (*pGC->FillSpans)(pDrawable, pGC, npt, pptInit, pwidthInit, FALSE); 
                     98: 
                     99:     if(fsOld != FillSolid)
                    100:     {
                    101:        DoChangeGC(pGC, GCFillStyle, &fsOld, 0);
                    102:        ValidateGC(pDrawable, pGC);
                    103:     }
                    104:     DEALLOCATE_LOCAL(pwidthInit);
                    105: }
                    106: 

unix.superglobalmegacorp.com

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