Android: prevent using SW_GetOutputSize with software renderer (Bug 4669)
diff --git a/src/render/software/SDL_render_sw.c b/src/render/software/SDL_render_sw.c
index 088a0a5..768dcbe 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;