GUI

建议RTGUI的汉字和BMP等方框绘图增加窗口支持

发布于 2015-03-28 21:24:05
目前的驱动都是以描点来实现的,每描一个点都要重新定义一次内存中的位置
效率太低了,可以增加一个参数,作为是否使用窗口的标志,以及在驱动中添加设置窗口的函数。
这样效率就提高了

查看更多

关注者
0
被浏览
1.9k
8 个回答
bernard
bernard 2015-03-29
有困难呐,如果是这样还是用framebuffer的驱动比较好
ralfak
ralfak 2015-03-29
困难倒不是很大,条件编译中增加一个开关
接口上增加一个标志是否采用窗口模式,实现函数里面增加一个setwindow函数,
字体和控件等操作都是以RECT矩形方式进行的,每次最后实现传递的参数都有这个矩形的绝对值,调用窗口设置函数就可以对图片,控件字体等等连续操作了,当然驱动里面也要实现设置窗口和连续描点函数。

采用这种方式除了斜线和圆不能操作之外,其他都能进行
grissiom
grissiom 2015-03-29
没明白指的是啥…… ;(
ralfak
ralfak 2015-03-29
没明白指的是啥…… ;(

简言之就是现在的LCD驱动每描一个点前需要指定描点的位置
而窗口功能就是描点的地址在窗口范围内自动增加以及换行
而字体和控件BMP图片都是基于矩形框绘制的,适合于窗口模式连续读写操作。

framebuffer是要硬件支持的,即使是framebuffer,也没有提升cpu到LCD控制RAM的传输效率
xiaorui
xiaorui 2015-03-29
我们目前自己用的主要还是framebuffer的模式,否则动画没法刷
grissiom
grissiom 2015-03-30
没明白指的是啥…… ;(

简言之就是现在的LCD驱动每描一个点前需要指定描点的位置
而窗口功能就是描点的地址在窗口范围内自动增加以及换行
而字体和控件BMP图片都是基于矩形框绘制的,适合于窗口模式连续读写操作。

framebuffer是要硬件支持的,即使是framebuffer,也没有提升cpu到LCD控制RAM的传输效率


你指的这个东西需要硬件驱动去做。参考 Realtouch 的驱动。
amsl
amsl 2015-04-08
这个见解有启发啊,dc 絵点的80%工作都在计算有效绘制区域上,而且每个点都重复这些工作。假如获取了一个dc后,绘图环境是保持不变的,那么有效区域也是确定不变的,所以可以只需要第一次最耗时的计算,后续根据此结果进行比较,可以有效提升絵点效率。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友