Track texture memory globally
Also mostly consolidates texture creation
Change-Id: Ifea01303afda531dcec99b8fe2a0f64cf2f24420
diff --git a/libs/hwui/utils/StringUtils.h b/libs/hwui/utils/StringUtils.h
index 055869f..05a3d59 100644
--- a/libs/hwui/utils/StringUtils.h
+++ b/libs/hwui/utils/StringUtils.h
@@ -18,6 +18,8 @@
#include <string>
#include <unordered_set>
+#include <ostream>
+#include <iomanip>
namespace android {
namespace uirenderer {
@@ -34,6 +36,21 @@
static unordered_string_set split(const char* spacedList);
};
+struct SizePrinter {
+ int bytes;
+ friend std::ostream& operator<<(std::ostream& stream, const SizePrinter& d) {
+ static const char* SUFFIXES[] = {"B", "KiB", "MiB"};
+ size_t suffix = 0;
+ double temp = d.bytes;
+ while (temp > 1000 && suffix < 2) {
+ temp /= 1024.0;
+ suffix++;
+ }
+ stream << std::fixed << std::setprecision(2) << temp << SUFFIXES[suffix];
+ return stream;
+ }
+};
+
} /* namespace uirenderer */
} /* namespace android */