| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef CC_TREES_PROXY_IMPL_H_ | 5 #ifndef CC_TREES_PROXY_IMPL_H_ |
| 6 #define CC_TREES_PROXY_IMPL_H_ | 6 #define CC_TREES_PROXY_IMPL_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 virtual void SetDeferCommitsOnImpl(bool defer_commits) const; | 41 virtual void SetDeferCommitsOnImpl(bool defer_commits) const; |
| 42 virtual void SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect); | 42 virtual void SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect); |
| 43 virtual void SetNeedsCommitOnImpl(); | 43 virtual void SetNeedsCommitOnImpl(); |
| 44 virtual void BeginMainFrameAbortedOnImpl( | 44 virtual void BeginMainFrameAbortedOnImpl( |
| 45 CommitEarlyOutReason reason, | 45 CommitEarlyOutReason reason, |
| 46 base::TimeTicks main_thread_start_time); | 46 base::TimeTicks main_thread_start_time); |
| 47 virtual void FinishAllRenderingOnImpl(CompletionEvent* completion); | 47 virtual void FinishAllRenderingOnImpl(CompletionEvent* completion); |
| 48 virtual void SetVisibleOnImpl(bool visible); | 48 virtual void SetVisibleOnImpl(bool visible); |
| 49 virtual void ReleaseOutputSurfaceOnImpl(CompletionEvent* completion); | 49 virtual void ReleaseOutputSurfaceOnImpl(CompletionEvent* completion); |
| 50 virtual void FinishGLOnImpl(CompletionEvent* completion); | 50 virtual void FinishGLOnImpl(CompletionEvent* completion); |
| 51 virtual void MainFrameWillHappenOnImplForTesting( | |
| 52 CompletionEvent* completion, | |
| 53 bool* main_frame_will_happen); | |
| 54 virtual void StartCommitOnImpl(CompletionEvent* completion, | 51 virtual void StartCommitOnImpl(CompletionEvent* completion, |
| 55 LayerTreeHost* layer_tree_host, | 52 LayerTreeHost* layer_tree_host, |
| 56 base::TimeTicks main_thread_start_time, | 53 base::TimeTicks main_thread_start_time, |
| 57 bool hold_commit_for_activation); | 54 bool hold_commit_for_activation); |
| 58 | 55 |
| 56 void MainFrameWillHappenOnImplForTesting(CompletionEvent* completion, |
| 57 bool* main_frame_will_happen); |
| 58 void BlockNotifyReadyToActivateForTesting(bool block); |
| 59 |
| 59 protected: | 60 protected: |
| 60 // protected for testing. | 61 // protected for testing. |
| 61 ProxyImpl(ChannelImpl* channel_impl, | 62 ProxyImpl(ChannelImpl* channel_impl, |
| 62 LayerTreeHost* layer_tree_host, | 63 LayerTreeHost* layer_tree_host, |
| 63 TaskRunnerProvider* task_runner_provider, | 64 TaskRunnerProvider* task_runner_provider, |
| 64 std::unique_ptr<BeginFrameSource> external_begin_frame_source); | 65 std::unique_ptr<BeginFrameSource> external_begin_frame_source); |
| 65 | 66 |
| 66 private: | 67 private: |
| 67 // The members of this struct should be accessed on the impl thread only when | 68 // The members of this struct should be accessed on the impl thread only when |
| 68 // the main thread is blocked for a commit. | 69 // the main thread is blocked for a commit. |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 DrawResult DrawAndSwapInternal(bool forced_draw); | 124 DrawResult DrawAndSwapInternal(bool forced_draw); |
| 124 | 125 |
| 125 bool IsImplThread() const; | 126 bool IsImplThread() const; |
| 126 bool IsMainThreadBlocked() const; | 127 bool IsMainThreadBlocked() const; |
| 127 | 128 |
| 128 const int layer_tree_host_id_; | 129 const int layer_tree_host_id_; |
| 129 | 130 |
| 130 std::unique_ptr<Scheduler> scheduler_; | 131 std::unique_ptr<Scheduler> scheduler_; |
| 131 | 132 |
| 132 // Set when the main thread is waiting on a pending tree activation. | 133 // Set when the main thread is waiting on a pending tree activation. |
| 133 bool next_commit_waits_for_activation_; | 134 bool commit_completion_waits_for_activation_; |
| 134 | 135 |
| 135 // Set when the main thread is waiting on a commit to complete or on a | 136 // Set when the main thread is waiting on a commit to complete. |
| 136 // pending tree activation. | |
| 137 CompletionEvent* commit_completion_event_; | 137 CompletionEvent* commit_completion_event_; |
| 138 | 138 |
| 139 // Set when the main thread is waiting for activation to complete. |
| 140 CompletionEvent* activation_completion_event_; |
| 141 |
| 139 // Set when the next draw should post DidCommitAndDrawFrame to the main | 142 // Set when the next draw should post DidCommitAndDrawFrame to the main |
| 140 // thread. | 143 // thread. |
| 141 bool next_frame_is_newly_committed_frame_; | 144 bool next_frame_is_newly_committed_frame_; |
| 142 | 145 |
| 143 bool inside_draw_; | 146 bool inside_draw_; |
| 144 bool input_throttled_until_commit_; | 147 bool input_throttled_until_commit_; |
| 145 | 148 |
| 146 TaskRunnerProvider* task_runner_provider_; | 149 TaskRunnerProvider* task_runner_provider_; |
| 147 | 150 |
| 148 DelayedUniqueNotifier smoothness_priority_expiration_notifier_; | 151 DelayedUniqueNotifier smoothness_priority_expiration_notifier_; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 160 // Use accessors instead of this variable directly. | 163 // Use accessors instead of this variable directly. |
| 161 BlockedMainCommitOnly main_thread_blocked_commit_vars_unsafe_; | 164 BlockedMainCommitOnly main_thread_blocked_commit_vars_unsafe_; |
| 162 BlockedMainCommitOnly& blocked_main_commit(); | 165 BlockedMainCommitOnly& blocked_main_commit(); |
| 163 | 166 |
| 164 DISALLOW_COPY_AND_ASSIGN(ProxyImpl); | 167 DISALLOW_COPY_AND_ASSIGN(ProxyImpl); |
| 165 }; | 168 }; |
| 166 | 169 |
| 167 } // namespace cc | 170 } // namespace cc |
| 168 | 171 |
| 169 #endif // CC_TREES_PROXY_IMPL_H_ | 172 #endif // CC_TREES_PROXY_IMPL_H_ |
| OLD | NEW |