| Index: samplecode/SampleApp.cpp
|
| diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
|
| index 264b17c632745685ab65afaeabea923b9f407c24..2a4ebdce4117aed216dce1927dfc0aad0e37d459 100644
|
| --- a/samplecode/SampleApp.cpp
|
| +++ b/samplecode/SampleApp.cpp
|
| @@ -719,20 +719,6 @@ static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
|
| return gCT[ct];
|
| }
|
|
|
| -static void usage(const char * argv0) {
|
| - SkDebugf("%s [--slide sampleName] [-i resourcePath] [--msaa sampleCount] [--pictureDir dirPath] [--picture path] [--sort]\n", argv0);
|
| -#ifdef SAMPLE_PDF_FILE_VIEWER
|
| - SkDebugf(" [--pdfDir pdfPath]\n");
|
| - SkDebugf(" pdfPath: path to directory pdf files are read from\n");
|
| -#endif // SAMPLE_PDF_FILE_VIEWER
|
| - SkDebugf(" sampleName: sample at which to start.\n");
|
| - SkDebugf(" resourcePath: directory that stores image resources.\n");
|
| - SkDebugf(" msaa: request multisampling with the given sample count.\n");
|
| - SkDebugf(" dirPath: path to directory skia pictures are read from\n");
|
| - SkDebugf(" path: path to skia picture\n");
|
| - SkDebugf(" --sort: sort samples by title, this would help to compare pdf rendering (P:foo.pdf) with skp rendering (P:foo.pdf)\n");
|
| -}
|
| -
|
| static SkString getSampleTitle(const SkViewFactory* sampleFactory) {
|
| SkView* view = (*sampleFactory)();
|
| SkString title;
|
| @@ -745,17 +731,47 @@ static bool compareSampleTitle(const SkViewFactory* first, const SkViewFactory*
|
| return strcmp(getSampleTitle(first).c_str(), getSampleTitle(second).c_str()) < 0;
|
| }
|
|
|
| +DEFINE_string(slide, "", "Start on this sample.");
|
| +DEFINE_int32(msaa, 0, "Request multisampling with this count.");
|
| +DEFINE_string(pictureDir, "", "Read pictures from here.");
|
| +DEFINE_string(picture, "", "Path to single picture.");
|
| +DEFINE_bool(sort, false, "Sort samples by title.");
|
| +DEFINE_bool(list, false, "List samples?");
|
| +#ifdef SAMPLE_PDF_FILE_VIEWER
|
| +DEFINE_string(pdfPath, "", "Path to direcotry of pdf files.");
|
| +#endif
|
| +
|
| SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* devManager)
|
| : INHERITED(hwnd)
|
| , fDevManager(NULL) {
|
|
|
| + SkCommandLineFlags::Parse(argc, argv);
|
| +
|
| fCurrIndex = -1;
|
|
|
| - this->registerPictFileSamples(argv, argc);
|
| - this->registerPictFileSample(argv, argc);
|
| + if (!FLAGS_pictureDir.isEmpty()) {
|
| + SkOSFile::Iter iter(FLAGS_pictureDir[0], "skp");
|
| + SkString filename;
|
| + while (iter.next(&filename)) {
|
| + *fSamples.append() = new PictFileFactory(
|
| + SkOSPath::SkPathJoin(FLAGS_pictureDir[0], filename.c_str()));
|
| + }
|
| + }
|
| + if (!FLAGS_picture.isEmpty()) {
|
| + SkString path(FLAGS_picture[0]);
|
| + fCurrIndex = fSamples.count();
|
| + *fSamples.append() = new PictFileFactory(path);
|
| + }
|
| #ifdef SAMPLE_PDF_FILE_VIEWER
|
| - this->registerPdfFileViewerSamples(argv, argc);
|
| -#endif // SAMPLE_PDF_FILE_VIEWER
|
| + if (!FLAGS_pdfPath.isEmpty()) {
|
| + SkOSFile::Iter iter(FLAGS_pdfPath[0], "pdf");
|
| + SkString filename;
|
| + while (iter.next(&filename)) {
|
| + *fSamples.append() = new PdfFileViewerFactory(
|
| + SkOSPath::SkPathJoin(FLAGS_pictureDir[0], filename.c_str()));
|
| + }
|
| + }
|
| +#endif
|
| SkGMRegistyToSampleRegistry();
|
| {
|
| const SkViewRegister* reg = SkViewRegister::Head();
|
| @@ -765,53 +781,26 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
|
| }
|
| }
|
|
|
| - bool sort = false;
|
| - for (int i = 0; i < argc; ++i) {
|
| - if (!strcmp(argv[i], "--sort")) {
|
| - sort = true;
|
| - break;
|
| - }
|
| - }
|
| -
|
| - if (sort) {
|
| + if (FLAGS_sort) {
|
| // Sort samples, so foo.skp and foo.pdf are consecutive and we can quickly spot where
|
| // skp -> pdf -> png fails.
|
| SkTQSort(fSamples.begin(), fSamples.end() ? fSamples.end() - 1 : NULL, compareSampleTitle);
|
| }
|
|
|
| - fMSAASampleCount = 0;
|
| -
|
| - SkCommandLineFlags::Parse(argc, argv);
|
| -
|
| - const char* const commandName = argv[0];
|
| - char* const* stop = argv + argc;
|
| - for (++argv; argv < stop; ++argv) {
|
| - if (strcmp(*argv, "--slide") == 0) {
|
| - argv++;
|
| - if (argv < stop && **argv) {
|
| - fCurrIndex = findByTitle(*argv);
|
| - if (fCurrIndex < 0) {
|
| - fprintf(stderr, "Unknown sample \"%s\"\n", *argv);
|
| - listTitles();
|
| - }
|
| - }
|
| - } else if (strcmp(*argv, "--msaa") == 0) {
|
| - ++argv;
|
| - if (argv < stop && **argv) {
|
| - fMSAASampleCount = atoi(*argv);
|
| - }
|
| - } else if (strcmp(*argv, "--list") == 0) {
|
| + if (!FLAGS_slide.isEmpty()) {
|
| + fCurrIndex = findByTitle(FLAGS_slide[0]);
|
| + if (fCurrIndex < 0) {
|
| + fprintf(stderr, "Unknown sample \"%s\"\n", FLAGS_slide[0]);
|
| listTitles();
|
| - } else if (strcmp(*argv, "--pictureDir") == 0) {
|
| - ++argv; // This case is dealt with in registerPictFileSamples().
|
| - } else if (strcmp(*argv, "--picture") == 0) {
|
| - ++argv; // This case is dealt with in registerPictFileSample().
|
| - }
|
| - else {
|
| - usage(commandName);
|
| }
|
| }
|
|
|
| + fMSAASampleCount = FLAGS_msaa;
|
| +
|
| + if (FLAGS_list) {
|
| + listTitles();
|
| + }
|
| +
|
| if (fCurrIndex < 0) {
|
| SkString title;
|
| if (readTitleFromPrefs(&title)) {
|
| @@ -989,82 +978,6 @@ SampleWindow::~SampleWindow() {
|
| SkSafeUnref(fDevManager);
|
| }
|
|
|
| -static void make_filepath(SkString* path, const char* dir, const SkString& name) {
|
| - size_t len = strlen(dir);
|
| - path->set(dir);
|
| - if (len > 0 && dir[len - 1] != '/') {
|
| - path->append("/");
|
| - }
|
| - path->append(name);
|
| -}
|
| -
|
| -void SampleWindow::registerPictFileSample(char** argv, int argc) {
|
| - const char* pict = NULL;
|
| -
|
| - for (int i = 0; i < argc; ++i) {
|
| - if (!strcmp(argv[i], "--picture")) {
|
| - i += 1;
|
| - if (i < argc) {
|
| - pict = argv[i];
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - if (pict) {
|
| - SkString path(pict);
|
| - fCurrIndex = fSamples.count();
|
| - *fSamples.append() = new PictFileFactory(path);
|
| - }
|
| -}
|
| -
|
| -void SampleWindow::registerPictFileSamples(char** argv, int argc) {
|
| - const char* pictDir = NULL;
|
| -
|
| - for (int i = 0; i < argc; ++i) {
|
| - if (!strcmp(argv[i], "--pictureDir")) {
|
| - i += 1;
|
| - if (i < argc) {
|
| - pictDir = argv[i];
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - if (pictDir) {
|
| - SkOSFile::Iter iter(pictDir, "skp");
|
| - SkString filename;
|
| - while (iter.next(&filename)) {
|
| - SkString path;
|
| - make_filepath(&path, pictDir, filename);
|
| - *fSamples.append() = new PictFileFactory(path);
|
| - }
|
| - }
|
| -}
|
| -
|
| -#ifdef SAMPLE_PDF_FILE_VIEWER
|
| -void SampleWindow::registerPdfFileViewerSamples(char** argv, int argc) {
|
| - const char* pdfDir = NULL;
|
| -
|
| - for (int i = 0; i < argc; ++i) {
|
| - if (!strcmp(argv[i], "--pdfDir")) {
|
| - i += 1;
|
| - if (i < argc) {
|
| - pdfDir = argv[i];
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - if (pdfDir) {
|
| - SkOSFile::Iter iter(pdfDir, "pdf");
|
| - SkString filename;
|
| - while (iter.next(&filename)) {
|
| - SkString path;
|
| - make_filepath(&path, pdfDir, filename);
|
| - *fSamples.append() = new PdfFileViewerFactory(path);
|
| - }
|
| - }
|
| -}
|
| -#endif // SAMPLE_PDF_FILE_VIEWER
|
| -
|
|
|
| int SampleWindow::findByTitle(const char title[]) {
|
| int i, count = fSamples.count();
|
|
|