| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/compositor/layer.h" | 5 #include "ui/compositor/layer.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> |
| 8 | 9 |
| 9 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| 10 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 11 #include "base/json/json_writer.h" | 12 #include "base/json/json_writer.h" |
| 12 #include "base/lazy_instance.h" | 13 #include "base/lazy_instance.h" |
| 13 #include "base/logging.h" | 14 #include "base/logging.h" |
| 14 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
| 15 #include "base/trace_event/trace_event.h" | 16 #include "base/trace_event/trace_event.h" |
| 16 #include "cc/layers/delegated_renderer_layer.h" | 17 #include "cc/layers/delegated_renderer_layer.h" |
| 17 #include "cc/layers/layer_settings.h" | 18 #include "cc/layers/layer_settings.h" |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 } | 357 } |
| 357 | 358 |
| 358 void Layer::SetBackgroundZoom(float zoom, int inset) { | 359 void Layer::SetBackgroundZoom(float zoom, int inset) { |
| 359 zoom_ = zoom; | 360 zoom_ = zoom; |
| 360 zoom_inset_ = inset; | 361 zoom_inset_ = inset; |
| 361 | 362 |
| 362 SetLayerBackgroundFilters(); | 363 SetLayerBackgroundFilters(); |
| 363 } | 364 } |
| 364 | 365 |
| 365 void Layer::SetAlphaShape(scoped_ptr<SkRegion> region) { | 366 void Layer::SetAlphaShape(scoped_ptr<SkRegion> region) { |
| 366 alpha_shape_ = region.Pass(); | 367 alpha_shape_ = std::move(region); |
| 367 | 368 |
| 368 SetLayerFilters(); | 369 SetLayerFilters(); |
| 369 } | 370 } |
| 370 | 371 |
| 371 void Layer::SetLayerFilters() { | 372 void Layer::SetLayerFilters() { |
| 372 cc::FilterOperations filters; | 373 cc::FilterOperations filters; |
| 373 if (layer_saturation_) { | 374 if (layer_saturation_) { |
| 374 filters.Append(cc::FilterOperation::CreateSaturateFilter( | 375 filters.Append(cc::FilterOperation::CreateSaturateFilter( |
| 375 layer_saturation_)); | 376 layer_saturation_)); |
| 376 } | 377 } |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 cc::TextureLayer::CreateForMailbox(UILayerSettings(), this); | 546 cc::TextureLayer::CreateForMailbox(UILayerSettings(), this); |
| 546 new_layer->SetFlipped(true); | 547 new_layer->SetFlipped(true); |
| 547 SwitchToLayer(new_layer); | 548 SwitchToLayer(new_layer); |
| 548 texture_layer_ = new_layer; | 549 texture_layer_ = new_layer; |
| 549 // Reset the frame_size_in_dip_ so that SetTextureSize() will not early out, | 550 // Reset the frame_size_in_dip_ so that SetTextureSize() will not early out, |
| 550 // the frame_size_in_dip_ was for a previous (different) |texture_layer_|. | 551 // the frame_size_in_dip_ was for a previous (different) |texture_layer_|. |
| 551 frame_size_in_dip_ = gfx::Size(); | 552 frame_size_in_dip_ = gfx::Size(); |
| 552 } | 553 } |
| 553 if (mailbox_release_callback_) | 554 if (mailbox_release_callback_) |
| 554 mailbox_release_callback_->Run(gpu::SyncToken(), false); | 555 mailbox_release_callback_->Run(gpu::SyncToken(), false); |
| 555 mailbox_release_callback_ = release_callback.Pass(); | 556 mailbox_release_callback_ = std::move(release_callback); |
| 556 mailbox_ = mailbox; | 557 mailbox_ = mailbox; |
| 557 SetTextureSize(texture_size_in_dip); | 558 SetTextureSize(texture_size_in_dip); |
| 558 } | 559 } |
| 559 | 560 |
| 560 void Layer::SetTextureSize(gfx::Size texture_size_in_dip) { | 561 void Layer::SetTextureSize(gfx::Size texture_size_in_dip) { |
| 561 DCHECK(texture_layer_.get()); | 562 DCHECK(texture_layer_.get()); |
| 562 if (frame_size_in_dip_ == texture_size_in_dip) | 563 if (frame_size_in_dip_ == texture_size_in_dip) |
| 563 return; | 564 return; |
| 564 frame_size_in_dip_ = texture_size_in_dip; | 565 frame_size_in_dip_ = texture_size_in_dip; |
| 565 RecomputeDrawsContentAndUVRect(); | 566 RecomputeDrawsContentAndUVRect(); |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 738 } | 739 } |
| 739 | 740 |
| 740 void Layer::OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) { | 741 void Layer::OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) { |
| 741 DCHECK(delegated_renderer_layer_.get() || surface_layer_.get()); | 742 DCHECK(delegated_renderer_layer_.get() || surface_layer_.get()); |
| 742 if (!delegate_) | 743 if (!delegate_) |
| 743 return; | 744 return; |
| 744 delegate_->OnDelegatedFrameDamage(damage_rect_in_dip); | 745 delegate_->OnDelegatedFrameDamage(damage_rect_in_dip); |
| 745 } | 746 } |
| 746 | 747 |
| 747 void Layer::RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request) { | 748 void Layer::RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request) { |
| 748 cc_layer_->RequestCopyOfOutput(request.Pass()); | 749 cc_layer_->RequestCopyOfOutput(std::move(request)); |
| 749 } | 750 } |
| 750 | 751 |
| 751 gfx::Rect Layer::PaintableRegion() { | 752 gfx::Rect Layer::PaintableRegion() { |
| 752 return gfx::Rect(size()); | 753 return gfx::Rect(size()); |
| 753 } | 754 } |
| 754 | 755 |
| 755 scoped_refptr<cc::DisplayItemList> Layer::PaintContentsToDisplayList( | 756 scoped_refptr<cc::DisplayItemList> Layer::PaintContentsToDisplayList( |
| 756 ContentLayerClient::PaintingControlSetting painting_control) { | 757 ContentLayerClient::PaintingControlSetting painting_control) { |
| 757 TRACE_EVENT1("ui", "Layer::PaintContentsToDisplayList", "name", name_); | 758 TRACE_EVENT1("ui", "Layer::PaintContentsToDisplayList", "name", name_); |
| 758 gfx::Rect local_bounds(bounds().size()); | 759 gfx::Rect local_bounds(bounds().size()); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 779 return 0; | 780 return 0; |
| 780 } | 781 } |
| 781 | 782 |
| 782 bool Layer::PrepareTextureMailbox( | 783 bool Layer::PrepareTextureMailbox( |
| 783 cc::TextureMailbox* mailbox, | 784 cc::TextureMailbox* mailbox, |
| 784 scoped_ptr<cc::SingleReleaseCallback>* release_callback, | 785 scoped_ptr<cc::SingleReleaseCallback>* release_callback, |
| 785 bool use_shared_memory) { | 786 bool use_shared_memory) { |
| 786 if (!mailbox_release_callback_) | 787 if (!mailbox_release_callback_) |
| 787 return false; | 788 return false; |
| 788 *mailbox = mailbox_; | 789 *mailbox = mailbox_; |
| 789 *release_callback = mailbox_release_callback_.Pass(); | 790 *release_callback = std::move(mailbox_release_callback_); |
| 790 return true; | 791 return true; |
| 791 } | 792 } |
| 792 | 793 |
| 793 void Layer::SetForceRenderSurface(bool force) { | 794 void Layer::SetForceRenderSurface(bool force) { |
| 794 if (force_render_surface_ == force) | 795 if (force_render_surface_ == force) |
| 795 return; | 796 return; |
| 796 | 797 |
| 797 force_render_surface_ = force; | 798 force_render_surface_ = force; |
| 798 cc_layer_->SetForceRenderSurface(force_render_surface_); | 799 cc_layer_->SetForceRenderSurface(force_render_surface_); |
| 799 } | 800 } |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 | 967 |
| 967 float Layer::GetDeviceScaleFactor() const { | 968 float Layer::GetDeviceScaleFactor() const { |
| 968 return device_scale_factor_; | 969 return device_scale_factor_; |
| 969 } | 970 } |
| 970 | 971 |
| 971 void Layer::AddThreadedAnimation(scoped_ptr<cc::Animation> animation) { | 972 void Layer::AddThreadedAnimation(scoped_ptr<cc::Animation> animation) { |
| 972 DCHECK(cc_layer_); | 973 DCHECK(cc_layer_); |
| 973 // Until this layer has a compositor (and hence cc_layer_ has a | 974 // Until this layer has a compositor (and hence cc_layer_ has a |
| 974 // LayerTreeHost), addAnimation will fail. | 975 // LayerTreeHost), addAnimation will fail. |
| 975 if (GetCompositor()) | 976 if (GetCompositor()) |
| 976 cc_layer_->AddAnimation(animation.Pass()); | 977 cc_layer_->AddAnimation(std::move(animation)); |
| 977 else | 978 else |
| 978 pending_threaded_animations_.push_back(animation.Pass()); | 979 pending_threaded_animations_.push_back(std::move(animation)); |
| 979 } | 980 } |
| 980 | 981 |
| 981 void Layer::RemoveThreadedAnimation(int animation_id) { | 982 void Layer::RemoveThreadedAnimation(int animation_id) { |
| 982 DCHECK(cc_layer_); | 983 DCHECK(cc_layer_); |
| 983 if (pending_threaded_animations_.size() == 0) { | 984 if (pending_threaded_animations_.size() == 0) { |
| 984 cc_layer_->RemoveAnimation(animation_id); | 985 cc_layer_->RemoveAnimation(animation_id); |
| 985 return; | 986 return; |
| 986 } | 987 } |
| 987 | 988 |
| 988 pending_threaded_animations_.erase( | 989 pending_threaded_animations_.erase( |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1072 animator_->RemoveFromCollection(collection); | 1073 animator_->RemoveFromCollection(collection); |
| 1073 for (auto* child : children_) | 1074 for (auto* child : children_) |
| 1074 child->RemoveAnimatorsInTreeFromCollection(collection); | 1075 child->RemoveAnimatorsInTreeFromCollection(collection); |
| 1075 } | 1076 } |
| 1076 | 1077 |
| 1077 bool Layer::IsAnimating() const { | 1078 bool Layer::IsAnimating() const { |
| 1078 return animator_.get() && animator_->is_animating(); | 1079 return animator_.get() && animator_->is_animating(); |
| 1079 } | 1080 } |
| 1080 | 1081 |
| 1081 } // namespace ui | 1082 } // namespace ui |
| OLD | NEW |