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