aboutsummaryrefslogtreecommitdiff
path: root/layer.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2020-06-14 19:54:18 +0000
committerrodri <rgl@antares-labs.eu>2020-06-14 19:54:18 +0000
commit1024676bc6ad5ef8b073cefd5da22c89dbb59dde (patch)
treec94ca5df7fd2c0f3b22913ef6c9cf9609aa69d33 /layer.c
parentd80ac9e9f103779aa61871c65d9939a3478c19a6 (diff)
downloadpuppeteer-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.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/layer.c b/layer.c
index e3a389d..77584bc 100644
--- a/layer.c
+++ b/layer.c
@@ -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);
}