| 1 | =============================
|
| 2 | Frame Buffer device internals
|
| 3 | =============================
|
| 4 |
|
| 5 | This is a first start for some documentation about frame buffer device
|
| 6 | internals.
|
| 7 |
|
| 8 | Authors:
|
| 9 |
|
| 10 | - Geert Uytterhoeven <[email protected]>, 21 July 1998
|
| 11 | - James Simmons <[email protected]>, Nov 26 2002
|
| 12 |
|
| 13 | --------------------------------------------------------------------------------
|
| 14 |
|
| 15 | Structures used by the frame buffer device API
|
| 16 | ==============================================
|
| 17 |
|
| 18 | The following structures play a role in the game of frame buffer devices. They
|
| 19 | are defined in <linux/fb.h>.
|
| 20 |
|
| 21 | 1. Outside the kernel (user space)
|
| 22 |
|
| 23 | - struct fb_fix_screeninfo
|
| 24 |
|
| 25 | Device independent unchangeable information about a frame buffer device and
|
| 26 | a specific video mode. This can be obtained using the FBIOGET_FSCREENINFO
|
| 27 | ioctl.
|
| 28 |
|
| 29 | - struct fb_var_screeninfo
|
| 30 |
|
| 31 | Device independent changeable information about a frame buffer device and a
|
| 32 | specific video mode. This can be obtained using the FBIOGET_VSCREENINFO
|
| 33 | ioctl, and updated with the FBIOPUT_VSCREENINFO ioctl. If you want to pan
|
| 34 | the screen only, you can use the FBIOPAN_DISPLAY ioctl.
|
| 35 |
|
| 36 | - struct fb_cmap
|
| 37 |
|
| 38 | Device independent colormap information. You can get and set the colormap
|
| 39 | using the FBIOGETCMAP and FBIOPUTCMAP ioctls.
|
| 40 |
|
| 41 |
|
| 42 | 2. Inside the kernel
|
| 43 |
|
| 44 | - struct fb_info
|
| 45 |
|
| 46 | Generic information, API and low level information about a specific frame
|
| 47 | buffer device instance (slot number, board address, ...).
|
| 48 |
|
| 49 | - struct `par`
|
| 50 |
|
| 51 | Device dependent information that uniquely defines the video mode for this
|
| 52 | particular piece of hardware.
|
| 53 |
|
| 54 |
|
| 55 | Visuals used by the frame buffer device API
|
| 56 | ===========================================
|
| 57 |
|
| 58 |
|
| 59 | Monochrome (FB_VISUAL_MONO01 and FB_VISUAL_MONO10)
|
| 60 | --------------------------------------------------
|
| 61 | Each pixel is either black or white.
|
| 62 |
|
| 63 |
|
| 64 | Pseudo color (FB_VISUAL_PSEUDOCOLOR and FB_VISUAL_STATIC_PSEUDOCOLOR)
|
| 65 | ---------------------------------------------------------------------
|
| 66 | The whole pixel value is fed through a programmable lookup table that has one
|
| 67 | color (including red, green, and blue intensities) for each possible pixel
|
| 68 | value, and that color is displayed.
|
| 69 |
|
| 70 |
|
| 71 | True color (FB_VISUAL_TRUECOLOR)
|
| 72 | --------------------------------
|
| 73 | The pixel value is broken up into red, green, and blue fields.
|
| 74 |
|
| 75 |
|
| 76 | Direct color (FB_VISUAL_DIRECTCOLOR)
|
| 77 | ------------------------------------
|
| 78 | The pixel value is broken up into red, green, and blue fields, each of which
|
| 79 | are looked up in separate red, green, and blue lookup tables.
|
| 80 |
|
| 81 |
|
| 82 | Grayscale displays
|
| 83 | ------------------
|
| 84 | Grayscale and static grayscale are special variants of pseudo color and static
|
| 85 | pseudo color, where the red, green and blue components are always equal to
|
| 86 | each other.
|