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