diff options
author | rodri <rgl@antares-labs.eu> | 2020-06-13 21:35:02 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2020-06-13 21:35:02 +0000 |
commit | e3e16e2fb021b61e45b01113cb1654cd7e4911c6 (patch) | |
tree | 0cdacaf28fd552a137b2e4ea70d5af003bcdee55 /layer.c | |
parent | 0b0726f3a990ee241fd93b5c3f53631bfbb4c455 (diff) | |
download | puppeteer-e3e16e2fb021b61e45b01113cb1654cd7e4911c6.tar.gz puppeteer-e3e16e2fb021b61e45b01113cb1654cd7e4911c6.tar.bz2 puppeteer-e3e16e2fb021b61e45b01113cb1654cd7e4911c6.zip |
added basic canvas and layer management.
Diffstat (limited to 'layer.c')
-rw-r--r-- | layer.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -2,4 +2,30 @@ #include <libc.h> #include <draw.h> #include <geometry.h> +#include "dat.h" +#include "fns.h" +Layer* +newlayer(Canvas *c) +{ + Layer *l; + + l = emalloc(sizeof(Layer)); + l->p = Pt2(0,0,1); + l->bx = c->bx; + l->by = c->by; + l->image = eallocimage(display, c->image->r, c->image->chan, 0, DNofill); + l->prev = c->layers.prev; + l->next = &c->layers; + c->layers.prev->next = l; + c->layers.prev = l; +} + +void +rmlayer(Layer *l) +{ + l->prev->next = l->next; + l->next->prev = l->prev; + freeimage(l->image); + free(l); +} |