Emit SDL_RENDER_DEVICE_RESET on Android when the GLES context is recreated
parent
dd81dad1ad
commit
1f92c9dcac
|
@ -1,6 +1,15 @@
|
||||||
|
|
||||||
This is a list of major changes in SDL's version history.
|
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:
|
2.0.3:
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -35,12 +35,14 @@ void android_egl_context_restore();
|
||||||
void
|
void
|
||||||
android_egl_context_restore()
|
android_egl_context_restore()
|
||||||
{
|
{
|
||||||
|
SDL_Event event;
|
||||||
SDL_WindowData *data = (SDL_WindowData *) Android_Window->driverdata;
|
SDL_WindowData *data = (SDL_WindowData *) Android_Window->driverdata;
|
||||||
if (SDL_GL_MakeCurrent(Android_Window, (SDL_GLContext) data->egl_context) < 0) {
|
if (SDL_GL_MakeCurrent(Android_Window, (SDL_GLContext) data->egl_context) < 0) {
|
||||||
/* The context is no longer valid, create a new one */
|
/* 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);
|
data->egl_context = (EGLContext) SDL_GL_CreateContext(Android_Window);
|
||||||
SDL_GL_MakeCurrent(Android_Window, (SDL_GLContext) data->egl_context);
|
SDL_GL_MakeCurrent(Android_Window, (SDL_GLContext) data->egl_context);
|
||||||
|
event.type = SDL_RENDER_DEVICE_RESET;
|
||||||
|
SDL_PushEvent(&event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue