OpenGL iOS视图不绘画

时间:2011-09-01 02:35:27

标签: ios opengl-es

我正在尝试使用OpenGL绘制视图,该视图是另一个视图的子视图。我已经为此创建了一个视图类,如果我在一个简单的测试应用程序中使用这个类,它可以正常工作。但是,如果我将此类的实例放在我的应用程序的特定页面上,则OpenGL绘画不会显示任何内容。我确信视图是可见的(我可以设置背景颜色,然后显示,我可以接收触摸事件)。我还可以跟踪OpenGL初始化和绘制例程,一切似乎都很好。我正在调用我的绘图例程,我经常调用glGetError并且不返回任何错误。我可以比较跟踪例程和有效的情况,并且一切看起来几乎相同,但没有任何描绘(我甚至只是尝试什么都不做,只是将窗口清除为黑色,但这也没有做任何事情)。

此处发布的应用程序代码无法正常运行。我认为我做错了什么,但对于我的生活,我无法弄清楚是什么。任何人都可以给我任何想法,为什么OpenGL绘画看起来会成功但却没有画出任何东西,或者提出一个解决这个问题的策略?

感谢。

1 个答案:

答案 0 :(得分:0)

OpenGL与外部世界之间的链接是特定于平台的,而不是核心API的一部分。因此,问题不会影响glGetError的结果。

对于iOS,相关的调用是EAGLContext -presentRenderbuffer:,只要您使用renderbufferStorage:fromDrawable:CAEAGLLayer为渲染缓冲区创建存储空间,它就会起作用。您可能希望检查presentRenderbuffer:的返回结果及其周围的代码,以查找错误而不是内部GL状态。