我正在处理一个大约45天的错误.我已经尝试了几十个方法调用,改变整个程序,但没有任何作用.
我使用GLES 2和一个UIViewController,它是rootViewController,它有一个UIView类型的视图,其layerclass是CAEAGLLayer.
当我运行应用程序时,屏幕变黑,如果我按下屏幕,则不会生成任何事件.
如果我旋转应用程序,则会出现屏幕并且事件有效.更糟糕的是,如果我不旋转应用程序,但在presentRenderbuffer之后放置一个断点,并按下Xcode中的“Capture OpenGL ES Frame”按钮,屏幕出现,事件开始工作!
我觉得视图实际上没有显示,但是,我实现了viewWillLayoutSubviews,viewWillAppear,viewDidAppear,loadView(我开始一切),所有这些方法按此顺序调用:
加载视图
视图将出现
视图将布局子视图
视图确实出现了
此外,视图实际上具有有效的帧大小.
对于这个绝望的用户,非常感谢任何帮助.
guich
最佳答案 这个问题的解决方案是:在主线程中设置上下文,创建所有窗口,然后通过调用共享所有线程之间的开放gl上下文
[EAGLContext setCurrentContext:glcontext]
在每个线程