|
|
1.1 ! root 1: #include <X/mit-copyright.h> ! 2: ! 3: /* $Header: XMakeTiles.c,v 10.3 86/02/01 15:36:49 tony Rel $ */ ! 4: /* Copyright Massachusetts Institute of Technology 1985 */ ! 5: ! 6: #include "XlibInternal.h" ! 7: ! 8: int XMakeTiles(defs, ndefs) ! 9: TileFrame defs[]; ! 10: register int ndefs; ! 11: { ! 12: register int i; ! 13: register int req_count = 0; ! 14: register int res_count = 0; ! 15: register Display *dpy = _XlibCurrentDisplay; ! 16: register TileFrame *frame = defs; ! 17: ! 18: ! 19: /* ! 20: * Issue requests. ! 21: */ ! 22: for (i = 0; i < ndefs; i++) { ! 23: register XReq *req; ! 24: switch (frame->pixel) { ! 25: case WhitePixel: ! 26: frame->pixmap = dpy->white; ! 27: break; ! 28: case BlackPixel: ! 29: frame->pixmap = dpy->black; ! 30: break; ! 31: default: ! 32: GetReq(X_MakePixmap, 0); ! 33: frame->pixmap = 0; ! 34: req->param.l[0] = 0; ! 35: req->param.s[2] = frame->pixel; ! 36: req_count++; ! 37: break; ! 38: } ! 39: /* ! 40: * Increment the frame pointer. ! 41: */ ! 42: frame++; ! 43: } ! 44: ! 45: /* ! 46: * Reset request number to its old value, so that ! 47: * error packets are processed correctly. ! 48: */ ! 49: dpy->request -= req_count; ! 50: ! 51: /* ! 52: * Retrieve replies. ! 53: */ ! 54: frame = defs; ! 55: for (i = 0; i < ndefs; i++) { ! 56: XRep rep; ! 57: ! 58: /* ! 59: * If the pixel was a degenerate case (white or black) ! 60: * then we already have the pixmap id, increment the ! 61: * result frame pointer and result count and continue. ! 62: */ ! 63: if (frame->pixmap != 0) { ! 64: res_count++; ! 65: } ! 66: else { ! 67: /* ! 68: * Increment request number so error packets ! 69: * are processed correctly. ! 70: */ ! 71: dpy->request++; ! 72: ! 73: /* ! 74: * Retrieve the reply. ! 75: */ ! 76: if (!_XReply(dpy, &rep)) frame->pixmap = 0; ! 77: else { ! 78: frame->pixmap = rep.param.l[0]; ! 79: res_count++; ! 80: } ! 81: } ! 82: /* ! 83: * Increment the frame pointer. ! 84: */ ! 85: frame++; ! 86: } ! 87: ! 88: /* ! 89: * Return the number of successful pixmaps. ! 90: */ ! 91: return (res_count); ! 92: } ! 93:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.