首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整GLKView的大小

调整GLKView的大小
EN

Stack Overflow用户
提问于 2011-10-20 08:20:18
回答 1查看 2.4K关注 0票数 6

调整GLKView的大小时,会在该GLKView的缓冲区和上下文上执行一些幕后操作。在执行这些幕后操作的过程中,绘制到GLKView不会产生正确的结果。

在我的场景中,我有一个启用了setNeedsDisplayGLKView,所以每当我需要在屏幕上更新它的内容时,我只需在该GLKView上调用-setNeedsDisplay。我使用GLKView来绘制图像,所以如果我需要绘制不同大小的图像,我还需要更改GLKView的大小。

问题:当我更改GLKView的大小并对该视图调用setNeedsDisplay时,屏幕上的结果不正确。这是因为在尝试绘制新图像之前,GLKView尚未完成由新大小更改调用的幕后操作。

我找到了一个解决方法,调用:performSelector:@selector(setNeedsDisplay) withObject:nil afterDelay:0,而不仅仅是GLKView上的setNeedsDisplay。这基本上强制主线程在调用setNeedsDisplay之前等待所有幕后openGL操作完成。虽然这个方法运行良好,但我想知道是否有更好的解决方案。例如,是否有一个openGL调用使线程在继续之前等待所有openGL操作完成?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-08 06:57:27

解决方案是在调整GLKView大小后重置CIContext对象。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7829761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档