cb4658ae0f14b9958dd7848c53b43083d6607cd0
[platform/upstream/libSkiaSharp.git] / bench / MipMapBench.cpp
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:
16     MipMapBench() {}
17
18 protected:
19     bool isSuitableFor(Backend backend) SK_OVERRIDE {
20         return kNonRendering_Backend == backend;
21     }
22
23     const char* onGetName() SK_OVERRIDE { return "mipmap_build"; }
24
25     void onPreDraw() SK_OVERRIDE {
26         fBitmap.allocN32Pixels(1000, 1000, true);
27         fBitmap.eraseColor(SK_ColorWHITE);  // so we don't read uninitialized memory
28     }
29
30     void onDraw(const int loops, SkCanvas*) SK_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; )