add mipmaps to scaledimagecache

BUG=

Review URL: https://codereview.chromium.org/19789016

git-svn-id: http://skia.googlecode.com/svn/trunk@10305 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkMipMap.cpp b/src/core/SkMipMap.cpp
index c9f5145..0673c7e 100644
--- a/src/core/SkMipMap.cpp
+++ b/src/core/SkMipMap.cpp
@@ -192,6 +192,7 @@
         levels[i].fWidth    = width;
         levels[i].fHeight   = height;
         levels[i].fRowBytes = rowBytes;
+        levels[i].fScale    = (float)width / src.width();
 
         SkBitmap dstBM;
         dstBM.setConfig(config, width, height, rowBytes);
@@ -210,7 +211,23 @@
     }
     SkASSERT(addr == baseAddr + size);
 
-    return SkNEW_ARGS(SkMipMap, (levels, countLevels));
+    return SkNEW_ARGS(SkMipMap, (levels, countLevels, size));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+//static int gCounter;
+
+SkMipMap::SkMipMap(Level* levels, int count, size_t size)
+    : fSize(size), fLevels(levels), fCount(count) {
+    SkASSERT(levels);
+    SkASSERT(count > 0);
+//    SkDebugf("mips %d\n", ++gCounter);
+}
+
+SkMipMap::~SkMipMap() {
+    sk_free(fLevels);
+//    SkDebugf("mips %d\n", --gCounter);
 }
 
 static SkFixed compute_level(SkScalar scale) {