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

Unified Diff: cc/blink/web_display_item_list_impl.cc

Issue 1123983002: cc: Use a ListContainer for DisplayItemList to reduce allocations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: displaylistcontainer: fixdcheck 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
« no previous file with comments | « cc/BUILD.gn ('k') | cc/cc.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/blink/web_display_item_list_impl.cc
diff --git a/cc/blink/web_display_item_list_impl.cc b/cc/blink/web_display_item_list_impl.cc
index 2bad804cb54a89469e2e0d9cdee2573fa96c2725..7bd983c94904c2fc6b37a19009c0244fc976110c 100644
--- a/cc/blink/web_display_item_list_impl.cc
+++ b/cc/blink/web_display_item_list_impl.cc
@@ -31,8 +31,9 @@ WebDisplayItemListImpl::WebDisplayItemListImpl(
}
void WebDisplayItemListImpl::appendDrawingItem(const SkPicture* picture) {
- display_item_list_->AppendItem(cc::DrawingDisplayItem::Create(
- skia::SharePtr(const_cast<SkPicture*>(picture))));
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::DrawingDisplayItem>();
+ item->SetNew(skia::SharePtr(const_cast<SkPicture*>(picture)));
}
void WebDisplayItemListImpl::appendClipItem(
@@ -42,42 +43,47 @@ void WebDisplayItemListImpl::appendClipItem(
for (size_t i = 0; i < rounded_clip_rects.size(); ++i) {
rounded_rects.push_back(rounded_clip_rects[i]);
}
- display_item_list_->AppendItem(
- cc::ClipDisplayItem::Create(clip_rect, rounded_rects));
+ auto* item = display_item_list_->CreateAndAppendItem<cc::ClipDisplayItem>();
+ item->SetNew(clip_rect, rounded_rects);
}
void WebDisplayItemListImpl::appendEndClipItem() {
- display_item_list_->AppendItem(cc::EndClipDisplayItem::Create());
+ display_item_list_->CreateAndAppendItem<cc::EndClipDisplayItem>();
}
void WebDisplayItemListImpl::appendClipPathItem(const SkPath& clip_path,
SkRegion::Op clip_op,
bool antialias) {
- display_item_list_->AppendItem(
- cc::ClipPathDisplayItem::Create(clip_path, clip_op, antialias));
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::ClipPathDisplayItem>();
+ item->SetNew(clip_path, clip_op, antialias);
}
void WebDisplayItemListImpl::appendEndClipPathItem() {
- display_item_list_->AppendItem(cc::EndClipPathDisplayItem::Create());
+ display_item_list_->CreateAndAppendItem<cc::EndClipPathDisplayItem>();
}
void WebDisplayItemListImpl::appendFloatClipItem(
const blink::WebFloatRect& clip_rect) {
- display_item_list_->AppendItem(cc::FloatClipDisplayItem::Create(clip_rect));
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::FloatClipDisplayItem>();
+ item->SetNew(clip_rect);
}
void WebDisplayItemListImpl::appendEndFloatClipItem() {
- display_item_list_->AppendItem(cc::EndFloatClipDisplayItem::Create());
+ display_item_list_->CreateAndAppendItem<cc::EndFloatClipDisplayItem>();
}
void WebDisplayItemListImpl::appendTransformItem(const SkMatrix44& matrix) {
gfx::Transform transform;
transform.matrix() = matrix;
- display_item_list_->AppendItem(cc::TransformDisplayItem::Create(transform));
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::TransformDisplayItem>();
+ item->SetNew(transform);
}
void WebDisplayItemListImpl::appendEndTransformItem() {
- display_item_list_->AppendItem(cc::EndTransformDisplayItem::Create());
+ display_item_list_->CreateAndAppendItem<cc::EndTransformDisplayItem>();
}
void WebDisplayItemListImpl::appendCompositingItem(
@@ -89,13 +95,14 @@ void WebDisplayItemListImpl::appendCompositingItem(
DCHECK_LE(opacity, 1.f);
// TODO(ajuma): This should really be rounding instead of flooring the alpha
// value, but that breaks slimming paint reftests.
- display_item_list_->AppendItem(cc::CompositingDisplayItem::Create(
- static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)), xfermode, bounds,
- skia::SharePtr(color_filter)));
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::CompositingDisplayItem>();
+ item->SetNew(static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)), xfermode,
+ bounds, skia::SharePtr(color_filter));
}
void WebDisplayItemListImpl::appendEndCompositingItem() {
- display_item_list_->AppendItem(cc::EndCompositingDisplayItem::Create());
+ display_item_list_->CreateAndAppendItem<cc::EndCompositingDisplayItem>();
}
void WebDisplayItemListImpl::appendFilterItem(
@@ -103,12 +110,12 @@ void WebDisplayItemListImpl::appendFilterItem(
const blink::WebFloatRect& bounds) {
const WebFilterOperationsImpl& filters_impl =
static_cast<const WebFilterOperationsImpl&>(filters);
- display_item_list_->AppendItem(
- cc::FilterDisplayItem::Create(filters_impl.AsFilterOperations(), bounds));
+ auto* item = display_item_list_->CreateAndAppendItem<cc::FilterDisplayItem>();
+ item->SetNew(filters_impl.AsFilterOperations(), bounds);
}
void WebDisplayItemListImpl::appendEndFilterItem() {
- display_item_list_->AppendItem(cc::EndFilterDisplayItem::Create());
+ display_item_list_->CreateAndAppendItem<cc::EndFilterDisplayItem>();
}
void WebDisplayItemListImpl::appendScrollItem(
« no previous file with comments | « cc/BUILD.gn ('k') | cc/cc.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698