SurfaceFlinger: Inherit Alpha for child surfaces.
Necessary for various animations to work correctly and
for the general goal of treating child surfaces like
pixels in the parent surface.
Test: Includes new test in SurfaceFlinger_test
Bug: None yet ;)
Change-Id: Ic8309518bd327bbba6ad2f79f265e24cf37898e7
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index f8d98d9..e21be8b 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -459,6 +459,15 @@
Transform getTransform() const;
+ // Returns the Alpha of the Surface, accounting for the Alpha
+ // of parent Surfaces in the hierarchy (alpha's will be multiplied
+ // down the hierarchy).
+#ifdef USE_HWC2
+ float getAlpha() const;
+#else
+ uint8_t getAlpha() const;
+#endif
+
void traverseInReverseZOrder(const std::function<void(Layer*)>& exec);
void traverseInZOrder(const std::function<void(Layer*)>& exec);