| // Copyright 2015 The Cobalt Authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #include <memory> |
| |
| #include "base/files/file_path.h" |
| #include "base/path_service.h" |
| #include "cobalt/base/cobalt_paths.h" |
| #include "cobalt/renderer/test/png_utils/png_decode.h" |
| #include "cobalt/trace_event/benchmark.h" |
| |
| namespace { |
| base::FilePath GetBenchmarkImagePath() { |
| base::FilePath data_directory; |
| CHECK(base::PathService::Get(base::DIR_TEST_DATA, &data_directory)); |
| return data_directory.Append(FILE_PATH_LITERAL("test")) |
| .Append(FILE_PATH_LITERAL("png_utils")) |
| .Append(FILE_PATH_LITERAL("png_benchmark_image.png")); |
| } |
| } // namespace |
| |
| TRACE_EVENT_BENCHMARK2( |
| DecodePNGToRGBABenchmark, |
| "PNGFileReadContext::PNGFileReadContext()", |
| cobalt::trace_event::IN_SCOPE_DURATION, |
| "PNGFileReadContext::DecodeImageTo()", |
| cobalt::trace_event::IN_SCOPE_DURATION) { |
| const int kIterationCount = 20; |
| for (int i = 0; i < kIterationCount; ++i) { |
| int width; |
| int height; |
| std::unique_ptr<uint8_t[]> pixel_data = |
| cobalt::renderer::test::png_utils::DecodePNGToRGBA( |
| GetBenchmarkImagePath(), &width, &height); |
| } |
| } |
| |
| TRACE_EVENT_BENCHMARK2( |
| DecodePNGToPremultipliedAlphaRGBABenchmark, |
| "PNGFileReadContext::PNGFileReadContext()", |
| cobalt::trace_event::IN_SCOPE_DURATION, |
| "PNGFileReadContext::DecodeImageTo()", |
| cobalt::trace_event::IN_SCOPE_DURATION) { |
| base::FilePath data_directory; |
| CHECK(base::PathService::Get(base::DIR_TEST_DATA, &data_directory)); |
| |
| const int kIterationCount = 20; |
| for (int i = 0; i < kIterationCount; ++i) { |
| int width; |
| int height; |
| std::unique_ptr<uint8_t[]> pixel_data = |
| cobalt::renderer::test::png_utils::DecodePNGToPremultipliedAlphaRGBA( |
| GetBenchmarkImagePath(), &width, &height); |
| } |
| } |