diff options
| author | 2011-07-13 15:24:42 -0700 | |
|---|---|---|
| committer | 2011-07-19 13:05:11 -0700 | |
| commit | 7734ebfe47f42f980c1b44c1f284a91d8ad1d6c7 (patch) | |
| tree | abeca227f4c6410653109904568d0c6391e72f5c /libs/gui/SurfaceTextureClient.cpp | |
| parent | 0c696c1ad2d9b349be43a0819e886250d9171000 (diff) | |
Add set_scaling_mode() to ANativeWindow.
This allows to specify the scaling mode independently from
the buffer size.
Change-Id: Iaa2baa660445531a97d3fac192e580f4929c5d3b
Diffstat (limited to 'libs/gui/SurfaceTextureClient.cpp')
| -rw-r--r-- | libs/gui/SurfaceTextureClient.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp index d5b7c89f8f..fec80ef932 100644 --- a/libs/gui/SurfaceTextureClient.cpp +++ b/libs/gui/SurfaceTextureClient.cpp @@ -286,6 +286,9 @@ int SurfaceTextureClient::perform(int operation, va_list args) case NATIVE_WINDOW_UNLOCK_AND_POST: res = dispatchUnlockAndPost(args); break; + case NATIVE_WINDOW_SET_SCALING_MODE: + res = dispatchSetScalingMode(args); + break; default: res = NAME_NOT_FOUND; break; @@ -340,6 +343,11 @@ int SurfaceTextureClient::dispatchSetBuffersFormat(va_list args) { return setBuffersFormat(f); } +int SurfaceTextureClient::dispatchSetScalingMode(va_list args) { + int m = va_arg(args, int); + return setScalingMode(m); +} + int SurfaceTextureClient::dispatchSetBuffersTransform(va_list args) { int transform = va_arg(args, int); return setBuffersTransform(transform); @@ -456,6 +464,18 @@ int SurfaceTextureClient::setBuffersFormat(int format) return NO_ERROR; } +int SurfaceTextureClient::setScalingMode(int mode) +{ + LOGV("SurfaceTextureClient::setScalingMode"); + Mutex::Autolock lock(mMutex); + // mode is validated on the server + status_t err = mSurfaceTexture->setScalingMode(mode); + LOGE_IF(err, "ISurfaceTexture::setScalingMode(%d) returned %s", + mode, strerror(-err)); + + return err; +} + int SurfaceTextureClient::setBuffersTransform(int transform) { LOGV("SurfaceTextureClient::setBuffersTransform"); |