| Index: components/mus/surfaces/display_compositor.cc
|
| diff --git a/components/mus/surfaces/display_compositor.cc b/components/mus/surfaces/display_compositor.cc
|
| index 113ac6dcda4114a395dbda6fbddce5aca7193890..79e052305c3b3ea96e4c7d4e92bf80c7eda307b5 100644
|
| --- a/components/mus/surfaces/display_compositor.cc
|
| +++ b/components/mus/surfaces/display_compositor.cc
|
| @@ -10,7 +10,6 @@
|
| #include "cc/surfaces/display.h"
|
| #include "components/mus/surfaces/direct_output_surface.h"
|
| #include "components/mus/surfaces/surfaces_context_provider.h"
|
| -#include "components/mus/surfaces/top_level_display_client.h"
|
|
|
| #if defined(USE_OZONE)
|
| #include "components/mus/surfaces/direct_output_surface_ozone.h"
|
| @@ -37,29 +36,32 @@ DisplayCompositor::DisplayCompositor(
|
| // TODO(rjkroege): If there is something better to do than CHECK, add it.
|
| CHECK(surfaces_context_provider->BindToCurrentThread());
|
|
|
| - std::unique_ptr<cc::OutputSurface> output_surface;
|
| + std::unique_ptr<cc::OutputSurface> display_output_surface;
|
| if (surfaces_context_provider->ContextCapabilities().surfaceless) {
|
| #if defined(USE_OZONE)
|
| - output_surface = base::WrapUnique(new DirectOutputSurfaceOzone(
|
| + display_output_surface = base::WrapUnique(new DirectOutputSurfaceOzone(
|
| surfaces_context_provider, widget, task_runner_.get(), GL_TEXTURE_2D,
|
| GL_RGB));
|
| #else
|
| NOTREACHED();
|
| #endif
|
| } else {
|
| - output_surface = base::WrapUnique(
|
| + display_output_surface = base::WrapUnique(
|
| new DirectOutputSurface(surfaces_context_provider, task_runner_.get()));
|
| }
|
|
|
| - int max_frames_pending = output_surface->capabilities().max_frames_pending;
|
| + int max_frames_pending =
|
| + display_output_surface->capabilities().max_frames_pending;
|
| DCHECK_GT(max_frames_pending, 0);
|
|
|
| - display_client_.reset(new TopLevelDisplayClient(
|
| - std::move(output_surface), surfaces_state_->manager(),
|
| - nullptr /* bitmap_manager */, nullptr /* gpu_memory_buffer_manager */,
|
| - cc::RendererSettings(), task_runner_, allocator_.id_namespace()));
|
| + display_.reset(
|
| + new cc::Display(surfaces_state_->manager(), nullptr /* bitmap_manager */,
|
| + nullptr /* gpu_memory_buffer_manager */,
|
| + cc::RendererSettings(), allocator_.id_namespace(),
|
| + task_runner_.get(), std::move(display_output_surface)));
|
|
|
| - display_client_->Initialize();
|
| + bool init = display_->Initialize(this);
|
| + DCHECK(init); // The context provider was already bound above.
|
| }
|
|
|
| DisplayCompositor::~DisplayCompositor() {
|
| @@ -78,10 +80,9 @@ void DisplayCompositor::SubmitCompositorFrame(
|
| surface_id_ = allocator_.GenerateId();
|
| factory_.Create(surface_id_);
|
| display_size_ = frame_size;
|
| - display_client_->display()->Resize(display_size_);
|
| + display_->Resize(display_size_);
|
| }
|
| - display_client_->display()->SetSurfaceId(surface_id_,
|
| - frame->metadata.device_scale_factor);
|
| + display_->SetSurfaceId(surface_id_, frame->metadata.device_scale_factor);
|
| factory_.SubmitCompositorFrame(surface_id_, std::move(frame), callback);
|
| }
|
|
|
| @@ -100,4 +101,13 @@ void DisplayCompositor::SetBeginFrameSource(
|
| // TODO(fsamuel): Implement this.
|
| }
|
|
|
| +void DisplayCompositor::DisplayOutputSurfaceLost() {
|
| + // TODO(fsamuel): This looks like it would crash if a frame was in flight and
|
| + // will be submitted.
|
| + display_.reset();
|
| +}
|
| +
|
| +void DisplayCompositor::DisplaySetMemoryPolicy(
|
| + const cc::ManagedMemoryPolicy& policy) {}
|
| +
|
| } // namespace mus
|
|
|