Annotation of lucent/sys/src/libgnot/f003242, revision 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.