Annotation of lucent/sys/src/libgnot/f003242, revision 1.1.1.1

1.1       root        1: #include <u.h>
                      2: #include <libc.h>
                      3: #include <libg.h>
                      4: #include <gnot.h>
                      5: 
                      6: void
                      7: gbitbltclip(void *vp)
                      8: {
                      9:        int dx, dy;
                     10:        int i;
                     11:        struct{
                     12:                GBitmap *dm;
                     13:                Point p;
                     14:                GBitmap *sm;
                     15:                Rectangle r;
                     16:                Fcode f;
                     17:        }*bp;
                     18: 
                     19:        bp = vp;
                     20:        dx = Dx(bp->r);
                     21:        dy = Dy(bp->r);
                     22:        if(bp->p.x < bp->dm->clipr.min.x){
                     23:                i = bp->dm->clipr.min.x-bp->p.x;
                     24:                bp->r.min.x += i;
                     25:                bp->p.x += i;
                     26:                dx -= i;
                     27:        }
                     28:        if(bp->p.y < bp->dm->clipr.min.y){
                     29:                i = bp->dm->clipr.min.y-bp->p.y;
                     30:                bp->r.min.y += i;
                     31:                bp->p.y += i;
                     32:                dy -= i;
                     33:        }
                     34:        if(bp->p.x+dx > bp->dm->clipr.max.x)
                     35:                bp->r.max.x -= bp->p.x+dx-bp->dm->clipr.max.x;
                     36:        if(bp->p.y+dy > bp->dm->clipr.max.y)
                     37:                bp->r.max.y -= bp->p.y+dy-bp->dm->clipr.max.y;
                     38:        if(bp->r.min.x < bp->sm->clipr.min.x){
                     39:                i = bp->sm->clipr.min.x-bp->r.min.x;
                     40:                bp->p.x += i;
                     41:                bp->r.min.x += i;
                     42:        }
                     43:        if(bp->r.min.y < bp->sm->clipr.min.y){
                     44:                i = bp->sm->clipr.min.y-bp->r.min.y;
                     45:                bp->p.y += i;
                     46:                bp->r.min.y += i;
                     47:        }
                     48:        if(bp->r.max.x > bp->sm->clipr.max.x)
                     49:                bp->r.max.x = bp->sm->clipr.max.x;
                     50:        if(bp->r.max.y > bp->sm->clipr.max.y)
                     51:                bp->r.max.y = bp->sm->clipr.max.y;
                     52: }

unix.superglobalmegacorp.com

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