Initial work to get ETC1 data up to the GPU

Committed: http://code.google.com/p/skia/source/detail?r=15001

R=bsalomon@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/302783002
diff --git a/gm/etc1bitmap.cpp b/gm/etc1bitmap.cpp
index d2cd726..bb8ca6f 100644
--- a/gm/etc1bitmap.cpp
+++ b/gm/etc1bitmap.cpp
@@ -7,6 +7,8 @@
 
 #include "gm.h"
 #include "SkCanvas.h"
+#include "SkData.h"
+#include "SkDecodingImageGenerator.h"
 #include "SkImageDecoder.h"
 #include "SkOSFile.h"
 
@@ -35,13 +37,20 @@
         SkBitmap bm;
         SkString filename = SkOSPath::SkPathJoin(
                 INHERITED::gResourcePath.c_str(), "mandrill_512.pkm");
-        if (!SkImageDecoder::DecodeFile(filename.c_str(), &bm,
-                                        SkBitmap::kARGB_8888_Config,
-                                        SkImageDecoder::kDecodePixels_Mode)) {
-            SkDebugf("Could not decode the file. Did you forget to set the "
-                     "resourcePath?\n");
+
+        SkData *fileData = SkData::NewFromFileName(filename.c_str());
+        if (NULL == fileData) {
+            SkDebugf("Could not open the file. Did you forget to set the resourcePath?\n");
             return;
         }
+
+        if (!SkInstallDiscardablePixelRef(
+                SkDecodingImageGenerator::Create(
+                    fileData, SkDecodingImageGenerator::Options()), &bm)) {
+            SkDebugf("Could not install discardable pixel ref.\n");
+            return;
+        }
+
         canvas->drawBitmap(bm, 0, 0);
     }