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_store.h" | 5 #include "chrome/browser/android/thumbnail/thumbnail_store.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/big_endian.h" | 10 #include "base/big_endian.h" |
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 gfx::Size content_size; | 557 gfx::Size content_size; |
558 | 558 |
559 if (!raw_data.empty()) { | 559 if (!raw_data.empty()) { |
560 SkAutoLockPixels raw_data_lock(raw_data); | 560 SkAutoLockPixels raw_data_lock(raw_data); |
561 gfx::Size raw_data_size(raw_data.width(), raw_data.height()); | 561 gfx::Size raw_data_size(raw_data.width(), raw_data.height()); |
562 size_t pixel_size = 4; // Pixel size is 4 bytes for kARGB_8888_Config. | 562 size_t pixel_size = 4; // Pixel size is 4 bytes for kARGB_8888_Config. |
563 size_t stride = pixel_size * raw_data_size.width(); | 563 size_t stride = pixel_size * raw_data_size.width(); |
564 | 564 |
565 size_t encoded_bytes = | 565 size_t encoded_bytes = |
566 etc1_get_encoded_data_size(encoded_size.width(), encoded_size.height()); | 566 etc1_get_encoded_data_size(encoded_size.width(), encoded_size.height()); |
567 SkImageInfo info = {encoded_size.width(), | 567 SkImageInfo info = SkImageInfo::Make(encoded_size.width(), |
568 encoded_size.height(), | 568 encoded_size.height(), |
569 kUnknown_SkColorType, | 569 kUnknown_SkColorType, |
570 kUnpremul_SkAlphaType}; | 570 kUnpremul_SkAlphaType); |
571 skia::RefPtr<SkData> etc1_pixel_data = skia::AdoptRef( | 571 skia::RefPtr<SkData> etc1_pixel_data = skia::AdoptRef( |
572 SkData::NewFromMalloc(new uint8_t[encoded_bytes], encoded_bytes)); | 572 SkData::NewFromMalloc(new uint8_t[encoded_bytes], encoded_bytes)); |
573 skia::RefPtr<SkMallocPixelRef> etc1_pixel_ref = skia::AdoptRef( | 573 skia::RefPtr<SkMallocPixelRef> etc1_pixel_ref = skia::AdoptRef( |
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(), |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 scoped_ptr<uint8_t[]> raw_data = | 687 scoped_ptr<uint8_t[]> raw_data = |
688 scoped_ptr<uint8_t[]>(new uint8_t[data_size]); | 688 scoped_ptr<uint8_t[]>(new uint8_t[data_size]); |
689 | 689 |
690 int pixel_bytes_read = file.ReadAtCurrentPos( | 690 int pixel_bytes_read = file.ReadAtCurrentPos( |
691 reinterpret_cast<char*>(raw_data.get()), | 691 reinterpret_cast<char*>(raw_data.get()), |
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 = {raw_width, | 697 SkImageInfo info = SkImageInfo::Make(raw_width, |
698 raw_height, | 698 raw_height, |
699 kUnknown_SkColorType, | 699 kUnknown_SkColorType, |
700 kUnpremul_SkAlphaType}; | 700 kUnpremul_SkAlphaType); |
701 | 701 |
702 etc1_pixel_data = skia::AdoptRef( | 702 etc1_pixel_data = skia::AdoptRef( |
703 SkData::NewFromMalloc(raw_data.release(), data_size)); | 703 SkData::NewFromMalloc(raw_data.release(), data_size)); |
704 | 704 |
705 *out_pixels = skia::AdoptRef( | 705 *out_pixels = skia::AdoptRef( |
706 SkMallocPixelRef::NewWithData(info, | 706 SkMallocPixelRef::NewWithData(info, |
707 0, | 707 0, |
708 NULL, | 708 NULL, |
709 etc1_pixel_data.get())); | 709 etc1_pixel_data.get())); |
710 | 710 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 dst_bitmap.eraseColor(0); | 841 dst_bitmap.eraseColor(0); |
842 SkAutoLockPixels dst_bitmap_lock(dst_bitmap); | 842 SkAutoLockPixels dst_bitmap_lock(dst_bitmap); |
843 | 843 |
844 SkCanvas canvas(dst_bitmap); | 844 SkCanvas canvas(dst_bitmap); |
845 canvas.scale(new_scale, new_scale); | 845 canvas.scale(new_scale, new_scale); |
846 canvas.drawBitmap(bitmap, 0, 0, NULL); | 846 canvas.drawBitmap(bitmap, 0, 0, NULL); |
847 dst_bitmap.setImmutable(); | 847 dst_bitmap.setImmutable(); |
848 | 848 |
849 return std::make_pair(dst_bitmap, new_scale * scale); | 849 return std::make_pair(dst_bitmap, new_scale * scale); |
850 } | 850 } |
OLD | NEW |