| OLD | NEW | 
|     1 /* |     1 /* | 
|     2  * Copyright 2014 Google Inc. |     2  * Copyright 2014 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 #include <ctype.h> |     8 #include <ctype.h> | 
|     9  |     9  | 
|    10 #include "nanobench.h" |    10 #include "nanobench.h" | 
| (...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   522         break; |   522         break; | 
|   523     } |   523     } | 
|   524  |   524  | 
|   525     if (!target->init(info, bench)) { |   525     if (!target->init(info, bench)) { | 
|   526         delete target; |   526         delete target; | 
|   527         return nullptr; |   527         return nullptr; | 
|   528     } |   528     } | 
|   529     return target; |   529     return target; | 
|   530 } |   530 } | 
|   531  |   531  | 
|   532 static bool valid_brd_bench(SkData* encoded, SkColorType colorType, uint32_t sam
      pleSize, |   532 static bool valid_brd_bench(sk_sp<SkData> encoded, SkColorType colorType, uint32
      _t sampleSize, | 
|   533         uint32_t minOutputSize, int* width, int* height) { |   533         uint32_t minOutputSize, int* width, int* height) { | 
|   534     SkAutoTDelete<SkBitmapRegionDecoder> brd( |   534     SkAutoTDelete<SkBitmapRegionDecoder> brd( | 
|   535             SkBitmapRegionDecoder::Create(encoded, SkBitmapRegionDecoder::kAndro
      idCodec_Strategy)); |   535             SkBitmapRegionDecoder::Create(encoded, SkBitmapRegionDecoder::kAndro
      idCodec_Strategy)); | 
|   536     if (nullptr == brd.get()) { |   536     if (nullptr == brd.get()) { | 
|   537         // This is indicates that subset decoding is not supported for a particu
      lar image format. |   537         // This is indicates that subset decoding is not supported for a particu
      lar image format. | 
|   538         return false; |   538         return false; | 
|   539     } |   539     } | 
|   540  |   540  | 
|   541     if (sampleSize * minOutputSize > (uint32_t) brd->width() || sampleSize * min
      OutputSize > |   541     if (sampleSize * minOutputSize > (uint32_t) brd->width() || sampleSize * min
      OutputSize > | 
|   542             (uint32_t) brd->height()) { |   542             (uint32_t) brd->height()) { | 
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   749         } |   749         } | 
|   750  |   750  | 
|   751         for (; fCurrentCodec < fImages.count(); fCurrentCodec++) { |   751         for (; fCurrentCodec < fImages.count(); fCurrentCodec++) { | 
|   752             fSourceType = "image"; |   752             fSourceType = "image"; | 
|   753             fBenchType = "skcodec"; |   753             fBenchType = "skcodec"; | 
|   754             const SkString& path = fImages[fCurrentCodec]; |   754             const SkString& path = fImages[fCurrentCodec]; | 
|   755             if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path.c_str())) { |   755             if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path.c_str())) { | 
|   756                 continue; |   756                 continue; | 
|   757             } |   757             } | 
|   758             sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); |   758             sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); | 
|   759             SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); |   759             SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); | 
|   760             if (!codec) { |   760             if (!codec) { | 
|   761                 // Nothing to time. |   761                 // Nothing to time. | 
|   762                 SkDebugf("Cannot find codec for %s\n", path.c_str()); |   762                 SkDebugf("Cannot find codec for %s\n", path.c_str()); | 
|   763                 continue; |   763                 continue; | 
|   764             } |   764             } | 
|   765  |   765  | 
|   766             while (fCurrentColorType < fColorTypes.count()) { |   766             while (fCurrentColorType < fColorTypes.count()) { | 
|   767                 const SkColorType colorType = fColorTypes[fCurrentColorType]; |   767                 const SkColorType colorType = fColorTypes[fCurrentColorType]; | 
|   768  |   768  | 
|   769                 SkAlphaType alphaType = codec->getInfo().alphaType(); |   769                 SkAlphaType alphaType = codec->getInfo().alphaType(); | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   833         const int sampleSizes[] = { 2, 4, 8 }; |   833         const int sampleSizes[] = { 2, 4, 8 }; | 
|   834         for (; fCurrentAndroidCodec < fImages.count(); fCurrentAndroidCodec++) { |   834         for (; fCurrentAndroidCodec < fImages.count(); fCurrentAndroidCodec++) { | 
|   835             fSourceType = "image"; |   835             fSourceType = "image"; | 
|   836             fBenchType = "skandroidcodec"; |   836             fBenchType = "skandroidcodec"; | 
|   837  |   837  | 
|   838             const SkString& path = fImages[fCurrentAndroidCodec]; |   838             const SkString& path = fImages[fCurrentAndroidCodec]; | 
|   839             if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path.c_str())) { |   839             if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path.c_str())) { | 
|   840                 continue; |   840                 continue; | 
|   841             } |   841             } | 
|   842             sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); |   842             sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); | 
|   843             SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(enco
      ded.get())); |   843             SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(enco
      ded)); | 
|   844             if (!codec) { |   844             if (!codec) { | 
|   845                 // Nothing to time. |   845                 // Nothing to time. | 
|   846                 SkDebugf("Cannot find codec for %s\n", path.c_str()); |   846                 SkDebugf("Cannot find codec for %s\n", path.c_str()); | 
|   847                 continue; |   847                 continue; | 
|   848             } |   848             } | 
|   849  |   849  | 
|   850             while (fCurrentSampleSize < (int) SK_ARRAY_COUNT(sampleSizes)) { |   850             while (fCurrentSampleSize < (int) SK_ARRAY_COUNT(sampleSizes)) { | 
|   851                 int sampleSize = sampleSizes[fCurrentSampleSize]; |   851                 int sampleSize = sampleSizes[fCurrentSampleSize]; | 
|   852                 fCurrentSampleSize++; |   852                 fCurrentSampleSize++; | 
|   853                 if (10 * sampleSize > SkTMin(codec->getInfo().width(), codec->ge
      tInfo().height())) { |   853                 if (10 * sampleSize > SkTMin(codec->getInfo().width(), codec->ge
      tInfo().height())) { | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   889                 while (fCurrentSampleSize < (int) SK_ARRAY_COUNT(brdSampleSizes)
      ) { |   889                 while (fCurrentSampleSize < (int) SK_ARRAY_COUNT(brdSampleSizes)
      ) { | 
|   890                     while (fCurrentSubsetType <= kLastSingle_SubsetType) { |   890                     while (fCurrentSubsetType <= kLastSingle_SubsetType) { | 
|   891  |   891  | 
|   892                         sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_st
      r())); |   892                         sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_st
      r())); | 
|   893                         const SkColorType colorType = fColorTypes[fCurrentColorT
      ype]; |   893                         const SkColorType colorType = fColorTypes[fCurrentColorT
      ype]; | 
|   894                         uint32_t sampleSize = brdSampleSizes[fCurrentSampleSize]
      ; |   894                         uint32_t sampleSize = brdSampleSizes[fCurrentSampleSize]
      ; | 
|   895                         int currentSubsetType = fCurrentSubsetType++; |   895                         int currentSubsetType = fCurrentSubsetType++; | 
|   896  |   896  | 
|   897                         int width = 0; |   897                         int width = 0; | 
|   898                         int height = 0; |   898                         int height = 0; | 
|   899                         if (!valid_brd_bench(encoded.get(), colorType, sampleSiz
      e, minOutputSize, |   899                         if (!valid_brd_bench(encoded, colorType, sampleSize, min
      OutputSize, | 
|   900                                 &width, &height)) { |   900                                 &width, &height)) { | 
|   901                             break; |   901                             break; | 
|   902                         } |   902                         } | 
|   903  |   903  | 
|   904                         SkString basename = SkOSPath::Basename(path.c_str()); |   904                         SkString basename = SkOSPath::Basename(path.c_str()); | 
|   905                         SkIRect subset; |   905                         SkIRect subset; | 
|   906                         const uint32_t subsetSize = sampleSize * minOutputSize; |   906                         const uint32_t subsetSize = sampleSize * minOutputSize; | 
|   907                         switch (currentSubsetType) { |   907                         switch (currentSubsetType) { | 
|   908                             case kTopLeft_SubsetType: |   908                             case kTopLeft_SubsetType: | 
|   909                                 basename.append("_TopLeft"); |   909                                 basename.append("_TopLeft"); | 
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1303  |  1303  | 
|  1304     return 0; |  1304     return 0; | 
|  1305 } |  1305 } | 
|  1306  |  1306  | 
|  1307 #if !defined SK_BUILD_FOR_IOS |  1307 #if !defined SK_BUILD_FOR_IOS | 
|  1308 int main(int argc, char** argv) { |  1308 int main(int argc, char** argv) { | 
|  1309     SkCommandLineFlags::Parse(argc, argv); |  1309     SkCommandLineFlags::Parse(argc, argv); | 
|  1310     return nanobench_main(); |  1310     return nanobench_main(); | 
|  1311 } |  1311 } | 
|  1312 #endif |  1312 #endif | 
| OLD | NEW |