iOS runLoop和openGL

时间:2012-12-17 14:20:39

标签: opengl-es ios6 nsrunloop

我正在构建一个使用openGL的iOS应用程序,我遇到以下问题:

我有一个想在glView上显示的对象。如果我只是在视图中绘制一次就可以了。但是,如果我将drawView函数添加到runLoop中,它会完美地调用该函数,但它不会绘制任何内容,而我只是留下了一个空白的白色屏幕。

Here is all relevant code.

redraw是一个标志,指示绘制函数何时再次绘制场景。

我希望以下代码在每次绘制时旋转我的对象:

    static double theta = 0;
    theta += 0.03;
    glRotatef(theta, 1, 1, 0);

如果我不将绘图函数添加到runLoop但是手动绘制它,则旋转有效。

感谢。

2 个答案:

答案 0 :(得分:0)

您的OpenGL代码可能存在错误。 如果在某些情况下一切正常,则可能与上下文有关。尝试在每次OpenGL调用之前和之后调用glError调用。这样你就会知道有问题的功能在哪里。

您需要确保将上下文设置为当前活动视图的正确上下文。

答案 1 :(得分:0)

问题解决了!

我只需要添加

[self setCurrent];

到drawView函数中的glView类。