接前一篇文章:DRM遇到的实际问题及领悟(2)
四、横向对比
前文中的例程能够实现截屏功能。实际上之前笔者手头还有一个网上的经典例程,用于实现屏幕依次显示红、绿、蓝三色,代码如下:
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <time.h>
#include <unistd.h>
#include "xf86drm.h"
#include "xf86drmMode.h"
#define uint32_t unsigned int
struct framebuffer {
uint32_t size;
uint32_t handle;
uint32_t fb_id;
uint32_t *vaddr;
};
static void create_fb(int fd,uint32_t widt