am 0cd545f1: sometimes we would incorrectly scale the content of a surface

* commit '0cd545f14261d829513e0d6e8fa5e4e4f3372b3d':
  sometimes we would incorrectly scale the content of a surface
This commit is contained in:
Mathias Agopian 2012-06-07 17:16:52 -07:00 committed by Android Git Automerger
commit b2c1cfbe95

View File

@ -469,18 +469,31 @@ uint32_t Layer::doTransaction(uint32_t flags)
front.requested.crop.getWidth(),
front.requested.crop.getHeight());
if (!isFixedSize()) {
// this will make sure LayerBase::doTransaction doesn't update
// the drawing state's geometry
flags |= eDontUpdateGeometryState;
}
// record the new size, form this point on, when the client request
// a buffer, it'll get the new size.
mSurfaceTexture->setDefaultBufferSize(
temp.requested.w, temp.requested.h);
}
if (!isFixedSize()) {
const bool resizePending = (temp.requested.w != temp.active.w) ||
(temp.requested.h != temp.active.h);
if (resizePending) {
// don't let LayerBase::doTransaction update the drawing state
// if we have a pending resize, unless we are in fixed-size mode.
// the drawing state will be updated only once we receive a buffer
// with the correct size.
//
// in particular, we want to make sure the clip (which is part
// of the geometry state) is latched together with the size but is
// latched immediately when no resizing is involved.
flags |= eDontUpdateGeometryState;
}
}
return LayerBase::doTransaction(flags);
}