OSDN Git Service

Reject RenderNodes contents when clip is empty
authorChris Craik <ccraik@google.com>
Fri, 15 Jan 2016 00:15:03 +0000 (16:15 -0800)
committerChris Craik <ccraik@google.com>
Sat, 5 Mar 2016 00:28:31 +0000 (16:28 -0800)
bug:22630332

Change-Id: I326123de3154f655e35d649c242daea3b4f0fda0

libs/hwui/FrameBuilder.cpp

index 5642170..fd5856a 100644 (file)
@@ -203,8 +203,9 @@ void FrameBuilder::deferNodePropsAndOps(RenderNode& node) {
         mCanvasState.setClippingOutline(mAllocator, &(properties.getOutline()));
     }
 
-    bool quickRejected = properties.getClipToBounds()
-            && mCanvasState.quickRejectConservative(0, 0, width, height);
+    bool quickRejected = mCanvasState.currentSnapshot()->getRenderTargetClip().isEmpty()
+            || (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()) {