Sas*_*asQ 5 c++ linux graphics xrandr xlib
我正在尝试使用 Xlib 和 OpenGL 来掌握编程图形。我可以创建窗口等,但我坚持改变显示模式。
我可以使用 Xrandr 函数 ( XRRSizes、XRRRates、XRRGetScreenInfo、XRRConfigSizes)列出可用的视频模式,检查当前设置的是哪一种 ( XRRConfigCurrentConfiguration),并更改分辨率 ( XRRSetScreenConfig)。
我可以列出可用的位深度(又名颜色深度,即每像素位数)XListDepths。
我不知道如何更改给定屏幕的位深度。
我在 Xrandr 中找不到任何合适的函数来设置位深度和屏幕尺寸。它似乎对位深度完全一无所知,这真的很奇怪。我在 Xlib 文档中也找不到任何合适的函数。
所以我的问题是:
如何在 Linux 下以编程方式更改分辨率和位深度?
Xlib 库或其他地方是否有任何函数?
我知道有图形,如SDL全面的库,但我并不想使用它们作为一个依赖只是改变显示模式,因为我试图写一个最小的图形库我自己,为了学习目的.
编辑:
我想要实现的目标不一定要特别用 Xlib 或 X 来完成,但它必须与 X 优雅地合作。例如,我不想完全摆脱 X ?它对于在窗口模式下显示图形仍然很有用。但我还需要一些方法来切换到全屏模式,在这种模式下我需要完全控制视频模式:分辨率、颜色深度、刷新率以及直接访问帧缓冲区中的实际像素,而不是某种“模拟”。我认为有是一些方法来做到这一点,因为有视频游戏谁可以做到这在Linux上。
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |