libgui: Add plumbing for active rectangle

This change adds the plumbing to SurfaceTextureClient, BufferQueue, and
SurfaceTexture to get the active rectangle passed to the ANativeWindow to
the buffer consumer.

Change-Id: I35da0889b266327ebb079b6a7136fa3e2e8b00e6
diff --git a/include/gui/SurfaceTexture.h b/include/gui/SurfaceTexture.h
index f4ed226..7540ed8 100644
--- a/include/gui/SurfaceTexture.h
+++ b/include/gui/SurfaceTexture.h
@@ -151,13 +151,16 @@
     // texture as returned by updateTexImage().
     GLenum getCurrentTextureTarget() const;
 
-    // getCurrentCrop returns the cropping rectangle of the current buffer
+    // getCurrentCrop returns the cropping rectangle of the current buffer.
     Rect getCurrentCrop() const;
 
-    // getCurrentTransform returns the transform of the current buffer
+    // getCurrentActiveRect returns the active rectangle of the current buffer.
+    Rect getCurrentActiveRect() const;
+
+    // getCurrentTransform returns the transform of the current buffer.
     uint32_t getCurrentTransform() const;
 
-    // getCurrentScalingMode returns the scaling mode of the current buffer
+    // getCurrentScalingMode returns the scaling mode of the current buffer.
     uint32_t getCurrentScalingMode() const;
 
     // isSynchronousMode returns whether the SurfaceTexture is currently in
@@ -270,6 +273,12 @@
     // It gets set each time updateTexImage is called.
     Rect mCurrentCrop;
 
+    // mCurrentActiveRect is the active rectangle that applies to the current
+    // texture.  It gets set each time updateTexImage is called.  All pixels
+    // outside the active rectangle are be considered completely transparent for
+    // the purpose of window composition.
+    Rect mCurrentActiveRect;
+
     // mCurrentTransform is the transform identifier for the current texture. It
     // gets set each time updateTexImage is called.
     uint32_t mCurrentTransform;