From: Mathias Agopian Date: Wed, 21 Aug 2013 22:23:15 +0000 (-0700) Subject: screenshot layers wouldn't work in some cases X-Git-Tag: android-x86-4.4-r1~85 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4ceff3d5efd27c164788bb2b3f0fd17c691a0204;p=android-x86%2Fframeworks-native.git screenshot layers wouldn't work in some cases specifically when the display size and the screenshot window size didn't match, the buffer would be rejected. We simply fix this by setting the scalling mode to "SCALE_TO_WINDOW". Bug: 9992306 Change-Id: Ib821767899af330bb70d3cbbfa7d41b02794a075 --- diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index d88f6d0dda..f867e86bc8 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -991,6 +991,8 @@ Region Layer::latchBuffer(bool& recomputeVisibleRegions) if (front.active.w != bufWidth || front.active.h != bufHeight) { // reject this buffer + //ALOGD("rejecting buffer: bufWidth=%d, bufHeight=%d, front.active.{w=%d, h=%d}", + // bufWidth, bufHeight, front.active.w, front.active.h); return true; } } diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 3058af7afc..a15114213a 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -2769,6 +2769,7 @@ status_t SurfaceFlinger::captureScreenImplLocked( int err = 0; err = native_window_set_buffers_dimensions(window, reqWidth, reqHeight); + err |= native_window_set_scaling_mode(window, NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW); err |= native_window_set_buffers_format(window, HAL_PIXEL_FORMAT_RGBA_8888); err |= native_window_set_usage(window, usage);