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