Annotation of researchv9/jerq/src/lib/layer/lbitblt.c, revision 1.1.1.1

1.1       root        1: #include       <jerq.h>
                      2: #include       "layer.h"
                      3: 
                      4: extern int blitdir;
                      5: 
                      6: static Point delta;
                      7: 
                      8: extern bitblt(), lblt();
                      9: 
                     10: static void
                     11: srcop(sl, r, sb, fp, op)
                     12:        Layer *sl;
                     13:        Rectangle r;
                     14:        Bitmap *sb;
                     15:        register struct {
                     16:                Bitmap *db;
                     17:                Code code;
                     18:        } *fp;
                     19:        Obscured *op;
                     20: {
                     21:        bitblt(sb, r, fp->db, add(r.origin, delta), fp->code);
                     22: }
                     23: 
                     24: static void
                     25: destop(dl, r, db, fp, op)
                     26:        Layer *dl;
                     27:        Rectangle r;
                     28:        Bitmap *db;
                     29:        register struct {
                     30:                Layer *sl;
                     31:                Code code;
                     32:                Point delta;
                     33:        } *fp;
                     34:        Obscured *op;
                     35: {
                     36:        layerop(fp->sl, srcop, rsubp(r, delta), db, fp->code);
                     37: }
                     38: 
                     39: void
                     40: lbitblt(sl, rect, dl, pt, f)
                     41:        Layer *sl, *dl;
                     42:        Rectangle rect;
                     43:        Point pt;
                     44:        Code f;
                     45: {
                     46:        delta = sub(pt, rect.origin);
                     47:        blitdir = ( (delta.x <= 0)? 0 : 1 ) + ( (delta.y <= 0)? 0 : 2 );
                     48:        /*
                     49:                check for degenerate cases
                     50:         */
                     51:        if(sl->someobs == sl->nonevis){
                     52:                (*((dl->someobs != dl->nonevis)? lblt:bitblt))
                     53:                        (sl->nonevis?sl->obs:(Bitmap *)sl, rect,
                     54:                         dl->nonevis?dl->obs:(Bitmap *)dl, pt, f);
                     55:                return;
                     56:        }
                     57: 
                     58:        layerop(dl, destop, raddp(rect, delta), sl, f);
                     59: }

unix.superglobalmegacorp.com

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