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

Commit cd36eb44 authored by Michael Lentine's avatar Michael Lentine Committed by Android (Google) Code Review
Browse files

Merge "Modify EGL to disconnect the window when the surface gets destroyed." into lmp-dev

parents 330cf473 843cbb24
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -830,8 +830,8 @@ status_t BufferQueueProducer::disconnect(int api) {
                    mCore->mSidebandStream.clear();
                    mCore->mDequeueCondition.broadcast();
                    listener = mCore->mConsumerListener;
                } else {
                    BQ_LOGE("disconnect(P): connected to another API "
                } else if (mCore->mConnectedApi != BufferQueueCore::NO_CONNECTED_API) {
                    BQ_LOGE("disconnect(P): still connected to another API "
                            "(cur=%d req=%d)", mCore->mConnectedApi, api);
                    status = BAD_VALUE;
                }
+9 −0
Original line number Diff line number Diff line
@@ -572,6 +572,15 @@ EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
        return setError(EGL_BAD_SURFACE, EGL_FALSE);

    egl_surface_t * const s = get_surface(surface);
    ANativeWindow* window = s->win.get();
    if (window) {
        int result = native_window_api_disconnect(window, NATIVE_WINDOW_API_EGL);
        if (result != OK) {
            ALOGE("eglDestroySurface: native_window_api_disconnect (win=%p) "
                  "failed (%#x)",
                  window, result);
        }
    }
    EGLBoolean result = s->cnx->egl.eglDestroySurface(dp->disp.dpy, s->surface);
    if (result == EGL_TRUE) {
        _s.terminate();