以前在linux做图形界面的时候用的是SDL,我对于SDL的理解是一些算法在操作一些设备(fb,event等);如果在做嵌入式产品的时候,我们肯定得考虑内存和效率的问题;SDL毕竟是通用的,所以在特定的时候直接操作一定会比SDL效率高。原因是少了中间的拷贝过程
下边介绍这样使用/dev/fb,其实linux的所以设备都是文件的形式,所以操作起来很方便:
打开设备:fb=open("/dev/fb0", O_RDWR);
得到设备参数:ioctl(fb, FBIOGET_FSCREENINFO, &finfo) ioctl(fb, FBIOGET_VSCREENINFO, &vinfo)
内存映射:void *fbuffer =mmap(NULL, finfo.smem_len, PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, fb, 0); 内存映射返回一个映射后的首地址,这个地址不占用物理内存而是虚拟的地址是操作系统来分配的;我们可以再返回的地址上直接写屏了
画一个点:void pix(int x,in