| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This small program is used to measure the performance of the various | 5 // This small program is used to measure the performance of the various |
| 6 // resize algorithms offered by the ImageOperations::Resize function. | 6 // resize algorithms offered by the ImageOperations::Resize function. |
| 7 // It will generate an empty source bitmap, and rescale it to specified | 7 // It will generate an empty source bitmap, and rescale it to specified |
| 8 // dimensions. It will repeat this operation multiple time to get more accurate | 8 // dimensions. It will repeat this operation multiple time to get more accurate |
| 9 // average throughput. Because it uses elapsed time to do its math, it is only | 9 // average throughput. Because it uses elapsed time to do its math, it is only |
| 10 // accurate on an idle system (but that approach was deemed more accurate | 10 // accurate on an idle system (but that approach was deemed more accurate |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 return height_; | 112 return height_; |
| 113 } | 113 } |
| 114 | 114 |
| 115 bool IsValid() const { | 115 bool IsValid() const { |
| 116 return (width_ > 0 && height_ > 0); | 116 return (width_ > 0 && height_ > 0); |
| 117 } | 117 } |
| 118 | 118 |
| 119 // On failure, will set its state in such a way that IsValid will return | 119 // On failure, will set its state in such a way that IsValid will return |
| 120 // false. | 120 // false. |
| 121 void FromString(const std::string& arg) { | 121 void FromString(const std::string& arg) { |
| 122 std::vector<std::string> strings; | 122 std::vector<base::StringPiece> strings = base::SplitStringPiece( |
| 123 base::SplitString(std::string(arg), 'x', &strings); | 123 arg, "x", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
| 124 if (strings.size() != 2 || | 124 if (strings.size() != 2 || |
| 125 base::StringToInt(strings[0], &width_) == false || | 125 base::StringToInt(strings[0], &width_) == false || |
| 126 base::StringToInt(strings[1], &height_) == false) { | 126 base::StringToInt(strings[1], &height_) == false) { |
| 127 width_ = -1; // force the dimension object to be invalid. | 127 width_ = -1; // force the dimension object to be invalid. |
| 128 } | 128 } |
| 129 } | 129 } |
| 130 private: | 130 private: |
| 131 int width_; | 131 int width_; |
| 132 int height_; | 132 int height_; |
| 133 }; | 133 }; |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 return 1; | 281 return 1; |
| 282 } | 282 } |
| 283 | 283 |
| 284 if (!bench.Run()) { | 284 if (!bench.Run()) { |
| 285 printf("Failed to run benchmark\n"); | 285 printf("Failed to run benchmark\n"); |
| 286 return 1; | 286 return 1; |
| 287 } | 287 } |
| 288 | 288 |
| 289 return 0; | 289 return 0; |
| 290 } | 290 } |
| OLD | NEW |