Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3463)

Unified Diff: cc/playback/recording_source.h

Issue 2141233002: cc: Clean up RecordingSource API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove recoding_source_ from PictureLayer, and move all its internal state to PictureLayer Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/playback/recording_source.h
diff --git a/cc/playback/recording_source.h b/cc/playback/recording_source.h
index 36d0511d358ab2662128f4768900e722e9170d83..b917aaae54a10d3d7d8e48bfe3cedcfe3193846e 100644
--- a/cc/playback/recording_source.h
+++ b/cc/playback/recording_source.h
@@ -17,11 +17,17 @@
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
-namespace cc {
+namespace {
-namespace proto {
-class RecordingSource;
-} // namespace proto
+#ifdef NDEBUG
+const bool kDefaultClearCanvasSetting = false;
+#else
+const bool kDefaultClearCanvasSetting = true;
+#endif
+
+} // namespace
+
+namespace cc {
class ClientPictureCache;
class ContentLayerClient;
@@ -29,6 +35,47 @@ class DisplayItemList;
class RasterSource;
class Region;
+struct PictureLayerData {
+ PictureLayerData();
+ ~PictureLayerData();
+
+ gfx::Size size;
+ int slow_down_raster_scale_factor_for_debug = 0;
+ bool generate_discardable_images_metadata = false;
+ bool requires_clear = false;
+ bool is_solid_color = false;
+ bool clear_canvas_with_debug_color = kDefaultClearCanvasSetting;
+ SkColor solid_color = SK_ColorTRANSPARENT;
+ SkColor background_color = SK_ColorTRANSPARENT;
+
+ void reset() {
+ slow_down_raster_scale_factor_for_debug = 0;
+ generate_discardable_images_metadata = false;
+ requires_clear = false;
+ is_solid_color = false;
+ clear_canvas_with_debug_color = kDefaultClearCanvasSetting;
+ solid_color = SK_ColorTRANSPARENT;
+ background_color = SK_ColorTRANSPARENT;
+ }
+};
+
+// Encapsulates all data received from the ContentLayerClient.
+struct ContentLayerClientData {
+ ContentLayerClientData();
+ ContentLayerClientData(const ContentLayerClientData&);
+ ~ContentLayerClientData();
+
+ gfx::Rect recorded_viewport;
+ scoped_refptr<DisplayItemList> display_list;
+ size_t painter_reported_memory_usage = 0;
+
+ void reset() { painter_reported_memory_usage = 0; }
+};
+
+namespace proto {
+class RecordingSource;
+} // namespace proto
+
class CC_EXPORT RecordingSource {
public:
// TODO(schenney) Remove RECORD_WITH_SK_NULL_CANVAS when we no longer
@@ -43,40 +90,15 @@ class CC_EXPORT RecordingSource {
RECORDING_MODE_COUNT, // Must be the last entry.
};
- RecordingSource();
+ RecordingSource(const PictureLayerData& plp_data,
+ const ContentLayerClientData& clc_data);
virtual ~RecordingSource();
- void ToProtobuf(proto::RecordingSource* proto) const;
- void FromProtobuf(const proto::RecordingSource& proto,
- ClientPictureCache* client_picture_cache,
- std::vector<uint32_t>* used_engine_picture_ids);
-
- bool UpdateAndExpandInvalidation(ContentLayerClient* painter,
- Region* invalidation,
- const gfx::Size& layer_size,
- int frame_number,
- RecordingMode recording_mode);
- gfx::Size GetSize() const;
- void SetEmptyBounds();
- void SetSlowdownRasterScaleFactor(int factor);
- void SetGenerateDiscardableImagesMetadata(bool generate_metadata);
- void SetBackgroundColor(SkColor background_color);
- void SetRequiresClear(bool requires_clear);
-
- void SetNeedsDisplayRect(const gfx::Rect& layer_rect);
-
// These functions are virtual for testing.
virtual scoped_refptr<RasterSource> CreateRasterSource(
bool can_use_lcd_text) const;
- virtual bool IsSuitableForGpuRasterization() const;
-
- gfx::Rect recorded_viewport() const { return recorded_viewport_; }
-
- const DisplayItemList* GetDisplayItemList();
protected:
- void Clear();
-
gfx::Rect recorded_viewport_;
gfx::Size size_;
int slow_down_raster_scale_factor_for_debug_;
@@ -91,17 +113,8 @@ class CC_EXPORT RecordingSource {
size_t painter_reported_memory_usage_;
private:
- void UpdateInvalidationForNewViewport(const gfx::Rect& old_recorded_viewport,
- const gfx::Rect& new_recorded_viewport,
- Region* invalidation);
- void FinishDisplayItemListUpdate();
-
friend class RasterSource;
- void DetermineIfSolidColor();
-
- InvalidationRegion invalidation_;
-
DISALLOW_COPY_AND_ASSIGN(RecordingSource);
};

Powered by Google App Engine
This is Rietveld 408576698