]> git.lizzy.rs Git - plan9front.git/commitdiff
blit,c64,gb*: fix phaser coolant leak during resize
authorqwx <devnull@localhost>
Sat, 31 Mar 2018 09:37:25 +0000 (11:37 +0200)
committerqwx <devnull@localhost>
Sat, 31 Mar 2018 09:37:25 +0000 (11:37 +0200)
sys/src/games/blit/blit.c
sys/src/games/c64/c64.c
sys/src/games/gb/gb.c
sys/src/games/gba/gba.c

index ed7768101942e1ee921c89c2c1847e425d4f340e..b994b75d13bc2cc92f9ec4f4d430a4575f5a293a 100644 (file)
@@ -38,12 +38,8 @@ screeninit(void)
                picr.max.y += screen->r.min.y - picr.min.y;
                picr.min.y = screen->r.min.y;
        }
-       if(tmp != nil) freeimage(tmp);
+       freeimage(tmp);
        tmp = allocimage(display, Rect(0, 0, scale * SX, scale > 1 ? 1 : scale * SY), CHAN1(CMap, 1), scale > 1, 0);
-       if(bg != nil) freeimage(bg);
-       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
-       colbg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, colbgv);
-       colfg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, colfgv); 
        draw(screen, screen->r, bg, nil, ZP);
        updated = Rect(0, 0, SX, SY);   
 }
@@ -207,7 +203,10 @@ threadmain(int argc, char **argv)
        meminit();
        if(initdraw(nil, nil, nil) < 0)
                sysfatal("initdraw: %r");
-       
+
+       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
+       colbg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, colbgv);
+       colfg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, colfgv); 
        screeninit();
        proccreate(keyproc, nil, mainstacksize);
        mc = initmouse(nil, screen);
index 05485181355b6fae1271fad8b45793ed2901a61e..c20333760629d31d6d030aa851816fe80250bc07 100644 (file)
@@ -221,9 +221,8 @@ screeninit(void)
        p.y += pich*scale*3/4;
        q = Pt(Dx(screen->r) * 2/5, 8);
        progr = (Rectangle){subpt(p, q), addpt(p, q)};
+       freeimage(tmp);
        tmp = allocimage(display, Rect(0, 0, picw*scale, scale > 1 ? 1 : pich), XRGB32, 1, 0);
-       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
-       red = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xFF0000FF);
        draw(screen, screen->r, bg, nil, ZP);
 }
 
@@ -279,6 +278,8 @@ threadmain(int argc, char **argv)
        mc = initmouse(nil, screen);
        if(mc == nil)
                sysfatal("initmouse: %r");
+       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
+       red = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xFF0000FF);
        screeninit();
        proccreate(keyproc, nil, mainstacksize);
 
index 4a021f7e438fe1e4bd31170b200f6ab26540876d..d6762b182fad12a62dfd0308428a21e418a15729 100644 (file)
@@ -210,8 +210,8 @@ screeninit(void)
 
        p = divpt(addpt(screen->r.min, screen->r.max), 2);
        picr = (Rectangle){subpt(p, Pt(scale * PICW/2, scale * PICH/2)), addpt(p, Pt(scale * PICW/2, scale * PICH/2))};
+       freeimage(tmp);
        tmp = allocimage(display, Rect(0, 0, scale * PICW, scale > 1 ? 1 : scale * PICH), XRGB32, scale > 1, 0);
-       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
        draw(screen, screen->r, bg, nil, ZP);   
 }
 
@@ -467,6 +467,7 @@ threadmain(int argc, char **argv)
        if(mc == nil)
                sysfatal("initmouse: %r");
        proccreate(keyproc, nil, mainstacksize);
+       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
        screeninit();
 
        eventinit();
index 50300af0bae43677ad4e73ef77c15aadb9458f18..8457b1e6fc36858b50dec6b695b6a55ca35e47f5 100644 (file)
@@ -218,8 +218,8 @@ screeninit(void)
 
        p = divpt(addpt(screen->r.min, screen->r.max), 2);
        picr = (Rectangle){subpt(p, Pt(scale * 120, scale * 80)), addpt(p, Pt(scale * 120, scale * 80))};
+       freeimage(tmp);
        tmp = allocimage(display, Rect(0, 0, scale * 240, scale > 1 ? 1 : scale * 160), CHAN4(CIgnore, 1, CBlue, 5, CGreen, 5, CRed, 5), scale > 1, 0);
-       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
        draw(screen, screen->r, bg, nil, ZP);   
 }
 
@@ -443,6 +443,7 @@ threadmain(int argc, char **argv)
        if(mc == nil)
                sysfatal("initmouse: %r");
        proccreate(keyproc, nil, mainstacksize);
+       bg = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0xCCCCCCFF);
        screeninit();
 
        eventinit();