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

Side by Side Diff: cc/output/overlay_processor.h

Issue 2881483002: Always set damage rect to output rect if 3D context was reshaped. (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_OUTPUT_OVERLAY_PROCESSOR_H_ 5 #ifndef CC_OUTPUT_OVERLAY_PROCESSOR_H_
6 #define CC_OUTPUT_OVERLAY_PROCESSOR_H_ 6 #define CC_OUTPUT_OVERLAY_PROCESSOR_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/containers/flat_map.h" 10 #include "base/containers/flat_map.h"
(...skipping 29 matching lines...) Expand all
40 // Virtual to allow testing different strategies. 40 // Virtual to allow testing different strategies.
41 virtual void Initialize(); 41 virtual void Initialize();
42 42
43 gfx::Rect GetAndResetOverlayDamage(); 43 gfx::Rect GetAndResetOverlayDamage();
44 44
45 // Attempt to replace quads from the specified root render pass with overlays 45 // Attempt to replace quads from the specified root render pass with overlays
46 // or CALayers. This must be called every frame. 46 // or CALayers. This must be called every frame.
47 void ProcessForOverlays( 47 void ProcessForOverlays(
48 ResourceProvider* resource_provider, 48 ResourceProvider* resource_provider,
49 RenderPass* root_render_pass, 49 RenderPass* root_render_pass,
50 bool was_reshaped,
50 const base::flat_map<int, FilterOperations*>& render_pass_filters, 51 const base::flat_map<int, FilterOperations*>& render_pass_filters,
51 const base::flat_map<int, FilterOperations*>& 52 const base::flat_map<int, FilterOperations*>&
52 render_pass_background_filters, 53 render_pass_background_filters,
53 OverlayCandidateList* overlay_candidates, 54 OverlayCandidateList* overlay_candidates,
54 CALayerOverlayList* ca_layer_overlays, 55 CALayerOverlayList* ca_layer_overlays,
55 DCLayerOverlayList* dc_layer_overlays, 56 DCLayerOverlayList* dc_layer_overlays,
56 gfx::Rect* damage_rect, 57 gfx::Rect* damage_rect,
57 std::vector<gfx::Rect>* content_bounds); 58 std::vector<gfx::Rect>* content_bounds);
58 59
59 protected: 60 protected:
60 StrategyList strategies_; 61 StrategyList strategies_;
61 OutputSurface* surface_; 62 OutputSurface* surface_;
62 gfx::Rect overlay_damage_rect_; 63 gfx::Rect overlay_damage_rect_;
63 gfx::Rect previous_frame_underlay_rect_; 64 gfx::Rect previous_frame_underlay_rect_;
64 65
65 private: 66 private:
66 bool ProcessForCALayers( 67 bool ProcessForCALayers(
67 ResourceProvider* resource_provider, 68 ResourceProvider* resource_provider,
68 RenderPass* render_pass, 69 RenderPass* render_pass,
69 const base::flat_map<int, FilterOperations*>& render_pass_filters, 70 const base::flat_map<int, FilterOperations*>& render_pass_filters,
70 const base::flat_map<int, FilterOperations*>& 71 const base::flat_map<int, FilterOperations*>&
71 render_pass_background_filters, 72 render_pass_background_filters,
72 OverlayCandidateList* overlay_candidates, 73 OverlayCandidateList* overlay_candidates,
73 CALayerOverlayList* ca_layer_overlays, 74 CALayerOverlayList* ca_layer_overlays,
74 gfx::Rect* damage_rect); 75 gfx::Rect* damage_rect);
75 bool ProcessForDCLayers( 76 bool ProcessForDCLayers(
76 ResourceProvider* resource_provider, 77 ResourceProvider* resource_provider,
77 RenderPass* render_pass, 78 RenderPass* render_pass,
79 bool was_reshaped,
78 const base::flat_map<int, FilterOperations*>& render_pass_filters, 80 const base::flat_map<int, FilterOperations*>& render_pass_filters,
79 const base::flat_map<int, FilterOperations*>& 81 const base::flat_map<int, FilterOperations*>&
80 render_pass_background_filters, 82 render_pass_background_filters,
81 OverlayCandidateList* overlay_candidates, 83 OverlayCandidateList* overlay_candidates,
82 DCLayerOverlayList* dc_layer_overlays, 84 DCLayerOverlayList* dc_layer_overlays,
83 gfx::Rect* damage_rect); 85 gfx::Rect* damage_rect);
84 // Update |damage_rect| by removing damage casued by |candidates|. 86 // Update |damage_rect| by removing damage casued by |candidates|.
85 void UpdateDamageRect(OverlayCandidateList* candidates, 87 void UpdateDamageRect(OverlayCandidateList* candidates,
86 const gfx::Rect& previous_frame_underlay_rect, 88 const gfx::Rect& previous_frame_underlay_rect,
87 gfx::Rect* damage_rect); 89 gfx::Rect* damage_rect);
88 90
89 DCLayerOverlayProcessor dc_processor_; 91 DCLayerOverlayProcessor dc_processor_;
90 92
91 DISALLOW_COPY_AND_ASSIGN(OverlayProcessor); 93 DISALLOW_COPY_AND_ASSIGN(OverlayProcessor);
92 }; 94 };
93 95
94 } // namespace cc 96 } // namespace cc
95 97
96 #endif // CC_OUTPUT_OVERLAY_PROCESSOR_H_ 98 #endif // CC_OUTPUT_OVERLAY_PROCESSOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698