summaryrefslogtreecommitdiffstats
path: root/include/hardware/hwcomposer.h
diff options
context:
space:
mode:
authorDan Stoza <stoza@google.com>2015-02-12 10:11:21 -0800
committerDan Stoza <stoza@google.com>2015-02-25 13:42:18 -0800
commit811445a3f31023985b498312da3d9690dc20ca11 (patch)
tree5a11937a44a0ad3f2cfc6dc802dcaf797480d84c /include/hardware/hwcomposer.h
parent4f5949b5dda4a2e95d29e1aa3effb22c678df21a (diff)
downloadhardware_libhardware-811445a3f31023985b498312da3d9690dc20ca11.zip
hardware_libhardware-811445a3f31023985b498312da3d9690dc20ca11.tar.gz
hardware_libhardware-811445a3f31023985b498312da3d9690dc20ca11.tar.bz2
HWC 1.5: Add per-layer damage region
This adds an array of rects to hwc_layer_1_t that define which portions of that layer's source buffer have been modified. If there are a non-zero number of rects, then any portion of the source buffer not touched by one of the rects may safely be assumed to not have been modified. If no rects are defined, then the whole source buffer must be assumed to have been modified. Change-Id: Id5efafee74602ed7d76609180e334ed203c23f7e
Diffstat (limited to 'include/hardware/hwcomposer.h')
-rw-r--r--include/hardware/hwcomposer.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/include/hardware/hwcomposer.h b/include/hardware/hwcomposer.h
index 3dfb4fd..aa466b3 100644
--- a/include/hardware/hwcomposer.h
+++ b/include/hardware/hwcomposer.h
@@ -299,8 +299,29 @@ typedef struct hwc_layer_1 {
*/
uint8_t planeAlpha;
- /* reserved for future use */
+ /* Pad to 32 bits */
uint8_t _pad[3];
+
+ /*
+ * Availability: HWC_DEVICE_API_VERSION_1_5
+ *
+ * This defines the region of the source buffer that has been
+ * modified since the last frame.
+ *
+ * If surfaceDamage.numRects > 0, then it may be assumed that any
+ * portion of the source buffer not covered by one of the rects has
+ * not been modified this frame. If surfaceDamage.numRects == 0,
+ * then the whole source buffer must be treated as if it had been
+ * modified.
+ *
+ * If the layer's contents are not modified relative to the prior
+ * prepare/set cycle, surfaceDamage will contain exactly one empty
+ * rect ([0, 0, 0, 0]).
+ *
+ * The damage rects are relative to the pre-transformed buffer, and
+ * their origin is the top-left corner.
+ */
+ hwc_region_t surfaceDamage;
};
};
@@ -309,13 +330,13 @@ typedef struct hwc_layer_1 {
* For 64-bit mode, this struct is 120 bytes (and 8-byte aligned), and needs
* to be padded as such to maintain binary compatibility.
*/
- uint8_t reserved[120 - 96];
+ uint8_t reserved[120 - 112];
#else
/*
* For 32-bit mode, this struct is 96 bytes, and needs to be padded as such
* to maintain binary compatibility.
*/
- uint8_t reserved[96 - 76];
+ uint8_t reserved[96 - 84];
#endif
} hwc_layer_1_t;