| Index: experimental/skpdiff/SkDiffContext.cpp
|
| ===================================================================
|
| --- experimental/skpdiff/SkDiffContext.cpp (revision 10191)
|
| +++ experimental/skpdiff/SkDiffContext.cpp (working copy)
|
| @@ -6,6 +6,7 @@
|
| */
|
|
|
| #include "SkBitmap.h"
|
| +#include "SkCommandLineFlags.h"
|
| #include "SkImageDecoder.h"
|
| #include "SkOSFile.h"
|
| #include "SkStream.h"
|
| @@ -14,6 +15,8 @@
|
| #include "SkImageDiffer.h"
|
| #include "skpdiff_util.h"
|
|
|
| +DECLARE_string(csv);
|
| +
|
| SkDiffContext::SkDiffContext() {
|
| fRecords = NULL;
|
| fDiffers = NULL;
|
| @@ -68,6 +71,28 @@
|
| newRecord->fNext = fRecords;
|
| fRecords = newRecord;
|
|
|
| + FILE* csvFile = NULL;
|
| + if (!FLAGS_csv.isEmpty()) {
|
| + csvFile = fopen(FLAGS_csv[0], "a");
|
| + SkASSERT(csvFile);
|
| + if (ftell(csvFile) == 0) {
|
| + fprintf(csvFile, "%s", "skp");
|
| + for (int differIndex = 0; differIndex < fDifferCount; differIndex++) {
|
| + SkImageDiffer* differ = fDiffers[differIndex];
|
| + fprintf(csvFile, ", %s", differ->getName());
|
| + }
|
| + fprintf(csvFile, "\n");
|
| + }
|
| + }
|
| +
|
| + if (csvFile) {
|
| + const char* filename = baselinePath + strlen(baselinePath) - 1;
|
| + while (filename > baselinePath && *(filename - 1) != '/') {
|
| + filename--;
|
| + }
|
| + fprintf(csvFile, "%s", filename);
|
| + }
|
| +
|
| // Perform each diff
|
| for (int differIndex = 0; differIndex < fDifferCount; differIndex++) {
|
| SkImageDiffer* differ = fDiffers[differIndex];
|
| @@ -80,6 +105,10 @@
|
| diffData.fDiffName = differ->getName();
|
| diffData.fResult = differ->getResult(diffID);
|
|
|
| + if (csvFile) {
|
| + fprintf(csvFile, ", %f", diffData.fResult);
|
| + }
|
| +
|
| int poiCount = differ->getPointsOfInterestCount(diffID);
|
| SkIPoint* poi = differ->getPointsOfInterest(diffID);
|
| diffData.fPointsOfInterest.append(poiCount, poi);
|
| @@ -87,8 +116,17 @@
|
| // Because we are doing everything synchronously for now, we are done with the diff
|
| // after reading it.
|
| differ->deleteDiff(diffID);
|
| + } else {
|
| + if (csvFile) {
|
| + fprintf(csvFile, ", -1");
|
| + }
|
| }
|
| }
|
| +
|
| + if (csvFile) {
|
| + fprintf(csvFile, "\n");
|
| + fclose(csvFile);
|
| + }
|
| }
|
|
|
|
|
|
|