1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "Benchmark.h" 9 #include "SkBitmap.h" 10 #include "SkMipMap.h" 11 12 class MipMapBench: public Benchmark { 13 SkBitmap fBitmap; 14 15 public: MipMapBench()16 MipMapBench() {} 17 18 protected: isSuitableFor(Backend backend)19 bool isSuitableFor(Backend backend) override { 20 return kNonRendering_Backend == backend; 21 } 22 onGetName()23 const char* onGetName() override { return "mipmap_build"; } 24 onPreDraw()25 void onPreDraw() override { 26 fBitmap.allocN32Pixels(1000, 1000, true); 27 fBitmap.eraseColor(SK_ColorWHITE); // so we don't read uninitialized memory 28 } 29 onDraw(const int loops,SkCanvas *)30 void onDraw(const int loops, SkCanvas*) override { 31 for (int i = 0; i < loops; i++) { 32 SkMipMap::Build(fBitmap, NULL)->unref(); 33 } 34 } 35 36 private: 37 typedef Benchmark INHERITED; 38 }; 39 40 DEF_BENCH( return new MipMapBench; ) 41