1 lv_vdb 的作用
在 lv_conf 中,可以看到 LV_VDB_SIZ
是用来设置屏幕虚拟缓存的
2 效果
如果将 LV_VDB_SIZ
的值设为0,在编译的时候就会提示必须关闭LIttlevGL 内置的抗锯齿功能。
- 将屏幕虚拟缓存值设为0时,模拟器界面打开后出现闪烁的情况,并且界面上的图片无法显示,带Alpha通道的图标会显示不正常,锯齿变得很明显,而且动画效果也会消失。
- 在屏幕虚拟缓存值为默认值时各项功能都正常。
3 实现过程
需要注意的是,lv_conf 提供了屏幕虚拟双缓缓存的选项,这个也是为了加快刷新速度,再在上一帧开始刷新的同时就预先把下一帧的图像缓存起来,也就是不需要等待缓存过程而是直接用缓存的数据刷新。由于单缓缓存就已经满足我们的需求所以没必要去设置双缓存了。
lv_vdb 文件比较简单,首先是确定是否开启了双缓存,再看是否使用了DMA,然后直接根据 lv_conf 中设置的缓存大小来建立缓存区
再就是获取缓存区指针的函数
刷新屏幕时先获取缓存区的地址,再将缓存区内的数据刷上屏幕