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

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

Issue 19106007: cc: Allow the main thread to cancel commits (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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/layer.h" 5 #include "cc/layers/layer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 reset_raster_scale_to_unknown(); 108 reset_raster_scale_to_unknown();
109 } 109 }
110 110
111 if (host && layer_animation_controller_->has_any_animation()) 111 if (host && layer_animation_controller_->has_any_animation())
112 host->SetNeedsCommit(); 112 host->SetNeedsCommit();
113 if (host && 113 if (host &&
114 (!filters_.IsEmpty() || !background_filters_.IsEmpty() || filter_)) 114 (!filters_.IsEmpty() || !background_filters_.IsEmpty() || filter_))
115 layer_tree_host_->set_needs_filter_context(); 115 layer_tree_host_->set_needs_filter_context();
116 } 116 }
117 117
118 void Layer::SetNeedsUpdate() {
119 if (layer_tree_host_)
120 layer_tree_host_->SetNeedsUpdateLayers();
121 }
122
118 void Layer::SetNeedsCommit() { 123 void Layer::SetNeedsCommit() {
119 if (ignore_set_needs_commit_) 124 if (ignore_set_needs_commit_)
120 return; 125 return;
121 if (layer_tree_host_) 126 if (layer_tree_host_)
122 layer_tree_host_->SetNeedsCommit(); 127 layer_tree_host_->SetNeedsCommit();
123 } 128 }
124 129
125 void Layer::SetNeedsFullTreeSync() { 130 void Layer::SetNeedsFullTreeSync() {
126 if (layer_tree_host_) 131 if (layer_tree_host_)
127 layer_tree_host_->SetNeedsFullTreeSync(); 132 layer_tree_host_->SetNeedsFullTreeSync();
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 void Layer::SetScrollOffset(gfx::Vector2d scroll_offset) { 515 void Layer::SetScrollOffset(gfx::Vector2d scroll_offset) {
511 DCHECK(IsPropertyChangeAllowed()); 516 DCHECK(IsPropertyChangeAllowed());
512 if (scroll_offset_ == scroll_offset) 517 if (scroll_offset_ == scroll_offset)
513 return; 518 return;
514 scroll_offset_ = scroll_offset; 519 scroll_offset_ = scroll_offset;
515 SetNeedsCommit(); 520 SetNeedsCommit();
516 } 521 }
517 522
518 void Layer::SetScrollOffsetFromImplSide(gfx::Vector2d scroll_offset) { 523 void Layer::SetScrollOffsetFromImplSide(gfx::Vector2d scroll_offset) {
519 DCHECK(IsPropertyChangeAllowed()); 524 DCHECK(IsPropertyChangeAllowed());
525 // This function only gets called during a begin frame, so there
526 // is no need to call SetNeedsUpdate here.
520 DCHECK(layer_tree_host_ && layer_tree_host_->CommitRequested()); 527 DCHECK(layer_tree_host_ && layer_tree_host_->CommitRequested());
521 if (scroll_offset_ == scroll_offset) 528 if (scroll_offset_ == scroll_offset)
522 return; 529 return;
523 scroll_offset_ = scroll_offset; 530 scroll_offset_ = scroll_offset;
524 if (!did_scroll_callback_.is_null()) 531 if (!did_scroll_callback_.is_null())
525 did_scroll_callback_.Run(); 532 did_scroll_callback_.Run();
526 // Note: didScroll() could potentially change the layer structure. 533 // Note: didScroll() could potentially change the layer structure.
527 // "this" may have been destroyed during the process. 534 // "this" may have been destroyed during the process.
528 } 535 }
529 536
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 return; 620 return;
614 621
615 hide_layer_and_subtree_ = hide; 622 hide_layer_and_subtree_ = hide;
616 SetNeedsCommit(); 623 SetNeedsCommit();
617 } 624 }
618 625
619 void Layer::SetNeedsDisplayRect(const gfx::RectF& dirty_rect) { 626 void Layer::SetNeedsDisplayRect(const gfx::RectF& dirty_rect) {
620 update_rect_.Union(dirty_rect); 627 update_rect_.Union(dirty_rect);
621 needs_display_ = true; 628 needs_display_ = true;
622 629
623 // Simply mark the contents as dirty. For non-root layers, the call to
624 // SetNeedsCommit will schedule a fresh compositing pass.
625 // For the root layer, SetNeedsCommit has no effect.
626 if (DrawsContent() && !update_rect_.IsEmpty()) 630 if (DrawsContent() && !update_rect_.IsEmpty())
627 SetNeedsCommit(); 631 SetNeedsUpdate();
628 } 632 }
629 633
630 bool Layer::DescendantIsFixedToContainerLayer() const { 634 bool Layer::DescendantIsFixedToContainerLayer() const {
631 for (size_t i = 0; i < children_.size(); ++i) { 635 for (size_t i = 0; i < children_.size(); ++i) {
632 if (children_[i]->position_constraint_.is_fixed_position() || 636 if (children_[i]->position_constraint_.is_fixed_position() ||
633 children_[i]->DescendantIsFixedToContainerLayer()) 637 children_[i]->DescendantIsFixedToContainerLayer())
634 return true; 638 return true;
635 } 639 }
636 return false; 640 return false;
637 } 641 }
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 901
898 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const { 902 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const {
899 return layer_tree_host_->rendering_stats_instrumentation(); 903 return layer_tree_host_->rendering_stats_instrumentation();
900 } 904 }
901 905
902 bool Layer::SupportsLCDText() const { 906 bool Layer::SupportsLCDText() const {
903 return false; 907 return false;
904 } 908 }
905 909
906 } // namespace cc 910 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698