Annotation of 43BSD/contrib/X/Xlib/XMakeTiles.c, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

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