From 500b45a98a6183ff8ab7bae77e0a750a3cd45adc Mon Sep 17 00:00:00 2001 From: renchenglei Date: Fri, 28 Jun 2019 15:21:08 +0800 Subject: [PATCH] egl: Enable eglGetPlatformDisplay on Android Platform This helps to add eglGetPlatformDisplay support on Android Platform. Reviewed-by: Eric Engestrom --- src/egl/main/eglapi.c | 5 +++++ src/egl/main/egldisplay.c | 16 ++++++++++++++++ src/egl/main/egldisplay.h | 6 ++++++ 3 files changed, 27 insertions(+) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index cffa756365e..7c9d2c92a0f 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -405,6 +405,11 @@ _eglGetPlatformDisplayCommon(EGLenum platform, void *native_display, case EGL_PLATFORM_SURFACELESS_MESA: disp = _eglGetSurfacelessDisplay(native_display, attrib_list); break; +#endif +#ifdef HAVE_ANDROID_PLATFORM + case EGL_PLATFORM_ANDROID_KHR: + disp = _eglGetAndroidDisplay(native_display, attrib_list); + break; #endif case EGL_PLATFORM_DEVICE_EXT: disp = _eglGetDeviceDisplay(native_display, attrib_list); diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index acb0405822f..193443e056c 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -568,6 +568,22 @@ _eglGetSurfacelessDisplay(void *native_display, } #endif /* HAVE_SURFACELESS_PLATFORM */ +#ifdef HAVE_ANDROID_PLATFORM +_EGLDisplay* +_eglGetAndroidDisplay(void *native_display, + const EGLAttrib *attrib_list) +{ + + /* This platform recognizes no display attributes. */ + if (attrib_list != NULL && attrib_list[0] != EGL_NONE) { + _eglError(EGL_BAD_ATTRIBUTE, "eglGetPlatformDisplay"); + return NULL; + } + + return _eglFindDisplay(_EGL_PLATFORM_ANDROID, native_display, + attrib_list); +} +#endif /* HAVE_ANDROID_PLATFORM */ _EGLDisplay* _eglGetDeviceDisplay(void *native_display, diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h index f73ff99fbee..02ac4fb9a9d 100644 --- a/src/egl/main/egldisplay.h +++ b/src/egl/main/egldisplay.h @@ -315,6 +315,12 @@ _eglGetSurfacelessDisplay(void *native_display, const EGLAttrib *attrib_list); #endif +#ifdef HAVE_ANDROID_PLATFORM +_EGLDisplay* +_eglGetAndroidDisplay(void *native_display, + const EGLAttrib *attrib_list); +#endif + _EGLDisplay* _eglGetDeviceDisplay(void *native_display, const EGLAttrib *attrib_list); -- 2.30.2