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;