Hi, While running gtkPerf on GTK+-DFB, the screen does not get refreshed when the draw lines or the draw pixbufs operation takes place. If I modify the gdk/directfb source code to call the DirectFB Flip function, the screen is refreshed. This however slows down the system. Attached below is the patch file: -- gdkdrawable-directfb.c 2008-08-11 21:15:06.000000000 -0700 +++ gdkdrawable-directfb_original.c 2008-08-11 20:56:25.000000000 -0700 @@ -520,7 +520,6 @@ points[1].x, points[1].y, points[2].x, points[2].y);
- } impl->surface->SetClip (impl->surface, NULL); gdk_region_destroy (clip); @@ -622,8 +621,6 @@ impl->surface->SetClip (impl->surface, ®); impl->surface->Blit (impl->surface, src_impl->surface, &rect, xdest, ydest); - - impl->surface->Flip(impl->surface, ®, DSFLIP_NONE); } impl->surface->SetClip (impl->surface, NULL); gdk_region_destroy (clip); @@ -865,7 +862,6 @@ impl->surface->Blit (impl->surface, image_private->surface, &src_rect, xdest, ydest); - } impl->surface->SetClip (impl->surface, NULL); On investigation, I have noticed that, in DirectFB, automatic flipping takes place only on windows which have their surface capabilities as DSCAPS_PRIMARY and do not have have the DSCAPS_FLIPPING (DSCAPS_DOUBLE | DSCAPS_TRIPLE) capabilities. If the above two conditions are met, DirectFB runs a thread to flip the surface whenever an update takes place on the window. In GTK+, the widgets have surfaces with capabilities, DSCAPS_DOUBLE and DSCAPS_SUBSURFACE. Since the widget windows have sub surfaces, the flipping thread is not created. The buffer mode is DLBM_BACKSYSTEM. Could you let me know if I need to make any changes either in the source code or the configuration file to refresh the screen. GTK version: 2.12.10 Cairo version: 1.6.4 DirectFB version: 1.2.0-rc1 DirectFB configuration options: system=fbdev fbdev=/dev/fb0 fatal-level=ASSERT no-vt mode=800x480 wm=default Thanks and Regards, Naomi Luis
_______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev