| Index: mandoline/ui/aura/surface_binding.cc
|
| diff --git a/mandoline/ui/aura/surface_binding.cc b/mandoline/ui/aura/surface_binding.cc
|
| index 0307112933fceeb8ce58269451d00152e885bbbb..83533cefc36ca0c4535373707b2f1dde06c45ee2 100644
|
| --- a/mandoline/ui/aura/surface_binding.cc
|
| +++ b/mandoline/ui/aura/surface_binding.cc
|
| @@ -35,10 +35,7 @@ namespace {
|
| class OutputSurfaceImpl : public cc::OutputSurface {
|
| public:
|
| OutputSurfaceImpl(mojo::View* view,
|
| - const scoped_refptr<cc::ContextProvider>& context_provider,
|
| - mojo::Surface* surface,
|
| - uint32_t id_namespace,
|
| - uint32_t* next_local_id);
|
| + const scoped_refptr<cc::ContextProvider>& context_provider);
|
| ~OutputSurfaceImpl() override;
|
|
|
| // cc::OutputSurface:
|
| @@ -46,10 +43,7 @@ class OutputSurfaceImpl : public cc::OutputSurface {
|
|
|
| private:
|
| mojo::View* view_;
|
| - mojo::Surface* surface_;
|
| - uint32_t id_namespace_;
|
| - uint32_t* next_local_id_; // Owned by PerViewManagerState.
|
| - uint32_t local_id_;
|
| + mojo::CompositorFrameReceiverPtr receiver_;
|
| gfx::Size surface_size_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(OutputSurfaceImpl);
|
| @@ -57,41 +51,20 @@ class OutputSurfaceImpl : public cc::OutputSurface {
|
|
|
| OutputSurfaceImpl::OutputSurfaceImpl(
|
| mojo::View* view,
|
| - const scoped_refptr<cc::ContextProvider>& context_provider,
|
| - mojo::Surface* surface,
|
| - uint32_t id_namespace,
|
| - uint32_t* next_local_id)
|
| + const scoped_refptr<cc::ContextProvider>& context_provider)
|
| : cc::OutputSurface(context_provider),
|
| - view_(view),
|
| - surface_(surface),
|
| - id_namespace_(id_namespace),
|
| - next_local_id_(next_local_id),
|
| - local_id_(0u) {
|
| + view_(view) {
|
| capabilities_.delegated_rendering = true;
|
| capabilities_.max_frames_pending = 1;
|
| + view->RequestCompositorFrameReceiver(GetProxy(&receiver_));
|
| }
|
|
|
| OutputSurfaceImpl::~OutputSurfaceImpl() {
|
| }
|
|
|
| void OutputSurfaceImpl::SwapBuffers(cc::CompositorFrame* frame) {
|
| - gfx::Size frame_size =
|
| - frame->delegated_frame_data->render_pass_list.back()->output_rect.size();
|
| - if (frame_size != surface_size_) {
|
| - if (local_id_ != 0u)
|
| - surface_->DestroySurface(local_id_);
|
| - local_id_ = (*next_local_id_)++;
|
| - surface_->CreateSurface(local_id_);
|
| - auto qualified_id = mojo::SurfaceId::New();
|
| - qualified_id->local = local_id_;
|
| - qualified_id->id_namespace = id_namespace_;
|
| - view_->SetSurfaceId(qualified_id.Pass());
|
| - surface_size_ = frame_size;
|
| - }
|
| -
|
| - surface_->SubmitFrame(local_id_,
|
| - mojo::CompositorFrame::From(*frame),
|
| - mojo::Closure());
|
| + receiver_->SubmitFrame(mojo::CompositorFrame::From(*frame),
|
| + mojo::Closure());
|
|
|
| client_->DidSwapBuffers();
|
| client_->DidSwapBuffersComplete();
|
| @@ -177,8 +150,7 @@ SurfaceBinding::PerViewManagerState::CreateOutputSurface(mojo::View* view) {
|
| gpu_->CreateOffscreenGLES2Context(GetProxy(&cb));
|
| scoped_refptr<cc::ContextProvider> context_provider(
|
| new mojo::ContextProviderMojo(cb.PassInterface().PassHandle()));
|
| - return make_scoped_ptr(new OutputSurfaceImpl(
|
| - view, context_provider, surface_.get(), id_namespace_, &next_local_id_));
|
| + return make_scoped_ptr(new OutputSurfaceImpl(view, context_provider));
|
| }
|
|
|
| SurfaceBinding::PerViewManagerState::PerViewManagerState(
|
|
|