home *** CD-ROM | disk | FTP | other *** search
- /* $XConsortium: XFillPoly.c,v 11.13 91/01/06 11:45:34 rws Exp $ */
- /* Copyright Massachusetts Institute of Technology 1986 */
-
- /*
- Permission to use, copy, modify, distribute, and sell this software and its
- documentation for any purpose is hereby granted without fee, provided that
- the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation, and that the name of M.I.T. not be used in advertising or
- publicity pertaining to distribution of the software without specific,
- written prior permission. M.I.T. makes no representations about the
- suitability of this software for any purpose. It is provided "as is"
- without express or implied warranty.
- */
-
- #include "Xlibint.h"
-
- XFillPolygon(dpy, d, gc, points, n_points, shape, mode)
- register Display *dpy;
- Drawable d;
- GC gc;
- XPoint *points;
- int n_points;
- int shape;
- int mode;
- {
- register xFillPolyReq *req;
- register long nbytes;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq(FillPoly, req);
-
- req->drawable = d;
- req->gc = gc->gid;
- req->shape = shape;
- req->coordMode = mode;
-
- if ((req->length + n_points) > (unsigned)65535)
- n_points = 65535 - req->length; /* force BadLength, if possible */
- req->length += n_points;
-
- /* shift (mult. by 4) before passing to the (possible) macro */
-
- nbytes = n_points << 2;
-
- Data16 (dpy, (short *) points, nbytes);
- UnlockDisplay(dpy);
- SyncHandle();
- }
-