OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/renderer/gpu/render_widget_compositor.h" | 5 #include "content/renderer/gpu/render_widget_compositor.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 #include <limits> | 10 #include <limits> |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 | 222 |
223 // static | 223 // static |
224 std::unique_ptr<cc::LayerTreeHost> RenderWidgetCompositor::CreateLayerTreeHost( | 224 std::unique_ptr<cc::LayerTreeHost> RenderWidgetCompositor::CreateLayerTreeHost( |
225 LayerTreeHostClient* client, | 225 LayerTreeHostClient* client, |
226 cc::LayerTreeHostSingleThreadClient* single_thread_client, | 226 cc::LayerTreeHostSingleThreadClient* single_thread_client, |
227 cc::MutatorHost* mutator_host, | 227 cc::MutatorHost* mutator_host, |
228 CompositorDependencies* deps, | 228 CompositorDependencies* deps, |
229 float device_scale_factor, | 229 float device_scale_factor, |
230 const ScreenInfo& screen_info) { | 230 const ScreenInfo& screen_info) { |
231 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); | 231 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); |
232 cc::LayerTreeSettings settings = | 232 cc::LayerTreeSettings settings = GenerateLayerTreeSettings( |
233 GenerateLayerTreeSettings(*cmd, deps, device_scale_factor, screen_info); | 233 *cmd, deps, device_scale_factor, client->IsForSubframe(), screen_info); |
234 | 234 |
235 const bool is_threaded = !!deps->GetCompositorImplThreadTaskRunner(); | 235 const bool is_threaded = !!deps->GetCompositorImplThreadTaskRunner(); |
236 | 236 |
237 std::unique_ptr<cc::LayerTreeHost> layer_tree_host; | 237 std::unique_ptr<cc::LayerTreeHost> layer_tree_host; |
238 | 238 |
239 cc::LayerTreeHost::InitParams params; | 239 cc::LayerTreeHost::InitParams params; |
240 params.client = client; | 240 params.client = client; |
241 params.settings = &settings; | 241 params.settings = &settings; |
242 params.task_graph_runner = deps->GetTaskGraphRunner(); | 242 params.task_graph_runner = deps->GetTaskGraphRunner(); |
243 params.main_task_runner = deps->GetCompositorMainThreadTaskRunner(); | 243 params.main_task_runner = deps->GetCompositorMainThreadTaskRunner(); |
(...skipping 19 matching lines...) Expand all Loading... |
263 } | 263 } |
264 | 264 |
265 return layer_tree_host; | 265 return layer_tree_host; |
266 } | 266 } |
267 | 267 |
268 // static | 268 // static |
269 cc::LayerTreeSettings RenderWidgetCompositor::GenerateLayerTreeSettings( | 269 cc::LayerTreeSettings RenderWidgetCompositor::GenerateLayerTreeSettings( |
270 const base::CommandLine& cmd, | 270 const base::CommandLine& cmd, |
271 CompositorDependencies* compositor_deps, | 271 CompositorDependencies* compositor_deps, |
272 float device_scale_factor, | 272 float device_scale_factor, |
| 273 bool is_for_subframe, |
273 const ScreenInfo& screen_info) { | 274 const ScreenInfo& screen_info) { |
274 cc::LayerTreeSettings settings; | 275 cc::LayerTreeSettings settings; |
275 | 276 |
| 277 settings.is_layer_tree_for_subframe = is_for_subframe; |
| 278 |
276 // For web contents, layer transforms should scale up the contents of layers | 279 // For web contents, layer transforms should scale up the contents of layers |
277 // to keep content always crisp when possible. | 280 // to keep content always crisp when possible. |
278 settings.layer_transforms_should_scale_layer_contents = true; | 281 settings.layer_transforms_should_scale_layer_contents = true; |
279 | 282 |
280 settings.main_frame_before_activation_enabled = | 283 settings.main_frame_before_activation_enabled = |
281 cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation); | 284 cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation); |
282 | 285 |
283 settings.enable_checker_imaging = | 286 settings.enable_checker_imaging = |
284 cmd.HasSwitch(cc::switches::kEnableCheckerImaging); | 287 cmd.HasSwitch(cc::switches::kEnableCheckerImaging); |
285 | 288 |
(...skipping 827 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1113 } | 1116 } |
1114 | 1117 |
1115 void RenderWidgetCompositor::DidReceiveCompositorFrameAck() { | 1118 void RenderWidgetCompositor::DidReceiveCompositorFrameAck() { |
1116 delegate_->DidReceiveCompositorFrameAck(); | 1119 delegate_->DidReceiveCompositorFrameAck(); |
1117 } | 1120 } |
1118 | 1121 |
1119 void RenderWidgetCompositor::DidCompletePageScaleAnimation() { | 1122 void RenderWidgetCompositor::DidCompletePageScaleAnimation() { |
1120 delegate_->DidCompletePageScaleAnimation(); | 1123 delegate_->DidCompletePageScaleAnimation(); |
1121 } | 1124 } |
1122 | 1125 |
| 1126 bool RenderWidgetCompositor::IsForSubframe() { |
| 1127 return is_for_oopif_; |
| 1128 } |
| 1129 |
1123 void RenderWidgetCompositor::RequestScheduleAnimation() { | 1130 void RenderWidgetCompositor::RequestScheduleAnimation() { |
1124 delegate_->RequestScheduleAnimation(); | 1131 delegate_->RequestScheduleAnimation(); |
1125 } | 1132 } |
1126 | 1133 |
1127 void RenderWidgetCompositor::DidSubmitCompositorFrame() {} | 1134 void RenderWidgetCompositor::DidSubmitCompositorFrame() {} |
1128 | 1135 |
1129 void RenderWidgetCompositor::DidLoseCompositorFrameSink() {} | 1136 void RenderWidgetCompositor::DidLoseCompositorFrameSink() {} |
1130 | 1137 |
1131 void RenderWidgetCompositor::SetFrameSinkId( | 1138 void RenderWidgetCompositor::SetFrameSinkId( |
1132 const cc::FrameSinkId& frame_sink_id) { | 1139 const cc::FrameSinkId& frame_sink_id) { |
(...skipping 17 matching lines...) Expand all Loading... |
1150 void RenderWidgetCompositor::SetContentSourceId(uint32_t id) { | 1157 void RenderWidgetCompositor::SetContentSourceId(uint32_t id) { |
1151 layer_tree_host_->SetContentSourceId(id); | 1158 layer_tree_host_->SetContentSourceId(id); |
1152 } | 1159 } |
1153 | 1160 |
1154 void RenderWidgetCompositor::SetLocalSurfaceId( | 1161 void RenderWidgetCompositor::SetLocalSurfaceId( |
1155 const cc::LocalSurfaceId& local_surface_id) { | 1162 const cc::LocalSurfaceId& local_surface_id) { |
1156 layer_tree_host_->SetLocalSurfaceId(local_surface_id); | 1163 layer_tree_host_->SetLocalSurfaceId(local_surface_id); |
1157 } | 1164 } |
1158 | 1165 |
1159 } // namespace content | 1166 } // namespace content |
OLD | NEW |