0

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

任何见解将不胜感激。

问候,道格

4

2 回答 2

1

没有。相同的线程。

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

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

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

    [context presentRenderbuffer:GL_RENDERBUFFER_OES];
于 2009-06-16T06:25:15.920 回答
0

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

至于你的具体情况,我的中奖经验不匹配。触摸事件在主线程上处理,openGL 也是如此。

于 2009-06-13T02:24:31.720 回答