1// Copyright 2012 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_TEST_FAKE_LAYER_TREE_HOST_CLIENT_H_
6#define CC_TEST_FAKE_LAYER_TREE_HOST_CLIENT_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "cc/input/input_handler.h"
10#include "cc/test/test_context_provider.h"
11#include "cc/trees/layer_tree_host_client.h"
12#include "cc/trees/layer_tree_host_single_thread_client.h"
13
14namespace cc {
15class OutputSurface;
16
17class FakeLayerTreeHostClient : public LayerTreeHostClient,
18                                public LayerTreeHostSingleThreadClient {
19 public:
20  enum RendererOptions {
21    DIRECT_3D,
22    DIRECT_SOFTWARE,
23    DELEGATED_3D,
24    DELEGATED_SOFTWARE
25  };
26  explicit FakeLayerTreeHostClient(RendererOptions options);
27  virtual ~FakeLayerTreeHostClient();
28
29  // Caller responsible for unsetting this and maintaining the host's lifetime.
30  void SetLayerTreeHost(LayerTreeHost* host) { host_ = host; }
31
32  // LayerTreeHostClient implementation.
33  virtual void WillBeginMainFrame(int frame_id) OVERRIDE {}
34  virtual void DidBeginMainFrame() OVERRIDE {}
35  virtual void BeginMainFrame(const BeginFrameArgs& args) OVERRIDE {}
36  virtual void Layout() OVERRIDE {}
37  virtual void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta,
38                                   float page_scale,
39                                   float top_controls_delta) OVERRIDE {}
40
41  virtual void RequestNewOutputSurface(bool fallback) OVERRIDE;
42  virtual void DidInitializeOutputSurface() OVERRIDE {}
43  virtual void WillCommit() OVERRIDE {}
44  virtual void DidCommit() OVERRIDE {}
45  virtual void DidCommitAndDrawFrame() OVERRIDE {}
46  virtual void DidCompleteSwapBuffers() OVERRIDE {}
47
48  // LayerTreeHostSingleThreadClient implementation.
49  virtual void DidPostSwapBuffers() OVERRIDE {}
50  virtual void DidAbortSwapBuffers() OVERRIDE {}
51
52 private:
53  bool use_software_rendering_;
54  bool use_delegating_renderer_;
55
56  LayerTreeHost* host_;
57};
58
59}  // namespace cc
60
61#endif  // CC_TEST_FAKE_LAYER_TREE_HOST_CLIENT_H_
62