1.
GTK中调用DirectFB的流程:
IA__gtk_init
|
IA__gtk_init_check
|
gdk_display_open
|
DirectFBInit
.
DirectFBCreate
2.
directfb中UPDATE一个画面的流程如下:
IDirectFBSurface_Window_Flip
|
dfb_layer_region_flip_update
|
dfb_back_to_front_copy ---------------------------被IDirectFBSurface_Flip, IDirectFBSurface_Window_Flip, dfb_layer_region_flip_update三函数调用
+
dfb_gfxcard_blit
+
if (!hw) {
#if 0
printf("Func:%s, Line: %d\n", __FUNCTION__, __LINE__);
if (gAcquire( state, DFXL_BLIT )) {
dfb_clip_blit( &state->clip, rect, &dx, &dy );
gBlit( state, rect, dx, dy );
gRelease( state );
}
#endif
}
3.
显示从back buffer copy到front buffer时:(是在src/gfx/generic/generic.c文件中来实现的,函数为gBlit)
src: gfxs->Aop[0]
dst: gfxs->Bop[0]
函数Aop_xy:指定初始的gfxs->Aop[0]
函数gAcquire:gfxs->dst_org[0] = state->dst.addr;
4.
case DLBM_TRIPLE:
case DLBM_BACKVIDEO:
情况下才需要调用primaryLayerFuncs->FlipRegion
1. 配置directfb font,把字库放在/root/.fonts目录下 (从FC5的/usr/share/fonts目录下拷贝出来的字库)
2. directfbrc放在/usr/etc目录下
3. GdkPixbuf-WARNING **: Cannot open pixbuf loader module file '/usr/etc/gtk-2.0/gdk-pixbuf.loaders': No such file or directory
解决方法:/usr/bin/gdk-pixbuf-query-loaders > /usr/etc/gtk-2.0/gdk-pixbuf.loaders
4.
(gtk-demo:1798): Pango-WARNING **: No builtin or dynamically loaded modules were found. Pango will not work correctly.
This probably means there was an error in the creation of: '/usr/etc/pango/pango.modules'
解决方法:
mkdir /usr/etc/pango
pango-querymodules > /usr/etc/pango/pango.modules
5. 字体显示不清晰,这个跟字库有关系,怎样的字库才是最合适的?针对不同的pixel format,字库需要作修改吗?
6. Directfb中system_join,现未加入backupframebuffer的代码, 要注意!!!!
system_join是怎么用的?
待续
阅读(1654) | 评论(0) | 转发(0) |