mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-29 20:27:12 +01:00
005e2dff21
Make sure the thread is actually paused, and context backep-up, before SurfaceView is destroyed (eg surfaceDestroyed() actually returns). Add a timeout when surfaceDestroyed() is called, and check 'backup_done' variable. It prevents crashes like: #00 pc 000000000000c0d0 /system/lib64/libutils.so (android::RefBase::incStrong(void const*) const+8) #01 pc 000000000000c7f4 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::UpdateBufferList(ANativeWindowBuffer*)+284) #02 pc 000000000000c390 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::DequeueBuffer()+240) #03 pc 000000000000bb10 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::GetBuffer(EglSubResource*, EglMemoryDesc*)+64) #04 pc 000000000032732c /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::UpdateResource(EsxContext*)+116) #05 pc 0000000000326dd0 /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::GetResource(EsxContext*, EsxResource**, EsxResource**, int)+56) #06 pc 00000000002ae484 /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::AcquireBackBuffer(int)+364) #07 pc 0000000000249680 /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::Clear(unsigned int, unsigned int, unsigned int, EsxClearValues*)+1800) #08 pc 00000000002cb52c /vendor/lib64/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlClear(EsxDispatch*, unsigned int)+132) |
||
---|---|---|
.. | ||
SDL_androidclipboard.c | ||
SDL_androidclipboard.h | ||
SDL_androidevents.c | ||
SDL_androidevents.h | ||
SDL_androidgl.c | ||
SDL_androidgl.h | ||
SDL_androidkeyboard.c | ||
SDL_androidkeyboard.h | ||
SDL_androidmessagebox.c | ||
SDL_androidmessagebox.h | ||
SDL_androidmouse.c | ||
SDL_androidmouse.h | ||
SDL_androidtouch.c | ||
SDL_androidtouch.h | ||
SDL_androidvideo.c | ||
SDL_androidvideo.h | ||
SDL_androidvulkan.c | ||
SDL_androidvulkan.h | ||
SDL_androidwindow.c | ||
SDL_androidwindow.h |