Index: components/view_manager/view_manager_app.h |
diff --git a/components/view_manager/view_manager_app.h b/components/view_manager/view_manager_app.h |
index 672b1e6a9275bce784b0b6094249c80a5d44e309..dbe5cef209ddc2aeb71158e0874acd59441ebf29 100644 |
--- a/components/view_manager/view_manager_app.h |
+++ b/components/view_manager/view_manager_app.h |
@@ -6,10 +6,14 @@ |
#define COMPONENTS_VIEW_MANAGER_VIEW_MANAGER_APP_H_ |
#include "base/memory/scoped_ptr.h" |
+#include "cc/surfaces/surface_manager.h" |
#include "components/view_manager/connection_manager_delegate.h" |
#include "components/view_manager/gles2/gpu_impl.h" |
+#include "components/view_manager/public/interfaces/surfaces.mojom.h" |
#include "components/view_manager/public/interfaces/view_manager.mojom.h" |
#include "components/view_manager/public/interfaces/view_manager_root.mojom.h" |
+#include "components/view_manager/surfaces/surfaces_delegate.h" |
+#include "components/view_manager/surfaces/surfaces_state.h" |
#include "mojo/application/public/cpp/app_lifetime_helper.h" |
#include "mojo/application/public/cpp/application_delegate.h" |
#include "mojo/application/public/cpp/interface_factory.h" |
@@ -19,6 +23,12 @@ namespace mojo { |
class ApplicationImpl; |
} |
+namespace surfaces { |
+class DisplayImpl; |
+class SurfacesImpl; |
+class SurfacesScheduler; |
+} |
+ |
namespace ui { |
class PlatformEventSource; |
} |
@@ -29,8 +39,10 @@ class ConnectionManager; |
class ViewManagerApp : public mojo::ApplicationDelegate, |
public ConnectionManagerDelegate, |
+ public mojo::InterfaceFactory<mojo::Surface>, |
public mojo::InterfaceFactory<mojo::ViewManagerRoot>, |
- public mojo::InterfaceFactory<mojo::Gpu> { |
+ public mojo::InterfaceFactory<mojo::Gpu>, |
+ public surfaces::SurfacesDelegate { |
public: |
ViewManagerApp(); |
~ViewManagerApp() override; |
@@ -64,6 +76,14 @@ class ViewManagerApp : public mojo::ApplicationDelegate, |
void Create(mojo::ApplicationConnection* connection, |
mojo::InterfaceRequest<mojo::Gpu> request) override; |
+ // InterfaceFactory<Surface> implementation. |
+ void Create(mojo::ApplicationConnection* connection, |
+ mojo::InterfaceRequest<mojo::Surface> request) override; |
+ |
+ // SurfacesDelegat implementation. |
+ void OnSurfaceConnectionClosed(surfaces::SurfacesImpl* surface) override; |
+ |
+ // ViewManager |
mojo::ApplicationImpl* app_impl_; |
scoped_ptr<ConnectionManager> connection_manager_; |
mojo::TracingImpl tracing_; |
@@ -71,6 +91,10 @@ class ViewManagerApp : public mojo::ApplicationDelegate, |
scoped_ptr<ui::PlatformEventSource> event_source_; |
bool is_headless_; |
+ // Surfaces |
+ std::set<surfaces::SurfacesImpl*> surfaces_; |
+ scoped_refptr<surfaces::SurfacesState> surfaces_state_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ViewManagerApp); |
}; |