diff options
author | Mathias Agopian <mathias@google.com> | 2010-10-25 16:29:24 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-10-25 17:08:37 -0700 |
commit | 367dc0bd5f0fea8dcf9534d0e6b127dd467adc50 (patch) | |
tree | 2d16c1e91bda3d3c8b838dd4eea09e1311a8c33f /libs/surfaceflinger_client | |
parent | 38e5c8ef89065ee3dfd7721d20df8c061f219168 (diff) | |
download | frameworks_native-367dc0bd5f0fea8dcf9534d0e6b127dd467adc50.zip frameworks_native-367dc0bd5f0fea8dcf9534d0e6b127dd467adc50.tar.gz frameworks_native-367dc0bd5f0fea8dcf9534d0e6b127dd467adc50.tar.bz2 |
Updade Surface (ANativeWindow) format based on its buffers format
this is to allow applications to change the format of a surface's
buffer, and have it reflected in EGL; which is needed for
EGLConfig validation.
Change-Id: Iee074c30ad765881e2409c1d37450b05e561c44d
Diffstat (limited to 'libs/surfaceflinger_client')
-rw-r--r-- | libs/surfaceflinger_client/Surface.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/surfaceflinger_client/Surface.cpp b/libs/surfaceflinger_client/Surface.cpp index d44aab9..854a3c6 100644 --- a/libs/surfaceflinger_client/Surface.cpp +++ b/libs/surfaceflinger_client/Surface.cpp @@ -866,7 +866,18 @@ int Surface::setBuffersGeometry(int w, int h, int format) return BAD_VALUE; Mutex::Autolock _l(mSurfaceLock); + if (mConnected == NATIVE_WINDOW_API_EGL) { + return INVALID_OPERATION; + } + mBufferInfo.set(w, h, format); + if (format != 0) { + // we update the format of the surface as reported by query(). + // this is to allow applications to change the format of a surface's + // buffer, and have it reflected in EGL; which is needed for + // EGLConfig validation. + mFormat = format; + } return NO_ERROR; } |