Re: FB_VISUAL_TRUECOLOR vs. FB_VISUAL_DIRECTCOLOR
"Antonino A. Daplas" <[email protected]> Sun, 06 Aug 2006 07:48:43 +0800
| Newsgroups | gmane.linux.fbdev.user |
|---|---|
| Message-ID | <[email protected]> |
James Lehman wrote:
> Can someone please explain the difference between these two display types?
>
> FB_VISUAL_TRUECOLOR
> FB_VISUAL_DIRECTCOLOR
>
> My frame buffer API, ezfb, works well with cards that are
> FB_VISUAL_TRUECOLOR, but not so well with cards that are
> FB_VISUAL_DIRECTCOLOR.
>
> http://www.akrobiz.com/ezfb/
Truecolor:
pixel = red << offset | green << offset | blue << offset | alpha << offset;
where red, green, blue, alpha are the actual values of each pixel component
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];
Thusly: 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;
In Truecolor, the color map need not be initialized.
Tony
Note: Each color component in struct fb_cmap are u16 in size, so the
contents of the cmap must be duplicated in both bytes, ie:
i = red;
red <<= 8;
red_map[i] = red;
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV