| 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 #ifndef UI_COMPOSITOR_COMPOSITOR_H_ | 5 #ifndef UI_COMPOSITOR_COMPOSITOR_H_ |
| 6 #define UI_COMPOSITOR_COMPOSITOR_H_ | 6 #define UI_COMPOSITOR_COMPOSITOR_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 // This is only to be used for test. It allows execution of other tasks on | 255 // This is only to be used for test. It allows execution of other tasks on |
| 256 // the current message loop before the current task finishs (there is a | 256 // the current message loop before the current task finishs (there is a |
| 257 // potential for re-entrancy). | 257 // potential for re-entrancy). |
| 258 class COMPOSITOR_EXPORT DrawWaiterForTest : public ui::CompositorObserver { | 258 class COMPOSITOR_EXPORT DrawWaiterForTest : public ui::CompositorObserver { |
| 259 public: | 259 public: |
| 260 // Waits for a draw to be issued by the compositor. If the test times out | 260 // Waits for a draw to be issued by the compositor. If the test times out |
| 261 // here, there may be a logic error in the compositor code causing it | 261 // here, there may be a logic error in the compositor code causing it |
| 262 // not to draw. | 262 // not to draw. |
| 263 static void Wait(Compositor* compositor); | 263 static void Wait(Compositor* compositor); |
| 264 | 264 |
| 265 // Waits for a commit instead of a draw. |
| 266 static void WaitForCommit(Compositor* compositor); |
| 267 |
| 265 private: | 268 private: |
| 266 DrawWaiterForTest(); | 269 DrawWaiterForTest(); |
| 267 virtual ~DrawWaiterForTest(); | 270 virtual ~DrawWaiterForTest(); |
| 268 | 271 |
| 269 void WaitImpl(Compositor* compositor); | 272 void WaitImpl(Compositor* compositor); |
| 270 | 273 |
| 271 // CompositorObserver implementation. | 274 // CompositorObserver implementation. |
| 272 virtual void OnCompositingDidCommit(Compositor* compositor) OVERRIDE; | 275 virtual void OnCompositingDidCommit(Compositor* compositor) OVERRIDE; |
| 273 virtual void OnCompositingStarted(Compositor* compositor, | 276 virtual void OnCompositingStarted(Compositor* compositor, |
| 274 base::TimeTicks start_time) OVERRIDE; | 277 base::TimeTicks start_time) OVERRIDE; |
| 275 virtual void OnCompositingEnded(Compositor* compositor) OVERRIDE; | 278 virtual void OnCompositingEnded(Compositor* compositor) OVERRIDE; |
| 276 virtual void OnCompositingAborted(Compositor* compositor) OVERRIDE; | 279 virtual void OnCompositingAborted(Compositor* compositor) OVERRIDE; |
| 277 virtual void OnCompositingLockStateChanged(Compositor* compositor) OVERRIDE; | 280 virtual void OnCompositingLockStateChanged(Compositor* compositor) OVERRIDE; |
| 278 virtual void OnUpdateVSyncParameters(Compositor* compositor, | 281 virtual void OnUpdateVSyncParameters(Compositor* compositor, |
| 279 base::TimeTicks timebase, | 282 base::TimeTicks timebase, |
| 280 base::TimeDelta interval) OVERRIDE; | 283 base::TimeDelta interval) OVERRIDE; |
| 281 | 284 |
| 282 scoped_ptr<base::RunLoop> wait_run_loop_; | 285 scoped_ptr<base::RunLoop> wait_run_loop_; |
| 283 | 286 |
| 287 bool wait_for_commit_; |
| 288 |
| 284 DISALLOW_COPY_AND_ASSIGN(DrawWaiterForTest); | 289 DISALLOW_COPY_AND_ASSIGN(DrawWaiterForTest); |
| 285 }; | 290 }; |
| 286 | 291 |
| 287 // Compositor object to take care of GPU painting. | 292 // Compositor object to take care of GPU painting. |
| 288 // A Browser compositor object is responsible for generating the final | 293 // A Browser compositor object is responsible for generating the final |
| 289 // displayable form of pixels comprising a single widget's contents. It draws an | 294 // displayable form of pixels comprising a single widget's contents. It draws an |
| 290 // appropriately transformed texture for each transformed view in the widget's | 295 // appropriately transformed texture for each transformed view in the widget's |
| 291 // view hierarchy. | 296 // view hierarchy. |
| 292 class COMPOSITOR_EXPORT Compositor | 297 class COMPOSITOR_EXPORT Compositor |
| 293 : NON_EXPORTED_BASE(public cc::LayerTreeHostClient), | 298 : NON_EXPORTED_BASE(public cc::LayerTreeHostClient), |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 bool disable_schedule_composite_; | 453 bool disable_schedule_composite_; |
| 449 | 454 |
| 450 CompositorLock* compositor_lock_; | 455 CompositorLock* compositor_lock_; |
| 451 | 456 |
| 452 DISALLOW_COPY_AND_ASSIGN(Compositor); | 457 DISALLOW_COPY_AND_ASSIGN(Compositor); |
| 453 }; | 458 }; |
| 454 | 459 |
| 455 } // namespace ui | 460 } // namespace ui |
| 456 | 461 |
| 457 #endif // UI_COMPOSITOR_COMPOSITOR_H_ | 462 #endif // UI_COMPOSITOR_COMPOSITOR_H_ |
| OLD | NEW |