我正在重构cocos2d-x的渲染层,新引擎将在iOS
上使用Metal。在原始版本中,cocos2dx会在应用程序在长时间停留在后台后进入前台时重新创建所有缓冲区和纹理。
我是Metal的新手,我的问题是:是否有必要重新创建MTLBuffer,MTLTexture和其他Metal资源作为GLES?
当应用程序从处于后台状态返回活动状态时,不必重新创建Metal资源。
另一方面,由于纹理和缓冲区可能很大,并且因为它们在其生命周期内驻留在系统内存中(iOS具有统一的内存架构并且缺少分页系统),您可能想要释放部分或全部进入后台状态时的金属资源,以减少当另一个应用程序需要其正在使用的内存时应用程序被终止的可能性。在这种情况下,如果/当应用程序从后台状态返回时,您将重新创建这些资源。