From a94d940c75456714b1c4425dde1e44802cb838f7 Mon Sep 17 00:00:00 2001 From: Craig Donner Date: Wed, 19 Oct 2016 17:18:17 -0700 Subject: [PATCH] Keep protected content in EGLImage attrs as needed. When image_crop isn't supported, we also throw away the protected_content_ext attrs in GLConsumer. Instead, keep them around if they're used. Bug: 32222880 Change-Id: Ic182810cbaacdfaf912c57667f5176d3e47941a9 --- libs/gui/GLConsumer.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libs/gui/GLConsumer.cpp b/libs/gui/GLConsumer.cpp index aa0db4506c..10e999c228 100644 --- a/libs/gui/GLConsumer.cpp +++ b/libs/gui/GLConsumer.cpp @@ -1228,14 +1228,19 @@ EGLImageKHR GLConsumer::EglImage::createImage(EGLDisplay dpy, EGL_NONE, }; if (!crop.isValid()) { - // No crop rect to set, so terminate the attrib array before the crop. - attrs[2] = EGL_NONE; + // No crop rect to set, so leave the crop out of the attrib array. Make + // sure to propagate the protected content attrs if they are set. + attrs[2] = attrs[10]; + attrs[3] = attrs[11]; + attrs[4] = EGL_NONE; } else if (!isEglImageCroppable(crop)) { // The crop rect is not at the origin, so we can't set the crop on the // EGLImage because that's not allowed by the EGL_ANDROID_image_crop // extension. In the future we can add a layered extension that // removes this restriction if there is hardware that can support it. - attrs[2] = EGL_NONE; + attrs[2] = attrs[10]; + attrs[3] = attrs[11]; + attrs[4] = EGL_NONE; } eglInitialize(dpy, 0, 0); EGLImageKHR image = eglCreateImageKHR(dpy, EGL_NO_CONTEXT, -- 2.11.0