Explorar o código

Android: prevent using SW_GetOutputSize with software renderer (Bug 4669)

Sylvain Becker %!s(int64=5) %!d(string=hai) anos
pai
achega
98cc7589b1
Modificáronse 1 ficheiros con 8 adicións e 0 borrados
  1. 8 0
      src/render/software/SDL_render_sw.c

+ 8 - 0
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;