| 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() {
|
|
|