0001 =============================
0002 Frame Buffer device internals
0003 =============================
0004
0005 This is a first start for some documentation about frame buffer device
0006 internals.
0007
0008 Authors:
0009
0010 - Geert Uytterhoeven <geert@linux-m68k.org>, 21 July 1998
0011 - James Simmons <jsimmons@user.sf.net>, Nov 26 2002
0012
0013 --------------------------------------------------------------------------------
0014
0015 Structures used by the frame buffer device API
0016 ==============================================
0017
0018 The following structures play a role in the game of frame buffer devices. They
0019 are defined in <linux/fb.h>.
0020
0021 1. Outside the kernel (user space)
0022
0023 - struct fb_fix_screeninfo
0024
0025 Device independent unchangeable information about a frame buffer device and
0026 a specific video mode. This can be obtained using the FBIOGET_FSCREENINFO
0027 ioctl.
0028
0029 - struct fb_var_screeninfo
0030
0031 Device independent changeable information about a frame buffer device and a
0032 specific video mode. This can be obtained using the FBIOGET_VSCREENINFO
0033 ioctl, and updated with the FBIOPUT_VSCREENINFO ioctl. If you want to pan
0034 the screen only, you can use the FBIOPAN_DISPLAY ioctl.
0035
0036 - struct fb_cmap
0037
0038 Device independent colormap information. You can get and set the colormap
0039 using the FBIOGETCMAP and FBIOPUTCMAP ioctls.
0040
0041
0042 2. Inside the kernel
0043
0044 - struct fb_info
0045
0046 Generic information, API and low level information about a specific frame
0047 buffer device instance (slot number, board address, ...).
0048
0049 - struct `par`
0050
0051 Device dependent information that uniquely defines the video mode for this
0052 particular piece of hardware.
0053
0054
0055 Visuals used by the frame buffer device API
0056 ===========================================
0057
0058
0059 Monochrome (FB_VISUAL_MONO01 and FB_VISUAL_MONO10)
0060 --------------------------------------------------
0061 Each pixel is either black or white.
0062
0063
0064 Pseudo color (FB_VISUAL_PSEUDOCOLOR and FB_VISUAL_STATIC_PSEUDOCOLOR)
0065 ---------------------------------------------------------------------
0066 The whole pixel value is fed through a programmable lookup table that has one
0067 color (including red, green, and blue intensities) for each possible pixel
0068 value, and that color is displayed.
0069
0070
0071 True color (FB_VISUAL_TRUECOLOR)
0072 --------------------------------
0073 The pixel value is broken up into red, green, and blue fields.
0074
0075
0076 Direct color (FB_VISUAL_DIRECTCOLOR)
0077 ------------------------------------
0078 The pixel value is broken up into red, green, and blue fields, each of which
0079 are looked up in separate red, green, and blue lookup tables.
0080
0081
0082 Grayscale displays
0083 ------------------
0084 Grayscale and static grayscale are special variants of pseudo color and static
0085 pseudo color, where the red, green and blue components are always equal to
0086 each other.