17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef CC_TEST_FAKE_OUTPUT_SURFACE_CLIENT_H_ 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define CC_TEST_FAKE_OUTPUT_SURFACE_CLIENT_H_ 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/output/managed_memory_policy.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/output/output_surface_client.h" 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace cc { 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class OutputSurface; 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass FakeOutputSurfaceClient : public OutputSurfaceClient { 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public: 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeOutputSurfaceClient() 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) : output_surface_(NULL), 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) begin_frame_count_(0), 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) deferred_initialize_called_(false), 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) did_lose_output_surface_called_(false), 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) memory_policy_(0) {} 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) explicit FakeOutputSurfaceClient(OutputSurface* output_surface) 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) : output_surface_(output_surface), 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) begin_frame_count_(0), 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch deferred_initialize_called_(false), 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch did_lose_output_surface_called_(false), 290f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) memory_policy_(0) {} 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void DeferredInitialize() OVERRIDE; 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void ReleaseGL() OVERRIDE; 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void CommitVSyncParameters(base::TimeTicks timebase, 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::TimeDelta interval) OVERRIDE {} 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void SetNeedsRedrawRect(const gfx::Rect& damage_rect) OVERRIDE {} 36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void BeginFrame(const BeginFrameArgs& args) OVERRIDE; 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DidSwapBuffers() OVERRIDE {} 380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch virtual void DidSwapBuffersComplete() OVERRIDE {} 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual void ReclaimResources(const CompositorFrameAck* ack) OVERRIDE {} 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void DidLoseOutputSurface() OVERRIDE; 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void SetExternalDrawConstraints( 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Transform& transform, 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const gfx::Rect& viewport, 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const gfx::Rect& clip, 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const gfx::Rect& viewport_rect_for_tile_priority, 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const gfx::Transform& transform_for_tile_priority, 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool resourceless_software_draw) OVERRIDE {} 48a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void SetMemoryPolicy(const ManagedMemoryPolicy& policy) OVERRIDE; 49ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void SetTreeActivationCallback(const base::Closure&) OVERRIDE {} 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 51a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int begin_frame_count() { return begin_frame_count_; } 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool deferred_initialize_called() { 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return deferred_initialize_called_; 557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool did_lose_output_surface_called() { 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return did_lose_output_surface_called_; 597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const ManagedMemoryPolicy& memory_policy() const { return memory_policy_; } 627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch private: 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OutputSurface* output_surface_; 65a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int begin_frame_count_; 667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool deferred_initialize_called_; 677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool did_lose_output_surface_called_; 687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ManagedMemoryPolicy memory_policy_; 697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}; 707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} // namespace cc 727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif // CC_TEST_FAKE_OUTPUT_SURFACE_CLIENT_H_ 74