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

Unified Diff: cc/blink/web_display_item_list_impl.cc

Issue 1484163002: Raster display item lists via a visual rect RTree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync to head. Created 5 years 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/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 b030e937b32003ed94906e8f7e426a0901e79956..d8cf3287e57ecd1198b12cdc96ff6218ec2a6dd1 100644
--- a/cc/blink/web_display_item_list_impl.cc
+++ b/cc/blink/web_display_item_list_impl.cc
@@ -31,8 +31,7 @@ namespace {
scoped_refptr<cc::DisplayItemList> CreateUncachedDisplayItemListForBlink() {
cc::DisplayItemListSettings settings;
settings.use_cached_picture = false;
- gfx::Rect layer_rect;
- return cc::DisplayItemList::Create(layer_rect, settings);
+ return cc::DisplayItemList::Create(settings);
}
} // namespace
@@ -49,16 +48,9 @@ WebDisplayItemListImpl::WebDisplayItemListImpl(
void WebDisplayItemListImpl::appendDrawingItem(
const blink::WebRect& visual_rect,
const SkPicture* picture) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item =
- display_item_list_->CreateAndAppendItem<cc::DrawingDisplayItem>(
- visual_rect);
- item->SetNew(skia::SharePtr(const_cast<SkPicture*>(picture)));
- } else {
- cc::DrawingDisplayItem item;
- item.SetNew(skia::SharePtr(const_cast<SkPicture*>(picture)));
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item = display_item_list_->CreateAndAppendItem<cc::DrawingDisplayItem>(
+ visual_rect);
+ item->SetNew(skia::SharePtr(const_cast<SkPicture*>(picture)));
}
void WebDisplayItemListImpl::appendClipItem(
@@ -69,25 +61,14 @@ void WebDisplayItemListImpl::appendClipItem(
for (size_t i = 0; i < rounded_clip_rects.size(); ++i) {
rounded_rects.push_back(rounded_clip_rects[i]);
}
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item = display_item_list_->CreateAndAppendItem<cc::ClipDisplayItem>(
- visual_rect);
- item->SetNew(clip_rect, rounded_rects);
- } else {
- cc::ClipDisplayItem item;
- item.SetNew(clip_rect, rounded_rects);
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::ClipDisplayItem>(visual_rect);
+ item->SetNew(clip_rect, rounded_rects);
}
void WebDisplayItemListImpl::appendEndClipItem(
const blink::WebRect& visual_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- display_item_list_->CreateAndAppendItem<cc::EndClipDisplayItem>(
- visual_rect);
- } else {
- display_item_list_->RasterIntoCanvas(cc::EndClipDisplayItem());
- }
+ display_item_list_->CreateAndAppendItem<cc::EndClipDisplayItem>(visual_rect);
}
void WebDisplayItemListImpl::appendClipPathItem(
@@ -95,51 +76,30 @@ void WebDisplayItemListImpl::appendClipPathItem(
const SkPath& clip_path,
SkRegion::Op clip_op,
bool antialias) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item =
- display_item_list_->CreateAndAppendItem<cc::ClipPathDisplayItem>(
- visual_rect);
- item->SetNew(clip_path, clip_op, antialias);
- } else {
- cc::ClipPathDisplayItem item;
- item.SetNew(clip_path, clip_op, antialias);
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item = display_item_list_->CreateAndAppendItem<cc::ClipPathDisplayItem>(
+ visual_rect);
+ item->SetNew(clip_path, clip_op, antialias);
}
void WebDisplayItemListImpl::appendEndClipPathItem(
const blink::WebRect& visual_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- display_item_list_->CreateAndAppendItem<cc::EndClipPathDisplayItem>(
- visual_rect);
- } else {
- display_item_list_->RasterIntoCanvas(cc::EndClipPathDisplayItem());
- }
+ display_item_list_->CreateAndAppendItem<cc::EndClipPathDisplayItem>(
+ visual_rect);
}
void WebDisplayItemListImpl::appendFloatClipItem(
const blink::WebRect& visual_rect,
const blink::WebFloatRect& clip_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item =
- display_item_list_->CreateAndAppendItem<cc::FloatClipDisplayItem>(
- visual_rect);
- item->SetNew(clip_rect);
- } else {
- cc::FloatClipDisplayItem item;
- item.SetNew(clip_rect);
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::FloatClipDisplayItem>(
+ visual_rect);
+ item->SetNew(clip_rect);
}
void WebDisplayItemListImpl::appendEndFloatClipItem(
const blink::WebRect& visual_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- display_item_list_->CreateAndAppendItem<cc::EndFloatClipDisplayItem>(
- visual_rect);
- } else {
- display_item_list_->RasterIntoCanvas(cc::EndFloatClipDisplayItem());
- }
+ display_item_list_->CreateAndAppendItem<cc::EndFloatClipDisplayItem>(
+ visual_rect);
}
void WebDisplayItemListImpl::appendTransformItem(
@@ -148,26 +108,16 @@ void WebDisplayItemListImpl::appendTransformItem(
gfx::Transform transform(gfx::Transform::kSkipInitialization);
transform.matrix() = matrix;
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item =
- display_item_list_->CreateAndAppendItem<cc::TransformDisplayItem>(
- visual_rect);
- item->SetNew(transform);
- } else {
- cc::TransformDisplayItem item;
- item.SetNew(transform);
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::TransformDisplayItem>(
+ visual_rect);
+ item->SetNew(transform);
}
void WebDisplayItemListImpl::appendEndTransformItem(
const blink::WebRect& visual_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- display_item_list_->CreateAndAppendItem<cc::EndTransformDisplayItem>(
- visual_rect);
- } else {
- display_item_list_->RasterIntoCanvas(cc::EndTransformDisplayItem());
- }
+ display_item_list_->CreateAndAppendItem<cc::EndTransformDisplayItem>(
+ visual_rect);
}
void WebDisplayItemListImpl::appendCompositingItem(
@@ -181,28 +131,17 @@ void WebDisplayItemListImpl::appendCompositingItem(
// TODO(ajuma): This should really be rounding instead of flooring the alpha
// value, but that breaks slimming paint reftests.
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item =
- display_item_list_->CreateAndAppendItem<cc::CompositingDisplayItem>(
- visual_rect);
- item->SetNew(static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)),
- xfermode, bounds, skia::SharePtr(color_filter));
- } else {
- cc::CompositingDisplayItem item;
- item.SetNew(static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)),
- xfermode, bounds, skia::SharePtr(color_filter));
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item =
+ display_item_list_->CreateAndAppendItem<cc::CompositingDisplayItem>(
+ visual_rect);
+ item->SetNew(static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)), xfermode,
+ bounds, skia::SharePtr(color_filter));
}
void WebDisplayItemListImpl::appendEndCompositingItem(
const blink::WebRect& visual_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- display_item_list_->CreateAndAppendItem<cc::EndCompositingDisplayItem>(
- visual_rect);
- } else {
- display_item_list_->RasterIntoCanvas(cc::EndCompositingDisplayItem());
- }
+ display_item_list_->CreateAndAppendItem<cc::EndCompositingDisplayItem>(
+ visual_rect);
}
void WebDisplayItemListImpl::appendFilterItem(
@@ -212,25 +151,15 @@ void WebDisplayItemListImpl::appendFilterItem(
const WebFilterOperationsImpl& filters_impl =
static_cast<const WebFilterOperationsImpl&>(filters);
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- auto* item = display_item_list_->CreateAndAppendItem<cc::FilterDisplayItem>(
- visual_rect);
- item->SetNew(filters_impl.AsFilterOperations(), bounds);
- } else {
- cc::FilterDisplayItem item;
- item.SetNew(filters_impl.AsFilterOperations(), bounds);
- display_item_list_->RasterIntoCanvas(item);
- }
+ auto* item = display_item_list_->CreateAndAppendItem<cc::FilterDisplayItem>(
+ visual_rect);
+ item->SetNew(filters_impl.AsFilterOperations(), bounds);
}
void WebDisplayItemListImpl::appendEndFilterItem(
const blink::WebRect& visual_rect) {
- if (display_item_list_->RetainsIndividualDisplayItems()) {
- display_item_list_->CreateAndAppendItem<cc::EndFilterDisplayItem>(
- visual_rect);
- } else {
- display_item_list_->RasterIntoCanvas(cc::EndFilterDisplayItem());
- }
+ display_item_list_->CreateAndAppendItem<cc::EndFilterDisplayItem>(
+ visual_rect);
}
void WebDisplayItemListImpl::appendScrollItem(
@@ -239,7 +168,8 @@ void WebDisplayItemListImpl::appendScrollItem(
ScrollContainerId) {
SkMatrix44 matrix(SkMatrix44::kUninitialized_Constructor);
matrix.setTranslate(-scroll_offset.width, -scroll_offset.height, 0);
- // TODO(wkorman): Should we translate the visual rect as well?
+ // TODO(wkorman): Should we translate the visual rect as well? Create a test
+ // case and investigate.
appendTransformItem(visual_rect, matrix);
}

Powered by Google App Engine
This is Rietveld 408576698