| /* | 
 |  * Copyright 2015 Google Inc. | 
 |  * | 
 |  * Use of this source code is governed by a BSD-style license that can be | 
 |  * found in the LICENSE file. | 
 |  */ | 
 |  | 
 | #include "Benchmark.h" | 
 | #include "SkImageDecoder.h" | 
 | #include "SkImageInfo.h" | 
 | #include "SkStream.h" | 
 | #include "SkString.h" | 
 |  | 
 | /* | 
 |  * | 
 |  * This benchmark is designed to test the performance of subset decoding. | 
 |  * Choose subsets to mimic a user zooming in or out on a photo. | 
 |  * | 
 |  */ | 
 | class SubsetZoomBench : public Benchmark { | 
 | public: | 
 |  | 
 |     SubsetZoomBench(const SkString& path, | 
 |                     SkColorType colorType, | 
 |                     uint32_t subsetWidth, | 
 |                     uint32_t subsetHeight, | 
 |                     bool useCodec); | 
 |  | 
 | protected: | 
 |     const char* onGetName() override; | 
 |     bool isSuitableFor(Backend backend) override; | 
 |     void onDraw(const int n, SkCanvas* canvas) override; | 
 |  | 
 | private: | 
 |     SkString                      fName; | 
 |     SkColorType                   fColorType; | 
 |     const uint32_t                fSubsetWidth; | 
 |     const uint32_t                fSubsetHeight; | 
 |     const bool                    fUseCodec; | 
 |     SkAutoTDelete<SkMemoryStream> fStream; | 
 |     typedef Benchmark INHERITED; | 
 | }; |