【发布时间】:2012-05-26 15:35:23
【问题描述】:
所以我一直在用一些 OpenglES 进行一些 iphone 开发,但是当我调用 prepareToDraw 时,我遇到了一个相当奇怪的错误。简而言之,我的程序模拟掷骰子(尝试学习objective-c和opengl)。该程序在大多数情况下运行良好,我可以使用我为我的应用程序编写的所有内容(其物理错误但稍后会修复)。在我使用了包含 OpenGL 的部分之后,问题就出现了。
该程序包含 2 个菜单,您必须通过才能到达使用 OpenGL 的屏幕,一旦您使用了应用程序 OpenGL 部分并返回上一个菜单,然后再次尝试返回 OpenGL 部分,我得到一个打印输出说 GL 错误:0x0501。根据我的效果,我将其缩小为由 prepareToDraw 方法引起的。关于它的另一个奇怪的部分是,如果我回去,然后再向前,OpenGL 会再次工作,并且可以一次又一次地重复,以便它在你进入 OpenGL 部分时每秒钟都工作和中断。
我一直在寻找与我类似的问题,但每次它都与加载不是二次幂纹理的纹理有关,这对我没有帮助,因为我什至还没有使用纹理,只是彩色顶点。
我将我的两个代码文件粘贴到了问题所在的位置
骰子.m:http://pastebin.com/ze1DEEzs 在 draw 方法中,您会看到我的打印输出缩小了问题所在,即 prepareToDraw 方法。 (第 308 行)
RollViewController.m: http://pastebin.com/VycwAh3R 这个文件是我设置效果和上下文等的地方,所以我一定是在这里做错了,导致prepareToDraw方法在我每2次运行程序的OpenGL部分时都搞砸了。我有一种感觉,这与不放弃与上下文和效果有关的某种资源有关,但我找不到有关删除上下文和效果的任何信息(可能是因为您不需要,但我不确定)。
我希望有人遇到同样的问题并且可以回答我的问题,我希望这不仅仅是一个愚蠢的错误,因为我已经尝试解决这个问题一段时间了 :)
谢谢
【问题讨论】:
标签: objective-c ios opengl-es glkit