Необходимо ли воссоздавать MTLBuffer, MTLTexture или другие металлические ресурсы, когда приложение выводится на передний план?
Я рефакторинг слоя рендеринга cocos2d-x, и новый движок будет использовать Metal на iOS
, В оригинальной версии cocos2dx воссоздает все буферы и текстуры, когда приложение выводится на передний план после того, как долгое время оставалось в фоновом режиме.
Я новичок в Metal, и мой вопрос: нужно ли воссоздавать MTLBuffer, MTLTexture и другие ресурсы Metal в качестве GLES?
1 ответ
Нет необходимости воссоздавать ресурсы Metal, когда приложение возвращается в активное состояние из фонового состояния.
С другой стороны, поскольку текстуры и буферы могут быть большими и поскольку они находятся в системной памяти в течение всего срока их службы (iOS имеет унифицированную архитектуру памяти и не имеет системы подкачки), вы можете захотеть освободить некоторые или все свои Используйте металлические ресурсы при входе в фоновое состояние, чтобы уменьшить вероятность того, что ваше приложение будет остановлено, когда другому приложению потребуется память, которую оно использует. В этом случае вы воссоздаете эти ресурсы, если / когда ваше приложение вернется из фонового состояния.