Early reject drawText calls that will not draw
bug:17114102
Prevents high contrast text from drawing invisible text.
Also fixes stroked text bounds calculation.
Change-Id: Iaeff51ead8b7b8ef2a1a0ca8b89598564e0d443f
diff --git a/libs/hwui/Renderer.h b/libs/hwui/Renderer.h
index f5cd266..6d4bb4a 100644
--- a/libs/hwui/Renderer.h
+++ b/libs/hwui/Renderer.h
@@ -67,6 +67,18 @@
return resultMode;
}
+ // TODO: move to a method on android:Paint
+ static inline bool paintWillNotDraw(const SkPaint& paint) {
+ return paint.getAlpha() == 0
+ && getXfermode(paint.getXfermode()) != SkXfermode::kClear_Mode;
+ }
+
+ // TODO: move to a method on android:Paint
+ static inline bool paintWillNotDrawText(const SkPaint& paint) {
+ return paint.getAlpha() == 0
+ && paint.getLooper() == NULL
+ && getXfermode(paint.getXfermode()) == SkXfermode::kSrcOver_Mode;
+ }
// ----------------------------------------------------------------------------
// Frame state operations
// ----------------------------------------------------------------------------