diff options
author | rodri <rgl@antares-labs.eu> | 2020-06-14 19:54:18 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2020-06-14 19:54:18 +0000 |
commit | 1024676bc6ad5ef8b073cefd5da22c89dbb59dde (patch) | |
tree | c94ca5df7fd2c0f3b22913ef6c9cf9609aa69d33 /layer.c | |
parent | d80ac9e9f103779aa61871c65d9939a3478c19a6 (diff) | |
download | puppeteer-1024676bc6ad5ef8b073cefd5da22c89dbb59dde.tar.gz puppeteer-1024676bc6ad5ef8b073cefd5da22c89dbb59dde.tar.bz2 puppeteer-1024676bc6ad5ef8b073cefd5da22c89dbb59dde.zip |
now it's possible to paint on any given layer. also changed worldrf.
Diffstat (limited to 'layer.c')
-rw-r--r-- | layer.c | 17 |
1 files changed, 6 insertions, 11 deletions
@@ -5,17 +5,8 @@ #include "dat.h" #include "fns.h" -static int -alphachan(ulong chan) -{ - for(; chan; chan >>= 8) - if(TYPE(chan) == CAlpha) - return 1; - return 0; -} - Layer* -newlayer(Canvas *c) +newlayer(char *name, Canvas *c) { Layer *l; @@ -23,11 +14,14 @@ newlayer(Canvas *c) 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, alphachan(c->image->chan)? DTransparent: DNofill); + l->name = strdup(name); + l->image = eallocimage(display, c->image->r, c->image->chan, 0, 0); l->prev = c->layers.prev; l->next = &c->layers; c->layers.prev->next = l; c->layers.prev = l; + if(c->curlayer == nil) + c->curlayer = l; return l; } @@ -37,5 +31,6 @@ rmlayer(Layer *l) l->prev->next = l->next; l->next->prev = l->prev; freeimage(l->image); + free(l->name); free(l); } |