找回密码
 注册
关于网站域名变更的通知
查看: 216|回复: 1
打印 上一主题 下一主题

linux --- framebuffer设备相关参数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-28 11:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成。
- K( Y, M7 K; S: a% j: P6 j+ R; D: Q8 G$ l  Z" e8 A
在头文件<Linux/fb.h>中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_FSCREENINFO和FBIOGET_VSCREENINFO。- f: L5 t) {- S

8 M- i. D! {# Q+ ~" e" T% e7 q$ _前者返回与Framebuffer有关的固定的信息,比如图形硬件上实际的帧缓存空间的大小、能否硬件加速等信息。4 r. e$ n; A, D8 x

0 \( Y2 ]1 w4 B7 O而后者返回的是与Framebuffer有关的可变信息。
; M2 X" W  C4 G3 b5 \6 V- `  w, j9 N  e
之所以可变,是因为对同样的图形硬件,可以工作在不同的模式下。9 p* m. r, |8 ]; x; R
/ u; ?' Z4 @8 ^1 ~% M3 D2 H
简单来讲,一个支持1024x768x24图形模式的硬件通常也能工作在800x600x16的图形模式下。7 B1 J8 G; j& a

3 w8 N, P3 k3 S! @可变的信息就是指Framebuffer的长度、宽度以及颜色深度等信息。
/ [% S( d1 L- d8 b9 y
1 O) i$ q% L& V0 x
/ O$ R2 z7 r# z: c( X6 o, i9 {4 t, G! O1 I+ W$ h
这两个命令字相关的结构体有两个:struct fb_fix_screeninfo和struct fb_var_screeninfo。3 _! X- Z: `5 {: Z
7 |8 Q& U# J, s7 d
这两个结构体都比较大,前者用于保存Framebuffer设备的固定信息,后者用于保存Framebuffer设备的可变信息。  i* a' Z, w& c! C# ~( v

* o  {% b  \$ P: ]7 c2 c6 Z& S在调用ioctl()的时候,要用到这两个结构体。7 H# A- X% `. `1 h& J2 E

, s/ g3 X8 J% }应用程序中通常要用到struct fb_var_screeninfo的下面这几个字段:
! e) I' C5 t3 m8 M* |" q4 P7 j+ W  k/ @2 Z. d: b# l
游客,如果您要查看本帖隐藏内容请回复

, a/ `3 w  \, p7 T& z8 E1 ?! g+ k5 L- a+ f7 J& v& j

该用户从未签到

2#
发表于 2019-8-28 18:10 | 只看该作者
谢谢楼主分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-23 08:14 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表