diff options
author | qwx <devnull@localhost> | 2018-03-31 11:37:25 +0200 |
---|---|---|
committer | qwx <devnull@localhost> | 2018-03-31 11:37:25 +0200 |
commit | 84351ae4cb50857fe62e0938198db0c7ea33d05c (patch) | |
tree | 5668cb88ee76fe73663e389039e244aaf522795d /sys/src/games | |
parent | 2fdd83c82779fa108ae435bee1cae6d68243c75b (diff) |
blit,c64,gb*: fix phaser coolant leak during resize
Diffstat (limited to 'sys/src/games')
-rw-r--r-- | sys/src/games/blit/blit.c | 11 | ||||
-rw-r--r-- | sys/src/games/c64/c64.c | 5 | ||||
-rw-r--r-- | sys/src/games/gb/gb.c | 3 | ||||
-rw-r--r-- | sys/src/games/gba/gba.c | 3 |
4 files changed, 12 insertions, 10 deletions
diff --git a/sys/src/games/blit/blit.c b/sys/src/games/blit/blit.c index ed7768101..b994b75d1 100644 --- a/sys/src/games/blit/blit.c +++ b/sys/src/games/blit/blit.c @@ -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); diff --git a/sys/src/games/c64/c64.c b/sys/src/games/c64/c64.c index 054851813..c20333760 100644 --- a/sys/src/games/c64/c64.c +++ b/sys/src/games/c64/c64.c @@ -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); diff --git a/sys/src/games/gb/gb.c b/sys/src/games/gb/gb.c index 4a021f7e4..d6762b182 100644 --- a/sys/src/games/gb/gb.c +++ b/sys/src/games/gb/gb.c @@ -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(); diff --git a/sys/src/games/gba/gba.c b/sys/src/games/gba/gba.c index 50300af0b..8457b1e6f 100644 --- a/sys/src/games/gba/gba.c +++ b/sys/src/games/gba/gba.c @@ -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(); |