【问题标题】:SDL2 fails to create GL context when program is run in Monodevelop, works fine otherwise在 Monodevelop 中运行程序时,SDL2 无法创建 GL 上下文,否则工作正常
【发布时间】:2017-09-17 00:00:48
【问题描述】:

我有一个非常不寻常的问题。我有这个 OpenTK 项目(几个月前我最后一次在另一台 Linux 机器上工作,当时一切正常)。

我的项目编译得很好,当我自己从终端运行可执行文件时,一切正常 - 窗口已创建等等。

但是,当我通过点击 Run 键(启用或不启用调试)从 Monodevelop 中运行完全相同的程序时,由于以下 SDL2 错误而引发异常:"Could not create GL context: BadValue (integer parameter out of range for operation)"

我已经尝试了几乎所有方法,从更改上下文创建参数到更改 OpenTK 版本,但没有任何帮助。 OpenTK 的输出(在 SDL2 错误发生之前是:

Creating GraphicsContext.
    GraphicsMode: Index: , Color: 32 (8888), Depth: 16, Stencil: 0, Samples: 0, Accum: 0 (0000), Buffers: 2, Stereo: False
    IWindowInfo: OpenTK.Platform.SDL2.Sdl2WindowInfo
    GraphicsContextFlags: Default
    Requested version: 3.2

无论我是手动运行程序还是从 Monodevelop 运行程序,这些参数都是相同的。所以我想我的问题是 - 手动启动程序和在 Monodevelop 中运行程序之间可能有什么区别,导致这个错误发生?

(这发生在带有 Monodevelop 6、OpenTK 1.1(也是 2.0)和 SDL 2.0.4 的 Ubuntu 16 上)

【问题讨论】:

  • 可能是您运行例如32 位版本的单声道,还是只是不同的版本?让你的进程停止(睡眠、阻塞调用、调试器中断)并检查 /proc//exe 指向的位置,对于两个版本。
  • monodevelop 进程正在运行“/app/bin/mono --debug --debugger-agent=transport=dt_socket,address=xxx /path/to/executable.exe”,当我刚刚运行我自己的可执行文件,进程的路径只​​是“单路径/到/可执行文件”。 /app/bin/mono 虽然不存在...

标签: c# opengl sdl monodevelop opentk


【解决方案1】:

嗯,我或多或少地解决了我的问题。正如 Monodevelop 网站上强烈推荐的那样,我使用 flatpak 安装了它,它在某种可能与 SDL 存在问题的沙箱中运行。我以正常方式重新安装了 Monodevelop,现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多