ccpr: Initialize the atlas size more intelligently

Rather than always starting the atlas at 1024 x 1024, begin with the
first pow2 dimensions whose area is theoretically large enough to
contain the pending paths.

Bug: skia:
Change-Id: I263e77ff6a697e865f6b3b62b9df7002225f9544
Reviewed-on: https://skia-review.googlesource.com/133660
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 008391f..eeba9e0 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -237,6 +237,10 @@
     return (b < a) ? a : b;
 }
 
+template <typename T> constexpr const T& SkTClamp(const T& x, const T& lo, const T& hi) {
+    return (x < lo) ? lo : SkTMin(x, hi);
+}
+
 static inline int32_t SkFastMin32(int32_t value, int32_t max) {
     if (value > max) {
         value = max;