|
|
@ -306,6 +306,9 @@ void PresentManager::CopyToSwapchain(Frame* frame) {
|
|
|
|
image_count = swapchain.GetImageCount();
|
|
|
|
image_count = swapchain.GetImageCount();
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ANDROID
|
|
|
|
|
|
|
|
std::unique_lock lock{recreate_surface_mutex};
|
|
|
|
|
|
|
|
|
|
|
|
const auto needs_recreation = [&] {
|
|
|
|
const auto needs_recreation = [&] {
|
|
|
|
if (last_render_surface != render_window.GetWindowInfo().render_surface) {
|
|
|
|
if (last_render_surface != render_window.GetWindowInfo().render_surface) {
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
@ -316,9 +319,6 @@ void PresentManager::CopyToSwapchain(Frame* frame) {
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ANDROID
|
|
|
|
|
|
|
|
std::unique_lock lock{recreate_surface_mutex};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
recreate_surface_cv.wait_for(lock, std::chrono::milliseconds(400),
|
|
|
|
recreate_surface_cv.wait_for(lock, std::chrono::milliseconds(400),
|
|
|
|
[&]() { return !needs_recreation(); });
|
|
|
|
[&]() { return !needs_recreation(); });
|
|
|
|
|
|
|
|
|
|
|
|