ios – 调整GLKView的大小

前端之家收集整理的这篇文章主要介绍了ios – 调整GLKView的大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
调整GLKView的大小时,会在GLKView的缓冲区和上下文上发生一些幕后操作.在执行这些幕后操作所花费的时间内,绘制到GLKView不会产生正确的结果.

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

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

我通过调用:performSelector:@selector(setNeedsDisplay)withObject:nil afterDelay:0而不是仅仅调用GLKView上的setNeedsDisplay找到了解决方法.这基本上迫使主线程在调用setNeedsDisplay之前等待所有幕后的openGL操作完成.虽然这项工作正常,但我想知道是否有更好的解决方案.例如,是否存在openGL调用以使线程等待所有openGL操作在继续之前完成?

解决方法

解决方案是在调整GLKView大小后重置CIContext对象. 大家都谢谢!
原文链接:https://www.f2er.com/iOS/327780.html

猜你在找的iOS相关文章