picture_pile.h revision 010d83a9304c5a91596085d917d248abff47903a
1// Copyright 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CC_RESOURCES_PICTURE_PILE_H_ 6#define CC_RESOURCES_PICTURE_PILE_H_ 7 8#include "cc/resources/picture_pile_base.h" 9#include "ui/gfx/rect.h" 10 11namespace cc { 12class PicturePileImpl; 13class Region; 14class RenderingStatsInstrumentation; 15 16class CC_EXPORT PicturePile : public PicturePileBase { 17 public: 18 PicturePile(); 19 20 // Re-record parts of the picture that are invalid. 21 // Invalidations are in layer space. 22 // Return true iff the pile was modified. 23 bool Update(ContentLayerClient* painter, 24 SkColor background_color, 25 bool contents_opaque, 26 bool contents_fill_bounds_completely, 27 const Region& invalidation, 28 const gfx::Rect& visible_layer_rect, 29 int frame_number, 30 Picture::RecordingMode recording_mode, 31 RenderingStatsInstrumentation* stats_instrumentation); 32 33 void set_slow_down_raster_scale_factor(int factor) { 34 slow_down_raster_scale_factor_for_debug_ = factor; 35 } 36 37 void set_show_debug_picture_borders(bool show) { 38 show_debug_picture_borders_ = show; 39 } 40 41 bool is_suitable_for_gpu_rasterization() const { 42 return is_suitable_for_gpu_rasterization_; 43 } 44 void SetUnsuitableForGpuRasterizationForTesting() { 45 is_suitable_for_gpu_rasterization_ = false; 46 } 47 48 protected: 49 virtual ~PicturePile(); 50 51 private: 52 friend class PicturePileImpl; 53 54 bool is_suitable_for_gpu_rasterization_; 55 56 DISALLOW_COPY_AND_ASSIGN(PicturePile); 57}; 58 59} // namespace cc 60 61#endif // CC_RESOURCES_PICTURE_PILE_H_ 62