tgoop.com/random_rust_dev/139
Last Update:
Что делать, если хотя бы одна из размерностей окна стала 0?
В вулкане есть требование, что бы image и swapchain были больше 0 по всем осям.
А еще есть требование, что бы размер swapchain-а был между текущими min и max, которые можно получить у девайса.
Которые могут быть с нулями.
Как тогда создать swapchain? Или пересоздать при изменении размера.mev
предлагает пользователю API Surface
, который прячет все ужасы вулканского WSI, включая семафоры, пересоздание swapchain-ов с использование механизма retire, SUBOPTIMAL и OUT_OF_DATE ситуации.
При запросе следующего фрейма mev::Surface
может пересоздать swapchain на лету если тот устарел... или его вообще еще нет.
А так же удалит старые, когда можно будет - спасибо VK_EXT_swapchain_maintenance1
- без ожидания остановки всего девайса.
Итак, swapchain безнадежно устарел, пора пересоздать. А максимальная высота и/или ширина сейчас 0. Что делать?
Отдавать ошибку пользователю? Как он ее будет хэндлить? Не хотелось бы вообще думать об этом.
Может создать image размера 1х1 и притвориться, что это и есть картинка для этого surface? А почему бы и нет. Как пользователь узнает? Surface же в 0 пикселей.
BY Random Rust Dev
Share with your friend now:
tgoop.com/random_rust_dev/139