blob: cee2ca24057eadffb69fda6990db017fab134c27 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/surfaces/display_factory_impl.h"
#include "cc/surfaces/surface_id.h"
namespace surfaces {
DisplayFactoryImpl::DisplayFactoryImpl(
cc::SurfaceManager* manager,
uint32_t id_namespace,
SurfacesScheduler* scheduler,
mojo::InterfaceRequest<mojo::DisplayFactory> request)
: id_namespace_(id_namespace),
next_local_id_(1u),
scheduler_(scheduler),
manager_(manager),
binding_(this, request.Pass()) {
}
DisplayFactoryImpl::~DisplayFactoryImpl() {
}
void DisplayFactoryImpl::Create(
mojo::ContextProviderPtr context_provider,
mojo::ResourceReturnerPtr returner,
mojo::InterfaceRequest<mojo::Display> display_request) {
cc::SurfaceId cc_id(static_cast<uint64_t>(id_namespace_) << 32 |
next_local_id_++);
new DisplayImpl(manager_, cc_id, scheduler_, context_provider.Pass(),
returner.Pass(), display_request.Pass());
}
} // namespace surfaces