| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1125 base::Passed(&result))); | 1125 base::Passed(&result))); |
| 1126 } | 1126 } |
| 1127 | 1127 |
| 1128 void Layer::PushPropertiesTo(LayerImpl* layer) { | 1128 void Layer::PushPropertiesTo(LayerImpl* layer) { |
| 1129 TRACE_EVENT0("cc", "Layer::PushPropertiesTo"); | 1129 TRACE_EVENT0("cc", "Layer::PushPropertiesTo"); |
| 1130 DCHECK(layer_tree_host_); | 1130 DCHECK(layer_tree_host_); |
| 1131 | 1131 |
| 1132 // If we did not SavePaintProperties() for the layer this frame, then push the | 1132 // If we did not SavePaintProperties() for the layer this frame, then push the |
| 1133 // real property values, not the paint property values. | 1133 // real property values, not the paint property values. |
| 1134 bool use_paint_properties = paint_properties_.source_frame_number == | 1134 bool use_paint_properties = paint_properties_.source_frame_number == |
| 1135 layer_tree_host_->source_frame_number(); | 1135 layer_tree_host_->SourceFrameNumber(); |
| 1136 | 1136 |
| 1137 layer->SetBackgroundColor(inputs_.background_color); | 1137 layer->SetBackgroundColor(inputs_.background_color); |
| 1138 layer->SetSafeOpaqueBackgroundColor(safe_opaque_background_color_); | 1138 layer->SetSafeOpaqueBackgroundColor(safe_opaque_background_color_); |
| 1139 layer->SetBounds(use_paint_properties ? paint_properties_.bounds | 1139 layer->SetBounds(use_paint_properties ? paint_properties_.bounds |
| 1140 : inputs_.bounds); | 1140 : inputs_.bounds); |
| 1141 | 1141 |
| 1142 #if defined(NDEBUG) | 1142 #if defined(NDEBUG) |
| 1143 if (frame_viewer_instrumentation::IsTracingLayerTreeSnapshots()) | 1143 if (frame_viewer_instrumentation::IsTracingLayerTreeSnapshots()) |
| 1144 layer->SetDebugInfo(TakeDebugInfo()); | 1144 layer->SetDebugInfo(TakeDebugInfo()); |
| 1145 #else | 1145 #else |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1202 layer_property_changed_ = false; | 1202 layer_property_changed_ = false; |
| 1203 inputs_.update_rect = gfx::Rect(); | 1203 inputs_.update_rect = gfx::Rect(); |
| 1204 | 1204 |
| 1205 layer_tree_->RemoveLayerShouldPushProperties(this); | 1205 layer_tree_->RemoveLayerShouldPushProperties(this); |
| 1206 } | 1206 } |
| 1207 | 1207 |
| 1208 void Layer::TakeCopyRequests( | 1208 void Layer::TakeCopyRequests( |
| 1209 std::vector<std::unique_ptr<CopyOutputRequest>>* requests) { | 1209 std::vector<std::unique_ptr<CopyOutputRequest>>* requests) { |
| 1210 for (auto& it : inputs_.copy_requests) { | 1210 for (auto& it : inputs_.copy_requests) { |
| 1211 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner = | 1211 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner = |
| 1212 layer_tree_host()->task_runner_provider()->MainThreadTaskRunner(); | 1212 layer_tree_host()->GetTaskRunnerProvider()->MainThreadTaskRunner(); |
| 1213 std::unique_ptr<CopyOutputRequest> original_request = std::move(it); | 1213 std::unique_ptr<CopyOutputRequest> original_request = std::move(it); |
| 1214 const CopyOutputRequest& original_request_ref = *original_request; | 1214 const CopyOutputRequest& original_request_ref = *original_request; |
| 1215 std::unique_ptr<CopyOutputRequest> main_thread_request = | 1215 std::unique_ptr<CopyOutputRequest> main_thread_request = |
| 1216 CopyOutputRequest::CreateRelayRequest( | 1216 CopyOutputRequest::CreateRelayRequest( |
| 1217 original_request_ref, | 1217 original_request_ref, |
| 1218 base::Bind(&PostCopyCallbackToMainThread, main_thread_task_runner, | 1218 base::Bind(&PostCopyCallbackToMainThread, main_thread_task_runner, |
| 1219 base::Passed(&original_request))); | 1219 base::Passed(&original_request))); |
| 1220 if (main_thread_request->has_area()) { | 1220 if (main_thread_request->has_area()) { |
| 1221 main_thread_request->set_area(gfx::IntersectRects( | 1221 main_thread_request->set_area(gfx::IntersectRects( |
| 1222 main_thread_request->area(), gfx::Rect(bounds()))); | 1222 main_thread_request->area(), gfx::Rect(bounds()))); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1338 DCHECK(proto.has_id()); | 1338 DCHECK(proto.has_id()); |
| 1339 DCHECK_EQ(inputs_.layer_id, proto.id()); | 1339 DCHECK_EQ(inputs_.layer_id, proto.id()); |
| 1340 FromLayerSpecificPropertiesProto(proto); | 1340 FromLayerSpecificPropertiesProto(proto); |
| 1341 } | 1341 } |
| 1342 | 1342 |
| 1343 void Layer::LayerSpecificPropertiesToProto(proto::LayerProperties* proto) { | 1343 void Layer::LayerSpecificPropertiesToProto(proto::LayerProperties* proto) { |
| 1344 proto::BaseLayerProperties* base = proto->mutable_base(); | 1344 proto::BaseLayerProperties* base = proto->mutable_base(); |
| 1345 | 1345 |
| 1346 bool use_paint_properties = layer_tree_host_ && | 1346 bool use_paint_properties = layer_tree_host_ && |
| 1347 paint_properties_.source_frame_number == | 1347 paint_properties_.source_frame_number == |
| 1348 layer_tree_host_->source_frame_number(); | 1348 layer_tree_host_->SourceFrameNumber(); |
| 1349 | 1349 |
| 1350 Point3FToProto(inputs_.transform_origin, base->mutable_transform_origin()); | 1350 Point3FToProto(inputs_.transform_origin, base->mutable_transform_origin()); |
| 1351 base->set_background_color(inputs_.background_color); | 1351 base->set_background_color(inputs_.background_color); |
| 1352 base->set_safe_opaque_background_color(safe_opaque_background_color_); | 1352 base->set_safe_opaque_background_color(safe_opaque_background_color_); |
| 1353 SizeToProto(use_paint_properties ? paint_properties_.bounds : inputs_.bounds, | 1353 SizeToProto(use_paint_properties ? paint_properties_.bounds : inputs_.bounds, |
| 1354 base->mutable_bounds()); | 1354 base->mutable_bounds()); |
| 1355 | 1355 |
| 1356 // TODO(nyquist): Figure out what to do with debug info. See crbug.com/570372. | 1356 // TODO(nyquist): Figure out what to do with debug info. See crbug.com/570372. |
| 1357 | 1357 |
| 1358 base->set_transform_free_index(transform_tree_index_); | 1358 base->set_transform_free_index(transform_tree_index_); |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1560 int Layer::NumDescendantsThatDrawContent() const { | 1560 int Layer::NumDescendantsThatDrawContent() const { |
| 1561 return num_descendants_that_draw_content_; | 1561 return num_descendants_that_draw_content_; |
| 1562 } | 1562 } |
| 1563 | 1563 |
| 1564 void Layer::SavePaintProperties() { | 1564 void Layer::SavePaintProperties() { |
| 1565 DCHECK(layer_tree_host_); | 1565 DCHECK(layer_tree_host_); |
| 1566 | 1566 |
| 1567 // TODO(reveman): Save all layer properties that we depend on not | 1567 // TODO(reveman): Save all layer properties that we depend on not |
| 1568 // changing until PushProperties() has been called. crbug.com/231016 | 1568 // changing until PushProperties() has been called. crbug.com/231016 |
| 1569 paint_properties_.bounds = inputs_.bounds; | 1569 paint_properties_.bounds = inputs_.bounds; |
| 1570 paint_properties_.source_frame_number = | 1570 paint_properties_.source_frame_number = layer_tree_host_->SourceFrameNumber(); |
| 1571 layer_tree_host_->source_frame_number(); | |
| 1572 } | 1571 } |
| 1573 | 1572 |
| 1574 bool Layer::Update() { | 1573 bool Layer::Update() { |
| 1575 DCHECK(layer_tree_host_); | 1574 DCHECK(layer_tree_host_); |
| 1576 DCHECK_EQ(layer_tree_host_->source_frame_number(), | 1575 DCHECK_EQ(layer_tree_host_->SourceFrameNumber(), |
| 1577 paint_properties_.source_frame_number) << | 1576 paint_properties_.source_frame_number) |
| 1578 "SavePaintProperties must be called for any layer that is painted."; | 1577 << "SavePaintProperties must be called for any layer that is painted."; |
| 1579 return false; | 1578 return false; |
| 1580 } | 1579 } |
| 1581 | 1580 |
| 1582 bool Layer::IsSuitableForGpuRasterization() const { | 1581 bool Layer::IsSuitableForGpuRasterization() const { |
| 1583 return true; | 1582 return true; |
| 1584 } | 1583 } |
| 1585 | 1584 |
| 1586 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> | 1585 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> |
| 1587 Layer::TakeDebugInfo() { | 1586 Layer::TakeDebugInfo() { |
| 1588 if (inputs_.client) | 1587 if (inputs_.client) |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1882 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); | 1881 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); |
| 1883 return draw_property_utils::ScreenSpaceTransform( | 1882 return draw_property_utils::ScreenSpaceTransform( |
| 1884 this, layer_tree_->property_trees()->transform_tree); | 1883 this, layer_tree_->property_trees()->transform_tree); |
| 1885 } | 1884 } |
| 1886 | 1885 |
| 1887 LayerTree* Layer::GetLayerTree() const { | 1886 LayerTree* Layer::GetLayerTree() const { |
| 1888 return layer_tree_; | 1887 return layer_tree_; |
| 1889 } | 1888 } |
| 1890 | 1889 |
| 1891 } // namespace cc | 1890 } // namespace cc |
| OLD | NEW |