1

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

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

这是所有相关代码。

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

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

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

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

谢谢。

4

2 回答 2

0

问题解决了!

我只需要添加

[self setCurrent];

到 drawView 函数中的 glView 类。

于 2012-12-18T13:14:46.183 回答
0

您的 OpenGL 代码中的某个地方可能存在错误。如果在某些情况下一切正常,它可能与上下文相关。尝试在每个 OpenGL 调用之后和之前放置 glError 调用。这样你就会知道有问题的函数在哪里。

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

于 2012-12-17T23:41:03.120 回答