• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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