Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70463a65 authored by Alec Mouri's avatar Alec Mouri
Browse files

Use ANDROID_get_native_client_buffer in HWUI

ReliableSurface still needs AHardwareBuffer_to_ANativeWindowBuffer to
safely convert to an ANativeWindowBuffer to interop with the
interception methods, but when converting to EGLClientBuffer the EGL
extension should be used instead.

Bug: 152802621
Test: builds, boots
Change-Id: I49cfeee4d7e5d4e793891771686c2286d4ac79af
parent f2717938
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@
#include <GrContext.h>
#include <SkCanvas.h>
#include <SkImage.h>
#include <private/android/AHardwareBufferHelpers.h>
#include <utils/GLUtils.h>
#include <utils/NdkUtils.h>
#include <utils/Trace.h>
@@ -178,7 +177,7 @@ private:
                            uirenderer::renderthread::EglManager::eglErrorString());
        // We use an EGLImage to access the content of the buffer
        // The EGL image is later bound to a 2D texture
        EGLClientBuffer clientBuffer = (EGLClientBuffer)AHardwareBuffer_to_ANativeWindowBuffer(ahb);
        const EGLClientBuffer clientBuffer = eglGetNativeClientBufferANDROID(ahb);
        AutoEglImage autoImage(display, clientBuffer);
        if (autoImage.image == EGL_NO_IMAGE_KHR) {
            ALOGW("Could not create EGL image, err =%s",
+1 −3
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES3/gl3.h>
#include <private/android/AHardwareBufferHelpers.h>
#include <private/hwui/DrawGlInfo.h>
#include <utils/Color.h>
#include <utils/GLUtils.h>
@@ -111,8 +110,7 @@ void VkInteropFunctorDrawable::onDraw(SkCanvas* canvas) {
                            uirenderer::renderthread::EglManager::eglErrorString());
        // We use an EGLImage to access the content of the GraphicBuffer
        // The EGL image is later bound to a 2D texture
        EGLClientBuffer clientBuffer =
                (EGLClientBuffer)AHardwareBuffer_to_ANativeWindowBuffer(mFrameBuffer.get());
        const EGLClientBuffer clientBuffer = eglGetNativeClientBufferANDROID(mFrameBuffer.get());
        AutoEglImage autoImage(display, clientBuffer);
        if (autoImage.image == EGL_NO_IMAGE_KHR) {
            ALOGW("Could not create EGL image, err =%s",