【发布时间】:2011-08-17 09:43:18
【问题描述】:
看似随机(但在任何给定程序运行期间通常保持一致),我的presentRenderBuffer 调用非常慢。我追踪到调用presentRenderBuffer 调用glFlush(),所以现在我在presentRenderBuffer 之前调用glFlush()。我在glFlush() 上设置了一个计时器,它会做两件事之一,似乎是随机的。
glFlush() 要么
1) 始终需要 0.0003 秒
或
2) 在大约 0.019 到 0.030 秒之间交替
最奇怪的是,这与绘图代码无关。即使我注释掉所有绘图代码以便它所做的只是调用glClear(),我仍然只是随机得到两个结果之一。
绘图方法由CADisplayLink 调用,设置如下:
dLink = [[UIScreen mainScreen] displayLinkWithTarget:viewController selector:@selector(drawFrame)];
dLink.frameInterval = 1;
[dLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
我发现无法确定导致其中一个结果发生的原因。任何人都可以提供想法吗?
【问题讨论】:
标签: iphone ios performance opengl-es cadisplaylink