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

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

Issue 21839004: cc: Push valid property values when CalcDrawProps skips layer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: pushpaintprops: stuff Created 7 years, 4 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 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner, 719 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner,
720 scoped_ptr<CopyOutputRequest> request, 720 scoped_ptr<CopyOutputRequest> request,
721 scoped_ptr<CopyOutputResult> result) { 721 scoped_ptr<CopyOutputResult> result) {
722 main_thread_task_runner->PostTask(FROM_HERE, 722 main_thread_task_runner->PostTask(FROM_HERE,
723 base::Bind(&RunCopyCallbackOnMainThread, 723 base::Bind(&RunCopyCallbackOnMainThread,
724 base::Passed(&request), 724 base::Passed(&request),
725 base::Passed(&result))); 725 base::Passed(&result)));
726 } 726 }
727 727
728 void Layer::PushPropertiesTo(LayerImpl* layer) { 728 void Layer::PushPropertiesTo(LayerImpl* layer) {
729 // If we did not SavePaintProperties() for the layer this frame, then push the
730 // real property values, not the paint property values.
731 bool use_paint_properties = paint_properties_.source_frame_number ==
732 layer_tree_host_->source_frame_number();
733
729 layer->SetAnchorPoint(anchor_point_); 734 layer->SetAnchorPoint(anchor_point_);
730 layer->SetAnchorPointZ(anchor_point_z_); 735 layer->SetAnchorPointZ(anchor_point_z_);
731 layer->SetBackgroundColor(background_color_); 736 layer->SetBackgroundColor(background_color_);
732 layer->SetBounds(paint_properties_.bounds); 737 layer->SetBounds(use_paint_properties ? paint_properties_.bounds
738 : bounds_);
733 layer->SetContentBounds(content_bounds()); 739 layer->SetContentBounds(content_bounds());
734 layer->SetContentsScale(contents_scale_x(), contents_scale_y()); 740 layer->SetContentsScale(contents_scale_x(), contents_scale_y());
735 layer->SetDebugName(debug_name_); 741 layer->SetDebugName(debug_name_);
736 layer->SetCompositingReasons(compositing_reasons_); 742 layer->SetCompositingReasons(compositing_reasons_);
737 layer->SetDoubleSided(double_sided_); 743 layer->SetDoubleSided(double_sided_);
738 layer->SetDrawCheckerboardForMissingTiles( 744 layer->SetDrawCheckerboardForMissingTiles(
739 draw_checkerboard_for_missing_tiles_); 745 draw_checkerboard_for_missing_tiles_);
740 layer->SetForceRenderSurface(force_render_surface_); 746 layer->SetForceRenderSurface(force_render_surface_);
741 layer->SetDrawsContent(DrawsContent()); 747 layer->SetDrawsContent(DrawsContent());
742 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); 748 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 } 838 }
833 839
834 bool Layer::DrawsContent() const { 840 bool Layer::DrawsContent() const {
835 return is_drawable_; 841 return is_drawable_;
836 } 842 }
837 843
838 void Layer::SavePaintProperties() { 844 void Layer::SavePaintProperties() {
839 // TODO(reveman): Save all layer properties that we depend on not 845 // TODO(reveman): Save all layer properties that we depend on not
840 // changing until PushProperties() has been called. crbug.com/231016 846 // changing until PushProperties() has been called. crbug.com/231016
841 paint_properties_.bounds = bounds_; 847 paint_properties_.bounds = bounds_;
848 paint_properties_.source_frame_number =
849 layer_tree_host_->source_frame_number();
842 } 850 }
843 851
844 bool Layer::Update(ResourceUpdateQueue* queue, 852 bool Layer::Update(ResourceUpdateQueue* queue,
845 const OcclusionTracker* occlusion) { 853 const OcclusionTracker* occlusion) {
854 DCHECK_EQ(layer_tree_host_->source_frame_number(),
855 paint_properties_.source_frame_number);
846 return false; 856 return false;
847 } 857 }
848 858
849 bool Layer::NeedMoreUpdates() { 859 bool Layer::NeedMoreUpdates() {
850 return false; 860 return false;
851 } 861 }
852 862
853 void Layer::SetDebugName(const std::string& debug_name) { 863 void Layer::SetDebugName(const std::string& debug_name) {
854 debug_name_ = debug_name; 864 debug_name_ = debug_name;
855 SetNeedsCommit(); 865 SetNeedsCommit();
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 965
956 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const { 966 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const {
957 return layer_tree_host_->rendering_stats_instrumentation(); 967 return layer_tree_host_->rendering_stats_instrumentation();
958 } 968 }
959 969
960 bool Layer::SupportsLCDText() const { 970 bool Layer::SupportsLCDText() const {
961 return false; 971 return false;
962 } 972 }
963 973
964 } // namespace cc 974 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698