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

Unified Diff: services/ui/surfaces/display_compositor.cc

Issue 2470143006: Remove dependency on SurfaceManager in FrameGenerator (Closed)
Patch Set: Remove a couple of bad std::moves Created 4 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 | « services/ui/surfaces/display_compositor.h ('k') | services/ui/ws/display_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/surfaces/display_compositor.cc
diff --git a/services/ui/surfaces/display_compositor.cc b/services/ui/surfaces/display_compositor.cc
index 7aa4eaa0fc4c4d182e6d7f58d8a1645e2b320df7..f8126c0e681c3edbb2958125bf80a217a0bff3bc 100644
--- a/services/ui/surfaces/display_compositor.cc
+++ b/services/ui/surfaces/display_compositor.cc
@@ -4,6 +4,8 @@
#include "services/ui/surfaces/display_compositor.h"
+#include "cc/surfaces/surface.h"
+
namespace ui {
DisplayCompositor::DisplayCompositor(
@@ -12,11 +14,23 @@ DisplayCompositor::DisplayCompositor(
manager_.AddObserver(this);
}
-void DisplayCompositor::ReturnSurfaceReference(
- const cc::SurfaceSequence& sequence) {
- std::vector<uint32_t> sequences;
- sequences.push_back(sequence.sequence);
- manager_.DidSatisfySequences(sequence.frame_sink_id, &sequences);
+void DisplayCompositor::AddSurfaceReference(
+ const cc::SurfaceId& surface_id,
+ const cc::SurfaceSequence& surface_sequence) {
+ cc::Surface* surface = manager_.GetSurfaceForId(surface_id);
+ if (!surface) {
+ LOG(ERROR) << "Attempting to add dependency to nonexistent surface "
+ << surface_id.ToString();
+ return;
+ }
+ surface->AddDestructionDependency(surface_sequence);
+}
+
+void DisplayCompositor::ReturnSurfaceReferences(
+ const cc::FrameSinkId& frame_sink_id,
+ const std::vector<uint32_t>& sequences) {
+ std::vector<uint32_t> sequences_copy(sequences);
+ manager_.DidSatisfySequences(frame_sink_id, &sequences_copy);
}
DisplayCompositor::~DisplayCompositor() {
« no previous file with comments | « services/ui/surfaces/display_compositor.h ('k') | services/ui/ws/display_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698