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

Unified Diff: cc/surfaces/surface.h

Issue 706203003: Update from https://crrev.com/303153 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « cc/resources/zero_copy_raster_worker_pool.cc ('k') | cc/surfaces/surface.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/surface.h
diff --git a/cc/surfaces/surface.h b/cc/surfaces/surface.h
index ffa50420c083b8ed2e984b8b74e9236b4cdae0d7..7b3fbc125b29f7850cffe78ea620122dad4c2200 100644
--- a/cc/surfaces/surface.h
+++ b/cc/surfaces/surface.h
@@ -17,6 +17,7 @@
#include "cc/output/copy_output_request.h"
#include "cc/quads/render_pass_id.h"
#include "cc/surfaces/surface_id.h"
+#include "cc/surfaces/surface_sequence.h"
#include "cc/surfaces/surfaces_export.h"
#include "ui/gfx/geometry/size.h"
@@ -57,6 +58,18 @@ class CC_SURFACES_EXPORT Surface {
base::WeakPtr<SurfaceFactory> factory() { return factory_; }
+ // Add a SurfaceSequence that must be satisfied before the Surface is
+ // destroyed.
+ void AddDestructionDependency(SurfaceSequence sequence);
+
+ // Satisfy all destruction dependencies that are contained in sequences, and
+ // remove them from sequences.
+ void SatisfyDestructionDependencies(
+ base::hash_set<SurfaceSequence>* sequences);
+ size_t GetDestructionDependencyCount() const {
+ return destruction_dependencies_.size();
+ }
+
private:
void ClearCopyRequests();
@@ -66,6 +79,7 @@ class CC_SURFACES_EXPORT Surface {
// TODO(jamesr): Support multiple frames in flight.
scoped_ptr<CompositorFrame> current_frame_;
int frame_index_;
+ std::vector<SurfaceSequence> destruction_dependencies_;
base::Closure draw_callback_;
« no previous file with comments | « cc/resources/zero_copy_raster_worker_pool.cc ('k') | cc/surfaces/surface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698