免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5230 | 回复: 10
打印 上一主题 下一主题

谁能告诉我基于framebuffer和不基于framebuffer的gui区别! [复制链接]

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-17 20:14 |只看该作者 |倒序浏览
如题:
         最近一直在纠结这个问题。麻烦哪位大神告诉我下。。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2012-05-17 21:50 |只看该作者
回复 1# ddd010


    為什麼不先了解下什麼是 Framebuffer?

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
3 [报告]
发表于 2012-05-18 08:51 |只看该作者
回复 2# MMMIX


   
有去了解过哦,只是了解不深,也没有找到我想要的答案。其实我想知道是,基于framebuffer的gui我比较好理解。像Qt他不是使用framebuffer来做gui(在嵌入式方面他又有使用framebuffer)?那这个图形 是怎么显出来的?

难道是直接调用驱动相关接口?

如果是直接调用显示接口那么和使用framebuffer有什么区别? framebuffer和他比起来有啥好处?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2012-05-20 18:51 |只看该作者
ddd010 发表于 2012-05-18 08:51
像Qt他不是使用framebuffer来做gui(在嵌入式方面他又有使用framebuffer)?那这个图形 是怎么显出来的?


使用 X

BTW,看看這兩個 Wiki 條目吧:

http://en.wikipedia.org/wiki/Linux_framebuffer
http://en.wikipedia.org/wiki/X_server

论坛徽章:
1
戌狗
日期:2014-07-17 19:24:40
5 [报告]
发表于 2012-05-21 08:30 |只看该作者
不懂,帮顶

论坛徽章:
0
6 [报告]
发表于 2012-05-21 15:46 |只看该作者
不是大神,以下写点个人偏见,猜测、谬误和错误融为一炉,建议不要相信。

显示卡刚发明出来的那个年代,CPU 很慢,内存很少,带宽很低,没有 DMA 功
能 I/O 都是 CPU 来做,等等。

那个时候还处在混乱时期,标准很多时候不统一。以下以原理为主,其实现细节
可能差异很大。因此,领会精神!

framebuffer 是一种图形模式,在此之前,那当然就有 Text 模式。

当时显示卡是不能显示图形的,只能以一些不同的模式来显示文字,比如 24 行
80 列,那么显示卡只需要 24 x 80 = 1920 字节的显存。这是半导体工业的限
制。当你需要在 0 行 2 列显示一个 'a' 字符的时候,你就往显存的第 3 个字
节写入 'a' 的 ASCII 码。显示卡内部固化有 'a' 在这个模式下如何绘制的代
码,这样就能显示文本了。

半导体制程进步了,能用得起大显存,提供得了带宽,这时候有了直接控制屏幕上
每一个像素的能力。比如 640 x 480 像素 8 位色的显卡需要 640 x 480 个字
节的显存。

因为具体到实现,很多时候显卡有 A / B 两个 buffer。首先,显卡显示 A 的
内容,这时程序写入 B,写入完毕设置个寄存器,显卡就改为显示 B 的内容,而
程序则可以写入 A 了。所以我们称这 640 x 480 字节显存为 framebuffer。

因此 framebuffer 是很古老的一种 2D 显示技术。

后来 3D 技术出现后,显卡主要会提供 OpenGL/DirectX 这样的硬件接口,同时
保留 framebuffer 作为兼容之用。同时 framebuffer 比较简单,也可以用在
一些低级代码中,这时候 OpenGL/DirectX 还没有初始化,不可用。

所以,主要区别就是,基于 framebuffer 的 GUI 是 2D 的,比较新的 GUI 比
如 cluter / QT 直接基于 3D 绘制系统 EGL / OpenGL 之类的。

2D 比较简单,3D 比较复杂,有些嵌入式芯片只支持 framebuffer 不支持 OpenGL
之类。

2D 比较慢,3D 比较快,因为做显卡的人主要关注 3D 性能。

至于 “那这个图形 是怎么显出来的”,和平常一样,一票人设计出一个规范,比如
framebuffer / OpenGL / DirectX,做显卡的会实现硬件 + 软件驱动,应用程
序开发人员去调用这个规范提供的 API 就好了。

前面 MMMIX 说使用 X 也不算错,但个人觉得没有说到点子上。framebuffer 和
非 framebuffer 都是访问硬件的方法。X 的绘制功能可以跑在 framebuffer 上,
也可以跑在非 framebuffer 上。

现在的趋势是能跑在 3D API 上的尽量跑在 3D API 上,X 都是在往 OpenGL 迁
移的。

简单来说,framebuffer 是前浪,QT 用的 OpenGL 是后浪,明白了?

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
7 [报告]
发表于 2012-05-21 21:34 |只看该作者
回复 6# atz0001

非常感谢你的回复,我想我要知道的就是这些了。

你这不仅帮我解惑还给我指明了方向,谢谢!


   

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
8 [报告]
发表于 2012-05-21 21:41 |只看该作者
回复 4# MMMIX

感谢,我会去看看的。

   

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
9 [报告]
发表于 2012-05-21 21:54 |只看该作者
回复 5# kprc


    :wink:

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
10 [报告]
发表于 2012-05-21 22:04 |只看该作者
MMMIX 发表于 2012-05-20 18:51
使用 X

BTW,看看這兩個 Wiki 條目吧:


好东西哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP