void
screeninit(void)
{
- bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
+ freescreen(scr);
scr = allocscreen(screen, bg, 0);
+ freeimage(disp);
disp = allocwindow(scr, screen->r, 0, 0xCCCCCCFF);
draw(screen, screen->r, bg, nil, ZP);
flushimage(display, 1);
r = (Rectangle){subpt(p, q), addpt(p, q)};
lockdisplay(display);
draw(disp, r, i, nil, i->r.min);
- flushimage(display, 1);
freeimage(i);
+ flushimage(display, 1);
unlockdisplay(display);
}
fprint(2, "readimage: %r\n");
if(initdraw(nil, nil, "camv") < 0)
sysfatal("initdraw: %r");
+ bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
screeninit();
kc = initkeyboard(nil);
if(kc == nil) sysfatal("initkeyboard: %r");
threadcreate(resizethread, nil, mainstacksize);
proccreate(videoproc, nil, mainstacksize);
display->locking = 1;
+ flushimage(display, 1);
unlockdisplay(display);
- while(readmouse(mc) >= 0){
+ while(recv(mc->c, &mc->Mouse) >= 0){
+ if(mc->buttons == 0)
+ continue;
+ lockdisplay(display);
if((mc->buttons & 4) != 0)
rmb();
else if((mc->buttons & 2) != 0)
mmb();
+ flushimage(display, 1);
+ unlockdisplay(display);
}
}