Chromium Code Reviews| 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 <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 752 } | 752 } |
| 753 | 753 |
| 754 void RenderWidgetCompositor::DidBeginMainFrame() { | 754 void RenderWidgetCompositor::DidBeginMainFrame() { |
| 755 widget_->InstrumentDidBeginFrame(); | 755 widget_->InstrumentDidBeginFrame(); |
| 756 } | 756 } |
| 757 | 757 |
| 758 void RenderWidgetCompositor::BeginMainFrame(const cc::BeginFrameArgs& args) { | 758 void RenderWidgetCompositor::BeginMainFrame(const cc::BeginFrameArgs& args) { |
| 759 VLOG(2) << "RenderWidgetCompositor::BeginMainFrame"; | 759 VLOG(2) << "RenderWidgetCompositor::BeginMainFrame"; |
| 760 begin_main_frame_time_ = args.frame_time; | 760 begin_main_frame_time_ = args.frame_time; |
| 761 begin_main_frame_interval_ = args.interval; | 761 begin_main_frame_interval_ = args.interval; |
| 762 double frame_time = (args.frame_time - base::TimeTicks()).InSecondsF(); | 762 double frame_time_sec = (args.frame_time - base::TimeTicks()).InSecondsF(); |
| 763 WebBeginFrameArgs web_begin_frame_args = WebBeginFrameArgs(frame_time); | 763 double deadline_sec = (args.deadline - base::TimeTicks()).InSecondsF(); |
| 764 double interval_sec = args.interval.InSecondsF(); | |
|
picksi1
2014/09/02 14:50:40
Is base::TimeTicks() potentially slow? Should we c
Sami
2014/09/02 14:53:30
It only constructs a TimeTicks instance that holds
| |
| 765 WebBeginFrameArgs web_begin_frame_args = | |
| 766 WebBeginFrameArgs(frame_time_sec, deadline_sec, interval_sec); | |
| 764 widget_->webwidget()->beginFrame(web_begin_frame_args); | 767 widget_->webwidget()->beginFrame(web_begin_frame_args); |
| 765 } | 768 } |
| 766 | 769 |
| 767 void RenderWidgetCompositor::Layout() { | 770 void RenderWidgetCompositor::Layout() { |
| 768 widget_->webwidget()->layout(); | 771 widget_->webwidget()->layout(); |
| 769 } | 772 } |
| 770 | 773 |
| 771 void RenderWidgetCompositor::ApplyScrollAndScale( | 774 void RenderWidgetCompositor::ApplyScrollAndScale( |
| 772 const gfx::Vector2d& scroll_delta, | 775 const gfx::Vector2d& scroll_delta, |
| 773 float page_scale) { | 776 float page_scale) { |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 794 if (idle_time > base::TimeDelta()) { | 797 if (idle_time > base::TimeDelta()) { |
| 795 // Convert to 32-bit microseconds first to avoid costly 64-bit division. | 798 // Convert to 32-bit microseconds first to avoid costly 64-bit division. |
| 796 int32 idle_time_in_us = idle_time.InMicroseconds(); | 799 int32 idle_time_in_us = idle_time.InMicroseconds(); |
| 797 int32 idle_time_in_ms = idle_time_in_us / 1000; | 800 int32 idle_time_in_ms = idle_time_in_us / 1000; |
| 798 blink::mainThreadIsolate()->IdleNotification(idle_time_in_ms); | 801 blink::mainThreadIsolate()->IdleNotification(idle_time_in_ms); |
| 799 } | 802 } |
| 800 } | 803 } |
| 801 | 804 |
| 802 widget_->DidCommitCompositorFrame(); | 805 widget_->DidCommitCompositorFrame(); |
| 803 widget_->didBecomeReadyForAdditionalInput(); | 806 widget_->didBecomeReadyForAdditionalInput(); |
| 807 widget_->webwidget()->didCommitFrameToCompositor(); | |
| 804 } | 808 } |
| 805 | 809 |
| 806 void RenderWidgetCompositor::DidCommitAndDrawFrame() { | 810 void RenderWidgetCompositor::DidCommitAndDrawFrame() { |
| 807 widget_->didCommitAndDrawCompositorFrame(); | 811 widget_->didCommitAndDrawCompositorFrame(); |
| 808 } | 812 } |
| 809 | 813 |
| 810 void RenderWidgetCompositor::DidCompleteSwapBuffers() { | 814 void RenderWidgetCompositor::DidCompleteSwapBuffers() { |
| 811 widget_->didCompleteSwapBuffers(); | 815 widget_->didCompleteSwapBuffers(); |
| 812 if (!threaded_) | 816 if (!threaded_) |
| 813 widget_->OnSwapBuffersComplete(); | 817 widget_->OnSwapBuffersComplete(); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 825 widget_->OnSwapBuffersAborted(); | 829 widget_->OnSwapBuffersAborted(); |
| 826 } | 830 } |
| 827 | 831 |
| 828 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { | 832 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { |
| 829 cc::ContextProvider* provider = | 833 cc::ContextProvider* provider = |
| 830 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); | 834 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); |
| 831 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); | 835 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); |
| 832 } | 836 } |
| 833 | 837 |
| 834 } // namespace content | 838 } // namespace content |
| OLD | NEW |