SF Bounds caching 2/3: Compute and cache layer bounds during invalidate stage

- Compute and cache:
   - effective transform - transform applied to source bounds to get the screen bounds,
     taking into account parent scaling and parent transforms.
   - source bounds - bounds of the layer before any transformation is applied and before
      it has been cropped by its parents.
   - bounds - bounds of the layer cropped to its own crop as well as its parents bounds.
   - screen bounds - bounds in screen space calculated by transforming the layer bounds.
- Rename existing computeBounds and computeScreenBounds to make switch easier in
  future patch.
- Update cached bounds when reparenting layers for screenshots.
Note: this change doesn't use the cached values.

Test: go/wm-smoke
Test: atest -a libinput_tests inputflinger_tests SurfaceFlinger_test libsurfaceflinger_unittest SurfaceParcelable_test libgui_test
Change-Id: I5d6ec6fd4acb0f955de27b713691ed99b029dcc2
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 6546973..ca5954c 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -591,6 +591,9 @@
             const sp<Layer>& parent,
             bool addToCurrentState);
 
+    // Traverse through all the layers and compute and cache its bounds.
+    void computeLayerBounds();
+
     /* ------------------------------------------------------------------------
      * Boot animation, on/off animations and screen capture
      */