ref: 6772237407110a85e52893d91caba41969dad707
dir: /util.c/
#include <u.h> #include <libc.h> #include <draw.h> #include <memdraw.h> #include <event.h> #include "blie.h" Memimage* dupmemimage(Memimage *i) { Memimage *d; d = gencanvas(i); memimagedraw(d, i->r, i, ZP, nil, ZP, SoverD); return d; } Memimage* gencanvas(Memimage *i) { return allocmemimage(i->r, i->chan); } Memimage* gencomposite(Memimage *A, Memimage *B, Memimage *M, Drawop op) { Memimage *d; d = dupmemimage(A); memimagedraw(d, B->r, B, ZP, M, ZP, op); return d; } Memimage* ecomposite(Layer *l, Memimage *img) { Memimage *s; Memimage *m; s = l->editor->raw(l); m = l->editor->mask(l); if (!img) { if (bliedebug > 1) fprint(2, " c: raw image\n"); return dupmemimage(s); } if (bliedebug > 1) fprint(2, " c: combine images\n"); return gencomposite(img, s, m, l->op); }