硬汉嵌入式论坛

 找回密码
 立即注册
查看: 342|回复: 5
收起左侧

[emWin] emwin的刷新机制是全局刷新还是部分刷新?

[复制链接]

16

主题

21

回帖

69

积分

初级会员

积分
69
发表于 2025-8-27 18:23:03 | 显示全部楼层 |阅读模式
今天碰到要优化的事情然后产生了一个问题:在emwin的button控件重绘事件中,这里区分为 按下前Unpress 和 按下时press 两种事件.
那么从未按下到按下的重绘里,他的重绘是将整个按键重绘,还是只重绘按键不一样的地方。按道理说应该是全部重绘,但是我在测试过程中发现两种情况,不知道对不对
一、颜色越简单重绘越快,按下前为24位位图,按下时为16色位图,感觉会快一点。而全部有24位的话感觉会慢那么一丢丢
二、变化的颜色差值越小,重绘的越快,这里测试的是黑色背景和白色背景,在按下前为黑色,按下后边白色,明显感觉到延迟。但如果按下前后不变的话反而速度回快一点。

有没有人测试一下看看这两种变化的时间差是%多少的差距
回复

使用道具 举报

16

主题

21

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2025-8-27 18:23:06 | 显示全部楼层

emwin的刷新机制是全局刷新还是部分刷新?

今天碰到要优化的事情然后产生了一个问题:在emwin的button控件重绘事件中,这里区分为 按下前Unpress 和 按下时press 两种事件.
那么从未按下到按下的重绘里,他的重绘是将整个按键重绘,还是只重绘按键不一样的地方。按道理说应该是全部重绘,但是我在测试过程中发现两种情况,不知道对不对
一、颜色越简单重绘越快,按下前为24位位图,按下时为16色位图,感觉会快一点。而全部有24位的话感觉会慢那么一丢丢
二、变化的颜色差值越小,重绘的越快,这里测试的是黑色背景和白色背景,在按下前为黑色,按下后边白色,明显感觉到延迟。但如果按下前后不变的话反而速度回快一点。

有没有人测试一下看看这两种变化的时间差是%多少的差距
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 2025-8-28 14:35:11 | 显示全部楼层
emWio的刷新会裁剪有效最小重绘区域,仅刷新需要更新的区域。

这个在模拟器软件里面有个wm redraw例子,可以研究。

也可以研究源码

emWin5.06源码模板例子
https://forum.anfulai.cn/forum.p ... id=98971&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

16

主题

21

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2025-8-28 16:30:53 | 显示全部楼层
eric2013 发表于 2025-8-28 14:35
emWio的刷新会裁剪有效最小重绘区域,仅刷新需要更新的区域。

这个在模拟器软件里面有个wm redraw例子, ...

明白了,那就可以以最小的变化快速更改
回复

使用道具 举报

5

主题

291

回帖

306

积分

高级会员

积分
306
发表于 2025-8-29 09:17:09 | 显示全部楼层
基于wm窗口管理器的控件才有局部刷新,如果是自定义回调函数的WM_PAINT里是自己绘制的话好像就没有,不过也不是很确定,等有空测试下
回复

使用道具 举报

16

主题

21

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2025-9-2 09:48:11 | 显示全部楼层
DX3906 发表于 2025-8-29 09:17
基于wm窗口管理器的控件才有局部刷新,如果是自定义回调函数的WM_PAINT里是自己绘制的话好像就没有,不过也 ...

我把WM_MULTIBUF_Enable关了之后,发现好像确实是这样,分为控件刷新和文本刷新,没操作的控件就不会刷新,有操作的控件会把控件关联的都刷新,比如5个标题的标题控件中那些没变化标题的也会因为是控件的一部分重新刷新。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 18:32 , Processed in 0.041266 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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