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

Side by Side Diff: cc/layers/render_surface_impl.cc

Issue 2834123002: cc: Replace render surface layer list with a render surface list (Closed)
Patch Set: Address review comments Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « cc/layers/render_surface_impl.h ('k') | cc/layers/render_surface_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 20 matching lines...) Expand all
31 #include "ui/gfx/geometry/rect_conversions.h" 31 #include "ui/gfx/geometry/rect_conversions.h"
32 #include "ui/gfx/transform.h" 32 #include "ui/gfx/transform.h"
33 33
34 namespace cc { 34 namespace cc {
35 35
36 RenderSurfaceImpl::RenderSurfaceImpl(LayerTreeImpl* layer_tree_impl, 36 RenderSurfaceImpl::RenderSurfaceImpl(LayerTreeImpl* layer_tree_impl,
37 int stable_effect_id) 37 int stable_effect_id)
38 : layer_tree_impl_(layer_tree_impl), 38 : layer_tree_impl_(layer_tree_impl),
39 stable_effect_id_(stable_effect_id), 39 stable_effect_id_(stable_effect_id),
40 effect_tree_index_(EffectTree::kInvalidNodeId), 40 effect_tree_index_(EffectTree::kInvalidNodeId),
41 num_contributors_(0),
41 has_contributing_layer_that_escapes_clip_(false), 42 has_contributing_layer_that_escapes_clip_(false),
42 surface_property_changed_(false), 43 surface_property_changed_(false),
43 ancestor_property_changed_(false), 44 ancestor_property_changed_(false),
44 contributes_to_drawn_surface_(false), 45 contributes_to_drawn_surface_(false),
46 is_render_surface_list_member_(false),
45 nearest_occlusion_immune_ancestor_(nullptr) { 47 nearest_occlusion_immune_ancestor_(nullptr) {
46 damage_tracker_ = DamageTracker::Create(); 48 damage_tracker_ = DamageTracker::Create();
47 } 49 }
48 50
49 RenderSurfaceImpl::~RenderSurfaceImpl() {} 51 RenderSurfaceImpl::~RenderSurfaceImpl() {}
50 52
51 RenderSurfaceImpl* RenderSurfaceImpl::render_target() { 53 RenderSurfaceImpl* RenderSurfaceImpl::render_target() {
52 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree; 54 EffectTree& effect_tree = layer_tree_impl_->property_trees()->effect_tree;
53 EffectNode* node = effect_tree.Node(EffectTreeIndex()); 55 EffectNode* node = effect_tree.Node(EffectTreeIndex());
54 if (node->target_id != EffectTree::kRootNodeId) 56 if (node->target_id != EffectTree::kRootNodeId)
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 if (!is_valid_rect) 347 if (!is_valid_rect)
346 return content_rect(); 348 return content_rect();
347 return damage_rect; 349 return damage_rect;
348 } 350 }
349 351
350 void RenderSurfaceImpl::ResetPropertyChangedFlags() { 352 void RenderSurfaceImpl::ResetPropertyChangedFlags() {
351 surface_property_changed_ = false; 353 surface_property_changed_ = false;
352 ancestor_property_changed_ = false; 354 ancestor_property_changed_ = false;
353 } 355 }
354 356
355 void RenderSurfaceImpl::ClearLayerLists() {
356 layer_list_.clear();
357 }
358
359 int RenderSurfaceImpl::GetRenderPassId() { 357 int RenderSurfaceImpl::GetRenderPassId() {
360 return id(); 358 return id();
361 } 359 }
362 360
363 std::unique_ptr<RenderPass> RenderSurfaceImpl::CreateRenderPass() { 361 std::unique_ptr<RenderPass> RenderSurfaceImpl::CreateRenderPass() {
364 std::unique_ptr<RenderPass> pass = RenderPass::Create(layer_list_.size()); 362 std::unique_ptr<RenderPass> pass = RenderPass::Create(num_contributors_);
365 gfx::Rect damage_rect = GetDamageRect(); 363 gfx::Rect damage_rect = GetDamageRect();
366 damage_rect.Intersect(content_rect()); 364 damage_rect.Intersect(content_rect());
367 pass->SetNew(id(), content_rect(), damage_rect, 365 pass->SetNew(id(), content_rect(), damage_rect,
368 draw_properties_.screen_space_transform); 366 draw_properties_.screen_space_transform);
369 pass->filters = Filters(); 367 pass->filters = Filters();
370 pass->background_filters = BackgroundFilters(); 368 pass->background_filters = BackgroundFilters();
371 return pass; 369 return pass;
372 } 370 }
373 371
374 void RenderSurfaceImpl::AppendQuads(RenderPass* render_pass, 372 void RenderSurfaceImpl::AppendQuads(RenderPass* render_pass,
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 NOTIMPLEMENTED(); 539 NOTIMPLEMENTED();
542 break; 540 break;
543 default: 541 default:
544 NOTREACHED(); 542 NOTREACHED();
545 break; 543 break;
546 } 544 }
547 } 545 }
548 } 546 }
549 547
550 } // namespace cc 548 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/render_surface_impl.h ('k') | cc/layers/render_surface_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698