由于单buffer存在撕裂现象。所以将新帧画面绘制到framebuffer时,需要绘制到一个新buffer,而不是front-buffer(即正在使用的buffer),避免这种现象发生的技术称为double-buffering。双bufferd:front-buffer用于前台显示,back-buffer用于后台绘制。当一帧渲染完成时,进行交换2个buffer(即swapbuffer)。交换并不是指复制数据,而是只交换buffer指针。在绘制到front-buffer之前,我们需要找到back-buffer。每个buffer由宽度、高度、步幅、大小、句柄、地图和 fb-id 组成
源码如下:
/*
* Author: Leon.He
* e-mail: [email protected]
*/
#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h&