OLD | NEW |
---|---|
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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
48 is_drawable_(false), | 48 is_drawable_(false), |
49 hide_layer_and_subtree_(false), | 49 hide_layer_and_subtree_(false), |
50 masks_to_bounds_(false), | 50 masks_to_bounds_(false), |
51 contents_opaque_(false), | 51 contents_opaque_(false), |
52 double_sided_(true), | 52 double_sided_(true), |
53 preserves_3d_(false), | 53 preserves_3d_(false), |
54 use_parent_backface_visibility_(false), | 54 use_parent_backface_visibility_(false), |
55 draw_checkerboard_for_missing_tiles_(false), | 55 draw_checkerboard_for_missing_tiles_(false), |
56 force_render_surface_(false), | 56 force_render_surface_(false), |
57 replica_layer_(NULL), | 57 replica_layer_(NULL), |
58 raster_scale_(0.f) { | 58 raster_scale_(0.f), |
59 saved_paint_properties_(false) { | |
59 if (layer_id_ < 0) { | 60 if (layer_id_ < 0) { |
60 s_next_layer_id = 1; | 61 s_next_layer_id = 1; |
61 layer_id_ = s_next_layer_id++; | 62 layer_id_ = s_next_layer_id++; |
62 } | 63 } |
63 | 64 |
64 layer_animation_controller_ = LayerAnimationController::Create(layer_id_); | 65 layer_animation_controller_ = LayerAnimationController::Create(layer_id_); |
65 layer_animation_controller_->AddValueObserver(this); | 66 layer_animation_controller_->AddValueObserver(this); |
66 } | 67 } |
67 | 68 |
68 Layer::~Layer() { | 69 Layer::~Layer() { |
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
722 main_thread_task_runner->PostTask(FROM_HERE, | 723 main_thread_task_runner->PostTask(FROM_HERE, |
723 base::Bind(&RunCopyCallbackOnMainThread, | 724 base::Bind(&RunCopyCallbackOnMainThread, |
724 base::Passed(&request), | 725 base::Passed(&request), |
725 base::Passed(&result))); | 726 base::Passed(&result))); |
726 } | 727 } |
727 | 728 |
728 void Layer::PushPropertiesTo(LayerImpl* layer) { | 729 void Layer::PushPropertiesTo(LayerImpl* layer) { |
729 layer->SetAnchorPoint(anchor_point_); | 730 layer->SetAnchorPoint(anchor_point_); |
730 layer->SetAnchorPointZ(anchor_point_z_); | 731 layer->SetAnchorPointZ(anchor_point_z_); |
731 layer->SetBackgroundColor(background_color_); | 732 layer->SetBackgroundColor(background_color_); |
732 layer->SetBounds(paint_properties_.bounds); | 733 layer->SetBounds(saved_paint_properties_ ? paint_properties_.bounds |
734 : bounds_); | |
733 layer->SetContentBounds(content_bounds()); | 735 layer->SetContentBounds(content_bounds()); |
734 layer->SetContentsScale(contents_scale_x(), contents_scale_y()); | 736 layer->SetContentsScale(contents_scale_x(), contents_scale_y()); |
735 layer->SetDebugName(debug_name_); | 737 layer->SetDebugName(debug_name_); |
736 layer->SetCompositingReasons(compositing_reasons_); | 738 layer->SetCompositingReasons(compositing_reasons_); |
737 layer->SetDoubleSided(double_sided_); | 739 layer->SetDoubleSided(double_sided_); |
738 layer->SetDrawCheckerboardForMissingTiles( | 740 layer->SetDrawCheckerboardForMissingTiles( |
739 draw_checkerboard_for_missing_tiles_); | 741 draw_checkerboard_for_missing_tiles_); |
740 layer->SetForceRenderSurface(force_render_surface_); | 742 layer->SetForceRenderSurface(force_render_surface_); |
741 layer->SetDrawsContent(DrawsContent()); | 743 layer->SetDrawsContent(DrawsContent()); |
742 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); | 744 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
818 layer->layer_animation_controller()); | 820 layer->layer_animation_controller()); |
819 | 821 |
820 // Reset any state that should be cleared for the next update. | 822 // Reset any state that should be cleared for the next update. |
821 stacking_order_changed_ = false; | 823 stacking_order_changed_ = false; |
822 update_rect_ = gfx::RectF(); | 824 update_rect_ = gfx::RectF(); |
823 | 825 |
824 // Animating layers require further push properties to clean up the animation. | 826 // Animating layers require further push properties to clean up the animation. |
825 // crbug.com/259088 | 827 // crbug.com/259088 |
826 needs_push_properties_ = layer_animation_controller_->has_any_animation(); | 828 needs_push_properties_ = layer_animation_controller_->has_any_animation(); |
827 num_dependents_need_push_properties_ = 0; | 829 num_dependents_need_push_properties_ = 0; |
830 | |
831 saved_paint_properties_ = false; | |
828 } | 832 } |
829 | 833 |
830 scoped_ptr<LayerImpl> Layer::CreateLayerImpl(LayerTreeImpl* tree_impl) { | 834 scoped_ptr<LayerImpl> Layer::CreateLayerImpl(LayerTreeImpl* tree_impl) { |
831 return LayerImpl::Create(tree_impl, layer_id_); | 835 return LayerImpl::Create(tree_impl, layer_id_); |
832 } | 836 } |
833 | 837 |
834 bool Layer::DrawsContent() const { | 838 bool Layer::DrawsContent() const { |
835 return is_drawable_; | 839 return is_drawable_; |
836 } | 840 } |
837 | 841 |
838 void Layer::SavePaintProperties() { | 842 void Layer::SavePaintProperties() { |
839 // TODO(reveman): Save all layer properties that we depend on not | 843 // TODO(reveman): Save all layer properties that we depend on not |
840 // changing until PushProperties() has been called. crbug.com/231016 | 844 // changing until PushProperties() has been called. crbug.com/231016 |
841 paint_properties_.bounds = bounds_; | 845 paint_properties_.bounds = bounds_; |
846 saved_paint_properties_ = true; | |
842 } | 847 } |
843 | 848 |
844 bool Layer::Update(ResourceUpdateQueue* queue, | 849 bool Layer::Update(ResourceUpdateQueue* queue, |
845 const OcclusionTracker* occlusion) { | 850 const OcclusionTracker* occlusion) { |
851 DCHECK(saved_paint_properties_); | |
enne (OOO)
2013/08/02 17:00:48
This seems like something that could be easily ski
danakj
2013/08/02 21:57:28
Done.
| |
846 return false; | 852 return false; |
847 } | 853 } |
848 | 854 |
849 bool Layer::NeedMoreUpdates() { | 855 bool Layer::NeedMoreUpdates() { |
850 return false; | 856 return false; |
851 } | 857 } |
852 | 858 |
853 void Layer::SetDebugName(const std::string& debug_name) { | 859 void Layer::SetDebugName(const std::string& debug_name) { |
854 debug_name_ = debug_name; | 860 debug_name_ = debug_name; |
855 SetNeedsCommit(); | 861 SetNeedsCommit(); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
955 | 961 |
956 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const { | 962 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const { |
957 return layer_tree_host_->rendering_stats_instrumentation(); | 963 return layer_tree_host_->rendering_stats_instrumentation(); |
958 } | 964 } |
959 | 965 |
960 bool Layer::SupportsLCDText() const { | 966 bool Layer::SupportsLCDText() const { |
961 return false; | 967 return false; |
962 } | 968 } |
963 | 969 |
964 } // namespace cc | 970 } // namespace cc |
OLD | NEW |