Index: cc/tiles/software_image_decode_controller.cc |
diff --git a/cc/tiles/software_image_decode_controller.cc b/cc/tiles/software_image_decode_controller.cc |
index e4fc39eb68878c0ecf53a5e269d9bdc3946b8d10..5f9d2b58b21a550f6e1fbdbd18498aa416dafe61 100644 |
--- a/cc/tiles/software_image_decode_controller.cc |
+++ b/cc/tiles/software_image_decode_controller.cc |
@@ -107,12 +107,21 @@ SkFilterQuality GetDecodedFilterQuality(const ImageDecodeControllerKey& key) { |
return std::min(key.filter_quality(), kLow_SkFilterQuality); |
} |
+SkImageInfo CreateImageInfo(size_t width, |
+ size_t height, |
+ ResourceFormat format) { |
+ return SkImageInfo::Make(width, height, ResourceFormatToSkColorType(format), |
+ kPremul_SkAlphaType); |
+} |
+ |
} // namespace |
-SoftwareImageDecodeController::SoftwareImageDecodeController() |
+SoftwareImageDecodeController::SoftwareImageDecodeController( |
+ ResourceFormat format) |
: decoded_images_(ImageMRUCache::NO_AUTO_EVICT), |
at_raster_decoded_images_(ImageMRUCache::NO_AUTO_EVICT), |
- locked_images_budget_(kLockedMemoryLimitBytes) {} |
+ locked_images_budget_(kLockedMemoryLimitBytes), |
+ format_(format) {} |
SoftwareImageDecodeController::~SoftwareImageDecodeController() { |
DCHECK_EQ(0u, decoded_images_ref_counts_.size()); |
@@ -345,7 +354,7 @@ SoftwareImageDecodeController::DecodeImageInternal( |
// just read pixels into the final memory. |
if (key.can_use_original_decode()) { |
SkImageInfo decoded_info = |
- SkImageInfo::MakeN32Premul(image->width(), image->height()); |
+ CreateImageInfo(image->width(), image->height(), format_); |
scoped_ptr<base::DiscardableMemory> decoded_pixels; |
{ |
TRACE_EVENT0( |
@@ -414,8 +423,8 @@ SoftwareImageDecodeController::DecodeImageInternal( |
// Now we have a decoded_pixmap which represents the src_rect at the |
// original scale. All we need to do is scale it. |
DCHECK(!key.target_size().IsEmpty()); |
- SkImageInfo scaled_info = SkImageInfo::MakeN32Premul( |
- key.target_size().width(), key.target_size().height()); |
+ SkImageInfo scaled_info = CreateImageInfo( |
+ key.target_size().width(), key.target_size().height(), format_); |
scoped_ptr<base::DiscardableMemory> scaled_pixels; |
{ |
TRACE_EVENT0( |