/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkDifferentPixelsMetric_DEFINED #define SkDifferentPixelsMetric_DEFINED #include "SkTDArray.h" #if SK_SUPPORT_OPENCL #include "SkCLImageDiffer.h" #else #include "SkImageDiffer.h" #endif /** * A differ that measures the percentage of different corresponding pixels. If the two images are * not the same size or have no pixels, the result will always be zero. */ class SkDifferentPixelsMetric : #if SK_SUPPORT_OPENCL public SkCLImageDiffer { #else public SkImageDiffer { #endif public: virtual const char* getName() const SK_OVERRIDE; virtual bool diff(SkBitmap* baseline, SkBitmap* test, const BitmapsToCreate& bitmapsToCreate, Result* result) const SK_OVERRIDE; protected: #if SK_SUPPORT_OPENCL virtual bool onInit() SK_OVERRIDE; #endif private: #if SK_SUPPORT_OPENCL cl_kernel fKernel; typedef SkCLImageDiffer INHERITED; #else typedef SkImageDiffer INHERITED; #endif }; #endif