From 98cc7589b1bf2e2b2d9b31ec1e9f3c4abd11f849 Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Tue, 18 Jun 2019 10:41:11 +0200 Subject: [PATCH] Android: prevent using SW_GetOutputSize with software renderer (Bug 4669) --- src/render/software/SDL_render_sw.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/render/software/SDL_render_sw.c b/src/render/software/SDL_render_sw.c index 088a0a5a5..768dcbe53 100644 --- a/src/render/software/SDL_render_sw.c +++ b/src/render/software/SDL_render_sw.c @@ -79,6 +79,7 @@ SW_WindowEvent(SDL_Renderer * renderer, const SDL_WindowEvent *event) } } +#if !defined(ANDROID) static int SW_GetOutputSize(SDL_Renderer * renderer, int *w, int *h) { @@ -97,6 +98,7 @@ SW_GetOutputSize(SDL_Renderer * renderer, int *w, int *h) return -1; } } +#endif static int SW_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) @@ -820,7 +822,13 @@ SW_CreateRendererForSurface(SDL_Surface * surface) data->window = surface; renderer->WindowEvent = SW_WindowEvent; +#if defined(ANDROID) + /* Avoid using it with Android software renderer. While resizing in background, + * it ends up creating a broken texture because EGL context is not active. */ + renderer->GetOutputSize = NULL; +#else renderer->GetOutputSize = SW_GetOutputSize; +#endif renderer->CreateTexture = SW_CreateTexture; renderer->UpdateTexture = SW_UpdateTexture; renderer->LockTexture = SW_LockTexture;