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

Unified Diff: cc/layers/render_surface_impl.cc

Issue 2035863003: cc: Add mask and replica layer ids to the effect tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 4 years, 6 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/layers/render_surface_impl.h ('k') | cc/layers/render_surface_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/render_surface_impl.cc
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
index 0711d5462eba8096a327808d0435e375b29f3ae2..f03d3cc434837b3d083d839db6845dcc314b095e 100644
--- a/cc/layers/render_surface_impl.cc
+++ b/cc/layers/render_surface_impl.cc
@@ -83,7 +83,7 @@ gfx::RectF RenderSurfaceImpl::DrawableContentRect() const {
}
gfx::RectF drawable_content_rect = MathUtil::MapClippedRect(
draw_transform(), gfx::RectF(surface_content_rect));
- if (owning_layer_->has_replica()) {
+ if (HasReplica()) {
drawable_content_rect.Union(MathUtil::MapClippedRect(
replica_draw_transform(), gfx::RectF(surface_content_rect)));
} else if (!owning_layer_->filters().IsEmpty() && is_clipped()) {
@@ -124,18 +124,39 @@ int RenderSurfaceImpl::OwningLayerId() const {
}
bool RenderSurfaceImpl::HasReplica() const {
- return owning_layer_->has_replica();
+ return OwningEffectNode()->data.replica_layer_id != -1;
}
const LayerImpl* RenderSurfaceImpl::ReplicaLayer() const {
- return owning_layer_->replica_layer();
+ int replica_layer_id = OwningEffectNode()->data.replica_layer_id;
+ return owning_layer_->layer_tree_impl()->LayerById(replica_layer_id);
+}
+
+LayerImpl* RenderSurfaceImpl::ReplicaLayer() {
+ int replica_layer_id = OwningEffectNode()->data.replica_layer_id;
+ return owning_layer_->layer_tree_impl()->LayerById(replica_layer_id);
+}
+
+LayerImpl* RenderSurfaceImpl::MaskLayer() {
+ int mask_layer_id = OwningEffectNode()->data.mask_layer_id;
+ return owning_layer_->layer_tree_impl()->LayerById(mask_layer_id);
+}
+
+bool RenderSurfaceImpl::HasMask() const {
+ return OwningEffectNode()->data.mask_layer_id != -1;
+}
+
+LayerImpl* RenderSurfaceImpl::ReplicaMaskLayer() {
+ int replica_mask_layer_id = OwningEffectNode()->data.replica_mask_layer_id;
+ return owning_layer_->layer_tree_impl()->LayerById(replica_mask_layer_id);
+}
+
+bool RenderSurfaceImpl::HasReplicaMask() const {
+ return OwningEffectNode()->data.replica_mask_layer_id != -1;
}
bool RenderSurfaceImpl::HasCopyRequest() const {
- return owning_layer_->layer_tree_impl()
- ->property_trees()
- ->effect_tree.Node(EffectTreeIndex())
- ->data.has_copy_request;
+ return OwningEffectNode()->data.has_copy_request;
}
int RenderSurfaceImpl::TransformTreeIndex() const {
@@ -150,6 +171,11 @@ int RenderSurfaceImpl::EffectTreeIndex() const {
return owning_layer_->effect_tree_index();
}
+const EffectNode* RenderSurfaceImpl::OwningEffectNode() const {
+ return owning_layer_->layer_tree_impl()->property_trees()->effect_tree.Node(
+ EffectTreeIndex());
+}
+
void RenderSurfaceImpl::SetClipRect(const gfx::Rect& clip_rect) {
if (clip_rect == draw_properties_.clip_rect)
return;
@@ -171,7 +197,7 @@ void RenderSurfaceImpl::SetContentRectForTesting(const gfx::Rect& rect) {
}
gfx::Rect RenderSurfaceImpl::CalculateClippedAccumulatedContentRect() {
- if (owning_layer_->replica_layer() || HasCopyRequest() || !is_clipped())
+ if (ReplicaLayer() || HasCopyRequest() || !is_clipped())
return accumulated_content_rect();
if (accumulated_content_rect().IsEmpty())
« no previous file with comments | « cc/layers/render_surface_impl.h ('k') | cc/layers/render_surface_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698