Don't update 9patches on every frame.
Change-Id: I7ffb2365f83e0453e7d0a0cdcb3fc9308b305238
diff --git a/libs/hwui/Patch.h b/libs/hwui/Patch.h
index 1d08c64..a9109cd 100644
--- a/libs/hwui/Patch.h
+++ b/libs/hwui/Patch.h
@@ -18,6 +18,7 @@
#define ANDROID_UI_PATCH_H
#include <sys/types.h>
+#include <cstring>
#include "Vertex.h"
@@ -28,24 +29,28 @@
* Description of a patch.
*/
struct PatchDescription {
- PatchDescription(): xCount(0), yCount(0) { }
- PatchDescription(const uint32_t xCount, const uint32_t yCount):
+ PatchDescription(): bitmapWidth(0), bitmapHeight(0),
+ pixelWidth(0), pixelHeight(0), xCount(0), yCount(0) { }
+ PatchDescription(const float bitmapWidth, const float bitmapHeight,
+ const float pixelWidth, const float pixelHeight,
+ const uint32_t xCount, const uint32_t yCount):
+ bitmapWidth(bitmapWidth), bitmapHeight(bitmapHeight),
+ pixelWidth(pixelWidth), pixelHeight(pixelHeight),
xCount(xCount), yCount(yCount) { }
PatchDescription(const PatchDescription& description):
+ bitmapWidth(description.bitmapWidth), bitmapHeight(description.bitmapHeight),
+ pixelWidth(description.pixelWidth), pixelHeight(description.pixelHeight),
xCount(description.xCount), yCount(description.yCount) { }
+ float bitmapWidth;
+ float bitmapHeight;
+ float pixelWidth;
+ float pixelHeight;
uint32_t xCount;
uint32_t yCount;
bool operator<(const PatchDescription& rhs) const {
- if (xCount == rhs.xCount) {
- return yCount < rhs.yCount;
- }
- return xCount < rhs.xCount;
- }
-
- bool operator==(const PatchDescription& rhs) const {
- return xCount == rhs.xCount && yCount == rhs.yCount;
+ return memcmp(this, &rhs, sizeof(PatchDescription)) < 0;
}
}; // struct PatchDescription