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

Unified Diff: cc/surfaces/surface_aggregator.h

Issue 2873593002: Force use of and cache render surface. (Closed)
Patch Set: Fix for comments in patch 4. Created 3 years, 6 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/surfaces/surface_aggregator.h
diff --git a/cc/surfaces/surface_aggregator.h b/cc/surfaces/surface_aggregator.h
index 015e5f45e8855b1ef85dac9e66dbfca95baa1f49..442ab1c7caefb94d0ef0240388ec1ba4b23d6283 100644
--- a/cc/surfaces/surface_aggregator.h
+++ b/cc/surfaces/surface_aggregator.h
@@ -131,7 +131,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// child surfaces.
void ProcessAddedAndRemovedSurfaces();
- void PropagateCopyRequestPasses();
+ void PropagatePasses(base::flat_set<RenderPassId>* passes);
int ChildIdForSurface(Surface* surface);
gfx::Rect DamageRectForSurface(const Surface* surface,
@@ -181,6 +181,8 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// This is the pass list for the aggregated frame.
RenderPassList* dest_pass_list_;
+ // This maps pass id to itself.
+ base::flat_map<RenderPassId, RenderPass*> passes_id_map;
// This is the set of aggregated pass ids that are affected by filters that
// move pixels.
@@ -190,6 +192,11 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// should not have their damage rects clipped to the root damage rect.
base::flat_set<RenderPassId> copy_request_passes_;
+ // This is the set of aggregated pass ids that are drawn by force render
+ // surface, so should not have their damage rects clipped to the root damage
+ // rect.
+ base::flat_set<RenderPassId> cache_render_surface_passes_;
+
// This maps each aggregated pass id to the set of (aggregated) pass ids
// that its RenderPassDrawQuads depend on
base::flat_map<RenderPassId, base::flat_set<RenderPassId>>
@@ -202,6 +209,10 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// This is valid during Aggregate after PrewalkTree is called.
bool has_copy_requests_;
+ // True if the frame that's currently being aggregated has force render
+ // surface. This is valid during Aggregate after PrewalkTree is called.
+ bool has_cache_render_surfaces_;
+
// Tracks UMA stats for SurfaceDrawQuads during a call to Aggregate().
SurfaceDrawQuadUmaStats uma_stats_;

Powered by Google App Engine
This is Rietveld 408576698