SF: Apply translations to transparent region
Correctly applies translation-only transforms to the transparent
region so that it aligns with the layer bounds in screen space.
Bug: 28220791
Change-Id: If9137b873f4b89890127671d8c45745e079f1cbc
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index a69b11b..91815f3 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1719,17 +1719,13 @@
// Remove the transparent area from the visible region
if (translucent) {
const Transform tr(s.active.transform);
- if (tr.transformed()) {
- if (tr.preserveRects()) {
- // transform the transparent region
- transparentRegion = tr.transform(s.activeTransparentRegion);
- } else {
- // transformation too complex, can't do the
- // transparent region optimization.
- transparentRegion.clear();
- }
+ if (tr.preserveRects()) {
+ // transform the transparent region
+ transparentRegion = tr.transform(s.activeTransparentRegion);
} else {
- transparentRegion = s.activeTransparentRegion;
+ // transformation too complex, can't do the
+ // transparent region optimization.
+ transparentRegion.clear();
}
}