From 098ffcd521cd272ee3a63174759cceeda618d2ef Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 10 Oct 2011 15:22:25 -0700 Subject: [PATCH] Don't call saveLayer() when it's not required Bug #5435653 saveLayer() can be extremely expensive on some GPU architectures. Avoiding this call greatly improve the rendering performance of drawables with strok + fill. Change-Id: Ib414174ba05d5bad56d942b8e67ab784e7d60b9e --- graphics/java/android/graphics/drawable/GradientDrawable.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java index de0fabc7bd8f7..50964d5e55468 100644 --- a/graphics/java/android/graphics/drawable/GradientDrawable.java +++ b/graphics/java/android/graphics/drawable/GradientDrawable.java @@ -285,7 +285,7 @@ public class GradientDrawable extends Drawable { of the fill (if any) without worrying about blending artifacts. */ final boolean useLayer = haveStroke && haveFill && st.mShape != LINE && - currStrokeAlpha < 255; + currStrokeAlpha < 255 && (mAlpha < 255 || mColorFilter != null); /* Drawing with a layer is slower than direct drawing, but it allows us to apply paint effects like alpha and colorfilter to