gpt4 book ai didi

ios - 调整 GLKView 的大小

转载 作者:可可西里 更新时间:2023-11-01 03:44:42 24 4
gpt4 key购买 nike

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

在我的场景中,我有一个启用了 setNeedsDisplayGLKView,这样每当我需要更新屏幕上的内容时,我只需调用 -setNeedsDisplay 在那上面GLKView。我正在使用 GLKView 绘制图像,因此如果我需要绘制不同尺寸的图像,我还需要更改 GLKView 的尺寸。

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

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

最佳答案

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

关于ios - 调整 GLKView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com