summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderProperties.h
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-04-21 15:13:29 -0700
committerChris Craik <ccraik@google.com>2015-04-27 18:12:07 +0000
commit856f0cc3e382206e67c1a62fe878627d7dd9ada5 (patch)
tree6836c06a66d3dc21d5ccfc6d819d6e5e0e5d8da0 /libs/hwui/RenderProperties.h
parent580c30a63353f67433da25ef7b90913300e0372f (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.h20
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 {