Frame Buffer device internals

This is a first start for some documentation about frame buffer deviceinternals.

Authors:


Structures used by the frame buffer device API

The following structures play a role in the game of frame buffer devices. Theyare defined in <linux/fb.h>.

  1. Outside the kernel (user space)

  • structfb_fix_screeninfo

    Device independent unchangeable information about a frame buffer device anda specific video mode. This can be obtained using the FBIOGET_FSCREENINFOioctl.

  • structfb_var_screeninfo

    Device independent changeable information about a frame buffer device and aspecific video mode. This can be obtained using the FBIOGET_VSCREENINFOioctl, and updated with the FBIOPUT_VSCREENINFO ioctl. If you want to panthe screen only, you can use the FBIOPAN_DISPLAY ioctl.

  • structfb_cmap

    Device independent colormap information. You can get and set the colormapusing the FBIOGETCMAP and FBIOPUTCMAP ioctls.

  1. Inside the kernel

  • structfb_info

    Generic information, API and low level information about a specific framebuffer device instance (slot number, board address, ...).

  • structpar

    Device dependent information that uniquely defines the video mode for thisparticular piece of hardware.

Visuals used by the frame buffer device API

Monochrome (FB_VISUAL_MONO01 and FB_VISUAL_MONO10)

Each pixel is either black or white.

Pseudo color (FB_VISUAL_PSEUDOCOLOR and FB_VISUAL_STATIC_PSEUDOCOLOR)

The whole pixel value is fed through a programmable lookup table that has onecolor (including red, green, and blue intensities) for each possible pixelvalue, and that color is displayed.

True color (FB_VISUAL_TRUECOLOR)

The pixel value is broken up into red, green, and blue fields.

Direct color (FB_VISUAL_DIRECTCOLOR)

The pixel value is broken up into red, green, and blue fields, each of whichare looked up in separate red, green, and blue lookup tables.

Grayscale displays

Grayscale and static grayscale are special variants of pseudo color and staticpseudo color, where the red, green and blue components are always equal toeach other.