| Index: cc/surfaces/display.cc
|
| diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
|
| index e3693207031f15a0056d3d9600f33b45476f3d10..198fe3024fc9b921ae591df93e6122d60b1567c7 100644
|
| --- a/cc/surfaces/display.cc
|
| +++ b/cc/surfaces/display.cc
|
| @@ -61,6 +61,7 @@ Display::Display(SharedBitmapManager* bitmap_manager,
|
| Display::~Display() {
|
| // Only do this if Initialize() happened.
|
| if (client_) {
|
| + scheduler_->SetSurfaceManager(nullptr);
|
| if (auto* context = output_surface_->context_provider())
|
| context->SetLostContextCallback(base::Closure());
|
| if (begin_frame_source_)
|
| @@ -95,6 +96,9 @@ void Display::Initialize(DisplayClient* client,
|
| output_surface_->BindToClient(this);
|
| InitializeRenderer();
|
|
|
| + if (scheduler_)
|
| + scheduler_->SetSurfaceManager(surface_manager_);
|
| +
|
| if (auto* context = output_surface_->context_provider()) {
|
| // This depends on assumptions that Display::Initialize will happen
|
| // on the same callstack as the ContextProvider being created/initialized
|
| @@ -368,6 +372,12 @@ bool Display::DrawAndSwap() {
|
| return true;
|
| }
|
|
|
| +const SurfaceAggregator::SurfaceIndexMap&
|
| +Display::GetPreviousContainedSurfaces() {
|
| + DCHECK(aggregator_);
|
| + return aggregator_->previous_contained_surfaces();
|
| +}
|
| +
|
| void Display::DidReceiveSwapBuffersAck() {
|
| if (scheduler_)
|
| scheduler_->DidReceiveSwapBuffersAck();
|
| @@ -410,7 +420,26 @@ void Display::OnSurfaceDamaged(const SurfaceId& surface_id, bool* changed) {
|
| UpdateRootSurfaceResourcesLocked();
|
| }
|
|
|
| -void Display::OnSurfaceCreated(const SurfaceInfo& surface_info) {}
|
| +void Display::OnSurfaceCreated(const SurfaceInfo& surface_info) {
|
| + if (scheduler_)
|
| + scheduler_->SurfaceCreated(surface_info);
|
| +}
|
| +
|
| +void Display::OnSurfaceDestroyed(const SurfaceId& surface_id) {
|
| + if (scheduler_)
|
| + scheduler_->SurfaceDestroyed(surface_id);
|
| +}
|
| +
|
| +void Display::OnSurfaceReceivedBeginFrame(const SurfaceId& surface_id,
|
| + const BeginFrameArgs& args) {
|
| + if (scheduler_)
|
| + scheduler_->SurfaceReceivedBeginFrame(surface_id, args);
|
| +}
|
| +void Display::OnSurfaceFinishedBeginFrame(const SurfaceId& surface_id,
|
| + const BeginFrameAck& ack) {
|
| + if (scheduler_)
|
| + scheduler_->SurfaceFinishedBeginFrame(surface_id, ack);
|
| +}
|
|
|
| const SurfaceId& Display::CurrentSurfaceId() {
|
| return current_surface_id_;
|
|
|