| #include <u.h> | |
| #include <libc.h> | |
| #include <draw.h> | |
| #include <memdraw.h> | |
| int | |
| _unloadmemimage(Memimage *i, Rectangle r, uchar *data, int ndata) | |
| { | |
| int y, l; | |
| uchar *q; | |
| if(!rectinrect(r, i->r)) | |
| return -1; | |
| l = bytesperline(r, i->depth); | |
| if(ndata < l*Dy(r)) | |
| return -1; | |
| ndata = l*Dy(r); | |
| q = byteaddr(i, r.min); | |
| for(y=r.min.y; y<r.max.y; y++){ | |
| memmove(data, q, l); | |
| q += i->width*sizeof(u32int); | |
| data += l; | |
| } | |
| return ndata; | |
| } |