add a pitch variable
[picodrive.git] / platform / linux / io.c
index 1b912c9..57601cc 100644 (file)
@@ -18,7 +18,6 @@
 #include "log_io.h"
 
 int current_keys;
-unsigned char *PicoDraw2FB;
 
 #ifdef FBDEV
 
@@ -32,7 +31,7 @@ unsigned char *PicoDraw2FB;
 static int current_bpp = 16;
 static int current_pal[256];
 static const char *verstring = "PicoDrive " VERSION;
-static int scr_changed = 0, scr_w = SCREEN_WIDTH, scr_h = SCREEN_HEIGHT;
+static int scr_changed = 0, scr_w = 320, scr_h = 240;
 
 /* faking GP2X pad */
 enum  { GP2X_UP=0x1,       GP2X_LEFT=0x4,       GP2X_DOWN=0x10,  GP2X_RIGHT=0x40,
@@ -135,7 +134,7 @@ static void xlib_update(void)
        XLockDisplay(xlib_display);
 
        xstatus = XPutImage(xlib_display, xlib_window, DefaultGC(xlib_display, 0), ximage,
-               0, 0, 0, 0, g_screen_width, g_screen_height);
+               0, 0, 0, 0, g_screen_ppitch, g_screen_height);
        if (xstatus != 0)
                fprintf(stderr, "XPutImage %d\n", xstatus);
 
@@ -261,11 +260,11 @@ static void realloc_screen(void)
        int size = scr_w * scr_h * 2;
        g_screen_width = g_menuscreen_w = scr_w;
        g_screen_height = g_menuscreen_h = scr_h;
+       g_screen_ppitch = g_menuscreen_pp = scr_w;
        g_screen_ptr = realloc(g_screen_ptr, size);
        g_menubg_ptr = realloc(g_menubg_ptr, size);
        memset(g_screen_ptr, 0, size);
        memset(g_menubg_ptr, 0, size);
-       PicoDraw2FB = g_menubg_ptr;
        scr_changed = 0;
 }
 
@@ -277,7 +276,7 @@ void plat_video_flip(void)
        if (ximage == NULL)
                return;
 
-       pixel_count = g_screen_width * g_screen_height;
+       pixel_count = g_screen_ppitch * g_screen_height;
        image = (void *)ximage->data;
 
        if (current_bpp == 8)
@@ -334,8 +333,8 @@ void plat_init(void)
                exit(1);
        g_screen_width = g_menuscreen_w = w;
        g_screen_height = g_menuscreen_h = h;
+       g_screen_ppitch = g_menuscreen_pp = w;
        g_menubg_ptr = realloc(g_menubg_ptr, w * g_screen_height * 2);
-       PicoDraw2FB = g_menubg_ptr;
 #else
        realloc_screen();
        memset(g_screen_ptr, 0, g_screen_width * g_screen_height * 2);