1

背景:我以通常的方式为 iOS 构建了 Qt(按照此处的说明进行操作)。我qmake“立方体”示例项目目录中运行,打开输出的 .xcodeproj 文件,然后在我的 iPad 3 上运行它。我只是得到一个黑屏,而不是预期的立方体。我可以从插入qDebug()语句中看出触摸事件正在工作,但没有显示,即使 Qt OpenGL API 调用似乎都成功了。在控制台中只有这个: QIOSBackingStore needs to have the same size as its window

我认为这个示例有可能会起作用,因为它明确与 OpenGL ES 2.0 兼容,但我想这个实现存在一些问题。不幸的是,OpenGL ES 2.0 太笨拙了,我对它还不够熟悉,无法快速诊断问题。

我了解到 Qt 的 OpenGL 支持非常好,所以如果可能的话,我想将它用于 iOS 开发,而不是重新发明轮子。有谁知道示例项目可能有什么问题?如果做不到这一点,有没有人有一个 Qt OpenGL 项目可以在他们的 iPhone 或 iPad 上正常工作?

4

2 回答 2

2

有人有在 iOS 下工作的 OpenGL ES 2.0 Qt 5 示例吗?

我刚刚与开发人员进行了快速交谈,他们声称立方体示例在过去的某个时间点可以用于他们的快速测试。可能是你遇到了一个错误。我建议您在针对 QtPorts iOS 组件的 bugtracker上报告这一点。Tor Arne 最终会在他到达那里时查看它。

话虽如此,他的“hellogl_es2”和“hellogl”示例也为开发人员工作,它们也应该工作。同样,如果有任何错误,请报告它,因为 iOS 是一个相当新的 Qt 支持平台,因此可能会出现较小的错误。

至于提供一些有关 iOS 移植历史的背景:主要关注的是 Qt Quick 1 的最后一个小系列 Qt 5.1。opengl(包括原始 C++ 代码)尚未进行彻底的开发和测试。

最近,git 中的开发分支为声明性存储库获得了 v4 支持(新的解释器引擎),这是通向 QtQuick2 和隐式适当的 opengl 支持的一种方式。在那之前,很难说是否有可靠的工作。

出于可以理解的原因,帖子背后的人并没有那么多关注 opengl。这包括例如 Qt 4 时代的 QGLWidget。

Qt iOS 团队提供的唯一官方示例位于:

1) https://itunes.apple.com/us/app/subattack/id659283830

2) https://itunes.apple.com/us/app/qtquicksand/id666273528

话虽如此,5.2 和后续版本都会得到改进,所以值得一看。

于 2013-09-07T23:19:50.067 回答
1

所以事实证明,适用于 iOS 的实际 OpenGL ES 2.0 示例称为“hellogl_es2”。我尝试的“立方体”示例尚未修复为在 iOS 上运行。它也是 OpenGL ES 2.0,但实现可能存在一些我目前没有资格补救的问题。

无论如何,如果您想看到今天在 iOS 下运行的带有 QGLWidget 的 OpenGL ES 2.0,请部署“hellogl”示例。它在我的 iPad 3 上以约 60 fps 的速度运行良好。

于 2013-09-10T17:29:16.637 回答