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_hwc1.cpp b/services/surfaceflinger/SurfaceFlinger_hwc1.cpp
index 00700ab..de46dfa 100644
--- a/services/surfaceflinger/SurfaceFlinger_hwc1.cpp
+++ b/services/surfaceflinger/SurfaceFlinger_hwc1.cpp
@@ -1747,17 +1747,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();
}
}