OLD | NEW |
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_SURFACES_SURFACE_H_ | 5 #ifndef CC_SURFACES_SURFACE_H_ |
6 #define CC_SURFACES_SURFACE_H_ | 6 #define CC_SURFACES_SURFACE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 const DrawCallback& draw_callback, | 130 const DrawCallback& draw_callback, |
131 const WillDrawCallback& will_draw_callback); | 131 const WillDrawCallback& will_draw_callback); |
132 FrameData(FrameData&& other); | 132 FrameData(FrameData&& other); |
133 ~FrameData(); | 133 ~FrameData(); |
134 FrameData& operator=(FrameData&& other); | 134 FrameData& operator=(FrameData&& other); |
135 CompositorFrame frame; | 135 CompositorFrame frame; |
136 DrawCallback draw_callback; | 136 DrawCallback draw_callback; |
137 WillDrawCallback will_draw_callback; | 137 WillDrawCallback will_draw_callback; |
138 }; | 138 }; |
139 | 139 |
| 140 // Called to prevent additional CompositorFrames from being accepted into this |
| 141 // surface. Once a Surface is closed, it cannot accept CompositorFrames again. |
| 142 void Close(); |
| 143 |
140 void ActivatePendingFrame(); | 144 void ActivatePendingFrame(); |
141 // Called when all of the surface's dependencies have been resolved. | 145 // Called when all of the surface's dependencies have been resolved. |
142 void ActivateFrame(FrameData frame_data); | 146 void ActivateFrame(FrameData frame_data); |
143 void UpdateBlockingSurfaces(bool has_previous_pending_frame, | 147 void UpdateBlockingSurfaces(bool has_previous_pending_frame, |
144 const CompositorFrame& current_frame); | 148 const CompositorFrame& current_frame); |
145 | 149 |
146 void UnrefFrameResourcesAndRunDrawCallback( | 150 void UnrefFrameResourcesAndRunDrawCallback( |
147 base::Optional<FrameData> frame_data); | 151 base::Optional<FrameData> frame_data); |
148 void ClearCopyRequests(); | 152 void ClearCopyRequests(); |
149 | 153 |
150 void TakeLatencyInfoFromPendingFrame( | 154 void TakeLatencyInfoFromPendingFrame( |
151 std::vector<ui::LatencyInfo>* latency_info); | 155 std::vector<ui::LatencyInfo>* latency_info); |
152 static void TakeLatencyInfoFromFrame( | 156 static void TakeLatencyInfoFromFrame( |
153 CompositorFrame* frame, | 157 CompositorFrame* frame, |
154 std::vector<ui::LatencyInfo>* latency_info); | 158 std::vector<ui::LatencyInfo>* latency_info); |
155 | 159 |
156 SurfaceId surface_id_; | 160 const SurfaceId surface_id_; |
157 SurfaceId previous_frame_surface_id_; | 161 SurfaceId previous_frame_surface_id_; |
158 base::WeakPtr<SurfaceFactory> factory_; | 162 base::WeakPtr<SurfaceFactory> factory_; |
159 | 163 |
160 base::Optional<FrameData> pending_frame_data_; | 164 base::Optional<FrameData> pending_frame_data_; |
161 base::Optional<FrameData> active_frame_data_; | 165 base::Optional<FrameData> active_frame_data_; |
162 int frame_index_; | 166 int frame_index_; |
| 167 bool closed_ = false; |
163 bool destroyed_; | 168 bool destroyed_; |
164 std::vector<SurfaceSequence> destruction_dependencies_; | 169 std::vector<SurfaceSequence> destruction_dependencies_; |
165 | 170 |
166 base::flat_set<SurfaceId> blocking_surfaces_; | 171 base::flat_set<SurfaceId> blocking_surfaces_; |
167 base::ObserverList<PendingFrameObserver, true> observers_; | 172 base::ObserverList<PendingFrameObserver, true> observers_; |
168 | 173 |
169 DISALLOW_COPY_AND_ASSIGN(Surface); | 174 DISALLOW_COPY_AND_ASSIGN(Surface); |
170 }; | 175 }; |
171 | 176 |
172 } // namespace cc | 177 } // namespace cc |
173 | 178 |
174 #endif // CC_SURFACES_SURFACE_H_ | 179 #endif // CC_SURFACES_SURFACE_H_ |
OLD | NEW |