ref: 0cd1f6455c02fe0c2ade3e630debb315f054b253
parent: 1527811f3015c04a1d84528d6eb7fb50575a57e2
author: jmq <jmq@jmq.sh>
date: Thu Apr 3 20:49:03 EDT 2025
checkpoint
--- a/fs.c
+++ b/fs.c
@@ -82,34 +82,14 @@
respond(r, e->write(r));
}
-static void
-canvasreadtask(void)
-{- if (CanvasReadImage != nil)
- freeimage(CanvasReadImage);
-
- if ((CanvasReadImage = allocimage(display, ViewImage->r, ViewImage->chan, ViewImage->repl, DTransparent)) == nil) {- semrelease(&CanvasReadReady, 1);
- return;
- }
-
- draw(CanvasReadImage, CanvasReadImage->r, ViewImage, nil, ZP);
- semrelease(&CanvasReadReady, 1);
-}
-
static char *
canvasread(Req * r)
{uchar * b;
int n;
- char hdr[11+5*12+1], cbuf[20];;
-
- if (newtask(0, canvasreadtask) < 0)
- return "failed to allocated canvas read task";
- if (tsemacquire(&CanvasReadReady, 1000) < 0)
- return "canvas read timed out";
+ char hdr[11+5*12+1], cbuf[20];
- if (CanvasReadImage == nil) {+ if ((CanvasReadImage = namedimage(display, "pain.view")) == nil) {return "no view image";
}
--- a/main.c
+++ b/main.c
@@ -151,6 +151,8 @@
ViewImage = allocimage(display, CanvasSize, RGBA32, 1, DEFAULTCANVASBACKGROUNDCOLOR);
if (ViewImage == nil)
sysfatal("allocimage: %r");+ if (nameimage(ViewImage, "pain.view", 1) < 0)
+ sysfatal("failed to name view image: %r");sr = 1;
}
@@ -367,7 +369,8 @@
{if (ViewImage == nil)
return;
-
+
+ nameimage(ViewImage, "", 0);
freeimage(ViewImage);
ViewImage = nil;
}
--
⑨