| Index: tools/skpdiff/SkImageDiffer.h
|
| diff --git a/tools/skpdiff/SkImageDiffer.h b/tools/skpdiff/SkImageDiffer.h
|
| index 2c1fa7e78853cdb3b15f7f97c79ce1719db45632..641bbe8f8f863b4610348b5b41573564e21fc88b 100644
|
| --- a/tools/skpdiff/SkImageDiffer.h
|
| +++ b/tools/skpdiff/SkImageDiffer.h
|
| @@ -8,8 +8,7 @@
|
| #ifndef SkImageDiffer_DEFINED
|
| #define SkImageDiffer_DEFINED
|
|
|
| -class SkBitmap;
|
| -struct SkIPoint;
|
| +#include "SkBitmap.h"
|
|
|
| /**
|
| * Encapsulates an image difference metric algorithm that can be potentially run asynchronously.
|
| @@ -22,92 +21,33 @@ public:
|
| static const double RESULT_CORRECT;
|
| static const double RESULT_INCORRECT;
|
|
|
| + struct Result {
|
| + double result;
|
| + int poiCount;
|
| + SkBitmap poiAlphaMask; // optional
|
| + double timeElapsed; // optional
|
| + };
|
| +
|
| /**
|
| * Gets a unique and descriptive name of this differ
|
| * @return A statically allocated null terminated string that is the name of this differ
|
| */
|
| - virtual const char* getName() = 0;
|
| -
|
| - /**
|
| - * Gets if this differ is in a usable state
|
| - * @return True if this differ can be used, false otherwise
|
| - */
|
| - bool isGood() { return fIsGood; }
|
| + virtual const char* getName() const = 0;
|
|
|
| /**
|
| * Gets if this differ needs to be initialized with and OpenCL device and context.
|
| */
|
| - virtual bool requiresOpenCL() { return false; }
|
| -
|
| - /**
|
| - * Enables the generation of an alpha mask for all points of interest.
|
| - * @return True if the differ supports generating an alpha mask and false otherwise.
|
| - */
|
| - virtual bool enablePOIAlphaMask() { return false; }
|
| -
|
| - /**
|
| - * Wraps a call to queueDiff by loading the given filenames into SkBitmaps
|
| - * @param baseline The file path of the baseline image
|
| - * @param test The file path of the test image
|
| - * @return The results of queueDiff with the loaded bitmaps
|
| - */
|
| - int queueDiffOfFile(const char baseline[], const char test[]);
|
| -
|
| - /**
|
| - * Queues a diff on a pair of bitmaps to be done at some future time.
|
| - * @param baseline The correct bitmap
|
| - * @param test The bitmap whose difference is being tested
|
| - * @return An non-negative diff ID on success, a negative integer on failure.
|
| - */
|
| - virtual int queueDiff(SkBitmap* baseline, SkBitmap* test) = 0;
|
| -
|
| - /**
|
| - * Gets whether a queued diff of the given id has finished
|
| - * @param id The id of the queued diff to query
|
| - * @return True if the queued diff is finished and has results, false otherwise
|
| - */
|
| - virtual bool isFinished(int id) = 0;
|
| -
|
| - /**
|
| - * Deletes memory associated with a diff and its results. This may block execution until the
|
| - * diff is finished,
|
| - * @param id The id of the diff to query
|
| - */
|
| - virtual void deleteDiff(int id) = 0;
|
| + virtual bool requiresOpenCL() const { return false; }
|
|
|
| /**
|
| - * Gets the results of the queued diff of the given id. The results are only meaningful after
|
| - * the queued diff has finished.
|
| - * @param id The id of the queued diff to query
|
| + * diff on a pair of bitmaps.
|
| + * @param baseline The correct bitmap
|
| + * @param test The bitmap whose difference is being tested
|
| + * @param computeMask true if the differ is to attempt to create poiAlphaMask
|
| + * @return true on success, and false in the case of failure
|
| */
|
| - virtual double getResult(int id) = 0;
|
| -
|
| - /**
|
| - * Gets the number of points of interest for the diff of the given id. The results are only
|
| - * meaningful after the queued diff has finished.
|
| - * @param id The id of the queued diff to query
|
| - */
|
| - virtual int getPointsOfInterestCount(int id) = 0;
|
| -
|
| - /**
|
| - * Gets an array of the points of interest for the diff of the given id. The results are only
|
| - * meaningful after the queued diff has finished.
|
| - * @param id The id of the queued diff to query
|
| - */
|
| - virtual SkIPoint* getPointsOfInterest(int id) = 0;
|
| -
|
| - /*
|
| - * Gets a bitmap containing an alpha mask containing transparent pixels at the points of
|
| - * interest for the diff of the given id. The results are only meaningful after the
|
| - * queued diff has finished.
|
| - * @param id The id of the queued diff to query
|
| - */
|
| - virtual SkBitmap* getPointsOfInterestAlphaMask(int id) { return NULL; }
|
| -
|
| -
|
| -protected:
|
| - bool fIsGood;
|
| + virtual bool diff(SkBitmap* baseline, SkBitmap* test, bool computeMask,
|
| + Result* result) const = 0;
|
| };
|
|
|
| -
|
| #endif
|
|
|