Framebuffer
Framebuffer Color Format
The color format of the framebuffer depends on the BPP and LDD settings. You can change these settings with Colibri Tweak.
24 BPP, 18LDD (default)
RGB 6:6:6 NotUsed[6] Red[6] Green[6] Blue[6]
16 BPP, 18LDD
RGB with Transparency Bit 1:5:5:5 Transparency[1] Red[5] Green[5] Blue[5]
16BPP, 16LDD
RGB 5:6:5 Red[5] Green[6] Blue[5]
Some programs are optimized for 565 and require a framebuffer with this format.
Location
By default the Framebuffer is located in the main DRAM.
It is possible to reserve a part of the internal SRAM for the framebuffer. You can find this setting in the Display driver registry settings. The key is named as UseSRAM. In general, this will improve the performance. However the SRAM is not very large and the frame buffer will only fit at small resolutions.
Available SRAM:
PXA320 | 736KB |
PXA310 | 255KB |
PXA300(XT) | 255KB |
PXA270 | 255KB |
Sample: A 640x480 display resolution with 24BPP needs 640x480x3Bytes = 921600 Bytes
Keep in mind that maybe also other applications would like to use the SRAM, from the Toradex side, the only other application which uses the SRAM is the TCPMP.
Get a pointer to the framebuffer
Win CE 5.0
#define GETVFRAMEPHYSICAL 6144
BYTE* pFrameBuffer;
ExtEscape(GetDC(NULL), GETVFRAMEPHYSICAL, 0, NULL, 0, (char*)&pFrameBuffer);
Win CE 6.0
In Win CE 6.0, you need to use Direct Draw to get direct access to the framebuffer.
Framebuffer in the Bootloader
While the Bootloader is active, typically a Splash Screen is shown. With our Bootloader Customizer Kit, it is possible for customers to draw directly on the screen while the system is booting.
The Framebuffer format in the bootloader is 8 Bit per Pixel with a Color Palette.