diff options
author | keyar@chromium.org <keyar@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-07-09 18:32:08 +0000 |
---|---|---|
committer | keyar@chromium.org <keyar@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-07-09 18:32:08 +0000 |
commit | d1dc920097194e3342355185528c84408a9929c8 (patch) | |
tree | a65d0998c09fa0625fd635ff97d662cf45ebeeca /tools/picture_utils.cpp | |
parent | 3a67a668dbdc3a6bba68700a6dfdef8164ae0c69 (diff) |
Allow specific files and multiple inputs for picture testing tools.
Changed the render_pictures, bench_pictures and test_pictures.py so that multiple inputs can be given. Furthermore, specific files can also be specified.
Unit tests have also been added for picture_utils.cpp.
Review URL: https://codereview.appspot.com/6345054
git-svn-id: http://skia.googlecode.com/svn/trunk@4486 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tools/picture_utils.cpp')
-rw-r--r-- | tools/picture_utils.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/picture_utils.cpp b/tools/picture_utils.cpp index 6a9e1f51f7..98351b84b5 100644 --- a/tools/picture_utils.cpp +++ b/tools/picture_utils.cpp @@ -22,6 +22,49 @@ namespace sk_tools { path->append(name); } + namespace { + bool is_path_seperator(const char chr) { +#if defined(SK_BUILD_FOR_WIN) + return chr == '\\' || chr == '/'; +#else + return chr == '/'; +#endif + } + } + + void get_basename(SkString* basename, const SkString& path) { + if (path.size() == 0) { + basename->reset(); + return; + } + + size_t end = path.size() - 1; + + // Paths pointing to directories often have a trailing slash, + // we remove it so the name is not empty + if (is_path_seperator(path[end])) { + if (end == 0) { + basename->reset(); + return; + } + + end -= 1; + } + + size_t i = end; + do { + --i; + if (is_path_seperator(path[i])) { + const char* basenameStart = path.c_str() + i + 1; + size_t basenameLength = end - i; + basename->set(basenameStart, basenameLength); + return; + } + } while (i > 0); + + basename->set(path.c_str(), end + 1); + } + void setup_bitmap(SkBitmap* bitmap, int width, int height) { bitmap->setConfig(SkBitmap::kARGB_8888_Config, width, height); bitmap->allocPixels(); |