4

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

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

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

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

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

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

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

非常感谢这个绝望的用户的任何帮助。

吉赫

4

1 回答 1

2

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

[EAGLContext setCurrentContext:glcontext]

在每个线程

于 2013-01-14T20:32:42.737 回答