触摸事件和OpenGL绘图。它们是在不同的线程上发生的吗

时间:2009-06-12 21:46:39

标签: iphone opengl iphone-sdk-3.0

触摸事件似乎发生在与OpenGL渲染不同的线程上。是这样的吗?这个问题的上下文是我正在构建的粒子系统,它使用触摸事件来触发OpenGL绘图。由于OpenGL绘图相当重要,我担心线程影响。

非常感谢任何见解。

此致 道格

2 个答案:

答案 0 :(得分:1)

不。同一个帖子。

您向OpenGL子系统提交命令然后它们在GPU上执行,因此不是“按照定义”并行线程b / c图形处理器不一定具有与CPU相同的线程概念

默认的OpenGL项目只是创建一个NSTimer,每个帧在主线程上触发并调用OpenGL。

您可能观察到的是大多数绘图命令都是异步的。由于您在iPhone上绘制了一个屏幕外缓冲区,因此只有在完成绘图后交换缓冲区时才会看到结果:

    [context presentRenderbuffer:GL_RENDERBUFFER_OES];

答案 1 :(得分:0)

除非您另行指定,否则您的代码将在主线程上运行。话虽这么说,一些库/ SDK调用会启动自己独立的线程。通过这种方式,您可能会间接创建其他线程。

至于你的具体情况,我赢得的经验不符合。触摸事件在主线程上处理,就像openGL一样。