我正在构建一个使用openGL的iOS应用程序,我遇到以下问题:
我有一个想在glView上显示的对象。如果我只是在视图中绘制一次就可以了。但是,如果我将drawView函数添加到runLoop中,它会完美地调用该函数,但它不会绘制任何内容,而我只是留下了一个空白的白色屏幕。
redraw是一个标志,指示绘制函数何时再次绘制场景。
我希望以下代码在每次绘制时旋转我的对象:
static double theta = 0;
theta += 0.03;
glRotatef(theta, 1, 1, 0);
如果我不将绘图函数添加到runLoop但是手动绘制它,则旋转有效。
感谢。
答案 0 :(得分:0)
您的OpenGL代码可能存在错误。 如果在某些情况下一切正常,则可能与上下文有关。尝试在每次OpenGL调用之前和之后调用glError调用。这样你就会知道有问题的功能在哪里。
您需要确保将上下文设置为当前活动视图的正确上下文。
答案 1 :(得分:0)
问题解决了!
我只需要添加
[self setCurrent];
到drawView函数中的glView类。