Moto Linux应用开发(五):frame buffer

moto linux支持framebuffer写屏,SDK中包含了一个sample,直接写framebuffer显示红色和绿色。不过在写framebuffer之前需要了解一下framebuffer的相关特性。以下是我的A1200e的framebuffer信息:

framebuffer info: bits_per_pixel(18), xres(240), yres(320)

非常奇怪的是,每个像素18个bits。上网查了一下,原来很多手机LCD都是使用的18bpp。18bpp有packed 18bpp和aligned 18bpp之分,都占用3字节。packed 18bpp的像素定义为000000rr rrrrgggg ggbbbbbb,aligned 18bpp和24bpp兼容,像素定义为00rrrrrr 00gggggg 00bbbbbb或者0rrrrrr 00gggggg 00bbbbbb。因为写framebuffer就是操作每个输出像素,所以必需弄清楚framebuffer的宽、高以及颜色格式。A1200e采用的是packed 18bpp(rgb666)格式,所以红色和绿色的定义如下:

 

#define RGB666_RED 0x3F000

#define RGB666_GREEN 0xFC0

 

 

你可能感兴趣的:(linux,buffer,手机)