diff options
| -rw-r--r-- | opengl/Android.bp | 6 | ||||
| -rw-r--r-- | opengl/libs/Android.bp | 17 | ||||
| -rw-r--r-- | opengl/libs/EGL/Loader.cpp | 4 | ||||
| -rw-r--r-- | opengl/libs/EGL/eglApi.cpp | 7 | ||||
| -rw-r--r-- | opengl/libs/EGL/egl_cache.cpp | 1 |
5 files changed, 35 insertions, 0 deletions
diff --git a/opengl/Android.bp b/opengl/Android.bp index c520bda140..aec5a95628 100644 --- a/opengl/Android.bp +++ b/opengl/Android.bp @@ -52,6 +52,12 @@ ndk_headers { license: "include/KHR/NOTICE", } +cc_library_headers { + name: "gl_headers", + vendor_available: true, + export_include_dirs: ["include"], +} + subdirs = [ "*", ] diff --git a/opengl/libs/Android.bp b/opengl/libs/Android.bp index 4e275db403..a3446368de 100644 --- a/opengl/libs/Android.bp +++ b/opengl/libs/Android.bp @@ -64,6 +64,16 @@ cc_defaults { "liblog", "libdl", ], + static_libs: [ + "libarect", + ], + header_libs: [ + "gl_headers", + "libsystem_headers", + "libhardware_headers", + "libnativebase_headers", + ], + export_header_lib_headers: ["gl_headers"], // we need to access the private Bionic header <bionic_tls.h> include_dirs: ["bionic/libc/private"], @@ -75,6 +85,7 @@ cc_defaults { cc_defaults { name: "egl_libs_defaults", defaults: ["gl_libs_defaults"], + vendor_available: true, cflags: [ "-DLOG_TAG=\"libEGL\"", ], @@ -85,6 +96,11 @@ cc_defaults { "libnativewindow", "libbacktrace", ], + target: { + vendor: { + exclude_shared_libs: ["libgraphicsenv"], + }, + }, } cc_library_static { @@ -129,6 +145,7 @@ cc_test { cc_defaults { name: "gles_libs_defaults", defaults: ["gl_libs_defaults"], + vendor_available: true, arch: { arm: { instruction_set: "arm", diff --git a/opengl/libs/EGL/Loader.cpp b/opengl/libs/EGL/Loader.cpp index 6e5c510d8d..32f8caa989 100644 --- a/opengl/libs/EGL/Loader.cpp +++ b/opengl/libs/EGL/Loader.cpp @@ -28,7 +28,9 @@ #include <cutils/properties.h> #include <log/log.h> +#ifndef __ANDROID_VNDK__ #include <graphicsenv/GraphicsEnv.h> +#endif #include <vndksupport/linker.h> #include "egl_trace.h" @@ -477,10 +479,12 @@ void *Loader::load_driver(const char* kind, ATRACE_CALL(); void* dso = nullptr; +#ifndef __ANDROID_VNDK__ android_namespace_t* ns = android_getDriverNamespace(); if (ns) { dso = load_updated_driver(kind, ns); } +#endif if (!dso) { dso = load_system_driver(kind); if (!dso) diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp index 835e72bf27..2a222ac551 100644 --- a/opengl/libs/EGL/eglApi.cpp +++ b/opengl/libs/EGL/eglApi.cpp @@ -1963,8 +1963,15 @@ EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface surface, EGLClientBuffer eglGetNativeClientBufferANDROID(const AHardwareBuffer *buffer) { clearError(); + // AHardwareBuffer_to_ANativeWindowBuffer is a platform-only symbol and thus + // this function cannot be implemented when this libEGL is built for + // vendors. +#ifndef __ANDROID_VNDK__ if (!buffer) return setError(EGL_BAD_PARAMETER, (EGLClientBuffer)0); return const_cast<ANativeWindowBuffer *>(AHardwareBuffer_to_ANativeWindowBuffer(buffer)); +#else + return setError(EGL_BAD_PARAMETER, (EGLClientBuffer)0); +#endif } // ---------------------------------------------------------------------------- diff --git a/opengl/libs/EGL/egl_cache.cpp b/opengl/libs/EGL/egl_cache.cpp index dc1a4af46e..579e422c1a 100644 --- a/opengl/libs/EGL/egl_cache.cpp +++ b/opengl/libs/EGL/egl_cache.cpp @@ -26,6 +26,7 @@ #include <inttypes.h> #include <sys/mman.h> #include <sys/stat.h> +#include <unistd.h> #include <thread> |