From 7fc1b0349bc2ac8c880120dc5611f703faa7f06f Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Wed, 3 Feb 2016 19:45:06 -0800 Subject: Fix ripple clipping + quick rejection bug:26524690 Don't intersect the first clip with the viewport. Instead, the first clip op should always be a replace op. Additionally, only quick reject nodes that clip to bounds, since some nodes (like ripples) draw outside their own bounds. Change-Id: I96a52029f360328aba19af7349888cc0a026b5b1 --- libs/hwui/FrameBuilder.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libs/hwui/FrameBuilder.cpp') diff --git a/libs/hwui/FrameBuilder.cpp b/libs/hwui/FrameBuilder.cpp index a45721249542..1c765f65eb8f 100644 --- a/libs/hwui/FrameBuilder.cpp +++ b/libs/hwui/FrameBuilder.cpp @@ -208,7 +208,9 @@ void FrameBuilder::deferNodePropsAndOps(RenderNode& node) { mCanvasState.setClippingOutline(mAllocator, &(properties.getOutline())); } - if (!mCanvasState.quickRejectConservative(0, 0, width, height)) { + bool quickRejected = properties.getClipToBounds() + && mCanvasState.quickRejectConservative(0, 0, width, height); + if (!quickRejected) { // not rejected, so defer render as either Layer, or direct (possibly wrapped in saveLayer) if (node.getLayer()) { // HW layer -- cgit v1.2.3-59-g8ed1b