【问题标题】:How to use XGetImage with multiple monitors?如何在多台显示器上使用 XGetImage?
【发布时间】:2015-11-26 11:49:14
【问题描述】:

我正在尝试使用 XGetImage() 捕获屏幕内容。一切正常,直到我连接第二台显示器。根据我对 XOpenDisplay 函数的理解,我应该用 XOpenDisplay("hostname:d.s") 之类的东西来调用它,其中 'd' 是显示编号,'s' 是屏幕编号,但由于分段错误而失败。我尝试了许多数字组合(0.0、0.1、1.0、1.1 等)。它仅在我使用 NULL 调用 XOpenDisplay 时才有效,但我只能从其中一个显示器获取图像。 'Display' 结构的 'nscreens' 成员是 1。第二个监视器工作正常,否则。我使用的是 Ubuntu 14.04。

【问题讨论】:

    标签: c linux ubuntu x11 xlib


    【解决方案1】:

    屏幕编号仅用于不同的帧缓冲区,即,如果您有一个显示器连接到不同显卡的设置。设置起来有点麻烦,而且工具包中的支持很不稳定,所以这些天几乎没有使用。

    大多数多显示器设置基于 XRANDR 扩展,它将多个视口设置到一个大型帧缓冲区中。 XGetImage() 应该看到一个大屏幕,您的应用程序需要查询 XRANDR 以找出哪些部分实际上是可见的。

    【讨论】:

    • 你是对的。我只需要弄清楚视口是如何放置在帧缓冲区中的。
    猜你喜欢
    • 1970-01-01
    • 2019-12-20
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2016-02-12
    相关资源
    最近更新 更多