我正在为 PC(Windows、Linux、Mac)和 iOS 开发跨平台渲染器。iOS 部分目前是围绕 OpenGL ES 2.0 构建的,我想升级到 ES 3.0。所以我替换了以下行(有效)
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
用这条线:
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
...我包括了 OpenGLES/ES3/gl.h 和 OpenGLES/ES3/glext.h。
在模拟器中这工作得非常好,但在实际的 iPad 上运行它不再工作并且上下文为零。
我真的不知道我在这里缺少什么,因为 iPad 运行的是最新版本的 iOS(iOS 8.3),并且 ES 3.0 应该没有问题。我没有收到任何错误,也无法真正调试它(“步入”在这里似乎不起作用)。