X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fgfx.cc;h=3de2e1d149f981196825b3c9cdb6a26316898d03;hb=52e08b5a5e7d44271d217892372c6c0878484c44;hp=54ed7f96a757d847ba852e93871e4dd02563b851;hpb=0860ce537422597075fbc63ddcc9a73303362a93;p=winnie diff --git a/src/gfx.cc b/src/gfx.cc index 54ed7f9..3de2e1d 100644 --- a/src/gfx.cc +++ b/src/gfx.cc @@ -14,7 +14,7 @@ #define FRAMEBUFFER_SIZE(xsz, ysz, bpp) ((xsz) * (ysz) * (bpp) / CHAR_BIT) -static unsigned char* framebuffer; +static unsigned char *framebuffer; static int dev_fd = -1; static Rect screen_rect; @@ -58,14 +58,19 @@ bool init_gfx() void destroy_gfx() { - close(dev_fd); + clear_screen(0, 0, 0); + + if(dev_fd != -1) { + close(dev_fd); + } + dev_fd = -1; munmap(framebuffer, FRAMEBUFFER_SIZE(screen_rect.width, screen_rect.height, color_depth)); framebuffer = 0; } -unsigned char* get_framebuffer() +unsigned char *get_framebuffer() { return framebuffer; } @@ -82,12 +87,19 @@ int get_color_depth() void clear_screen(int r, int g, int b) { - unsigned char* fb = framebuffer; - for(int i=0; i