am d0c20394: am 2cfbef25: Merge "Fix inverse orientation when original is not applied first." into lmp-dev

* commit 'd0c20394d26cb6d1662db6b8f489500c62f8c002':
  Fix inverse orientation when original is not applied first.
This commit is contained in:
Michael Lentine 2014-08-20 15:56:31 +00:00 committed by Android Git Automerger
commit 62d623c6bd

View File

@ -348,8 +348,17 @@ FloatRect Layer::computeCrop(const sp<const DisplayDevice>& hw) const {
int winWidth = s.active.w; int winWidth = s.active.w;
int winHeight = s.active.h; int winHeight = s.active.h;
if (invTransform & NATIVE_WINDOW_TRANSFORM_ROT_90) { if (invTransform & NATIVE_WINDOW_TRANSFORM_ROT_90) {
// If the activeCrop has been rotate the ends are rotated but not
// the space itself so when transforming ends back we can't rely on
// a modification of the axes of rotation. To account for this we
// need to reorient the inverse rotation in terms of the current
// axes of rotation.
bool is_h_flipped = (invTransform & NATIVE_WINDOW_TRANSFORM_FLIP_H) != 0;
bool is_v_flipped = (invTransform & NATIVE_WINDOW_TRANSFORM_FLIP_V) != 0;
if (is_h_flipped == is_v_flipped) {
invTransform ^= NATIVE_WINDOW_TRANSFORM_FLIP_V | invTransform ^= NATIVE_WINDOW_TRANSFORM_FLIP_V |
NATIVE_WINDOW_TRANSFORM_FLIP_H; NATIVE_WINDOW_TRANSFORM_FLIP_H;
}
winWidth = s.active.h; winWidth = s.active.h;
winHeight = s.active.w; winHeight = s.active.w;
} }