2013-06-25 53 views
0

我一直在工作中的OpenGL查看过去几个月。在此期间,我创建了主UIWindow和单个UIView代码,而不是使用故事板。需要注意的一个重要的事项是我创建了一个EAGLView的实例(用于许多Apple示例中),该实例从UIView继承。iOS应用:在一个基于OpenGL-IOS,应用基于故事板,应用

的代码库,我有工作是相当广泛的,并且除其他事项外,它使用一个单独的渲染线程。在这篇文章结尾处我会回到这一点。记住

有了这个,我现在就在我要添加原生UI的支持点。为此,我正在使用故事板(第一次)。我目前的设置包含一个带有两个按钮的主/根视图。每个按钮都使用模态渐变来在屏幕上放置新视图。

要重用尽可能多的代码成为可能,我已指定的观点我原因请看是类型EAGLView的(相对于UIView的)。我必须做的唯一改变是,不用“initWithFrame”初始化,我现在用“initWithCoder”初始化。

除了移动到故事板,没有别的代码库中发生了变化。但是,当我继续使用EAGLView时,无法呈现 - 我看到的只有白色。我对使用GLKit犹豫不决,因为它重复了我已经写过的大部分功能(在使用故事板之前,我的所有功能都很好)。另外,GLKit为渲染提供回调,而我有一个单独的渲染线程。

我的场景听起来像这个帖子有很多:

OpenGL iOS view does not paint

我对每次呼叫(或每一组通话)GL错误检查,并正在没有错误报告。更奇怪的是,当我捕获一个用于调试的OpenGL ES框架(在Xcode中)时,调试器实际上显示了我期望看到的内容。

这里的任何想法?我很难过。

回答

0

请尝试以下方法:

  1. 确认您停止渲染,你从(停止时间等)segueing的观点 - 这种观点还活着,因为你只推在最前面新EAGLView的。
  2. 使用XCode's OpenGL ES Frame capture调试新视图你的OpenGL状态。确认你不缺少绑定到纹理或其他对象。
  3. 如果上述不起作用 - 写出最简单的渲染方式(例如简单四边形)并调试该代码。