C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}
[platform/upstream/libSkiaSharp.git] / tools / skpdiff / SkDifferentPixelsMetric.h
1 /*
2  * Copyright 2013 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 #ifndef SkDifferentPixelsMetric_DEFINED
9 #define SkDifferentPixelsMetric_DEFINED
10
11 #include "SkTDArray.h"
12
13 #if SK_SUPPORT_OPENCL
14 #include "SkCLImageDiffer.h"
15 #else
16 #include "SkImageDiffer.h"
17 #endif
18
19 /**
20  * A differ that measures the percentage of different corresponding pixels. If the two images are
21  * not the same size or have no pixels, the result will always be zero.
22  */
23 class SkDifferentPixelsMetric :
24 #if SK_SUPPORT_OPENCL
25     public SkCLImageDiffer {
26 #else
27     public SkImageDiffer {
28 #endif
29 public:
30     const char* getName() const override;
31     virtual bool diff(SkBitmap* baseline, SkBitmap* test,
32                       const BitmapsToCreate& bitmapsToCreate,
33                       Result* result) const override;
34
35 protected:
36 #if SK_SUPPORT_OPENCL
37     bool onInit() override;
38 #endif
39
40 private:
41 #if SK_SUPPORT_OPENCL
42     cl_kernel fKernel;
43
44     typedef SkCLImageDiffer INHERITED;
45 #else
46     typedef SkImageDiffer INHERITED;
47 #endif
48 };
49
50 #endif