Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(547)

Side by Side Diff: tools/skpdiff/skpdiff_main.cpp

Issue 325413003: rebaseline_server: use just skpdiff, not Python Image Library (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: attempt to fix "'abs' : ambiguous call to overloaded function" on Windows Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/skpdiff/SkPMetric.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 // TODO(djsollen): Rename this whole package (perhaps to "SkMultiDiffer").
9 // It's not just for "pdiff" (perceptual diffs)--it's a harness that allows
10 // the execution of an arbitrary set of difference algorithms.
11 // See http://skbug.com/2711 ('rename skpdiff')
12
8 #if SK_SUPPORT_OPENCL 13 #if SK_SUPPORT_OPENCL
9 14
10 #define __NO_STD_VECTOR // Uses cl::vectpr instead of std::vectpr 15 #define __NO_STD_VECTOR // Uses cl::vectpr instead of std::vectpr
11 #define __NO_STD_STRING // Uses cl::STRING_CLASS instead of std::string 16 #define __NO_STD_STRING // Uses cl::STRING_CLASS instead of std::string
12 #if SK_BUILD_FOR_MAC 17 #if SK_BUILD_FOR_MAC
13 // Note that some macs don't have this header and it can be downloaded from the Khronos registry 18 // Note that some macs don't have this header and it can be downloaded from the Khronos registry
14 # include <OpenCL/cl.hpp> 19 # include <OpenCL/cl.hpp>
15 #else 20 #else
16 # include <CL/cl.hpp> 21 # include <CL/cl.hpp>
17 #endif 22 #endif
(...skipping 12 matching lines...) Expand all
30 #include "skpdiff_util.h" 35 #include "skpdiff_util.h"
31 36
32 #include "SkForceLinking.h" 37 #include "SkForceLinking.h"
33 __SK_FORCE_IMAGE_DECODER_LINKING; 38 __SK_FORCE_IMAGE_DECODER_LINKING;
34 39
35 // Command line argument definitions go here 40 // Command line argument definitions go here
36 DEFINE_bool2(list, l, false, "List out available differs"); 41 DEFINE_bool2(list, l, false, "List out available differs");
37 DEFINE_string2(differs, d, "", "The names of the differs to use or all of them b y default"); 42 DEFINE_string2(differs, d, "", "The names of the differs to use or all of them b y default");
38 DEFINE_string2(folders, f, "", "Compare two folders with identical subfile names : <baseline folder> <test folder>"); 43 DEFINE_string2(folders, f, "", "Compare two folders with identical subfile names : <baseline folder> <test folder>");
39 DEFINE_string2(patterns, p, "", "Use two patterns to compare images: <baseline> <test>"); 44 DEFINE_string2(patterns, p, "", "Use two patterns to compare images: <baseline> <test>");
40 DEFINE_string2(output, o, "", "Writes the output of these diffs to output: <outp ut>"); 45 DEFINE_string2(output, o, "", "Writes a JSON summary of these diffs to file: <fi lepath>");
41 DEFINE_string(alphaDir, "", "Writes the alpha mask of these diffs to output: <ou tput>"); 46 DEFINE_string(alphaDir, "", "If the differ can generate an alpha mask, write it into directory: <dirpath>");
47 DEFINE_string(rgbDiffDir, "", "If the differ can generate an image showing the R GB diff at each pixel, write it into directory: <dirpath>");
48 DEFINE_string(whiteDiffDir, "", "If the differ can generate an image showing eve ry changed pixel in white, write it into directory: <dirpath>");
42 DEFINE_bool(jsonp, true, "Output JSON with padding"); 49 DEFINE_bool(jsonp, true, "Output JSON with padding");
43 DEFINE_string(csv, "", "Writes the output of these diffs to a csv file"); 50 DEFINE_string(csv, "", "Writes the output of these diffs to a csv file: <filepat h>");
44 DEFINE_int32(threads, -1, "run N threads in parallel [default is derived from CP Us available]"); 51 DEFINE_int32(threads, -1, "run N threads in parallel [default is derived from CP Us available]");
45 52
46 #if SK_SUPPORT_OPENCL 53 #if SK_SUPPORT_OPENCL
47 /// A callback for any OpenCL errors 54 /// A callback for any OpenCL errors
48 static void CL_CALLBACK error_notify(const char* errorInfo, const void* privateI nfoSize, ::size_t cb, void* userData) { 55 static void CL_CALLBACK error_notify(const char* errorInfo, const void* privateI nfoSize, ::size_t cb, void* userData) {
49 SkDebugf("OpenCL error notify: %s\n", errorInfo); 56 SkDebugf("OpenCL error notify: %s\n", errorInfo);
50 exit(1); 57 exit(1);
51 } 58 }
52 59
53 /// Creates a device and context with OpenCL 60 /// Creates a device and context with OpenCL
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 return 1; 193 return 1;
187 } 194 }
188 } 195 }
189 196
190 if (!FLAGS_alphaDir.isEmpty()) { 197 if (!FLAGS_alphaDir.isEmpty()) {
191 if (1 != FLAGS_alphaDir.count()) { 198 if (1 != FLAGS_alphaDir.count()) {
192 SkDebugf("alphaDir flag expects one argument: <directory>\n"); 199 SkDebugf("alphaDir flag expects one argument: <directory>\n");
193 return 1; 200 return 1;
194 } 201 }
195 } 202 }
203 if (!FLAGS_rgbDiffDir.isEmpty()) {
204 if (1 != FLAGS_rgbDiffDir.count()) {
205 SkDebugf("rgbDiffDir flag expects one argument: <directory>\n");
206 return 1;
207 }
208 }
209 if (!FLAGS_whiteDiffDir.isEmpty()) {
210 if (1 != FLAGS_whiteDiffDir.count()) {
211 SkDebugf("whiteDiffDir flag expects one argument: <directory>\n");
212 return 1;
213 }
214 }
196 215
197 SkDiffContext ctx; 216 SkDiffContext ctx;
198 ctx.setDiffers(chosenDiffers); 217 ctx.setDiffers(chosenDiffers);
199 218
200 if (!FLAGS_alphaDir.isEmpty()) { 219 if (!FLAGS_alphaDir.isEmpty()) {
201 ctx.setDifferenceDir(SkString(FLAGS_alphaDir[0])); 220 ctx.setAlphaMaskDir(SkString(FLAGS_alphaDir[0]));
221 }
222 if (!FLAGS_rgbDiffDir.isEmpty()) {
223 ctx.setRgbDiffDir(SkString(FLAGS_rgbDiffDir[0]));
224 }
225 if (!FLAGS_whiteDiffDir.isEmpty()) {
226 ctx.setWhiteDiffDir(SkString(FLAGS_whiteDiffDir[0]));
202 } 227 }
203 228
204 if (FLAGS_threads >= 0) { 229 if (FLAGS_threads >= 0) {
205 ctx.setThreadCount(FLAGS_threads); 230 ctx.setThreadCount(FLAGS_threads);
206 } 231 }
207 232
208 // Perform a folder diff if one is requested 233 // Perform a folder diff if one is requested
209 if (!FLAGS_folders.isEmpty()) { 234 if (!FLAGS_folders.isEmpty()) {
210 ctx.diffDirectories(FLAGS_folders[0], FLAGS_folders[1]); 235 ctx.diffDirectories(FLAGS_folders[0], FLAGS_folders[1]);
211 } 236 }
(...skipping 15 matching lines...) Expand all
227 } 252 }
228 253
229 return 0; 254 return 0;
230 } 255 }
231 256
232 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 257 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
233 int main(int argc, char * argv[]) { 258 int main(int argc, char * argv[]) {
234 return tool_main(argc, (char**) argv); 259 return tool_main(argc, (char**) argv);
235 } 260 }
236 #endif 261 #endif
OLDNEW
« no previous file with comments | « tools/skpdiff/SkPMetric.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698