foo
[cdmenu] / menu / src / dos / drv_vbe.c
index ae36be8..66aff49 100644 (file)
@@ -375,7 +375,7 @@ static void blit_lfb(int x, int y, int w, int h, void *fb, int pitch)
        int i, pixsz, spansz;
        unsigned char *dest, *src;
 
-       /*dbgmsg("blit: %d,%d (%dx%d)\n", x, y, w, h);*/
+       dbgmsg("blit: %d,%d (%dx%d)\n", x, y, w, h);
 
        pixsz = (cur_mi->bpp + 7) >> 3;
        spansz = w * pixsz;
@@ -403,9 +403,13 @@ static void blitfb_lfb(void *fb, int pitch)
        pixsz = (cur_mi->bpp + 7) >> 3;
        spansz = cur_mi->width * pixsz;
 
+       if(spansz == cur_mi->pitch) {
+               memcpy(vid_vmem, fb, spansz * cur_mi->height);
+               return;
+       }
+
        dest = vid_vmem;
        src = fb;
-
        for(i=0; i<cur_mi->height; i++) {
                memcpy(dest, src, spansz);
                dest += cur_mi->pitch;