Fixed bug #14173 - Android / SDL_Renderer Vulkan : going background / foreground produces a black screen.
need to recreate the swap chain + send SDL_EVENT_RENDER_DEVICE_RESET event
This commit is contained in:
@@ -2467,7 +2467,7 @@ static VkResult VULKAN_CreateWindowSizeDependentResources(SDL_Renderer *renderer
|
|||||||
|
|
||||||
result = VULKAN_CreateSwapChain(renderer, w, h);
|
result = VULKAN_CreateSwapChain(renderer, w, h);
|
||||||
if (result != VK_SUCCESS) {
|
if (result != VK_SUCCESS) {
|
||||||
rendererData->recreateSwapchain = VK_TRUE;
|
rendererData->recreateSwapchain = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
rendererData->viewportDirty = true;
|
rendererData->viewportDirty = true;
|
||||||
@@ -2517,6 +2517,13 @@ static void VULKAN_WindowEvent(SDL_Renderer *renderer, const SDL_WindowEvent *ev
|
|||||||
if (event->type == SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED) {
|
if (event->type == SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED) {
|
||||||
rendererData->recreateSwapchain = true;
|
rendererData->recreateSwapchain = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SDL_PLATFORM_ANDROID
|
||||||
|
// Prevent black screen when app returns from background
|
||||||
|
if (event->type == SDL_EVENT_WINDOW_RESTORED) {
|
||||||
|
VULKAN_HandleDeviceLost(renderer);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool VULKAN_SupportsBlendMode(SDL_Renderer *renderer, SDL_BlendMode blendMode)
|
static bool VULKAN_SupportsBlendMode(SDL_Renderer *renderer, SDL_BlendMode blendMode)
|
||||||
|
|||||||
Reference in New Issue
Block a user