diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-08-19 17:48:48 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-08-19 17:48:48 -0700 |
| commit | ba5372f8182ba64e0a48ef89f04be74f53fc5c0e (patch) | |
| tree | 3d622eaa1c789d79587d01e9ec59000c794f361f /libs/surfaceflinger/SurfaceFlinger.cpp | |
| parent | b5f2ce6e2f3395fb944136d4d88aec4ac0783aca (diff) | |
| parent | 18b6b49ea5235fb6c0802db9a0cc2c6dd20646cb (diff) | |
| download | frameworks_base-ba5372f8182ba64e0a48ef89f04be74f53fc5c0e.zip frameworks_base-ba5372f8182ba64e0a48ef89f04be74f53fc5c0e.tar.gz frameworks_base-ba5372f8182ba64e0a48ef89f04be74f53fc5c0e.tar.bz2 | |
Merge change 22021 into eclair
* changes:
fix a bug that caused the PixelFormat viewed by Surface to be wrong.
Diffstat (limited to 'libs/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | libs/surfaceflinger/SurfaceFlinger.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/SurfaceFlinger.cpp index 102899c..3824024 100644 --- a/libs/surfaceflinger/SurfaceFlinger.cpp +++ b/libs/surfaceflinger/SurfaceFlinger.cpp @@ -1239,9 +1239,11 @@ sp<ISurface> SurfaceFlinger::createSurface(ClientID clientId, int pid, switch (flags & eFXSurfaceMask) { case eFXSurfaceNormal: if (UNLIKELY(flags & ePushBuffers)) { - layer = createPushBuffersSurfaceLocked(client, d, id, w, h, flags); + layer = createPushBuffersSurfaceLocked(client, d, id, + w, h, flags); } else { - layer = createNormalSurfaceLocked(client, d, id, w, h, format, flags); + layer = createNormalSurfaceLocked(client, d, id, + w, h, flags, format); } break; case eFXSurfaceBlur: @@ -1255,8 +1257,13 @@ sp<ISurface> SurfaceFlinger::createSurface(ClientID clientId, int pid, if (layer != 0) { setTransactionFlags(eTransactionNeeded); surfaceHandle = layer->getSurface(); - if (surfaceHandle != 0) - surfaceHandle->getSurfaceData(params); + if (surfaceHandle != 0) { + params->token = surfaceHandle->getToken(); + params->identity = surfaceHandle->getIdentity(); + params->width = w; + params->height = h; + params->format = format; + } } return surfaceHandle; @@ -1264,7 +1271,8 @@ sp<ISurface> SurfaceFlinger::createSurface(ClientID clientId, int pid, sp<LayerBaseClient> SurfaceFlinger::createNormalSurfaceLocked( const sp<Client>& client, DisplayID display, - int32_t id, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags) + int32_t id, uint32_t w, uint32_t h, uint32_t flags, + PixelFormat& format) { // initialize the surfaces switch (format) { // TODO: take h/w into account |
