Index: mojo/shell/context.cc |
diff --git a/mojo/shell/context.cc b/mojo/shell/context.cc |
index a6585e2d701bed1f2cbc7d0c4f0f6879dd0a0fdc..19e97c5a09afd57d45070f99a724e893119fbc72 100644 |
--- a/mojo/shell/context.cc |
+++ b/mojo/shell/context.cc |
@@ -11,6 +11,7 @@ |
#include "base/memory/scoped_vector.h" |
#include "base/strings/string_split.h" |
#include "build/build_config.h" |
+#include "gpu/command_buffer/service/mailbox_manager.h" |
#include "mojo/application_manager/application_loader.h" |
#include "mojo/application_manager/application_manager.h" |
#include "mojo/application_manager/background_shell_application_loader.h" |
@@ -18,6 +19,7 @@ |
#include "mojo/public/cpp/application/application_connection.h" |
#include "mojo/public/cpp/application/application_delegate.h" |
#include "mojo/public/cpp/application/application_impl.h" |
+#include "mojo/services/native_viewport/gpu_impl.h" |
#include "mojo/services/native_viewport/native_viewport_impl.h" |
#include "mojo/shell/dynamic_application_loader.h" |
#include "mojo/shell/in_process_dynamic_service_runner.h" |
@@ -25,6 +27,7 @@ |
#include "mojo/shell/switches.h" |
#include "mojo/shell/ui_application_loader_android.h" |
#include "mojo/spy/spy.h" |
+#include "ui/gl/gl_share_group.h" |
#if defined(OS_LINUX) |
#include "mojo/shell/dbus_application_loader_linux.h" |
@@ -95,9 +98,12 @@ void InitContentHandlers(DynamicApplicationLoader* loader, |
class Context::NativeViewportApplicationLoader |
: public ApplicationLoader, |
public ApplicationDelegate, |
- public InterfaceFactory<NativeViewport> { |
+ public InterfaceFactory<NativeViewport>, |
+ public InterfaceFactory<Gpu> { |
public: |
- NativeViewportApplicationLoader() {} |
+ NativeViewportApplicationLoader() |
+ : share_group_(new gfx::GLShareGroup), |
+ mailbox_manager_(new gpu::gles2::MailboxManager) {} |
virtual ~NativeViewportApplicationLoader() {} |
private: |
@@ -116,7 +122,8 @@ class Context::NativeViewportApplicationLoader |
// ApplicationDelegate implementation. |
virtual bool ConfigureIncomingConnection( |
mojo::ApplicationConnection* connection) OVERRIDE { |
- connection->AddService(this); |
+ connection->AddService<NativeViewport>(this); |
+ connection->AddService<Gpu>(this); |
return true; |
} |
@@ -126,6 +133,15 @@ class Context::NativeViewportApplicationLoader |
BindToRequest(new NativeViewportImpl, &request); |
} |
+ // InterfaceFactory<Gpu> implementation. |
+ virtual void Create(ApplicationConnection* connection, |
+ InterfaceRequest<Gpu> request) OVERRIDE { |
+ BindToRequest(new GpuImpl(share_group_.get(), mailbox_manager_.get()), |
+ &request); |
+ } |
+ |
+ scoped_refptr<gfx::GLShareGroup> share_group_; |
+ scoped_refptr<gpu::gles2::MailboxManager> mailbox_manager_; |
scoped_ptr<ApplicationImpl> app_; |
DISALLOW_COPY_AND_ASSIGN(NativeViewportApplicationLoader); |
}; |