• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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     virtual const char* getName() const SK_OVERRIDE;
31     virtual bool diff(SkBitmap* baseline, SkBitmap* test,
32                       const BitmapsToCreate& bitmapsToCreate,
33                       Result* result) const SK_OVERRIDE;
34 
35 protected:
36 #if SK_SUPPORT_OPENCL
37     virtual bool onInit() SK_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
51