| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/layers/render_surface_impl.h" | 5 #include "cc/layers/render_surface_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "cc/trees/effect_node.h" | 24 #include "cc/trees/effect_node.h" |
| 25 #include "cc/trees/layer_tree_impl.h" | 25 #include "cc/trees/layer_tree_impl.h" |
| 26 #include "cc/trees/occlusion.h" | 26 #include "cc/trees/occlusion.h" |
| 27 #include "cc/trees/transform_node.h" | 27 #include "cc/trees/transform_node.h" |
| 28 #include "third_party/skia/include/core/SkImageFilter.h" | 28 #include "third_party/skia/include/core/SkImageFilter.h" |
| 29 #include "ui/gfx/geometry/rect_conversions.h" | 29 #include "ui/gfx/geometry/rect_conversions.h" |
| 30 #include "ui/gfx/transform.h" | 30 #include "ui/gfx/transform.h" |
| 31 | 31 |
| 32 namespace cc { | 32 namespace cc { |
| 33 | 33 |
| 34 RenderSurfaceImpl::RenderSurfaceImpl(LayerImpl* owning_layer) | 34 RenderSurfaceImpl::RenderSurfaceImpl(LayerTreeImpl* layer_tree_impl, |
| 35 : layer_tree_impl_(owning_layer->layer_tree_impl()), | 35 int stable_effect_id) |
| 36 stable_effect_id_(owning_layer->id()), | 36 : layer_tree_impl_(layer_tree_impl), |
| 37 stable_effect_id_(stable_effect_id), |
| 37 effect_tree_index_(EffectTree::kInvalidNodeId), | 38 effect_tree_index_(EffectTree::kInvalidNodeId), |
| 38 surface_property_changed_(false), | 39 surface_property_changed_(false), |
| 39 ancestor_property_changed_(false), | 40 ancestor_property_changed_(false), |
| 40 contributes_to_drawn_surface_(false), | 41 contributes_to_drawn_surface_(false), |
| 41 nearest_occlusion_immune_ancestor_(nullptr), | 42 nearest_occlusion_immune_ancestor_(nullptr), |
| 42 target_render_surface_layer_index_history_(0), | 43 target_render_surface_layer_index_history_(0), |
| 43 current_layer_index_history_(0) { | 44 current_layer_index_history_(0) { |
| 44 damage_tracker_ = DamageTracker::Create(); | 45 damage_tracker_ = DamageTracker::Create(); |
| 45 } | 46 } |
| 46 | 47 |
| 47 RenderSurfaceImpl::~RenderSurfaceImpl() {} | 48 RenderSurfaceImpl::~RenderSurfaceImpl() {} |
| 48 | 49 |
| 49 RenderSurfaceImpl* RenderSurfaceImpl::render_target() { | 50 RenderSurfaceImpl* RenderSurfaceImpl::render_target() { |
| 50 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; | 51 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; |
| 51 EffectNode* node = effect_tree.Node(EffectTreeIndex()); | 52 EffectNode* node = effect_tree.Node(EffectTreeIndex()); |
| 52 EffectNode* target_node = effect_tree.Node(node->target_id); | 53 if (node->target_id != EffectTree::kRootNodeId) |
| 53 if (target_node->id != EffectTree::kRootNodeId) | 54 return effect_tree.GetRenderSurface(node->target_id); |
| 54 return target_node->render_surface; | |
| 55 else | 55 else |
| 56 return this; | 56 return this; |
| 57 } | 57 } |
| 58 | 58 |
| 59 const RenderSurfaceImpl* RenderSurfaceImpl::render_target() const { | 59 const RenderSurfaceImpl* RenderSurfaceImpl::render_target() const { |
| 60 const EffectTree& effect_tree = | 60 const EffectTree& effect_tree = |
| 61 layer_tree_impl_->property_trees()->effect_tree; | 61 layer_tree_impl_->property_trees()->effect_tree; |
| 62 const EffectNode* node = effect_tree.Node(EffectTreeIndex()); | 62 const EffectNode* node = effect_tree.Node(EffectTreeIndex()); |
| 63 const EffectNode* target_node = effect_tree.Node(node->target_id); | 63 if (node->target_id != EffectTree::kRootNodeId) |
| 64 if (target_node->id != EffectTree::kRootNodeId) | 64 return effect_tree.GetRenderSurface(node->target_id); |
| 65 return target_node->render_surface; | |
| 66 else | 65 else |
| 67 return this; | 66 return this; |
| 68 } | 67 } |
| 69 | 68 |
| 70 RenderSurfaceImpl::DrawProperties::DrawProperties() { | 69 RenderSurfaceImpl::DrawProperties::DrawProperties() { |
| 71 draw_opacity = 1.f; | 70 draw_opacity = 1.f; |
| 72 is_clipped = false; | 71 is_clipped = false; |
| 73 } | 72 } |
| 74 | 73 |
| 75 RenderSurfaceImpl::DrawProperties::~DrawProperties() {} | 74 RenderSurfaceImpl::DrawProperties::~DrawProperties() {} |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 } | 417 } |
| 419 | 418 |
| 420 RenderPassDrawQuad* quad = | 419 RenderPassDrawQuad* quad = |
| 421 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 420 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
| 422 quad->SetNew(shared_quad_state, content_rect(), visible_layer_rect, | 421 quad->SetNew(shared_quad_state, content_rect(), visible_layer_rect, |
| 423 GetRenderPassId(), mask_resource_id, mask_uv_scale, | 422 GetRenderPassId(), mask_resource_id, mask_uv_scale, |
| 424 mask_texture_size, surface_contents_scale, FiltersOrigin()); | 423 mask_texture_size, surface_contents_scale, FiltersOrigin()); |
| 425 } | 424 } |
| 426 | 425 |
| 427 } // namespace cc | 426 } // namespace cc |
| OLD | NEW |