|
|
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.