Annotation of researchv9/X11/src/X.V11R1/lib/X/XDrLine.c, revision 1.1.1.1

1.1       root        1: #include "copyright.h"
                      2: 
                      3: /* $Header: XDrLine.c,v 11.10 87/09/11 08:09:53 toddb Exp $ */
                      4: /* Copyright    Massachusetts Institute of Technology    1986  */
                      5: 
                      6: #include "Xlibint.h"
                      7: 
                      8: /* precompute the maximum size of batching request allowed */
                      9: 
                     10: static int size = sizeof(xPolySegmentReq) + EPERBATCH * sizeof(xSegment);
                     11: 
                     12: XDrawLine (dpy, d, gc, x1, y1, x2, y2)
                     13:     register Display *dpy;
                     14:     Drawable d;
                     15:     GC gc;
                     16:     int x1, y1, x2, y2;
                     17: {
                     18:     register xSegment *segment;
                     19:     LockDisplay(dpy);
                     20:     FlushGC(dpy, gc);
                     21:     {
                     22:     register xPolySegmentReq *req = (xPolySegmentReq *) dpy->last_req;
                     23:     /* if same as previous request, with same drawable, batch requests */
                     24:     if (
                     25:           (req->reqType == X_PolySegment)
                     26:        && (req->drawable == d)
                     27:        && (req->gc == gc->gid)
                     28:        && ((dpy->bufptr + sizeof (xSegment)) <= dpy->bufmax)
                     29:        && (((char *)dpy->bufptr - (char *)req) < size) ) {
                     30:          segment = (xSegment *) dpy->bufptr;
                     31:         req->length += sizeof (xSegment) >> 2;
                     32:         dpy->bufptr += sizeof (xSegment);
                     33:         }
                     34: 
                     35:     else {
                     36:        GetReqExtra (PolySegment, sizeof(xSegment), req);
                     37:        req->drawable = d;
                     38:        req->gc = gc->gid;
                     39:        segment = (xSegment *) (req + 1);
                     40:        }
                     41: 
                     42:     segment->x1 = x1;
                     43:     segment->y1 = y1;
                     44:     segment->x2 = x2;
                     45:     segment->y2 = y2;
                     46:     UnlockDisplay(dpy);
                     47:     SyncHandle();
                     48:     }
                     49: }
                     50: 

unix.superglobalmegacorp.com

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