Метод изменения размера не зависит от нехватки памяти.Почти на любом устройстве у вас должно быть достаточно памяти для хранения кадрового буфера и нескольких изображений на экране.Таким образом, вам не хватит памяти, только если вы попытаетесь сохранить в памяти множество растровых изображений (в полном разрешении или в виде миниатюр).Если вы хотите поддерживать произвольное количество изображений, вам потребуется схема, в которой вы сохраняете только растровые изображения в памяти для текущих видимых миниатюр, а также некоторые дополнительные «предыдущие» и «следующие» для плавной прокрутки.Вам нужно будет извлекать новые из хранилища по мере их прокрутки пользователем, заменяя те, которые находятся в противоположном направлении прокрутки.
Если у вас есть возможность хранить миниатюры в хранилище вместе с изображениями в полном разрешении, тогда вы должны просто загрузить их, пока вам не понадобится версия с полным разрешением.Это значительно упростит отслеживание прокрутки (и использование меньшей полосы пропускания, если «хранилище» == «облако», или питания, если устройство работает от батареи и т. Д.).
В противном случае, если вына самом деле можно загружать только изображения в полном разрешении из хранилища, тогда изменение размера на графическом процессоре, вероятно, быстрее, но будет использовать больше временной памятиВы можете попробовать использовать VK_EXT_external_memory_host, чтобы избежать одной из копий при изменении размера графического процессора.Использование большего количества переходной памяти не должно быть проблемой, если вы храните в памяти только видимые и почти видимые изображения.