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

Unified Diff: cc/layers/layer_impl.cc

Issue 2166043002: cc: Compute target space transform dynamically (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolve comments Created 4 years, 5 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/layer_impl.h ('k') | cc/proto/property_tree.proto » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/layer_impl.cc
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 48a8f50176c617bef0e28cafe92f1681b2435647..57b4f6c495314903a526f05d705253a06de27f29 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -160,6 +160,15 @@ void LayerImpl::SetEffectTreeIndex(int index) {
effect_tree_index_ = index;
}
+int LayerImpl::render_target_effect_tree_index() const {
+ EffectNode* effect_node =
+ layer_tree_impl_->property_trees()->effect_tree.Node(effect_tree_index_);
+ if (effect_node->has_render_surface)
+ return effect_node->id;
+ else
+ return effect_node->target_id;
+}
+
void LayerImpl::SetScrollTreeIndex(int index) {
scroll_tree_index_ = index;
}
@@ -1143,23 +1152,22 @@ gfx::Rect LayerImpl::GetScaledEnclosingRectInTargetSpace(float scale) const {
RenderSurfaceImpl* LayerImpl::render_target() {
EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree;
- EffectNode* node = effect_tree.Node(effect_tree_index_);
-
- if (node->render_surface)
- return node->render_surface;
+ EffectNode* effect_node = effect_tree.Node(render_target_effect_tree_index());
+ if (effect_node->render_surface)
+ return effect_node->render_surface;
else
- return effect_tree.Node(node->target_id)->render_surface;
+ return effect_tree.Node(effect_node->target_id)->render_surface;
}
const RenderSurfaceImpl* LayerImpl::render_target() const {
const EffectTree& effect_tree =
layer_tree_impl_->property_trees()->effect_tree;
- const EffectNode* node = effect_tree.Node(effect_tree_index_);
-
- if (node->render_surface)
- return node->render_surface;
+ const EffectNode* effect_node =
+ effect_tree.Node(render_target_effect_tree_index());
+ if (effect_node->render_surface)
+ return effect_node->render_surface;
else
- return effect_tree.Node(node->target_id)->render_surface;
+ return effect_tree.Node(effect_node->target_id)->render_surface;
jaydasika 2016/07/21 22:03:34 Is this change required ? If target_effect_tree_in
sunxd 2016/07/22 14:41:17 The render_target function is sometimes called bef
ajuma 2016/07/22 15:05:48 What's an example of such a callsite? One thing to
sunxd 2016/07/22 15:32:14 I think that's when we cannot render to separate s
}
bool LayerImpl::IsHidden() const {
« no previous file with comments | « cc/layers/layer_impl.h ('k') | cc/proto/property_tree.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698