diff options
| author | 2016-10-19 17:18:17 -0700 | |
|---|---|---|
| committer | 2016-10-27 16:36:58 +0000 | |
| commit | a94d940c75456714b1c4425dde1e44802cb838f7 (patch) | |
| tree | ea7680c65ff41756c84368dd6e384aa9f8aae99e | |
| parent | 4466e11fd4469462cc6f7d218d4978eb335e16f2 (diff) | |
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
| -rw-r--r-- | libs/gui/GLConsumer.cpp | 11 |
1 files 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, |