15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CC_TEST_FAKE_PROXY_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CC_TEST_FAKE_PROXY_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/single_thread_task_runner.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/trees/layer_tree_host.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/trees/proxy.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace cc {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FakeProxy : public Proxy {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  FakeProxy() : Proxy(NULL), layer_tree_host_(NULL) {}
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  explicit FakeProxy(
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner)
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      : Proxy(impl_task_runner),
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        layer_tree_host_(NULL) {}
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  void SetLayerTreeHost(LayerTreeHost* host);
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool CompositeAndReadback(void* pixels, gfx::Rect rect) OVERRIDE;
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void FinishAllRendering() OVERRIDE {}
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool IsStarted() const OVERRIDE;
27b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  virtual void SetLayerTreeHostClientReady() OVERRIDE {}
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void SetVisible(bool visible) OVERRIDE {}
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void CreateAndInitializeOutputSurface() OVERRIDE;
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual const RendererCapabilities& GetRendererCapabilities() const OVERRIDE;
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void SetNeedsAnimate() OVERRIDE {}
32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  virtual void SetNeedsUpdateLayers() OVERRIDE {}
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void SetNeedsCommit() OVERRIDE {}
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void SetNeedsRedraw(gfx::Rect damage_rect) OVERRIDE {}
35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  virtual void SetNextCommitWaitsForActivation() OVERRIDE {}
36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  virtual void NotifyInputThrottledUntilCommit() OVERRIDE {}
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void SetDeferCommits(bool defer_commits) OVERRIDE {}
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void MainThreadHasStoppedFlinging() OVERRIDE {}
391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  virtual bool BeginMainFrameRequested() const OVERRIDE;
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool CommitRequested() const OVERRIDE;
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void Start(scoped_ptr<OutputSurface> first_output_surface) OVERRIDE {}
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void Stop() OVERRIDE {}
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ForceSerializeOnSwapBuffers() OVERRIDE {}
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual size_t MaxPartialTextureUpdates() const OVERRIDE;
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void AcquireLayerTextures() OVERRIDE {}
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool CommitPendingForTesting() OVERRIDE;
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual scoped_ptr<base::Value> AsValue() const OVERRIDE;
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual RendererCapabilities& GetRendererCapabilities();
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void SetMaxPartialTextureUpdates(size_t max);
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  RendererCapabilities capabilities_;
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  size_t max_partial_texture_updates_;
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  LayerTreeHost* layer_tree_host_;
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace cc
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CC_TEST_FAKE_PROXY_H_
61