linux,如何设置颜色格式为RGBT
我尝试用ioctl将默认的rgb565改成rgbt555,写进去再读出来,没有改变,哪位指点一下小弟或帮我调试一下,谢谢
源码如下,直接编译可过
#include <unistd.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <string.h>
#define IDX 0xff
int main (int argc ,char *argv[]) {
int fp=0;
int i;
int err = 0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
fp = open ("/dev/fb0",O_RDWR);
if (fp < 0){
printf("Error : Can not open framebuffer device\n");
exit(1);
}
if (ioctl(fp,FBIOGET_FSCREENINFO,&finfo)){
printf("Error reading fixed information\n");
exit(2);
}
printf("\nblue: o=%d, l=%d, mr=%d\n", vinfo.blue.offset,vinfo.blue.length, vinfo.blue.ms
b_right);
vinfo.transp.offset = 15;
vinfo.transp.length =1;
vinfo.red.offset = 10;
vinfo.red.length = 5;
vinfo.green.offset = 5;
vinfo.green.length = 5;
vinfo.blue.offset = 0;
vinfo.blue.length = 5;
if (ioctl(fp,FBIOPUT_VSCREENINFO,&vinfo) == -1){
printf("Error setting variable information\n");
exit(3);
}
if (ioctl(fp,FBIOGET_VSCREENINFO,&vinfo)){
printf("Error reading variable information\n");
exit(3);
}
printf("\ntransp: o=%d, l=%d, mr=%d\n", vinfo.transp.offset,vinfo.transp.length, vinfo.t
ransp.msb_right);
printf("\nred: o=%d, l=%d, mr=%d\n", vinfo.red.offset,vinfo.red.length, vinfo.red.msb_ri
ght);
printf("\ngreen: o=%d, l=%d, mr=%d\n", vinfo.green.offset,vinfo.green.length, vinfo.gree
n.msb_right);
printf("\nblue: o=%d, l=%d, mr=%d\n", vinfo.blue.offset,vinfo.blue.length, vinfo.blue.ms
b_right);
close (fp);
}