1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef CC_TEST_FAKE_PICTURE_PILE_IMPL_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define CC_TEST_FAKE_PICTURE_PILE_IMPL_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/memory/ref_counted.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/resources/picture_pile_impl.h" 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/test/fake_content_layer_client.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace cc { 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class FakePicturePileImpl : public PicturePileImpl { 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static scoped_refptr<FakePicturePileImpl> CreateFilledPile( 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const gfx::Size& tile_size, 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const gfx::Size& layer_bounds); 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static scoped_refptr<FakePicturePileImpl> CreateEmptyPile( 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const gfx::Size& tile_size, 215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const gfx::Size& layer_bounds); 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) static scoped_refptr<FakePicturePileImpl> 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) CreateEmptyPileThatThinksItHasRecordings(const gfx::Size& tile_size, 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const gfx::Size& layer_bounds); 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) static scoped_refptr<FakePicturePileImpl> CreateInfiniteFilledPile(); 26bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TilingData& tiling() { return tiling_; } 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void AddRecordingAt(int x, int y); 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void RemoveRecordingAt(int x, int y); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void RerecordPile(); 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void add_draw_rect(const gfx::RectF& rect) { 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) client_.add_draw_rect(rect, default_paint_); 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void add_draw_bitmap(const SkBitmap& bitmap, const gfx::Point& point) { 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) client_.add_draw_bitmap(bitmap, point, default_paint_); 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void add_draw_rect_with_paint(const gfx::RectF& rect, const SkPaint& paint) { 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) client_.add_draw_rect(rect, paint); 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void add_draw_bitmap_with_paint(const SkBitmap& bitmap, 46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const gfx::Point& point, 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const SkPaint& paint) { 484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) client_.add_draw_bitmap(bitmap, point, paint); 494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_default_paint(const SkPaint& paint) { 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) default_paint_ = paint; 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 55868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) void set_background_color(SkColor color) { 56868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) background_color_ = color; 57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 58868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 59868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) void set_contents_opaque(bool contents_opaque) { 60868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) contents_opaque_ = contents_opaque; 61868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 62868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 63c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void set_contents_fill_bounds_completely(bool fills) { 64c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch contents_fill_bounds_completely_ = fills; 65c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch } 66c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 670f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) void set_clear_canvas_with_debug_color(bool clear) { 680f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) clear_canvas_with_debug_color_ = clear; 690f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) } 700f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) protected: 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FakePicturePileImpl(); 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~FakePicturePileImpl(); 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FakeContentLayerClient client_; 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SkPaint default_paint_; 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace cc 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // CC_TEST_FAKE_PICTURE_PILE_IMPL_H_ 82