帧缓冲设备内部原理¶
这是关于帧缓冲设备内部原理的一些文档的初始版本。
作者
Geert Uytterhoeven <geert@linux-m68k.org>, 1998 年 7 月 21 日
James Simmons <jsimmons@user.sf.net>, 2002 年 11 月 26 日
帧缓冲设备 API 使用的结构体¶
以下结构体在帧缓冲设备中起作用。它们定义在 <linux/fb.h> 中。
内核外部(用户空间)
struct fb_fix_screeninfo
关于帧缓冲设备和特定视频模式的设备无关的不可更改信息。可以使用 FBIOGET_FSCREENINFO ioctl 获取。
struct fb_var_screeninfo
关于帧缓冲设备和特定视频模式的设备无关的可更改信息。可以使用 FBIOGET_VSCREENINFO ioctl 获取,并使用 FBIOPUT_VSCREENINFO ioctl 更新。如果只想平移屏幕,可以使用 FBIOPAN_DISPLAY ioctl。
struct fb_cmap
设备无关的颜色映射信息。可以使用 FBIOGETCMAP 和 FBIOPUTCMAP ioctl 获取和设置颜色映射。
内核内部
struct fb_info
关于特定帧缓冲设备实例(槽号、板地址等)的通用信息、API 和底层信息。
struct par
设备相关信息,唯一地定义了特定硬件的视频模式。
帧缓冲设备 API 使用的视觉效果¶
单色 (FB_VISUAL_MONO01 和 FB_VISUAL_MONO10)¶
每个像素要么是黑色,要么是白色。
伪彩色 (FB_VISUAL_PSEUDOCOLOR 和 FB_VISUAL_STATIC_PSEUDOCOLOR)¶
整个像素值通过一个可编程的查找表,该表为每个可能的像素值都有一种颜色(包括红色、绿色和蓝色强度),然后显示该颜色。
真彩色 (FB_VISUAL_TRUECOLOR)¶
像素值被分解为红色、绿色和蓝色字段。
直接彩色 (FB_VISUAL_DIRECTCOLOR)¶
像素值被分解为红色、绿色和蓝色字段,每个字段都在单独的红色、绿色和蓝色查找表中查找。
灰度显示器¶
灰度和静态灰度是伪彩色和静态伪彩色的特殊变体,其中红色、绿色和蓝色分量始终彼此相等。