Explorar o código

Fixed bug 4669: Android software renderer, black screen when window resizes

Using the software SDL_Renderer on Android leads to GL errors & black screen when window resizes
Sylvain Becker %!s(int64=5) %!d(string=hai) anos
pai
achega
f2157b6c25

+ 1 - 1
src/core/android/SDL_android.c

@@ -732,7 +732,7 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeResize)(
 
     if (Android_Window)
     {
-        Android_SendResize(Android_Window);
+        Android_send_resize = 1;
     }
 
     SDL_UnlockMutex(Android_ActivityMutex);

+ 5 - 0
src/video/android/SDL_androidevents.c

@@ -66,6 +66,11 @@ android_egl_context_restore(SDL_Window *window)
             event.type = SDL_RENDER_DEVICE_RESET;
             SDL_PushEvent(&event);
         }
+
+        if (Android_send_resize) {
+            Android_send_resize = 0;
+            Android_SendResize(window);
+        }
     }
 }
 

+ 1 - 0
src/video/android/SDL_androidvideo.c

@@ -69,6 +69,7 @@ static int Android_ScreenRate      = 0;
 SDL_sem *Android_PauseSem          = NULL;
 SDL_sem *Android_ResumeSem         = NULL;
 SDL_mutex *Android_ActivityMutex   = NULL;
+int Android_send_resize            = 0;
 
 static int
 Android_Available(void)

+ 1 - 0
src/video/android/SDL_androidvideo.h

@@ -44,6 +44,7 @@ extern int Android_SurfaceWidth;
 extern int Android_SurfaceHeight;
 extern SDL_sem *Android_PauseSem, *Android_ResumeSem;
 extern SDL_mutex *Android_ActivityMutex;
+extern int Android_send_resize;
 
 #endif /* SDL_androidvideo_h_ */