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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/compositing/PaintChunksToCcLayer.cpp

Issue 2894843002: Revert of Remove cullRect() from PaintOpBuffer. (Closed)
Patch Set: rebase TestExpectations Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "platform/graphics/compositing/PaintChunksToCcLayer.h" 5 #include "platform/graphics/compositing/PaintChunksToCcLayer.h"
6 6
7 #include "cc/paint/compositing_display_item.h" 7 #include "cc/paint/compositing_display_item.h"
8 #include "cc/paint/display_item_list.h" 8 #include "cc/paint/display_item_list.h"
9 #include "cc/paint/drawing_display_item.h" 9 #include "cc/paint/drawing_display_item.h"
10 #include "cc/paint/filter_display_item.h" 10 #include "cc/paint/filter_display_item.h"
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 176 }
177 } 177 }
178 } 178 }
179 179
180 static gfx::Rect g_large_rect(-200000, -200000, 400000, 400000); 180 static gfx::Rect g_large_rect(-200000, -200000, 400000, 400000);
181 static void AppendDisplayItemToCcDisplayItemList( 181 static void AppendDisplayItemToCcDisplayItemList(
182 const DisplayItem& display_item, 182 const DisplayItem& display_item,
183 cc::DisplayItemList* list) { 183 cc::DisplayItemList* list) {
184 DCHECK(DisplayItem::IsDrawingType(display_item.GetType())); 184 DCHECK(DisplayItem::IsDrawingType(display_item.GetType()));
185 if (DisplayItem::IsDrawingType(display_item.GetType())) { 185 if (DisplayItem::IsDrawingType(display_item.GetType())) {
186 const auto& drawing_display_item = 186 sk_sp<const PaintRecord> record =
187 static_cast<const DrawingDisplayItem&>(display_item); 187 static_cast<const DrawingDisplayItem&>(display_item).GetPaintRecord();
188 sk_sp<const PaintRecord> record = drawing_display_item.GetPaintRecord();
189 if (!record) 188 if (!record)
190 return; 189 return;
191 SkRect record_bounds = drawing_display_item.GetPaintRecordBounds();
192 // In theory we would pass the bounds of the record, previously done as: 190 // In theory we would pass the bounds of the record, previously done as:
193 // gfx::Rect bounds = gfx::SkIRectToRect(record->cullRect().roundOut()); 191 // gfx::Rect bounds = gfx::SkIRectToRect(record->cullRect().roundOut());
194 // or use the visual rect directly. However, clip content layers attempt 192 // or use the visual rect directly. However, clip content layers attempt
195 // to raster in a different space than that of the visual rects. We'll be 193 // to raster in a different space than that of the visual rects. We'll be
196 // reworking visual rects further for SPv2, so for now we just pass a 194 // reworking visual rects further for SPv2, so for now we just pass a
197 // visual rect large enough to make sure items raster. 195 // visual rect large enough to make sure items raster.
198 list->CreateAndAppendDrawingItem<cc::DrawingDisplayItem>( 196 list->CreateAndAppendDrawingItem<cc::DrawingDisplayItem>(g_large_rect,
199 g_large_rect, std::move(record), record_bounds); 197 std::move(record));
200 } 198 }
201 } 199 }
202 200
203 } // unnamed namespace 201 } // unnamed namespace
204 202
205 scoped_refptr<cc::DisplayItemList> PaintChunksToCcLayer::Convert( 203 scoped_refptr<cc::DisplayItemList> PaintChunksToCcLayer::Convert(
206 const Vector<const PaintChunk*>& paint_chunks, 204 const Vector<const PaintChunk*>& paint_chunks,
207 const PropertyTreeState& layer_state, 205 const PropertyTreeState& layer_state,
208 const gfx::Vector2dF& layer_offset, 206 const gfx::Vector2dF& layer_offset,
209 const DisplayItemList& display_items) { 207 const DisplayItemList& display_items) {
(...skipping 29 matching lines...) Expand all
239 RecordPairedEndDisplayItems(end_display_items, cc_list.get()); 237 RecordPairedEndDisplayItems(end_display_items, cc_list.get());
240 } 238 }
241 239
242 cc_list->CreateAndAppendPairedEndItem<cc::EndTransformDisplayItem>(); 240 cc_list->CreateAndAppendPairedEndItem<cc::EndTransformDisplayItem>();
243 241
244 cc_list->Finalize(); 242 cc_list->Finalize();
245 return cc_list; 243 return cc_list;
246 } 244 }
247 245
248 } // namespace blink 246 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698