Break the dependency on the wrapper libEGL. This was causing dlsym to return the pointer to the wrapper's function when SwiftShader didn't support an entry point. Bug 25152138 Change-Id: I92d1c9258c823acf0dc60dca9dc3d7dd552512b3 Reviewed-on: https://swiftshader-review.googlesource.com/4120 Reviewed-by: Nicolas Capens <capn@google.com> Tested-by: Nicolas Capens <capn@google.com> Tested-by: Greg Hartman <ghartman@google.com>
diff --git a/src/OpenGL/include/EGL/eglplatform.h b/src/OpenGL/include/EGL/eglplatform.h index 3ab8844..1a3cd2e 100644 --- a/src/OpenGL/include/EGL/eglplatform.h +++ b/src/OpenGL/include/EGL/eglplatform.h
@@ -85,8 +85,6 @@ #elif defined(__ANDROID__) || defined(ANDROID) -#include <android/native_window.h> - struct egl_native_pixmap_t; typedef struct ANativeWindow* EGLNativeWindowType;
diff --git a/src/OpenGL/libEGL/Android.mk b/src/OpenGL/libEGL/Android.mk index 9ef2a77..132a3e0 100644 --- a/src/OpenGL/libEGL/Android.mk +++ b/src/OpenGL/libEGL/Android.mk
@@ -29,7 +29,6 @@ COMMON_SHARED_LIBRARIES := \ libdl \ liblog \ - libandroid \ libutils \ libcutils \ libhardware \
diff --git a/src/OpenGL/libEGL/Surface.cpp b/src/OpenGL/libEGL/Surface.cpp index 9654ec2..fe6de95 100644 --- a/src/OpenGL/libEGL/Surface.cpp +++ b/src/OpenGL/libEGL/Surface.cpp
@@ -230,6 +230,22 @@ frameBuffer = nullptr; } +#ifdef __ANDROID__ +static int32_t getWindowProp(ANativeWindow* window, int what) { + int value; + int res = window->query(window, what, &value); + return res < 0 ? res : value; +} + +static int32_t ANativeWindow_getHeight(ANativeWindow* window) { + return getWindowProp(window, NATIVE_WINDOW_HEIGHT); +} + +static int32_t ANativeWindow_getWidth(ANativeWindow* window) { + return getWindowProp(window, NATIVE_WINDOW_WIDTH); +} +#endif + bool WindowSurface::initialize() { ASSERT(!frameBuffer && !backBuffer && !depthStencil);