在Linux下更改显示模式

时间:2014-03-26 09:17:24

标签: c++ linux graphics xlib xrandr

我试图用Xlib和OpenGL来掌握编程图形。我可以创建窗口等,但我坚持改变显示模式。

我可以列出具有Xrandr功能的可用视频模式(XRRSizesXRRRatesXRRGetScreenInfoXRRConfigSizes),检查当前设置的是哪个(XRRConfigCurrentConfiguration ),并更改分辨率(XRRSetScreenConfig)。

我可以使用XListDepths列出可用的位深度(a.k.a。颜色深度,即每个像素的)。

知道如何更改给定屏幕的位深度

我无法在Xrandr中找到任何合适的功能来设置位深度和屏幕尺寸。对于钻头深度似乎完全无知,这真的很奇怪。我无法在Xlib文档中找到任何合适的函数。

所以我的问题是:
如何在Linux下以编程方式改变分辨率位深度?
Xlib库或其他地方是否有任何功能?

我知道有完整的图形库,例如SDL,但我想要将它们用作改变显示模式的依赖,因为我&#39 ;我试图自己编写一个最小的图形库,用于学习目的。

修改
我想要实现的并不是必须特别使用Xlib或X,但它必须优雅地与X合作。例如。我不想完全摆脱X-它仍然有助于在窗口模式下显示图形。但我还需要一些方法来切换到全屏模式,我需要完全控制视频模式:分辨率,颜色深度,刷新率和直接访问实际像素在帧缓冲区中,而不是一些"仿真"。我认为 有某种方式可以做到这一点,因为有些视频游戏可以在Linux上进行。

0 个答案:

没有答案