OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/surfaces/display_factory_impl.h" | 5 #include "components/surfaces/display_factory_impl.h" |
6 | 6 |
7 #include "cc/surfaces/surface_id.h" | 7 #include "cc/surfaces/surface_id.h" |
| 8 #include "components/surfaces/surfaces_service_application.h" |
8 | 9 |
9 namespace surfaces { | 10 namespace surfaces { |
10 | 11 |
11 DisplayFactoryImpl::DisplayFactoryImpl( | 12 DisplayFactoryImpl::DisplayFactoryImpl( |
| 13 SurfacesServiceApplication* application, |
12 cc::SurfaceManager* manager, | 14 cc::SurfaceManager* manager, |
13 uint32_t id_namespace, | 15 uint32_t id_namespace, |
14 SurfacesScheduler* scheduler, | 16 SurfacesScheduler* scheduler, |
15 mojo::InterfaceRequest<mojo::DisplayFactory> request) | 17 mojo::InterfaceRequest<mojo::DisplayFactory> request) |
16 : id_namespace_(id_namespace), | 18 : id_namespace_(id_namespace), |
17 next_local_id_(1u), | 19 next_local_id_(1u), |
| 20 application_(application), |
18 scheduler_(scheduler), | 21 scheduler_(scheduler), |
19 manager_(manager), | 22 manager_(manager), |
20 binding_(this, request.Pass()) { | 23 binding_(this, request.Pass()) { |
21 } | 24 } |
22 | 25 |
23 DisplayFactoryImpl::~DisplayFactoryImpl() { | 26 DisplayFactoryImpl::~DisplayFactoryImpl() { |
| 27 application_->DisplayFactoryDestroyed(this); |
24 } | 28 } |
25 | 29 |
26 void DisplayFactoryImpl::Create( | 30 void DisplayFactoryImpl::Create( |
27 mojo::ContextProviderPtr context_provider, | 31 mojo::ContextProviderPtr context_provider, |
28 mojo::ResourceReturnerPtr returner, | 32 mojo::ResourceReturnerPtr returner, |
29 mojo::InterfaceRequest<mojo::Display> display_request) { | 33 mojo::InterfaceRequest<mojo::Display> display_request) { |
30 cc::SurfaceId cc_id(static_cast<uint64_t>(id_namespace_) << 32 | | 34 cc::SurfaceId cc_id(static_cast<uint64_t>(id_namespace_) << 32 | |
31 next_local_id_++); | 35 next_local_id_++); |
32 new DisplayImpl(manager_, cc_id, scheduler_, context_provider.Pass(), | 36 new DisplayImpl(manager_, cc_id, scheduler_, context_provider.Pass(), |
33 returner.Pass(), display_request.Pass()); | 37 returner.Pass(), display_request.Pass()); |
34 } | 38 } |
35 | 39 |
36 } // namespace surfaces | 40 } // namespace surfaces |
OLD | NEW |