From 1f92c9dcace655b74bc7a938abc92578a3aa058f Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Mon, 24 Mar 2014 11:04:42 -0300 Subject: [PATCH] Emit SDL_RENDER_DEVICE_RESET on Android when the GLES context is recreated --- WhatsNew.txt | 9 +++++++++ src/video/android/SDL_androidevents.c | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/WhatsNew.txt b/WhatsNew.txt index bcbdcd1023c66..cadd3157dae60 100644 --- a/WhatsNew.txt +++ b/WhatsNew.txt @@ -1,6 +1,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 164126cf707f7..907d7306f0ede 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); } }