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 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual bool Update(ResourceUpdateQueue* queue, 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const OcclusionTracker<Layer>* occlusion) OVERRIDE; 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) gfx::Rect LastPaintRect() const; 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch void set_always_update_resources(bool always_update_resources) { 34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch always_update_resources_ = always_update_resources; 35558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch } 36558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void OnOutputSurfaceCreated() OVERRIDE; 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) size_t output_surface_created_count() const { 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return output_surface_created_count_; 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool HaveBackingAt(int i, int j); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit FakeContentLayer(ContentLayerClient* client); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~FakeContentLayer(); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t update_count_; 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch size_t push_properties_count_; 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) size_t output_surface_created_count_; 53558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch bool always_update_resources_; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace cc 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CC_TEST_FAKE_CONTENT_LAYER_H_ 59