Hi list, I am running DirectFB on the board AT91RM9200-EK which uses the epson S1D13XXX framebuffer (FB_S1D13XXX) and I had a bug with DirectFB. My screen is 640x480 and the framebuffer mode is : DLBM_BACKVIDEO. So, the virtual size should be 640x960 and DirectFB reported a size of 640x1024, so I get a screen size of 640x512 and I lost the bottom of the screen... So, I wrote a little patch :
******************************************************* --- DirectFB-1.1.1/systems/fbdev/fbdev.c 2008-04-10 09:23:23.000000000 +0200 +++ DirectFB-1.1.1/systems/fbdev/fbdev.c 2008-04-07 09:44:07.000000000 +0200 @@ -1893,7 +1895,8 @@ dfb_fbdev_set_mode( CoreSurface vyres = var.yres_virtual / 3; break; case DLBM_BACKVIDEO: - vyres = var.yres_virtual / 2; +// vyres = var.yres_virtual / 2; + vyres = ( (var.yres_virtual > vyres) ? vyres : var.yres_virtual ) / 2; // For FB_S1D1 3XXX (on AT91RM9200-EK) break; default: vyres = var.yres_virtual; ******************************************************* and now it is working well ! :) But I do not know if this patch can affect other framebuffers... If it does not, is it possible to include it in CVS? Regards, Guillaume GARDET
--- DirectFB-1.1.1/systems/fbdev/fbdev.c 2008-04-10 09:23:23.000000000 +0200 +++ DirectFB-1.1.1/systems/fbdev/fbdev.c 2008-04-07 09:44:07.000000000 +0200 @@ -1893,7 +1895,8 @@ dfb_fbdev_set_mode( CoreSurface vyres = var.yres_virtual / 3; break; case DLBM_BACKVIDEO: - vyres = var.yres_virtual / 2; +// vyres = var.yres_virtual / 2; + vyres = ( (var.yres_virtual > vyres) ? vyres : var.yres_virtual ) / 2; // For FB_S1D13XXX (on AT91RM9200-EK) break; default: vyres = var.yres_virtual;
_______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev