1a114fb07a7375a1b0228b386b6b8836ced2b5fc
[platform/framework/web/crosswalk.git] / src / cc / base / latency_info_swap_promise_monitor.h
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/compiler_specific.h"
6 #include "cc/base/swap_promise_monitor.h"
7
8 #ifndef CC_BASE_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_
9 #define CC_BASE_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_
10
11 namespace ui {
12 struct LatencyInfo;
13 }  // namespace ui
14
15 namespace cc {
16
17 // A LatencyInfoSwapPromiseMonitor queues a LatencyInfoSwapPromise into
18 // LayerTreeHost or LayerTreeHostImpl if there is compositor state change
19 // while it is being mointored.
20 class CC_EXPORT LatencyInfoSwapPromiseMonitor : public SwapPromiseMonitor {
21  public:
22   LatencyInfoSwapPromiseMonitor(ui::LatencyInfo* latency,
23                                 LayerTreeHost* layer_tree_host,
24                                 LayerTreeHostImpl* layer_tree_host_impl);
25   virtual ~LatencyInfoSwapPromiseMonitor();
26
27   virtual void OnSetNeedsCommitOnMain() OVERRIDE;
28   virtual void OnSetNeedsRedrawOnImpl() OVERRIDE;
29   virtual void OnForwardScrollUpdateToMainThreadOnImpl() OVERRIDE;
30
31  private:
32   ui::LatencyInfo* latency_;
33 };
34
35 }  // namespace cc
36
37 #endif  // CC_BASE_LATENCY_INFO_SWAP_PROMISE_MONITOR_H_