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

Unified Diff: cc/playback/display_list_raster_source.cc

Issue 1139063002: cc: Partial tile update for one-copy raster. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: monocle: tilemanagerconsistency Created 5 years, 7 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/display_list_raster_source.cc
diff --git a/cc/playback/display_list_raster_source.cc b/cc/playback/display_list_raster_source.cc
index 469841a758e33dcb0bd43009bf0b709470f37d37..ba73c63f76c62303d667e5c9402580aa4f9797d1 100644
--- a/cc/playback/display_list_raster_source.cc
+++ b/cc/playback/display_list_raster_source.cc
@@ -87,33 +87,39 @@ void DisplayListRasterSource::PlaybackToSharedCanvas(
SkCanvas* canvas,
const gfx::Rect& canvas_rect,
float contents_scale) const {
- RasterCommon(canvas, NULL, canvas_rect, contents_scale);
+ RasterCommon(canvas, NULL, canvas_rect, canvas_rect, contents_scale);
}
void DisplayListRasterSource::RasterForAnalysis(skia::AnalysisCanvas* canvas,
const gfx::Rect& canvas_rect,
float contents_scale) const {
- RasterCommon(canvas, canvas, canvas_rect, contents_scale);
+ RasterCommon(canvas, canvas, canvas_rect, canvas_rect, contents_scale);
}
-void DisplayListRasterSource::PlaybackToCanvas(SkCanvas* canvas,
- const gfx::Rect& canvas_rect,
- float contents_scale) const {
+void DisplayListRasterSource::PlaybackToCanvas(
+ SkCanvas* canvas,
+ const gfx::Rect& canvas_bitmap_rect,
+ const gfx::Rect& canvas_playback_rect,
+ float contents_scale) const {
RasterSourceHelper::PrepareForPlaybackToCanvas(
- canvas, canvas_rect, gfx::Rect(size_), contents_scale, background_color_,
- clear_canvas_with_debug_color_, requires_clear_);
+ canvas, canvas_bitmap_rect, canvas_playback_rect, gfx::Rect(size_),
+ contents_scale, background_color_, clear_canvas_with_debug_color_,
+ requires_clear_);
- RasterCommon(canvas, NULL, canvas_rect, contents_scale);
+ RasterCommon(canvas, NULL, canvas_bitmap_rect, canvas_playback_rect,
+ contents_scale);
}
-void DisplayListRasterSource::RasterCommon(SkCanvas* canvas,
- SkPicture::AbortCallback* callback,
- const gfx::Rect& canvas_rect,
- float contents_scale) const {
- canvas->translate(-canvas_rect.x(), -canvas_rect.y());
+void DisplayListRasterSource::RasterCommon(
+ SkCanvas* canvas,
+ SkPicture::AbortCallback* callback,
+ const gfx::Rect& canvas_bitmap_rect,
+ const gfx::Rect& canvas_playback_rect,
+ float contents_scale) const {
+ canvas->translate(-canvas_bitmap_rect.x(), -canvas_bitmap_rect.y());
gfx::Rect content_rect =
gfx::ToEnclosingRect(gfx::ScaleRect(gfx::Rect(size_), contents_scale));
- content_rect.Intersect(canvas_rect);
+ content_rect.Intersect(canvas_playback_rect);
canvas->clipRect(gfx::RectToSkRect(content_rect), SkRegion::kIntersect_Op);
@@ -129,7 +135,7 @@ skia::RefPtr<SkPicture> DisplayListRasterSource::GetFlattenedPicture() {
SkCanvas* canvas = recorder.beginRecording(display_list_rect.width(),
display_list_rect.height());
if (!display_list_rect.IsEmpty())
- PlaybackToCanvas(canvas, display_list_rect, 1.0);
+ PlaybackToCanvas(canvas, display_list_rect, display_list_rect, 1.0);
skia::RefPtr<SkPicture> picture =
skia::AdoptRef(recorder.endRecordingAsPicture());

Powered by Google App Engine
This is Rietveld 408576698