什么离屏渲染
离屏渲染也叫双缓冲渲染,也就是说有两块画布,一个画布在后台负责内容绘制,一个画布用于在上屏显示。这样的好处就是绘制过程中不会产生屏幕抖动,举个例子,当你在画板上作画时,旁边有人盯着你看,当你绘制完一幅图时, 你再用橡皮擦去擦掉。擦掉的过程就会人眼看到了,人眼看到的效果就是画面有抖动。那如果你偷偷摸摸的在另外的画布上绘制了一幅新的图像,然后再将其替换到原来的画布。只要替换的时间(刷新率)高于人眼能感知到的频率,那么就不会有抖动产生。
离屏画布的创建
目前有两种创建离屏Canvas的方式:创建CPU后端Canvas、创建GPU后端Canvas,这两种Canvas都需要依靠XComponent来完成绘制结果的上屏显示。由于历史原因,早期的Canvas都是CPU后端Canvas。目前已经支持GPU后端Canvas,GPU的并行计算能力更强,更适合图形绘制。但GPU后端Canvas对部分场景的支持还有欠缺,比如复杂的路径,对于简短文字的绘制性能也比不上CPU后端Canvas。
CPU 后端渲染
- 导入依赖的相关头文件。
#include <native_drawing/drawing_canvas.h>#include <native_drawing/drawing_bitmap.h>