Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4524)

Unified Diff: cc/tiles/software_image_decode_controller.h

Issue 1839833003: Add medium image quality to software predecode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/tiles/software_image_decode_controller.h
diff --git a/cc/tiles/software_image_decode_controller.h b/cc/tiles/software_image_decode_controller.h
index 20dc4511f23a95e0a97fc77ef29c396c987fcf17..7276dca6ec26aec4eadac2577581765ab34dacb6 100644
--- a/cc/tiles/software_image_decode_controller.h
+++ b/cc/tiles/software_image_decode_controller.h
@@ -184,18 +184,38 @@ class CC_EXPORT SoftwareImageDecodeController : public ImageDecodeController {
DecodedDrawImage GetDecodedImageForDrawInternal(const ImageKey& key,
const DrawImage& draw_image);
+ struct DecodedImageResult {
+ DecodedImageResult(SkPixmap decoded_pixmap,
+ DrawImage original_size_draw_image,
+ DecodedDrawImage decoded_draw_image);
+
+ SkPixmap decoded_pixmap_;
+ DrawImage original_size_draw_image_;
+ DecodedDrawImage decoded_draw_image_;
+ };
+
+ scoped_ptr<DecodedImage> DecodeImageNoneLowQuality(const ImageKey& key,
+ const SkImage& image);
+ scoped_ptr<DecodedImage> DecodeImageMediumQuality(const ImageKey& key,
+ const SkImage& image);
+ scoped_ptr<DecodedImage> DecodeImageHighQuality(const ImageKey& key,
+ const SkImage& image);
+
+ scoped_ptr<DecodedImage> AttemptToUseOriginalImage(const ImageKey& key,
+ const SkImage& image);
+
+ DecodedImageResult DecodeImageOrUseCache(const ImageKey& key,
+ const SkImage& image);
+
+ scoped_ptr<DecodedImage> ScaleImage(
+ const ImageKey& key,
+ const DecodedImageResult& decoded_image_result);
+
void SanityCheckState(int line, bool lock_acquired);
void RefImage(const ImageKey& key);
void RefAtRasterImage(const ImageKey& key);
void UnrefAtRasterImage(const ImageKey& key);
- // These functions indicate whether the images can be handled and cached by
- // ImageDecodeController or whether they will fall through to Skia (with
- // exception of possibly prerolling them). Over time these should return
- // "false" in less cases, as the ImageDecodeController should start handling
- // more of them.
- bool CanHandleImage(const ImageKey& key);
-
std::unordered_map<ImageKey, scoped_refptr<ImageDecodeTask>, ImageKeyHash>
pending_image_tasks_;

Powered by Google App Engine
This is Rietveld 408576698