Commit 1f92c9dcace655b74bc7a938abc92578a3aa058f

Gabriel Jacobo 2014-03-24T11:04:42

Emit SDL_RENDER_DEVICE_RESET on Android when the GLES context is recreated

diff --git a/WhatsNew.txt b/WhatsNew.txt
index bcbdcd1..cadd315 100644
--- a/WhatsNew.txt
+++ b/WhatsNew.txt
@@ -2,6 +2,15 @@
 This is a list of major changes in SDL's version history.
 
 ---------------------------------------------------------------------------
+2.0.4:
+---------------------------------------------------------------------------
+
+General:
+* Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers 
+  when the D3D device is lost, and from Android's event loop when the GLES
+  context had to be re created.
+
+---------------------------------------------------------------------------
 2.0.3:
 ---------------------------------------------------------------------------
 
diff --git a/src/video/android/SDL_androidevents.c b/src/video/android/SDL_androidevents.c
index 164126c..907d730 100644
--- a/src/video/android/SDL_androidevents.c
+++ b/src/video/android/SDL_androidevents.c
@@ -35,12 +35,14 @@ void android_egl_context_restore();
 void 
 android_egl_context_restore() 
 {
+    SDL_Event event;
     SDL_WindowData *data = (SDL_WindowData *) Android_Window->driverdata;
     if (SDL_GL_MakeCurrent(Android_Window, (SDL_GLContext) data->egl_context) < 0) {
         /* The context is no longer valid, create a new one */
-        /* FIXME: Notify the user that the context changed and textures need to be re created */
         data->egl_context = (EGLContext) SDL_GL_CreateContext(Android_Window);
         SDL_GL_MakeCurrent(Android_Window, (SDL_GLContext) data->egl_context);
+        event.type = SDL_RENDER_DEVICE_RESET;
+        SDL_PushEvent(&event);
     }
 }