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;