Preapre region tracking in layers

Change-Id: Ied1fa0d36c99ef4e33cb8fde7e3106a793db3a4c
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index f005573..b933232 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -697,13 +697,7 @@
     if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) {
         Rect bounds(left, top, right, bottom);
         transform.mapRect(bounds);
-        if (bounds.intersect(*mSnapshot->clipRect)) {
-            bounds.snapToPixelBoundaries();
-            android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
-            if (!dirty.isEmpty()) {
-                mSnapshot->region->orSelf(dirty);
-            }
-        }
+        dirtyLayerUnchecked(bounds, mSnapshot->region);
     }
 #endif
 }
@@ -713,12 +707,18 @@
 #if RENDER_LAYERS_AS_REGIONS
     if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) {
         Rect bounds(left, top, right, bottom);
-        if (bounds.intersect(*mSnapshot->clipRect)) {
-            bounds.snapToPixelBoundaries();
-            android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
-            if (!dirty.isEmpty()) {
-                mSnapshot->region->orSelf(dirty);
-            }
+        dirtyLayerUnchecked(bounds, mSnapshot->region);
+    }
+#endif
+}
+
+void OpenGLRenderer::dirtyLayerUnchecked(Rect& bounds, Region* region) {
+#if RENDER_LAYERS_AS_REGIONS
+    if (bounds.intersect(*mSnapshot->clipRect)) {
+        bounds.snapToPixelBoundaries();
+        android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
+        if (!dirty.isEmpty()) {
+            region->orSelf(dirty);
         }
     }
 #endif