fake_content_layer.h revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_TEST_FAKE_CONTENT_LAYER_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_TEST_FAKE_CONTENT_LAYER_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/layers/content_layer.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FakeContentLayer : public ContentLayer {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static scoped_refptr<FakeContentLayer> Create(ContentLayerClient* client) {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return make_scoped_refptr(new FakeContentLayer(client));
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      OVERRIDE;
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  size_t update_count() const { return update_count_; }
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void reset_update_count() { update_count_ = 0; }
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  size_t push_properties_count() const { return push_properties_count_; }
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  void reset_push_properties_count() { push_properties_count_ = 0; }
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual bool Update(
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      ResourceUpdateQueue* queue,
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      const OcclusionTracker* occlusion) OVERRIDE;
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  gfx::Rect LastPaintRect() const;
33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  void set_always_update_resources(bool always_update_resources) {
35558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    always_update_resources_ = always_update_resources;
36558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  }
37558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void OnOutputSurfaceCreated() OVERRIDE;
414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  size_t output_surface_created_count() const {
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    return output_surface_created_count_;
434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  }
444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool HaveBackingAt(int i, int j);
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  explicit FakeContentLayer(ContentLayerClient* client);
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual ~FakeContentLayer();
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  size_t update_count_;
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  size_t push_properties_count_;
534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  size_t output_surface_created_count_;
54558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  bool always_update_resources_;
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_TEST_FAKE_CONTENT_LAYER_H_
60