OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "chrome/browser/android/thumbnail/thumbnail_cache.h" | 5 #include "chrome/browser/android/thumbnail/thumbnail_cache.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 gfx::Size raw_data_size(raw_data.width(), raw_data.height()); | 562 gfx::Size raw_data_size(raw_data.width(), raw_data.height()); |
563 size_t pixel_size = 4; // Pixel size is 4 bytes for kARGB_8888_Config. | 563 size_t pixel_size = 4; // Pixel size is 4 bytes for kARGB_8888_Config. |
564 size_t stride = pixel_size * raw_data_size.width(); | 564 size_t stride = pixel_size * raw_data_size.width(); |
565 | 565 |
566 size_t encoded_bytes = | 566 size_t encoded_bytes = |
567 etc1_get_encoded_data_size(encoded_size.width(), encoded_size.height()); | 567 etc1_get_encoded_data_size(encoded_size.width(), encoded_size.height()); |
568 SkImageInfo info = SkImageInfo::Make(encoded_size.width(), | 568 SkImageInfo info = SkImageInfo::Make(encoded_size.width(), |
569 encoded_size.height(), | 569 encoded_size.height(), |
570 kUnknown_SkColorType, | 570 kUnknown_SkColorType, |
571 kUnpremul_SkAlphaType); | 571 kUnpremul_SkAlphaType); |
572 sk_sp<SkData> etc1_pixel_data(SkData::NewUninitialized(encoded_bytes)); | 572 sk_sp<SkData> etc1_pixel_data(SkData::MakeUninitialized(encoded_bytes)); |
573 sk_sp<SkMallocPixelRef> etc1_pixel_ref( | 573 sk_sp<SkMallocPixelRef> etc1_pixel_ref( |
574 SkMallocPixelRef::NewWithData(info, 0, NULL, etc1_pixel_data.get())); | 574 SkMallocPixelRef::NewWithData(info, 0, NULL, etc1_pixel_data.get())); |
575 | 575 |
576 etc1_pixel_ref->lockPixels(); | 576 etc1_pixel_ref->lockPixels(); |
577 bool success = etc1_encode_image( | 577 bool success = etc1_encode_image( |
578 reinterpret_cast<unsigned char*>(raw_data.getPixels()), | 578 reinterpret_cast<unsigned char*>(raw_data.getPixels()), |
579 raw_data_size.width(), | 579 raw_data_size.width(), |
580 raw_data_size.height(), | 580 raw_data_size.height(), |
581 pixel_size, | 581 pixel_size, |
582 stride, | 582 stride, |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 display_info.GetDisplayHeight()); | 678 display_info.GetDisplayHeight()); |
679 | 679 |
680 if (content_width > max_dimension | 680 if (content_width > max_dimension |
681 || content_height > max_dimension | 681 || content_height > max_dimension |
682 || static_cast<size_t>(raw_width) > NextPowerOfTwo(max_dimension) | 682 || static_cast<size_t>(raw_width) > NextPowerOfTwo(max_dimension) |
683 || static_cast<size_t>(raw_height) > NextPowerOfTwo(max_dimension)) { | 683 || static_cast<size_t>(raw_height) > NextPowerOfTwo(max_dimension)) { |
684 return false; | 684 return false; |
685 } | 685 } |
686 | 686 |
687 int data_size = etc1_get_encoded_data_size(raw_width, raw_height); | 687 int data_size = etc1_get_encoded_data_size(raw_width, raw_height); |
688 sk_sp<SkData> etc1_pixel_data(SkData::NewUninitialized(data_size)); | 688 sk_sp<SkData> etc1_pixel_data(SkData::MakeUninitialized(data_size)); |
689 | 689 |
690 int pixel_bytes_read = file.ReadAtCurrentPos( | 690 int pixel_bytes_read = file.ReadAtCurrentPos( |
691 reinterpret_cast<char*>(etc1_pixel_data->writable_data()), | 691 reinterpret_cast<char*>(etc1_pixel_data->writable_data()), |
692 data_size); | 692 data_size); |
693 | 693 |
694 if (pixel_bytes_read != data_size) | 694 if (pixel_bytes_read != data_size) |
695 return false; | 695 return false; |
696 | 696 |
697 SkImageInfo info = SkImageInfo::Make(raw_width, | 697 SkImageInfo info = SkImageInfo::Make(raw_width, |
698 raw_height, | 698 raw_height, |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 dst_bitmap.eraseColor(0); | 905 dst_bitmap.eraseColor(0); |
906 SkAutoLockPixels dst_bitmap_lock(dst_bitmap); | 906 SkAutoLockPixels dst_bitmap_lock(dst_bitmap); |
907 | 907 |
908 SkCanvas canvas(dst_bitmap); | 908 SkCanvas canvas(dst_bitmap); |
909 canvas.scale(new_scale, new_scale); | 909 canvas.scale(new_scale, new_scale); |
910 canvas.drawBitmap(bitmap, 0, 0, NULL); | 910 canvas.drawBitmap(bitmap, 0, 0, NULL); |
911 dst_bitmap.setImmutable(); | 911 dst_bitmap.setImmutable(); |
912 | 912 |
913 return std::make_pair(dst_bitmap, new_scale * scale); | 913 return std::make_pair(dst_bitmap, new_scale * scale); |
914 } | 914 } |
OLD | NEW |