1

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

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

4

1 回答 1

4

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

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

于 2019-04-29T19:28:41.270 回答