Home | History | Annotate | Download | only in skpdiff
      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 SkPMetric_DEFINED
      9 #define SkPMetric_DEFINED
     10 
     11 #include "SkTArray.h"
     12 #include "SkTDArray.h"
     13 
     14 #include "SkImageDiffer.h"
     15 
     16 /**
     17  * An image differ that uses the pdiff image metric to compare images.
     18  */
     19 class SkPMetric : public SkImageDiffer {
     20 public:
     21     virtual const char* getName() SK_OVERRIDE;
     22     virtual int queueDiff(SkBitmap* baseline, SkBitmap* test) SK_OVERRIDE;
     23     virtual void deleteDiff(int id) SK_OVERRIDE;
     24     virtual bool isFinished(int id) SK_OVERRIDE;
     25     virtual double getResult(int id) SK_OVERRIDE;
     26     virtual int getPointsOfInterestCount(int id) SK_OVERRIDE;
     27     virtual SkIPoint* getPointsOfInterest(int id) SK_OVERRIDE;
     28 
     29 private:
     30     struct QueuedDiff {
     31         bool finished;
     32         double result;
     33         SkTDArray<SkIPoint> poi;
     34     };
     35 
     36     SkTArray<QueuedDiff> fQueuedDiffs;
     37 
     38     typedef SkImageDiffer INHERITED;
     39 };
     40 
     41 
     42 #endif
     43