OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/renderer_host/render_widget_host_view_android.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_android.h" |
6 | 6 |
7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1619 void RenderWidgetHostViewAndroid::SendBeginFrame(cc::BeginFrameArgs args) { | 1619 void RenderWidgetHostViewAndroid::SendBeginFrame(cc::BeginFrameArgs args) { |
1620 TRACE_EVENT2("cc", "RenderWidgetHostViewAndroid::SendBeginFrame", | 1620 TRACE_EVENT2("cc", "RenderWidgetHostViewAndroid::SendBeginFrame", |
1621 "frame_number", args.sequence_number, "frame_time_us", | 1621 "frame_number", args.sequence_number, "frame_time_us", |
1622 args.frame_time.ToInternalValue()); | 1622 args.frame_time.ToInternalValue()); |
1623 | 1623 |
1624 // Synchronous compositor does not use deadline-based scheduling. | 1624 // Synchronous compositor does not use deadline-based scheduling. |
1625 // TODO(brianderson): Replace this hardcoded deadline after Android | 1625 // TODO(brianderson): Replace this hardcoded deadline after Android |
1626 // switches to Surfaces and the Browser's commit isn't in the critical path. | 1626 // switches to Surfaces and the Browser's commit isn't in the critical path. |
1627 args.deadline = sync_compositor_ ? base::TimeTicks() | 1627 args.deadline = sync_compositor_ ? base::TimeTicks() |
1628 : args.frame_time + (args.interval * 0.6); | 1628 : args.frame_time + (args.interval * 0.6); |
1629 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); | 1629 if (sync_compositor_) { |
1630 if (sync_compositor_) | 1630 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); |
1631 sync_compositor_->DidSendBeginFrame(view_.GetWindowAndroid()); | 1631 sync_compositor_->DidSendBeginFrame(view_.GetWindowAndroid()); |
| 1632 } else if (renderer_compositor_frame_sink_) { |
| 1633 renderer_compositor_frame_sink_->OnBeginFrame(args); |
| 1634 } |
1632 } | 1635 } |
1633 | 1636 |
1634 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { | 1637 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { |
1635 bool needs_animate = false; | 1638 bool needs_animate = false; |
1636 if (overscroll_controller_ && !is_in_vr_) { | 1639 if (overscroll_controller_ && !is_in_vr_) { |
1637 needs_animate |= overscroll_controller_->Animate( | 1640 needs_animate |= overscroll_controller_->Animate( |
1638 frame_time, content_view_core_->GetViewAndroid()->GetLayer()); | 1641 frame_time, content_view_core_->GetViewAndroid()->GetLayer()); |
1639 } | 1642 } |
1640 if (touch_selection_controller_) | 1643 if (touch_selection_controller_) |
1641 needs_animate |= touch_selection_controller_->Animate(frame_time); | 1644 needs_animate |= touch_selection_controller_->Animate(frame_time); |
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2238 | 2241 |
2239 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); | 2242 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); |
2240 if (!compositor) | 2243 if (!compositor) |
2241 return; | 2244 return; |
2242 | 2245 |
2243 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( | 2246 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( |
2244 overscroll_refresh_handler, compositor, view_.GetDipScale()); | 2247 overscroll_refresh_handler, compositor, view_.GetDipScale()); |
2245 } | 2248 } |
2246 | 2249 |
2247 } // namespace content | 2250 } // namespace content |
OLD | NEW |