Linux Framebuffer浅谈

来源:互联网 发布:大话西游2大圣附身数据 编辑:程序博客网 时间:2024/06/05 01:07

1. Framebuffer 画bmp, jpg, png图。不论bmp,jpg,png文件,都把图片的Raw Data抓出来放入image_buf中,再写入fb_buf

bpp = 3; // 2-16, 3-24, 4-32

char *dst = (char *)fb_buf + dst_y * fix.line_lenght * bpp + dst_x * bpp;

char *src = (char *)image_buf + src_y * image_w * bpp + src_x * bpp;

for ( int i = 0; i < image_h; i++)

{

#if 0

      for ( int j = 0; j < image_w; j++)

      {

            *(dst + j * bpp) = *(src+ j * bpp);

            *(dst + j * bpp + 1) = *(src + j * bpp + 1);

            *(dst + j * bpp + 2) = *(src + j * bpp + 2);

      }

#endif

      memcpy(dst, src, image_w * bpp);

      dst = dst + fix.line_lenght * bpp;

      src = src + image_w * bpp;

}

2. Framebuffer 画Font。利用开源Freetype工程,将Font的Glyph读出并写入fb_buf即可。

3. Embedded GUI实现方式。

   1)自己画FB并管理层次界面和响应。 

   2)利用MiniGUI, Tiny-x等开源软件。 

   3)EW商业UI软件


运行效果图