Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 确定分辨率在X11屏幕上是虚拟的';s API(或扩展)_C_Linux_X11 - Fatal编程技术网

C 确定分辨率在X11屏幕上是虚拟的';s API(或扩展)

C 确定分辨率在X11屏幕上是虚拟的';s API(或扩展),c,linux,x11,C,Linux,X11,我在linux上的一个应用程序中工作,它可以与不同的PC硬件(特别是显示器)一起使用 此应用程序应将环境设置为允许的最高分辨率(get by) 函数xrr(来自libXrandr) 问题是:对于某些硬件,尝试设置最高选项会创建一个虚拟桌面,即实际分辨率较小的桌面,您必须在屏幕边缘滚动鼠标才能访问所有桌面 有没有办法在Xlib(或它的兄弟姐妹之一)中检测到我使用的是虚拟分辨率(换句话说,重新调整的大小没有达到预期) 对于这种情况下的解决方法的提示也将不胜感激 谢谢阅读以下内容: 您需要了解“屏幕”

我在linux上的一个应用程序中工作,它可以与不同的PC硬件(特别是显示器)一起使用

此应用程序应将环境设置为允许的最高分辨率(get by) 函数xrr(来自libXrandr)

问题是:对于某些硬件,尝试设置最高选项会创建一个虚拟桌面,即实际分辨率较小的桌面,您必须在屏幕边缘滚动鼠标才能访问所有桌面

有没有办法在Xlib(或它的兄弟姐妹之一)中检测到我使用的是虚拟分辨率(换句话说,重新调整的大小没有达到预期)

对于这种情况下的解决方法的提示也将不胜感激

谢谢阅读以下内容:

您需要了解“屏幕”、“输出”和“crtc”之间的区别。您需要检查每个要使用的输出的可用模式,然后在CRTC上正确设置所需的模式,将CRTC与输出关联,然后使屏幕大小与您在每个输出上设置的值相匹配


请看一下xrandr源代码的示例:

哦,是的!我忘了提到我使用XRRSetScreenConfigAndRate更改显示分辨率只是为了澄清:您真的想确定它,还是只是想知道最大的非虚拟屏幕大小是多少?另外,是否要处理多监视器设置(其中一个监视器不处理第二个监视器处理的大小)?顺便说一句:最高的屏幕尺寸有时并不起作用。。。我想了解支持的最大非虚拟屏幕大小。另外,如果它不工作,请确定这种情况,以便我可以处理它,是的,我必须处理两个不同的监视器,一个是应用程序正在运行的监视器,另一个是应用程序正在运行的监视器。您能否使用X11 api来确定创建的窗口是否包含可滚动条?如果是这样的话,那么你就不能开始一次一个地切换较小的分辨率吗?当链接文档没有定义术语“crtc”时,说“你需要了解“屏幕”、“输出”和“crtc”之间的区别”是没有帮助的。