|  | /* | 
|  | * 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 "SkBitmap.h" | 
|  | #include "SkMipMap.h" | 
|  |  | 
|  | class MipMapBench: public Benchmark { | 
|  | SkBitmap fBitmap; | 
|  |  | 
|  | public: | 
|  | MipMapBench() {} | 
|  |  | 
|  | protected: | 
|  | bool isSuitableFor(Backend backend) override { | 
|  | return kNonRendering_Backend == backend; | 
|  | } | 
|  |  | 
|  | const char* onGetName() override { return "mipmap_build"; } | 
|  |  | 
|  | void onPreDraw() override { | 
|  | fBitmap.allocN32Pixels(1000, 1000, true); | 
|  | fBitmap.eraseColor(SK_ColorWHITE);  // so we don't read uninitialized memory | 
|  | } | 
|  |  | 
|  | void onDraw(const int loops, SkCanvas*) override { | 
|  | for (int i = 0; i < loops; i++) { | 
|  | SkMipMap::Build(fBitmap, NULL)->unref(); | 
|  | } | 
|  | } | 
|  |  | 
|  | private: | 
|  | typedef Benchmark INHERITED; | 
|  | }; | 
|  |  | 
|  | DEF_BENCH( return new MipMapBench; ) |