aboutsummaryrefslogtreecommitdiff
path: root/canvas.c
diff options
context:
space:
mode:
Diffstat (limited to 'canvas.c')
-rw-r--r--canvas.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/canvas.c b/canvas.c
index d2632bb..36a0aec 100644
--- a/canvas.c
+++ b/canvas.c
@@ -15,7 +15,7 @@ newcanvas(char *name, Point2 p, Rectangle r, ulong chan)
c->bx = Vec2(1,0);
c->by = Vec2(0,1);
c->name = strdup(name);
- c->image = eallocimage(display, r, chan, 0, alphachan(chan)? DTransparent: DNofill);
+ c->image = eallocimage(display, r, chan, 0, alphachan(chan)? DTransparent: DWhite);
memset(&c->layers, 0, sizeof(Layer));
c->layers.next = &c->layers;
c->layers.prev = &c->layers;
@@ -34,3 +34,18 @@ rmcanvas(Canvas *c)
free(c->name);
free(c);
}
+
+Layer*
+addlayer(Canvas *c, char *name)
+{
+ Layer *l;
+
+ l = newlayer(name, c->image->r, c->image->chan);
+ 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;
+}