Lv_vdb的探究

1 lv_vdb 的作用

在 lv_conf 中,可以看到 LV_VDB_SIZ 是用来设置屏幕虚拟缓存的

2 效果

如果将 LV_VDB_SIZ的值设为0,在编译的时候就会提示必须关闭LIttlevGL 内置的抗锯齿功能。

  • 将屏幕虚拟缓存值设为0时,模拟器界面打开后出现闪烁的情况,并且界面上的图片无法显示,带Alpha通道的图标会显示不正常,锯齿变得很明显,而且动画效果也会消失。
  • 在屏幕虚拟缓存值为默认值时各项功能都正常。

3 实现过程

需要注意的是,lv_conf 提供了屏幕虚拟双缓缓存的选项,这个也是为了加快刷新速度,再在上一帧开始刷新的同时就预先把下一帧的图像缓存起来,也就是不需要等待缓存过程而是直接用缓存的数据刷新。由于单缓缓存就已经满足我们的需求所以没必要去设置双缓存了。

lv_vdb 文件比较简单,首先是确定是否开启了双缓存,再看是否使用了DMA,然后直接根据 lv_conf 中设置的缓存大小来建立缓存区

再就是获取缓存区指针的函数

刷新屏幕时先获取缓存区的地址,再将缓存区内的数据刷上屏幕

文章作者: Sirius65535
文章链接: http://sirius.ink/2018/03/02/lv_vdb的探究/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sirius' Notes