Internal change
PiperOrigin-RevId: 486792117
This commit is contained in:
parent
6f38a7a21f
commit
1a151d9ffb
|
@ -38,20 +38,18 @@ static pthread_key_t egl_release_thread_key;
|
||||||
static pthread_once_t egl_release_key_once = PTHREAD_ONCE_INIT;
|
static pthread_once_t egl_release_key_once = PTHREAD_ONCE_INIT;
|
||||||
|
|
||||||
static void EglThreadExitCallback(void* key_value) {
|
static void EglThreadExitCallback(void* key_value) {
|
||||||
#if defined(__ANDROID__)
|
EGLDisplay current_display = eglGetCurrentDisplay();
|
||||||
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE,
|
if (current_display != EGL_NO_DISPLAY) {
|
||||||
EGL_NO_CONTEXT);
|
// Some implementations have chosen to allow EGL_NO_DISPLAY as a valid
|
||||||
#else
|
// display parameter for eglMakeCurrent. This behavior is not portable to
|
||||||
// Some implementations have chosen to allow EGL_NO_DISPLAY as a valid display
|
// all EGL implementations, and should be considered as an undocumented
|
||||||
// parameter for eglMakeCurrent. This behavior is not portable to all EGL
|
// vendor extension.
|
||||||
// implementations, and should be considered as an undocumented vendor
|
|
||||||
// extension.
|
|
||||||
// https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglMakeCurrent.xhtml
|
// https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglMakeCurrent.xhtml
|
||||||
//
|
// Instead, to release the current context, we pass the current display.
|
||||||
// NOTE: crashes on some Android devices (occurs with libGLES_meow.so).
|
// If the current display is already EGL_NO_DISPLAY, no context is current.
|
||||||
eglMakeCurrent(eglGetDisplay(EGL_DEFAULT_DISPLAY), EGL_NO_SURFACE,
|
eglMakeCurrent(current_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
|
||||||
EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
EGL_NO_CONTEXT);
|
||||||
#endif
|
}
|
||||||
eglReleaseThread();
|
eglReleaseThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user