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

Side by Side Diff: cc/playback/display_list_raster_source.cc

Issue 1756413002: cc: Disable image hijack canvas when we don't have images in the map. (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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "cc/playback/display_list_raster_source.h" 5 #include "cc/playback/display_list_raster_source.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/containers/adapters.h" 9 #include "base/containers/adapters.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 } 286 }
287 287
288 void DisplayListRasterSource::PlaybackToCanvas( 288 void DisplayListRasterSource::PlaybackToCanvas(
289 SkCanvas* raster_canvas, 289 SkCanvas* raster_canvas,
290 const gfx::Rect& canvas_bitmap_rect, 290 const gfx::Rect& canvas_bitmap_rect,
291 const gfx::Rect& canvas_playback_rect, 291 const gfx::Rect& canvas_playback_rect,
292 float contents_scale) const { 292 float contents_scale) const {
293 PrepareForPlaybackToCanvas(raster_canvas, canvas_bitmap_rect, 293 PrepareForPlaybackToCanvas(raster_canvas, canvas_bitmap_rect,
294 canvas_playback_rect, contents_scale); 294 canvas_playback_rect, contents_scale);
295 295
296 SkImageInfo info = raster_canvas->imageInfo(); 296 if (display_list_->MayHaveDiscardableImages()) {
297 ImageHijackCanvas canvas(info.width(), info.height(), 297 const SkImageInfo& info = raster_canvas->imageInfo();
298 image_decode_controller_); 298 ImageHijackCanvas canvas(info.width(), info.height(),
299 canvas.addCanvas(raster_canvas); 299 image_decode_controller_);
300 RasterCommon(&canvas, NULL, canvas_bitmap_rect, canvas_playback_rect, 300 canvas.addCanvas(raster_canvas);
301 contents_scale); 301 RasterCommon(&canvas, nullptr, canvas_bitmap_rect, canvas_playback_rect,
302 contents_scale);
303 } else {
304 RasterCommon(raster_canvas, nullptr, canvas_bitmap_rect,
305 canvas_playback_rect, contents_scale);
306 }
302 } 307 }
303 308
304 void DisplayListRasterSource::PrepareForPlaybackToCanvas( 309 void DisplayListRasterSource::PrepareForPlaybackToCanvas(
305 SkCanvas* canvas, 310 SkCanvas* canvas,
306 const gfx::Rect& canvas_bitmap_rect, 311 const gfx::Rect& canvas_bitmap_rect,
307 const gfx::Rect& canvas_playback_rect, 312 const gfx::Rect& canvas_playback_rect,
308 float contents_scale) const { 313 float contents_scale) const {
309 // TODO(hendrikw): See if we can split this up into separate functions. 314 // TODO(hendrikw): See if we can split this up into separate functions.
310 bool partial_update = canvas_bitmap_rect != canvas_playback_rect; 315 bool partial_update = canvas_bitmap_rect != canvas_playback_rect;
311 316
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 base::trace_event::MemoryAllocatorDump* dump = 545 base::trace_event::MemoryAllocatorDump* dump =
541 pmd->CreateAllocatorDump(dump_name); 546 pmd->CreateAllocatorDump(dump_name);
542 dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, 547 dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
543 base::trace_event::MemoryAllocatorDump::kUnitsBytes, 548 base::trace_event::MemoryAllocatorDump::kUnitsBytes,
544 memory_usage); 549 memory_usage);
545 } 550 }
546 return true; 551 return true;
547 } 552 }
548 553
549 } // namespace cc 554 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698