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
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev