Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #ifndef SkImageDiffer_DEFINED | |
|
djsollen
2013/06/12 13:32:04
add the standard google copyright at the top of th
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 2 #define SkImageDiffer_DEFINED | |
| 3 | |
| 4 #include <CL/cl.h> | |
| 5 #include "SkTDArray.h" | |
| 6 | |
| 7 | |
| 8 class SkBitmap; | |
| 9 class SkStream; | |
| 10 | |
| 11 struct RunProfile { | |
|
djsollen
2013/06/12 13:32:04
remove this
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 12 | |
| 13 }; | |
| 14 | |
| 15 struct QueuedDiff { | |
|
djsollen
2013/06/12 13:32:04
Does this need to exist or can it be folded into L
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 16 bool finished; | |
| 17 double result; | |
| 18 }; | |
| 19 | |
| 20 class ImageDiffer { | |
|
bsalomon
2013/06/12 13:55:11
Comments describing these classes would be really
bsalomon
2013/06/12 13:55:11
Should probably be SkImageDiffer
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 21 public: | |
| 22 ImageDiffer(); | |
| 23 virtual ~ImageDiffer(); | |
| 24 | |
| 25 virtual const char* getName() = 0; | |
| 26 | |
| 27 bool isGood() { return fIsGood; } | |
| 28 | |
| 29 int queueDiffOfFile(const char baseline[], const char test[]); | |
|
djsollen
2013/06/12 13:32:04
to be consistent wit the rest of skia use const ch
bsalomon
2013/06/12 13:55:11
Is our rule const char* for null term strings? We
Zach Reizner
2013/06/12 21:57:47
I saw const char[] in the sources I was copying st
| |
| 30 | |
| 31 virtual int queueDiff(SkBitmap * baseline, SkBitmap * test) = 0; | |
|
djsollen
2013/06/12 13:32:04
no space -- SkBitmap*
also add comment about what
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 32 | |
| 33 /** | |
| 34 * Gets whether a queued diff of the given id has finished | |
| 35 * @param id The id of the queued diff to query | |
| 36 * @return True if the queued diff is finished and has results, false oth erwise | |
| 37 */ | |
| 38 virtual bool isFinished(int id) = 0; | |
| 39 | |
| 40 /** | |
| 41 * Gets the results of the queued diff of the given id. The results are only meaningful after | |
| 42 * the queued diff has finished. | |
| 43 * @param id The id of the queued diff to query | |
| 44 * @return A score between of how different the compared images are, with lower numbers being | |
| 45 * more different. | |
| 46 */ | |
| 47 virtual double getResult(int id) = 0; | |
| 48 | |
| 49 protected: | |
| 50 bool fIsGood; | |
| 51 }; | |
| 52 | |
| 53 | |
| 54 | |
| 55 class CLImageDiffer : public ImageDiffer { | |
|
djsollen
2013/06/12 13:32:04
So at first glance I would move this and Different
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 56 public: | |
| 57 CLImageDiffer(); | |
| 58 virtual bool init(cl_device_id device, cl_context context) SK_OVERRIDE; | |
| 59 | |
| 60 protected: | |
| 61 virtual bool onInit() = 0; | |
| 62 | |
| 63 bool loadKernelFile(const char file[], const char name[], cl_kernel* kernel) ; | |
| 64 bool loadKernelStream(SkStream* stream, const char name[], cl_kernel* kernel ); | |
| 65 bool loadKernelSource(const char source[], const char name[], cl_kernel* ker nel); | |
| 66 | |
| 67 bool makeImage2D(SkBitmap* bitmap, cl_mem* image); | |
| 68 | |
| 69 cl_device_id fDevice; | |
| 70 cl_context fContext; | |
| 71 cl_command_queue fCommandQueue; | |
| 72 private: | |
|
bsalomon
2013/06/12 13:55:11
skia style is to have a \n before public, private,
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 73 | |
| 74 | |
| 75 | |
| 76 typedef ImageDiffer INHERITED; | |
| 77 }; | |
| 78 | |
| 79 | |
| 80 | |
| 81 | |
| 82 class DifferentPixelsImageDiffer : public CLImageDiffer { | |
| 83 public: | |
| 84 virtual const char* getName() SK_OVERRIDE; | |
| 85 virtual int queueDiff(SkBitmap * baseline, SkBitmap * test) SK_OVERRIDE; | |
| 86 virtual bool isFinished(int id) SK_OVERRIDE; | |
| 87 virtual double getResult(int id) SK_OVERRIDE; | |
| 88 | |
| 89 protected: | |
| 90 virtual bool onInit() SK_OVERRIDE; | |
| 91 | |
| 92 private: | |
| 93 struct LocalQueuedDiff : public QueuedDiff | |
| 94 { | |
|
bsalomon
2013/06/12 13:55:11
{ goes on prev line
Zach Reizner
2013/06/12 21:57:47
Done.
| |
| 95 cl_mem baseline; | |
| 96 cl_mem test; | |
| 97 cl_mem resultsBuffer; | |
| 98 }; | |
| 99 | |
| 100 | |
| 101 SkTDArray<LocalQueuedDiff> fQueuedDiffs; | |
| 102 cl_kernel fKernel; | |
| 103 | |
| 104 typedef CLImageDiffer INHERITED; | |
| 105 }; | |
| 106 | |
| 107 #endif | |
| OLD | NEW |