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

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: Call SavePaintProps when needed in tests 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
« no previous file with comments | « cc/layers/contents_scaling_layer.cc ('k') | cc/layers/nine_patch_layer.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 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 712 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 scoped_ptr<CopyOutputResult> result) { 723 scoped_ptr<CopyOutputResult> result) {
724 main_thread_task_runner->PostTask(FROM_HERE, 724 main_thread_task_runner->PostTask(FROM_HERE,
725 base::Bind(&RunCopyCallbackOnMainThread, 725 base::Bind(&RunCopyCallbackOnMainThread,
726 base::Passed(&request), 726 base::Passed(&request),
727 base::Passed(&result))); 727 base::Passed(&result)));
728 } 728 }
729 729
730 void Layer::PushPropertiesTo(LayerImpl* layer) { 730 void Layer::PushPropertiesTo(LayerImpl* layer) {
731 DCHECK(layer_tree_host_); 731 DCHECK(layer_tree_host_);
732 732
733 // If we did not SavePaintProperties() for the layer this frame, then push the
734 // real property values, not the paint property values.
735 bool use_paint_properties = paint_properties_.source_frame_number ==
736 layer_tree_host_->source_frame_number();
737
733 layer->SetAnchorPoint(anchor_point_); 738 layer->SetAnchorPoint(anchor_point_);
734 layer->SetAnchorPointZ(anchor_point_z_); 739 layer->SetAnchorPointZ(anchor_point_z_);
735 layer->SetBackgroundColor(background_color_); 740 layer->SetBackgroundColor(background_color_);
736 layer->SetBounds(paint_properties_.bounds); 741 layer->SetBounds(use_paint_properties ? paint_properties_.bounds
742 : bounds_);
737 layer->SetContentBounds(content_bounds()); 743 layer->SetContentBounds(content_bounds());
738 layer->SetContentsScale(contents_scale_x(), contents_scale_y()); 744 layer->SetContentsScale(contents_scale_x(), contents_scale_y());
739 layer->SetDebugName(debug_name_); 745 layer->SetDebugName(debug_name_);
740 layer->SetCompositingReasons(compositing_reasons_); 746 layer->SetCompositingReasons(compositing_reasons_);
741 layer->SetDoubleSided(double_sided_); 747 layer->SetDoubleSided(double_sided_);
742 layer->SetDrawCheckerboardForMissingTiles( 748 layer->SetDrawCheckerboardForMissingTiles(
743 draw_checkerboard_for_missing_tiles_); 749 draw_checkerboard_for_missing_tiles_);
744 layer->SetForceRenderSurface(force_render_surface_); 750 layer->SetForceRenderSurface(force_render_surface_);
745 layer->SetDrawsContent(DrawsContent()); 751 layer->SetDrawsContent(DrawsContent());
746 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_); 752 layer->SetHideLayerAndSubtree(hide_layer_and_subtree_);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 bool Layer::DrawsContent() const { 844 bool Layer::DrawsContent() const {
839 return is_drawable_; 845 return is_drawable_;
840 } 846 }
841 847
842 void Layer::SavePaintProperties() { 848 void Layer::SavePaintProperties() {
843 DCHECK(layer_tree_host_); 849 DCHECK(layer_tree_host_);
844 850
845 // TODO(reveman): Save all layer properties that we depend on not 851 // TODO(reveman): Save all layer properties that we depend on not
846 // changing until PushProperties() has been called. crbug.com/231016 852 // changing until PushProperties() has been called. crbug.com/231016
847 paint_properties_.bounds = bounds_; 853 paint_properties_.bounds = bounds_;
854 paint_properties_.source_frame_number =
855 layer_tree_host_->source_frame_number();
848 } 856 }
849 857
850 bool Layer::Update(ResourceUpdateQueue* queue, 858 bool Layer::Update(ResourceUpdateQueue* queue,
851 const OcclusionTracker* occlusion) { 859 const OcclusionTracker* occlusion) {
852 DCHECK(layer_tree_host_); 860 DCHECK(layer_tree_host_);
861 DCHECK_EQ(layer_tree_host_->source_frame_number(),
862 paint_properties_.source_frame_number) <<
863 "SavePaintProperties must be called for any layer that is painted.";
853 return false; 864 return false;
854 } 865 }
855 866
856 bool Layer::NeedMoreUpdates() { 867 bool Layer::NeedMoreUpdates() {
857 return false; 868 return false;
858 } 869 }
859 870
860 void Layer::SetDebugName(const std::string& debug_name) { 871 void Layer::SetDebugName(const std::string& debug_name) {
861 debug_name_ = debug_name; 872 debug_name_ = debug_name;
862 SetNeedsCommit(); 873 SetNeedsCommit();
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 973
963 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const { 974 RenderingStatsInstrumentation* Layer::rendering_stats_instrumentation() const {
964 return layer_tree_host_->rendering_stats_instrumentation(); 975 return layer_tree_host_->rendering_stats_instrumentation();
965 } 976 }
966 977
967 bool Layer::SupportsLCDText() const { 978 bool Layer::SupportsLCDText() const {
968 return false; 979 return false;
969 } 980 }
970 981
971 } // namespace cc 982 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/contents_scaling_layer.cc ('k') | cc/layers/nine_patch_layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698