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
This commit is contained in:
Mathias Agopian 2013-08-21 15:23:15 -07:00
parent 56968ec0bf
commit 4ceff3d5ef
2 changed files with 3 additions and 0 deletions

View File

@ -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;
}
}

View File

@ -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);