尊天命,尽人事
分类: LINUX
2013-10-26 12:47:10
Directcolor: pixel = red_index << offset | green_index << offset | blue_index << offset | alpha_index << offset; where *_index's are the index to the Hardware LUT, ie: red = red_map[red_index]; In Directcolor, you have to initialize the LUT first, by sending an FBIOPUTCMAP ioctl. If you want Directcolor to behave like Truecolor, then send a linear colormap where: {red|green|blue|alpha}_map[i] = i; One more note, the above is fine if each color component is 8-bits in size (RGB888, for instance), but for RGB555, you have to downscale. So the untested code below will work better: red_map[i/(1 << (8 - red_length))] = i; red_map[i/(1 << (8 - 5))] = i; red_map[i/8] = i;