LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2892|回复: 6

对于directfb和sdl的一些疑惑

[复制链接]
发表于 2007-6-26 08:45:10 | 显示全部楼层 |阅读模式
见过一个demo程序,是X11下的,使用sdl和gtk写就,gtk用于gui部分,sdl用于yuv的视频数据输出,demo利用gdk创建一个区域,建立sdl的Surface。

现在我想把它移植到directfb上,gui部分使用自己封装的,基于directfb写的控件,然后想基于directfb使用sdl显示视频。当然sdl是可以用directfb作为video的后端的,但是这样一来,directfb本身被sdl所接管,没办法再使用directfb的控件,有没有方法像demo一样,利用directfb开辟一个窗口,在之上建立sdl的surface?但是这样可能行不通,因为初始化完directfb后,再初始化sdl会卡在那边,不知道大家有没有遇到过类似的情形呢?
发表于 2007-6-26 14:26:40 | 显示全部楼层
dfb控件指的是lite吗?
如果是的话,用什么system作为dfb的后端都是没有影响的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-26 19:10:49 | 显示全部楼层
我的意思是,设置sdl的video driver为directfb,sdl_init之后,那么sdl的video是依靠directfb来实现,directfb被隐藏在了后端,自己就无法再使用directfb的api来编程,只能通过sdl的api来画屏幕了。
回复 支持 反对

使用道具 举报

发表于 2007-6-26 20:53:30 | 显示全部楼层
应该反过来,用sdl作为dfb的后端。dfb也提供overlay表面,不一定非要用sdl。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-26 21:37:02 | 显示全部楼层
谢谢楼上阿,刚才看了会directfb的资料,发现directfb可以把sdl作为后端。
那既然dfb能提供overlay表面,那么就没必要使用sdl了。
回复 支持 反对

使用道具 举报

发表于 2007-7-13 10:04:41 | 显示全部楼层
大哥能教我怎么样用SDL做到四通道视频显示吗?我现在急啊
具体方法和函数能告诉下吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-13 14:44:30 | 显示全部楼层
我凭记忆说一下吧
SDL_INIT
SDL_SetVideoMode
SDL_CreateYuvOverlay

然后是针对每个通道的显示
SDL_YUVOverylay_lock
拷贝视频数据到这个overlay的pixel
SDL_YUVOverlay_unLock
SDL_Display_YUVOverlay

具体函数参照SDL的说明,有些记不清楚,有些命名顺序可能颠倒,不好意思,但是大致的步骤是这样的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表