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

Unified Diff: cc/playback/image_hijack_canvas.cc

Issue 2668873002: cc: Add checker-imaging support to TileManager. (Closed)
Patch Set: Rebase Created 3 years, 10 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/playback/image_hijack_canvas.cc
diff --git a/cc/playback/image_hijack_canvas.cc b/cc/playback/image_hijack_canvas.cc
index a5d596d7e2f88a1eab3ba5b62cfcad2fe3cbcb26..b26d38ec1f3ca76492d574f223853501bf15d071 100644
--- a/cc/playback/image_hijack_canvas.cc
+++ b/cc/playback/image_hijack_canvas.cc
@@ -120,10 +120,14 @@ class ScopedImagePaint {
} // namespace
-ImageHijackCanvas::ImageHijackCanvas(int width,
- int height,
- ImageDecodeCache* image_decode_cache)
- : SkNWayCanvas(width, height), image_decode_cache_(image_decode_cache) {}
+ImageHijackCanvas::ImageHijackCanvas(
+ int width,
+ int height,
+ ImageDecodeCache* image_decode_cache,
+ const std::unordered_set<ImageId>* images_to_skip)
+ : SkNWayCanvas(width, height),
+ image_decode_cache_(image_decode_cache),
+ images_to_skip_(images_to_skip) {}
void ImageHijackCanvas::onDrawPicture(const SkPicture* picture,
const SkMatrix* matrix,
@@ -138,10 +142,14 @@ void ImageHijackCanvas::onDrawImage(const SkImage* image,
SkScalar y,
const SkPaint* paint) {
if (!image->isLazyGenerated()) {
+ DCHECK(!ShouldSkipImage(image));
SkNWayCanvas::onDrawImage(image, x, y, paint);
return;
}
+ if (ShouldSkipImage(image))
+ return;
+
SkMatrix ctm = getTotalMatrix();
ScopedDecodedImageLock scoped_lock(
@@ -172,10 +180,14 @@ void ImageHijackCanvas::onDrawImageRect(const SkImage* image,
const SkPaint* paint,
SrcRectConstraint constraint) {
if (!image->isLazyGenerated()) {
+ DCHECK(!ShouldSkipImage(image));
SkNWayCanvas::onDrawImageRect(image, src, dst, paint, constraint);
return;
}
+ if (ShouldSkipImage(image))
+ return;
+
SkRect src_storage;
if (!src) {
src_storage = SkRect::MakeIWH(image->width(), image->height());
@@ -270,4 +282,8 @@ void ImageHijackCanvas::onDrawImageNine(const SkImage* image,
NOTREACHED();
}
+bool ImageHijackCanvas::ShouldSkipImage(const SkImage* image) {
+ return images_to_skip_->find(image->uniqueID()) != images_to_skip_->end();
+}
+
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698