summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Craig Donner <cdonner@google.com> 2016-10-19 17:18:17 -0700
committer Craig Donner <cdonner@google.com> 2016-10-27 16:36:58 +0000
commita94d940c75456714b1c4425dde1e44802cb838f7 (patch)
treeea7680c65ff41756c84368dd6e384aa9f8aae99e
parent4466e11fd4469462cc6f7d218d4978eb335e16f2 (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.cpp11
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,