Compute layer bounds over subset of VertexBuffer verts
bug:15538815
Change-Id: I0dbb54f656a6ae99a87c5734761107e1c2351b65
diff --git a/libs/hwui/VertexBuffer.h b/libs/hwui/VertexBuffer.h
index 5875f25..3837f88 100644
--- a/libs/hwui/VertexBuffer.h
+++ b/libs/hwui/VertexBuffer.h
@@ -62,7 +62,6 @@
mVertexCount = vertexCount;
mByteCount = mVertexCount * sizeof(TYPE);
mReallocBuffer = mBuffer = (void*)new TYPE[vertexCount];
- memset(mBuffer, 0, sizeof(TYPE) * vertexCount);
mCleanupMethod = &(cleanup<TYPE>);
@@ -86,13 +85,17 @@
* vertex buffer can't determine bounds more simply/efficiently
*/
template <class TYPE>
- void computeBounds() {
+ void computeBounds(int vertexCount = 0) {
if (!mVertexCount) {
mBounds.setEmpty();
return;
}
+
+ // default: compute over every vertex
+ if (vertexCount == 0) vertexCount = mVertexCount;
+
TYPE* current = (TYPE*)mBuffer;
- TYPE* end = current + mVertexCount;
+ TYPE* end = current + vertexCount;
mBounds.set(current->x, current->y, current->x, current->y);
for (; current < end; current++) {
mBounds.expandToCoverVertex(current->x, current->y);