summaryrefslogtreecommitdiffstats
path: root/cc/blink/web_display_item_list_impl.cc
diff options
context:
space:
mode:
authorwkorman <wkorman@chromium.org>2015-11-02 15:13:08 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-02 23:14:54 +0000
commit47203f90a985766980aa6bf06ce83b35b9e033f2 (patch)
treeadca253c95fb7253d9b5ef365e52fc579cf44e7b /cc/blink/web_display_item_list_impl.cc
parent9ac642d1d2ed95b810ff276fb65c2be7b461e791 (diff)
downloadchromium_src-47203f90a985766980aa6bf06ce83b35b9e033f2.zip
chromium_src-47203f90a985766980aa6bf06ce83b35b9e033f2.tar.gz
chromium_src-47203f90a985766980aa6bf06ce83b35b9e033f2.tar.bz2
Plumb display item visual rect to compositor.
Note: - currently passing empty rect from all callsites - currently not saving rect off CC-side BUG=529938 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1426963002 Cr-Commit-Position: refs/heads/master@{#357465}
Diffstat (limited to 'cc/blink/web_display_item_list_impl.cc')
-rw-r--r--cc/blink/web_display_item_list_impl.cc51
1 files changed, 35 insertions, 16 deletions
diff --git a/cc/blink/web_display_item_list_impl.cc b/cc/blink/web_display_item_list_impl.cc
index 79d0972..c97cf6d 100644
--- a/cc/blink/web_display_item_list_impl.cc
+++ b/cc/blink/web_display_item_list_impl.cc
@@ -46,7 +46,9 @@ WebDisplayItemListImpl::WebDisplayItemListImpl(
: display_item_list_(display_list) {
}
-void WebDisplayItemListImpl::appendDrawingItem(const SkPicture* picture) {
+void WebDisplayItemListImpl::appendDrawingItem(
+ const blink::WebRect& visual_rect,
+ const SkPicture* picture) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
auto* item =
display_item_list_->CreateAndAppendItem<cc::DrawingDisplayItem>();
@@ -59,6 +61,7 @@ void WebDisplayItemListImpl::appendDrawingItem(const SkPicture* picture) {
}
void WebDisplayItemListImpl::appendClipItem(
+ const blink::WebRect& visual_rect,
const blink::WebRect& clip_rect,
const blink::WebVector<SkRRect>& rounded_clip_rects) {
std::vector<SkRRect> rounded_rects;
@@ -75,7 +78,8 @@ void WebDisplayItemListImpl::appendClipItem(
}
}
-void WebDisplayItemListImpl::appendEndClipItem() {
+void WebDisplayItemListImpl::appendEndClipItem(
+ const blink::WebRect& visual_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
display_item_list_->CreateAndAppendItem<cc::EndClipDisplayItem>();
} else {
@@ -83,9 +87,11 @@ void WebDisplayItemListImpl::appendEndClipItem() {
}
}
-void WebDisplayItemListImpl::appendClipPathItem(const SkPath& clip_path,
- SkRegion::Op clip_op,
- bool antialias) {
+void WebDisplayItemListImpl::appendClipPathItem(
+ const blink::WebRect& visual_rect,
+ const SkPath& clip_path,
+ SkRegion::Op clip_op,
+ bool antialias) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
auto* item =
display_item_list_->CreateAndAppendItem<cc::ClipPathDisplayItem>();
@@ -97,7 +103,8 @@ void WebDisplayItemListImpl::appendClipPathItem(const SkPath& clip_path,
}
}
-void WebDisplayItemListImpl::appendEndClipPathItem() {
+void WebDisplayItemListImpl::appendEndClipPathItem(
+ const blink::WebRect& visual_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
display_item_list_->CreateAndAppendItem<cc::EndClipPathDisplayItem>();
} else {
@@ -106,6 +113,7 @@ void WebDisplayItemListImpl::appendEndClipPathItem() {
}
void WebDisplayItemListImpl::appendFloatClipItem(
+ const blink::WebRect& visual_rect,
const blink::WebFloatRect& clip_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
auto* item =
@@ -118,7 +126,8 @@ void WebDisplayItemListImpl::appendFloatClipItem(
}
}
-void WebDisplayItemListImpl::appendEndFloatClipItem() {
+void WebDisplayItemListImpl::appendEndFloatClipItem(
+ const blink::WebRect& visual_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
display_item_list_->CreateAndAppendItem<cc::EndFloatClipDisplayItem>();
} else {
@@ -126,7 +135,9 @@ void WebDisplayItemListImpl::appendEndFloatClipItem() {
}
}
-void WebDisplayItemListImpl::appendTransformItem(const SkMatrix44& matrix) {
+void WebDisplayItemListImpl::appendTransformItem(
+ const blink::WebRect& visual_rect,
+ const SkMatrix44& matrix) {
gfx::Transform transform;
transform.matrix() = matrix;
@@ -141,7 +152,8 @@ void WebDisplayItemListImpl::appendTransformItem(const SkMatrix44& matrix) {
}
}
-void WebDisplayItemListImpl::appendEndTransformItem() {
+void WebDisplayItemListImpl::appendEndTransformItem(
+ const blink::WebRect& visual_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
display_item_list_->CreateAndAppendItem<cc::EndTransformDisplayItem>();
} else {
@@ -150,6 +162,7 @@ void WebDisplayItemListImpl::appendEndTransformItem() {
}
void WebDisplayItemListImpl::appendCompositingItem(
+ const blink::WebRect& visual_rect,
float opacity,
SkXfermode::Mode xfermode,
SkRect* bounds,
@@ -172,7 +185,8 @@ void WebDisplayItemListImpl::appendCompositingItem(
}
}
-void WebDisplayItemListImpl::appendEndCompositingItem() {
+void WebDisplayItemListImpl::appendEndCompositingItem(
+ const blink::WebRect& visual_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
display_item_list_->CreateAndAppendItem<cc::EndCompositingDisplayItem>();
} else {
@@ -181,6 +195,7 @@ void WebDisplayItemListImpl::appendEndCompositingItem() {
}
void WebDisplayItemListImpl::appendFilterItem(
+ const blink::WebRect& visual_rect,
const blink::WebFilterOperations& filters,
const blink::WebFloatRect& bounds) {
const WebFilterOperationsImpl& filters_impl =
@@ -197,7 +212,8 @@ void WebDisplayItemListImpl::appendFilterItem(
}
}
-void WebDisplayItemListImpl::appendEndFilterItem() {
+void WebDisplayItemListImpl::appendEndFilterItem(
+ const blink::WebRect& visual_rect) {
if (display_item_list_->RetainsIndividualDisplayItems()) {
display_item_list_->CreateAndAppendItem<cc::EndFilterDisplayItem>();
} else {
@@ -206,15 +222,18 @@ void WebDisplayItemListImpl::appendEndFilterItem() {
}
void WebDisplayItemListImpl::appendScrollItem(
- const blink::WebSize& scrollOffset,
+ const blink::WebRect& visual_rect,
+ const blink::WebSize& scroll_offset,
ScrollContainerId) {
SkMatrix44 matrix;
- matrix.setTranslate(-scrollOffset.width, -scrollOffset.height, 0);
- appendTransformItem(matrix);
+ matrix.setTranslate(-scroll_offset.width, -scroll_offset.height, 0);
+ // TODO(wkorman): Should we translate the visual rect as well?
+ appendTransformItem(visual_rect, matrix);
}
-void WebDisplayItemListImpl::appendEndScrollItem() {
- appendEndTransformItem();
+void WebDisplayItemListImpl::appendEndScrollItem(
+ const blink::WebRect& visual_rect) {
+ appendEndTransformItem(visual_rect);
}
WebDisplayItemListImpl::~WebDisplayItemListImpl() {