diff options
Diffstat (limited to 'gm/etc1bitmap.cpp')
-rw-r--r-- | gm/etc1bitmap.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/gm/etc1bitmap.cpp b/gm/etc1bitmap.cpp index d2cd726886..bb8ca6f406 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 @@ protected: 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); } |