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