将应用程序置于前台时,是否需要重新创建MTLBuffer,MTLTexture或其他金属资源?

时间:2019-04-28 07:21:49

标签: ios metal mtlbuffer

我正在重构cocos2d-x的渲染层,新引擎将在iOS上使用Metal。在原始版本中,当应用程序长时间停留在后台后进入前景时,cocos2dx将重新创建所有缓冲区和纹理。

我是Metal的新手,我的问题是:是否有必要将MTLBuffer,MTLTexture和其他Metal资源重新创建为GLES?

1 个答案:

答案 0 :(得分:4)

当应用从后台状态恢复为活动状态时,无需重新创建Metal资源。

另一方面,由于纹理和缓冲区可能很大,并且由于它们在整个生命周期内都驻留在系统内存中(iOS具有统一的内存体系结构,并且缺少分页系统),因此您可能需要释放一些或进入处于后台状态时的所有Metal资源,以减少当另一个应用需要其正在使用的内存时您的应用被终止的可能性。在这种情况下,如果/当应用从后台状态返回时,您将重新创建这些资源。