diff options
author | Chris Craik <ccraik@google.com> | 2015-04-21 15:13:29 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2015-04-27 18:12:07 +0000 |
commit | 856f0cc3e382206e67c1a62fe878627d7dd9ada5 (patch) | |
tree | 6836c06a66d3dc21d5ccfc6d819d6e5e0e5d8da0 /libs/hwui/RenderProperties.h | |
parent | 580c30a63353f67433da25ef7b90913300e0372f (diff) |
Promote RenderProperties with an alpha to have a RenderLayer
bug:20254728
Change-Id: I0bd1d440fe46683b291d4c8ab07a630c34b2eadc
Diffstat (limited to 'libs/hwui/RenderProperties.h')
-rw-r--r-- | libs/hwui/RenderProperties.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libs/hwui/RenderProperties.h b/libs/hwui/RenderProperties.h index 61e98d22e427..a43566d91a5d 100644 --- a/libs/hwui/RenderProperties.h +++ b/libs/hwui/RenderProperties.h @@ -73,10 +73,6 @@ public: return false; } - LayerType type() const { - return mType; - } - bool setOpaque(bool opaque) { return RP_SET(mOpaque, opaque); } @@ -122,6 +118,11 @@ private: ~LayerProperties(); void reset(); + // Private since external users should go through properties().effectiveLayerType() + LayerType type() const { + return mType; + } + friend class RenderProperties; LayerType mType = LayerType::None; @@ -575,6 +576,17 @@ public: && getOutline().getAlpha() != 0.0f; } + LayerType effectiveLayerType() const { + LayerType type = mLayerProperties.mType; + if (type == LayerType::None + && !MathUtils::isZero(mPrimitiveFields.mAlpha) + && mPrimitiveFields.mAlpha < 1 + && mPrimitiveFields.mHasOverlappingRendering) { + return LayerType::RenderLayer; + } + return type; + } + private: // Rendering properties struct PrimitiveFields { |