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#ifndef CC_TREES_LAYER_TREE_HOST_SINGLE_THREAD_CLIENT_H_
6#define CC_TREES_LAYER_TREE_HOST_SINGLE_THREAD_CLIENT_H_
7
8namespace cc {
9
10class LayerTreeHostSingleThreadClient {
11 public:
12  // Request that the client schedule a composite.
13  virtual void ScheduleComposite() {}
14  // Request that the client schedule a composite now, and calculate appropriate
15  // delay for potential future frame.
16  virtual void ScheduleAnimation() {}
17
18  // Called whenever the compositor posts a SwapBuffers (either full or
19  // partial). After DidPostSwapBuffers(), exactly one of
20  // DidCompleteSwapBuffers() or DidAbortSwapBuffers() will be called, thus
21  // these functions can be used to keep track of pending swap buffers calls for
22  // rate limiting.
23  virtual void DidPostSwapBuffers() = 0;
24  virtual void DidCompleteSwapBuffers() = 0;
25  virtual void DidAbortSwapBuffers() = 0;
26
27 protected:
28  virtual ~LayerTreeHostSingleThreadClient() {}
29};
30
31}  // namespace cc
32
33#endif  // CC_TREES_LAYER_TREE_HOST_SINGLE_THREAD_CLIENT_H_
34