1*7dd7cddfSDavid du Colombier #include "../lib9.h" 2*7dd7cddfSDavid du Colombier 3*7dd7cddfSDavid du Colombier #include "../libdraw/draw.h" 4*7dd7cddfSDavid du Colombier #include "../libmemdraw/memdraw.h" 5*7dd7cddfSDavid du Colombier 6*7dd7cddfSDavid du Colombier int 7*7dd7cddfSDavid du Colombier unloadmemimage(Memimage *i, Rectangle r, uchar *data, int ndata) 8*7dd7cddfSDavid du Colombier { 9*7dd7cddfSDavid du Colombier int y, l; 10*7dd7cddfSDavid du Colombier uchar *q; 11*7dd7cddfSDavid du Colombier 12*7dd7cddfSDavid du Colombier if(!rectinrect(r, i->r)) 13*7dd7cddfSDavid du Colombier return -1; 14*7dd7cddfSDavid du Colombier l = bytesperline(r, i->depth); 15*7dd7cddfSDavid du Colombier if(ndata < l*Dy(r)) 16*7dd7cddfSDavid du Colombier return -1; 17*7dd7cddfSDavid du Colombier ndata = l*Dy(r); 18*7dd7cddfSDavid du Colombier q = byteaddr(i, r.min); 19*7dd7cddfSDavid du Colombier for(y=r.min.y; y<r.max.y; y++){ 20*7dd7cddfSDavid du Colombier memmove(data, q, l); 21*7dd7cddfSDavid du Colombier q += i->width*sizeof(ulong); 22*7dd7cddfSDavid du Colombier data += l; 23*7dd7cddfSDavid du Colombier } 24*7dd7cddfSDavid du Colombier return ndata; 25*7dd7cddfSDavid du Colombier } 26