| 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);
|
| }
|
|
|
|
|