黑屏/ iOS OpenGL ES 2无事件

我正在处理一个大约45天的错误.我已经尝试了几十个方法调用,改变整个程序,但没有任何作用.

我使用GLES 2和一个UIViewController,它是rootViewController,它有一个UIView类型的视图,其layerclass是CAEAGLLayer.

当我运行应用程序时,屏幕变黑,如果我按下屏幕,则不会生成任何事件.

如果我旋转应用程序,则会出现屏幕并且事件有效.更糟糕的是,如果我不旋转应用程序,但在presentRenderbuffer之后放置一个断点,并按下Xcode中的“Capture OpenGL ES Frame”按钮,屏幕出现,事件开始工作!

我觉得视图实际上没有显示,但是,我实现了viewWillLayoutSubviews,viewWillAppear,viewDidAppear,loadView(我开始一切),所有这些方法按此顺序调用:

加载视图
视图将出现
视图将布局子视图
视图确实出现了

此外,视图实际上具有有效的帧大小.

对于这个绝望的用户,非常感谢任何帮助.

guich

最佳答案 这个问题的解决方案是:在主线程中设置上下文,创建所有窗口,然后通过调用共享所有线程之间的开放gl上下文

[EAGLContext setCurrentContext:glcontext]

在每个线程

点赞