【问题标题】:Is there a way to use Kivy with OpenGL 1.1?有没有办法在 OpenGL 1.1 中使用 Kivy?
【发布时间】:2019-05-09 08:44:15
【问题描述】:

我最近将一个安装程序从一个不可维护且复杂的批处理脚本移植到了 python,并认为为控制台安装程序提供一个简洁的图形前端是一个好主意。我决定使用 Kivy,因为我在家里的一些宠物项目中使用了它,而且我和 UI 设计都进行得又好又快。

然而,直到最近我才知道,Kivy 似乎只适用于 OpenGL 2.0。不幸的是,我们公司的软件经常安装在虚拟机上,并且它们的虚拟化图形适配器通常不支持 1.0 或 1.1 之后的 OpenGL(例如 VirtualBox)。这会阻止 Kivy 应用程序启动,或者即使启动了,也不会正确呈现。

我在互联网上搜索了一种让 Kivy 在没有 OpenGL 2.0 的情况下工作的方法。 github 上的一些帖子,我认为 reddit 上的一些帖子建议使用 Angle 而不是 sdl2 或切换到 glew。我尝试了建议的解决方案,但没有成功。

我想知道,有没有一种方法可以让 Kivy 应用在没有 OpenGL 2.0 的情况下运行,比如 OpenGL 1.1?

我在 Windows 上使用 Python 3.6.4 和 Kivy 1.10.1 作为开发和目标系统。

【问题讨论】:

    标签: python-3.x kivy


    【解决方案1】:

    Kivy 将 OpenGL ES 2.0 作为最低版本。请注意,OpenGL ES 与 OpenGL 不同,它更接近于 OpenGL 3.0。

    这是最低要求的版本,任何更新的版本都可以正常工作。

    如果需要,您可以在 Windows 上使用角度。我认为我们这样做是因为它比依赖 Windows OpenGL 驱动程序更稳定,但我不确定。

    【讨论】:

    • 但这并不能解决我的问题,即我无法在任何不支持 OpenGL 2.0 或更早版本的机器上使用我的程序(或至少是 Kivy 前端)。刚刚在客户的 Windows Server RE2 机器上尝试过。所以这里的答案是:不,不可能将 Kivy 与 2.0 之前的 Open GL 版本一起使用,对吧?
    • 这基本上是正确的,尽管最低 API 是 OpenGL ES 2.0,它与 OpenGL 2.0 有点不同(并且在大多数意义上比 OpenGL 2.0 更新一点)。也就是说,OpenGL ES 2.0 已经有 10 多年的历史了,是一个非常普遍和正常的标准。任何最新的软件和硬件都应该支持它。
    • 显然不够普及。您的大多数客户机器都非常老旧,即使不是,也缺少支持 1.1 之后的任何新版本的显卡,或者只安装了 Microsoft Generics 驱动程序。虚拟机通常完全错过 3D 加速。不过,谢谢你的回答。如果您添加添加:不,您不能使用 OpenGL 1.1 或任何早于 2.0 的版本运行 Kivy,我无法接受。
    猜你喜欢
    • 2019-11-02
    • 2016-01-10
    • 2020-09-15
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多