晚上好。
我在远程计算机上设置我的游戏项目并遇到SDL问题。我正在使用SDL 2.0,并且我试图找出当我有2台显示器连接到我的PC时SDL_GetNumVideoDisplays()返回1的原因。我正在运行Ubuntu 14.04 LTS,并且正常情况下只使用桌面正确配置了两台显示器。
希望了解如何解决此问题的提示。感谢。
对于SDL2-2.0.4源代码 更新1 - ./configure
:
在配置脚本中寻找X11的一些提及,并看到以下内容:
checking for X11/extensions/Xext.h... yes
-- dynamic libX11 -> libX11.so.6
-- dynamic libX11ext -> libXext.so.6
checking for const parameter to XextAddDisplay... yes
checking for XGenericEvent... yes
checking for XkbKeycodeToKeysym in -lX11... yes
checking for X11/Xcursor/Xcursor.h... no
checking for X11/extensions/Xdbe.h... yes
checking for X11/extensions/Xinerama.h... no
checking for X11/extensions/XInput2.h... no
checking for X11/extensions/scrnsaver.h... no
checking for X11/extensions/shape.h... yes
checking for X11/extensions/xf86vmode.h... yes
和
X11 libraries : xdbe xshape xvidmode
我的xrandr --version
是:
xrandr program version 1.4.1
Server reports RandR version 1.4
xrandr --listactivemonitors
我的安装似乎不受支持。
更新2 - 重新安装操作系统,完全擦除分区:
当我决定采取核选择时,事情迅速升级。幸运的是,我需要的磁盘上没有任何内容,因为我刚刚克隆了我的回购并且没有做出任何值得提交的更改。
在开放和专有驱动程序之间交换一天并修改我的xorg.conf之后,我最终修改了磁盘并安装了16.04 LTS。我从ubuntu repo安装了SDL2运行时,并从SDL网站上的tar文件安装了SDL2开发源。再次执行我的程序,它按预期工作。
我不想打电话给这个"解决了#34;因为我结束了我的操作系统,但我想我的问题已经解决了。我只是希望能弄清楚SDL如何获知有多少显示器的信息链。
答案 0 :(得分:1)
checking for X11/extensions/Xinerama.h... no
这可能是你的鱼雷。 Xinerama is used to query the output count/positions/topology:
X服务器的客户端/服务器架构允许服务器向客户端公开Xinerama信息,无论Xinerama基础架构是否处于活动状态。 RandR和NVidia的twinview利用此功能为窗口管理器和客户端提供有关相对于帧缓冲区的输出布局的信息。
安装libxinerama-dev
&重新configure
可能会清除它。