SurfaceFlinger: SCALING_MODE_FREEZE cropping support

This change adss support for applying a buffer crop to layers with the
SCALING_MODE_FREEZE scaling mode.  These layers do not scale the image, but
rather treat all pixels outside the crop rectangle as fully transparent.

Change-Id: I762518e56a37aef7747f9b581df2f2589b232c49
Bug: 6299171
diff --git a/services/surfaceflinger/Transform.h b/services/surfaceflinger/Transform.h
index ec74243..4fe261a 100644
--- a/services/surfaceflinger/Transform.h
+++ b/services/surfaceflinger/Transform.h
@@ -77,6 +77,7 @@
             Rect    makeBounds(int w, int h) const;
             void    transform(float* point, int x, int y) const;
             Region  transform(const Region& reg) const;
+            Rect    transform(const Rect& bounds) const;
             Transform operator * (const Transform& rhs) const;
 
             // for debugging
@@ -112,7 +113,6 @@
     // assumes the last row is < 0 , 0 , 1 >
     vec2 transform(const vec2& v) const;
     vec3 transform(const vec3& v) const;
-    Rect transform(const Rect& bounds) const;
     uint32_t type() const;
     static bool absIsOne(float f);
     static bool isZero(float f);