GTK+2.6 + DirectFB的几个问题

directfb研究 <!-- --> <!-- @font-face {font-family:Wingdings} @font-face {font-family:宋体} @font-face {font-family:"\@宋体"} p.MsoNormal, li.M 阅读详情

GTK+2.6 + DirectFB的几个问题

 

经过几番周折,终于确定采用GTK+2.6 + DirectFB方案。之所以不选择GTK+2.8 + TinyX主要是出于硬件成本上的考虑,TinyX(包括Xlib等库文件)要占4M Flash空间,加上窗口管理器还要耗好几M的RAM,同时进程间通信过于频繁,性能上的开销也不容小觑。

 

为什么不选择GTK+2.8 + DirectFB呢?原因是2.8及以后采用cairo作为画矢量图的后端,字体显示效果有不少改进,但速度上慢了不少。在实验板上试了一下,性能基本上不能接受。

 

为什么不选择GTK+2.4 + DirectFB呢?GTK+在2.4到2.6之间有不少改进,大家一致认为部分改动对我们的应用有帮助。

 

GTK+2.6似乎应该是首选了,然而问题在于gdk-directfb 2.6实现得不太好。我们决定验证一下,评估其稳定性,以及修复这些问题的难度,再考虑。和一个同事一起花了两天时间去测试,去解决问题。主要问题如下:

 

字体显示有问题,根本显示不出来。由于2.4和2.8的字体显示正常,freetype、fontconfig和pango应该是没有问题的,所以把焦点锁定在GTK上。字体显示比较复杂,大致要经过下列流程:

a)         pango_renderer_draw_layout

b)        pango_renderer_draw_layout_line

c)        pango_renderer_draw_glyphs

d)        gdk_window_draw_glyphs_transformed

e)         gdk_pixmap_draw_glyphs_transformed

f)         gdk_directfb_draw_glyphs_ transformed

 

经过分析后,发现gdk_directfb_draw_glyphs_ transformed没有实现,所以画不出文字出来,考虑到我们不会用到transformed功能,就直接用gdk_directfb_draw_glyphs实现了gdk_directfb_draw_glyphs_ transformed函数。字体显示问题就解决了。

 

接下来发现TextView里选中一行文本的部分时,非选中部分显示模糊。我们知道TextView调用gtk_text_layout_draw显示文本,gtk_text_layout_draw里又调用render_para函数。在render_para里,可以看到:

 

a)         整行都被选中时,最为简单:先画高亮背景方框,再画上字体就行了。

b)        部分选中时稍麻烦一点,先按正常方式绘制,再重画选中部分,两者再迭加。关键在于设置clip_region为选中区域,否则会覆盖到不期望的区域上。

 

这些坐标和clip区域的数值都没有问题。比较2.6和2.8的代码,两者变化不大,确认不是由这些代码不同引起的。自然而然的怀疑到gdk-directfb上,后来发现在gdk_directfb_draw_glyphs函数clip的区域不对。很明显是参数传递过程出现了问题,很快查出是gdk_gc_copy里拷贝GC是没有拷贝私有数据,结果clip_region没有拷贝过来,造成剪切失败。

 

接下来的半天测试里,没有发现大的问题,所以确定采用GTK+2.6 + DirectFB方案。

 

 

 

 

 

 

在ARM9(s3c2410)上移植GUI系统(gtk+ 与 DirectFb)  ====================================================文档名:在ARM9(s3c2410)上移植GUI系统(gtk+ 与 DirectFb)文档撰写人:卢名扬(chinalmy)第一次完成日期:2008_08_06E-mail:chinalmy@yahoo.com.cn附加:    由于下学期大四要找工作了,所以比较忙。只是做一些笔记性的记录。再 阅读详情

相关推荐

在ARM9上移植GTK+的初步思路`~

 其实这阶段时间我一直在摸索 GTK+最小的运行系统,是如何裁减的。          经过一些分析,我觉得这样从头开始的工作,有太多的未知数和困难。      经过一阶段的分析,我决定采用Skyeye这个仿真平台来做一下尝试。         去年,由于Skyeye对LCD的仿真支持的还不是很好。         可是现在情况有所变化。最新版本对s

chinalmy的田 2855

GTK+/DirectFB PC模拟运行环境

GTK+/DirectFB PC模拟运行环境转载时请注明出处和作者联系方式作者联系方式:李先静 GTK+/DirectFB不但可以运行在frambebuffer上,而且可以运行在其它GUI之上,比如像SDL和X11等等,因此在PC上建立模拟运行环境是非常简单的。不过有一个小小麻烦一直困扰着我们,直到最近才解决这个问题,这里做个笔记供大家参考。基于SDL/X11等其它GUI这个很简单,只要修改一

软件开发资料汇总 612

移植DirectFB与GTK+到arm-linux上,2013年8月最新制作,亲测可用

本想上传的文件是包含了所有最新依赖包的一个打包文件,但是超过了我能上传的最大文件限制,所以现在只上传教程 2013年8月最新制作,所用的文件版本也是最新

嵌入式linux GUI--DirectFB + GTK秘笈

2 准备工作硬件环境:linux主机一台,如果你喜欢用windows,可以在windows主机上用vmware虚拟一个linux系统。嵌入式开发套件,包括嵌入式开发板、带触屏的液晶屏及相关连接电缆。软件环境:x86 linux发行版,配置好framebuffer,并安装好ftp server、telnet server、tftp server、nfs server、gcc及相关软件、交叉编译器、开

kernel_32的专栏 3010

射频测试基础知识总结

表示可以辐射到空间的电磁频率,频率范围从300KHz~110GHz之间,射频简称RF,是高频交流变化电磁波的简称,其每秒变化小于1000次被称为低频电流,超过10000次的称为高频电流,而射频就是这种高频电流。为了确保天线接收的信号能够在接收机的最后一级被正确的恢复,一个好的低噪音放大器需要在放大信号的同时产生尽可能低的噪音以及失真。两种,带内试验的范围也有一定的差别,比如,带内试验主要是检测信号的质量,如功率、频谱宽度、调制质量,而带外测试的是信号的杂散、谐波,主要是看对频带之外的干扰有多大。

cny70的博客 9629

帝国CMS v7.5存储型XSS漏洞挖掘与修复实战

存储型XSS(跨站脚本攻击)是一种常见的Web安全漏洞,其核心原理是攻击者将恶意脚本代码提交并永久存储在服务器端(如数据库),当其他用户访问包含该数据的页面时,脚本会在其浏览器中执行。这种漏洞的危害在于其持久性和广泛的影响范围,可能导致用户Cookie被窃取、会话被劫持,甚至引发蠕虫式传播。从技术价值看,理解存储型XSS有助于掌握Web应用安全的核心逻辑,即数据在输入、处理和输出全链路中的安全风险。在内容管理系统(CMS)等Web应用场景中,用户可控的输入点(如个人资料、评论、公告)若未经妥善过滤和输出编码

weixin_29327525的博客 299

安装GTK+/DirectFB图形环境

安装GTK+/DirectFB图形环境Posted: 八月 26th, 2009 | Views: 2,865 次浏览 | 2 Comments »<br />在学习了一段时间的GTK+图形编程后,考虑是否可以将该环境移植到嵌入式系统上,在网上查阅了相关资料后,确定了可行性,本文就是介绍了在虚拟机X86平台Linux系统下配置GTK+图形显示环境的过程。<br />一般的嵌入式系统使用MiniGUI、Qt/E、uC/GUI等图形环境,它们都是专业的面向嵌入式系统,经过专门裁剪后的集成包,相对比较成熟

uunubt的专栏 1224

Modelica建模,Modelica语言的学习,技术调研工作

Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规范,为机、电、液、控等多领域复杂工程系统提供了统一的物理建模语言规范。 Modelica作为多学科统一建模仿真的国际标准,被仿真界广泛采用,系统多领域统一建模仿真,已成为世界公认的MBSE和CPS的核心关键支持技术。 Modelica 语法、函数、包、连接器、组件、子系统

xzb5566的专栏 4636

GTK+2 6 + DirectFB的几个问题

GTK+2 6 + DirectFB的几个问题

jggyff的博客 260

避开地图定位的坑:手把手教你处理GCJ-02和WGS-84坐标转换(2023最新版)

本文深入解析了GCJ-02与WGS-84坐标系转换的核心原理与常见误区,提供了详细的代码实现与精度控制方法。针对地图定位开发中的实际痛点,文章重点阐述了如何通过迭代逼近法实现高精度坐标转换,并给出了误差测试与业务场景下的工程实践指南,帮助开发者有效规避定位漂移等问题。

lstm7chronicler的博客 1170

i.MX RT1064引脚配置与BGA封装选型实战指南

在嵌入式硬件设计中,引脚配置与PCB布局是连接芯片手册与物理实现的关键桥梁,直接影响系统的稳定性与信号完整性。其核心原理在于理解处理器的IOMUX(输入/输出多路复用器)系统与多电源域架构,前者通过软件配置实现引脚功能的灵活复用,后者则为不同外设接口提供独立的电压基准,是保障电源稳定性的基石。从技术价值看,合理的引脚规划能规避信号干扰、电源不稳等潜在风险,提升设计一次成功率。在应用场景上,无论是连接SDRAM、USB、SDIO等高速外设,还是配置UART、I2C等中低速接口,都需要遵循特定的布局布线规则。本

weixin_33217202的博客 314

gtk+directfb

export PREFIX=/opt/gtk export PREFIX=/opt/gtk

xuyong7的专栏 1275

《涨知识啦29》-DBR的工作原理及其在VCSEL中的作用

分布式布拉格(Distributed Bragg Reflection,简称DBR)反射镜是垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Laser,简称VCSEL)的重要组成部分。典型的DBR反射镜是由1/4ni波长厚度的高折射率和低折射率材料交替组成(ni是该层的折射率)。其反射率取决于组成对数、边界条件以及折射率差。 图1 布拉格反射镜的工作原理 DBR反射镜的工作原理如图1所示。根据反射原理,当光从光疏介质n1射向光密介质n2(折射率n2>n1)时,反

simucal的博客 7984

The directfb backend has been removed from GTK+ 2.90.6 to 2.90.7

From gtk+-2.90.7 configure --help we can see: --with-gdktarget=[x11/win32/quartz] select non-default GDK target There is no directfb in the gdktarget as in gtk+-2.90.6: --with-gdktarget=...

deshang7096的博客 185

磁环电感参数计算

电感饱和是指当电感中的电流超过一定阈值时,电感中的磁场无法继续增加,而是达到一个饱和状态,导致电感的感应电动势减小或消失。电感通常由线圈组成,当通过线圈的电流不断增加时,线圈内部的磁场也随之增加。然而,当电流达到一定程度时,线圈的铁芯磁化达到饱和,无法进一步增加磁场强度。电感饱和的阈值取决于电感的结构、材料和尺寸等因素。通常情况下,电感的额定电流会标明其饱和电流值。一旦电感中的电流超过了饱和电流,电感将饱和并出现异常行为。当我们谈论电感饱和的时候,实际上是在谈论磁芯饱和——空心的电感永远不会饱和。

小幽余生不加糖 4032

数仓建模—维度建模之维度表

首先要学会识别维度,维度是相对稳定的、可抽象具有共性的、固有的(天然的)描述度量或事实的上下文属性信息,失去维度信息的度量信息是没有意义的或者说是失去维度信息的事实表是没有意义的。其次要掌握维度表的设计原则和设计流程,从而更加科学的设计维度表,其实这些东西都是术,我们一直都说一句话大道至简,其实如果你掌握了精髓,抛开这些术也可以做到得心应手,这就像张无忌练太极剑一样,忘记了才能达到道的境界,也就是无我,如果做不到就记住这些原则加以应用从而达到术的境界。

2401_84052244的博客 4363

GTK+Directfb不一定有GTK+TinyX快

现在对于手机平台,GTK作为GUI平台好像比较热,很多大公司都拿来做,现在比较热门的就是GTK+Directfb,从理论上说,在Directfb上应该要比X11上快,但是从我们在TI的Omap1710测到的数据看,tinyx要快一些,不知道大家测到的数据是哪个性能更好? 

Nova, Go! 1437

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

让基于DirectFB的GTK+ 支持全局剪切板

让基于DirectFB的GTK+ 支持全局剪切板 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:李先静 更新时间:2007-7-17 最近发现基于DirectFB的GTK+不支持全局剪切板,在一个进程中放到剪切板中的内容,在当前进程内粘贴没有问题,但在另外一个进程中就不行了。GTK+的剪切板虽然功能强大,但使用稍嫌麻烦,

国产开源 GUI 引擎 AWTK 4041

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

DirectFB简介以及移植[一]

DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。

嵌入式与人工智能天地 9670

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

DirectFB+GTK交叉编译

<br />编译平台:x86、VMware上Ubuntu-10.04<br />目标平台:SOC3210<br />交叉编译工具链:gcc-3.4.6(mipsel)<br /> <br /> <br />一、所需软件包:<br /> <br />1、zlib-1.2.5.tar.bz2 <br />2、freetype‐2.3.5.tar.bz2<br />3、libpng-1.2.40.tar.bz2<br />4、jpegsrc.v6b.tar.gz<br />5、DirectFB-1.3.0.tar

y296144646q的专栏 3498

directfb+gtk+webkit在arm上的移植

directfb+gtk+webkit在arm上的移植最近在tcc8900(arm11)平台上移植了一下webkit浏览器(gtk),花了近两天时间,大部分时间都给编译各种依赖的库给耗费了,特记录一下,以备后来者参考。<br />atk-1.30.0    fontconfig-2.8.0  gtk+-2.16.0  libsoup-2.30.2  pango-1.28.0   webkit-1.3.3  zlib-1.2.3    DirectFB-1.4.5  freetype-2.3.9  jpeg-

y296144646q的专栏 3972
上一篇: 基于文本模式的HTML浏览器
下一篇: 数据库设计技巧14则
李先静
博客等级 码龄23年 2万+粉丝 846原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值