| Index: services/native_viewport/viewport_surface.cc
|
| diff --git a/services/native_viewport/viewport_surface.cc b/services/native_viewport/viewport_surface.cc
|
| index 56149e0c37f9935ac3ce6b365c197c2d4d236065..60f91a1ce95aa0d434377b019e62ea870d8cfcf9 100644
|
| --- a/services/native_viewport/viewport_surface.cc
|
| +++ b/services/native_viewport/viewport_surface.cc
|
| @@ -5,7 +5,6 @@
|
| #include "services/native_viewport/viewport_surface.h"
|
|
|
| #include "base/bind.h"
|
| -#include "cc/surfaces/surface_id_allocator.h"
|
| #include "mojo/converters/geometry/geometry_type_converters.h"
|
| #include "mojo/converters/surfaces/surfaces_type_converters.h"
|
| #include "mojo/services/surfaces/public/cpp/surfaces_utils.h"
|
| @@ -14,20 +13,21 @@
|
| using mojo::Size;
|
| using mojo::SurfaceId;
|
|
|
| +static uint32_t kGLES2BoundSurfaceLocalId = 1u;
|
| +
|
| namespace native_viewport {
|
|
|
| -ViewportSurface::ViewportSurface(mojo::SurfacesService* surfaces_service,
|
| +ViewportSurface::ViewportSurface(mojo::SurfacePtr surface,
|
| mojo::Gpu* gpu_service,
|
| const gfx::Size& size,
|
| cc::SurfaceId child_id)
|
| - : gpu_service_(gpu_service),
|
| + : surface_(surface.Pass()),
|
| + gpu_service_(gpu_service),
|
| widget_id_(0u),
|
| size_(size),
|
| child_id_(child_id),
|
| weak_factory_(this) {
|
| - surfaces_service->CreateSurfaceConnection(
|
| - base::Bind(&ViewportSurface::OnSurfaceConnectionCreated,
|
| - weak_factory_.GetWeakPtr()));
|
| + surface_.set_client(this);
|
| }
|
|
|
| ViewportSurface::~ViewportSurface() {
|
| @@ -35,8 +35,7 @@ ViewportSurface::~ViewportSurface() {
|
|
|
| void ViewportSurface::SetWidgetId(uint64_t widget_id) {
|
| widget_id_ = widget_id;
|
| - if (id_allocator_)
|
| - BindSurfaceToNativeViewport();
|
| + BindSurfaceToNativeViewport();
|
| }
|
|
|
| void ViewportSurface::SetSize(const gfx::Size& size) {
|
| @@ -44,10 +43,10 @@ void ViewportSurface::SetSize(const gfx::Size& size) {
|
| return;
|
|
|
| size_ = size;
|
| - if (id_.is_null())
|
| + if (!gles2_bound_surface_created_)
|
| return;
|
|
|
| - surface_->DestroySurface(SurfaceId::From(id_));
|
| + surface_->DestroySurface(kGLES2BoundSurfaceLocalId);
|
| if (widget_id_)
|
| BindSurfaceToNativeViewport();
|
| }
|
| @@ -57,15 +56,6 @@ void ViewportSurface::SetChildId(cc::SurfaceId child_id) {
|
| SubmitFrame();
|
| }
|
|
|
| -void ViewportSurface::OnSurfaceConnectionCreated(mojo::SurfacePtr surface,
|
| - uint32_t id_namespace) {
|
| - surface_ = surface.Pass();
|
| - surface_.set_client(this);
|
| - id_allocator_.reset(new cc::SurfaceIdAllocator(id_namespace));
|
| - if (widget_id_ != 0u)
|
| - BindSurfaceToNativeViewport();
|
| -}
|
| -
|
| void ViewportSurface::BindSurfaceToNativeViewport() {
|
| mojo::ViewportParameterListenerPtr listener;
|
| auto listener_request = GetProxy(&listener);
|
| @@ -74,15 +64,16 @@ void ViewportSurface::BindSurfaceToNativeViewport() {
|
| GetProxy(&command_buffer),
|
| listener.Pass());
|
|
|
| - id_ = id_allocator_->GenerateId();
|
| - surface_->CreateGLES2BoundSurface(command_buffer.Pass(), SurfaceId::From(id_),
|
| + gles2_bound_surface_created_ = true;
|
| + surface_->CreateGLES2BoundSurface(command_buffer.Pass(),
|
| + kGLES2BoundSurfaceLocalId,
|
| Size::From(size_), listener_request.Pass());
|
|
|
| SubmitFrame();
|
| }
|
|
|
| void ViewportSurface::SubmitFrame() {
|
| - if (child_id_.is_null() || id_.is_null())
|
| + if (child_id_.is_null() || !gles2_bound_surface_created_)
|
| return;
|
|
|
| auto surface_quad_state = mojo::SurfaceQuadState::New();
|
| @@ -108,10 +99,13 @@ void ViewportSurface::SubmitFrame() {
|
| auto frame = mojo::Frame::New();
|
| frame->passes.push_back(pass.Pass());
|
| frame->resources.resize(0u);
|
| - surface_->SubmitFrame(SurfaceId::From(id_), frame.Pass(), mojo::Closure());
|
| + surface_->SubmitFrame(kGLES2BoundSurfaceLocalId, frame.Pass(),
|
| + mojo::Closure());
|
| }
|
|
|
| void ViewportSurface::SetIdNamespace(uint32_t id_namespace) {
|
| + // We never pass our surface ID to anyone else, so we never need to generate a
|
| + // fully qualified id and thus don't care about our namespace.
|
| }
|
|
|
| void ViewportSurface::ReturnResources(
|
|
|