iOS应用程序:基于情节提要的应用程序中的OpenGL视图



在过去的几个月里,我一直在开发基于OpenGL的iOS应用程序。在这段时间里,我在代码中创建了主UIWindow和单个UIView,而不是使用故事板。需要注意的一点是,我创建了EAGLView的一个实例(在许多苹果示例中使用),它继承了UIView。

我正在使用的代码库非常广泛,除其他外,它使用了一个单独的渲染线程。我将在这篇文章快结束的时候回到这一点。

考虑到这一点,我现在想添加对原生UI的支持。为此,我(第一次)使用了一个故事板。我当前的设置包括一个带有两个按钮的主/根视图。每个按钮都使用一个模态分段在屏幕上放置一个新视图。

为了尽可能多地重用代码,我指定了分段到的视图的类型为EAGLView(与UIView相反)。我唯一要做的改变是,我现在不用"initWithFrame"初始化,而是用"initWithCoder"初始化。

除了移动到情节提要之外,代码库中的其他内容都没有改变。然而,当我切换到EAGLView时,没有任何渲染——我看到的都是白色。我很犹豫是否使用GLKit,因为它复制了我已经编写的许多功能(在使用故事板之前,我已经把所有东西都渲染好了)。此外,GLKit提供了一个用于渲染的回调,而我有一个单独的渲染线程。

我的场景听起来很像这篇文章:

OpenGL iOS视图未绘制

我对每个呼叫(或每组呼叫)都进行了GL错误检查,并且没有报告错误。更奇怪的是,当我捕获OpenGL ES帧进行调试(在Xcode中)时,调试器实际上显示了我期望看到的内容。

有什么想法吗?我被难住了。

请尝试以下操作:

  1. 验证您是否停止在要分割的视图中进行渲染(停止时间等)-此视图仍然有效,因为您只在其上推送了一个新的EAGLView
  2. 使用XCode的OpenGL ES帧捕获在新视图中调试OpenGL状态。验证是否缺少与纹理或其他对象的绑定
  3. 如果以上方法不起作用,请编写尽可能简单的渲染(例如,简单的quad)并调试代码

相关内容

  • 没有找到相关文章

最新更新