|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.