Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: services/native_viewport/main.cc

Issue 940293003: Add a Display and ContextProvider concept to mojom, use to recreate (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/native_viewport/BUILD.gn ('k') | services/native_viewport/native_viewport_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/macros.h" 5 #include "base/macros.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "mojo/application/application_runner_chromium.h" 7 #include "mojo/application/application_runner_chromium.h"
8 #include "mojo/common/tracing_impl.h" 8 #include "mojo/common/tracing_impl.h"
9 #include "mojo/public/c/system/main.h" 9 #include "mojo/public/c/system/main.h"
10 #include "mojo/public/cpp/application/application_connection.h" 10 #include "mojo/public/cpp/application/application_connection.h"
(...skipping 14 matching lines...) Expand all
25 class NativeViewportAppDelegate : public mojo::ApplicationDelegate, 25 class NativeViewportAppDelegate : public mojo::ApplicationDelegate,
26 public mojo::InterfaceFactory<NativeViewport>, 26 public mojo::InterfaceFactory<NativeViewport>,
27 public mojo::InterfaceFactory<Gpu> { 27 public mojo::InterfaceFactory<Gpu> {
28 public: 28 public:
29 NativeViewportAppDelegate() : is_headless_(false) {} 29 NativeViewportAppDelegate() : is_headless_(false) {}
30 ~NativeViewportAppDelegate() override {} 30 ~NativeViewportAppDelegate() override {}
31 31
32 private: 32 private:
33 // mojo::ApplicationDelegate implementation. 33 // mojo::ApplicationDelegate implementation.
34 void Initialize(mojo::ApplicationImpl* application) override { 34 void Initialize(mojo::ApplicationImpl* application) override {
35 app_ = application; 35 tracing_.Initialize(application);
36 36
37 tracing_.Initialize(app_); 37 if (application->HasArg(mojo::kUseTestConfig))
38
39 if (app_->HasArg(mojo::kUseTestConfig))
40 gfx::GLSurface::InitializeOneOffForTests(); 38 gfx::GLSurface::InitializeOneOffForTests();
41 else if (app_->HasArg(mojo::kUseOSMesa)) 39 else if (application->HasArg(mojo::kUseOSMesa))
42 gfx::GLSurface::InitializeOneOff(gfx::kGLImplementationOSMesaGL); 40 gfx::GLSurface::InitializeOneOff(gfx::kGLImplementationOSMesaGL);
43 else 41 else
44 gfx::GLSurface::InitializeOneOff(); 42 gfx::GLSurface::InitializeOneOff();
45 43
46 is_headless_ = app_->HasArg(mojo::kUseHeadlessConfig); 44 is_headless_ = application->HasArg(mojo::kUseHeadlessConfig);
47 } 45 }
48 46
49 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { 47 bool ConfigureIncomingConnection(ApplicationConnection* connection) override {
50 connection->AddService<NativeViewport>(this); 48 connection->AddService<NativeViewport>(this);
51 connection->AddService<Gpu>(this); 49 connection->AddService<Gpu>(this);
52 return true; 50 return true;
53 } 51 }
54 52
55 // mojo::InterfaceFactory<NativeViewport> implementation. 53 // mojo::InterfaceFactory<NativeViewport> implementation.
56 void Create(ApplicationConnection* connection, 54 void Create(ApplicationConnection* connection,
57 mojo::InterfaceRequest<NativeViewport> request) override { 55 mojo::InterfaceRequest<NativeViewport> request) override {
58 new NativeViewportImpl(app_, is_headless_, request.Pass()); 56 if (!gpu_state_.get())
57 gpu_state_ = new gles2::GpuState;
58 new NativeViewportImpl(is_headless_, gpu_state_, request.Pass());
59 } 59 }
60 60
61 // mojo::InterfaceFactory<Gpu> implementation. 61 // mojo::InterfaceFactory<Gpu> implementation.
62 void Create(ApplicationConnection* connection, 62 void Create(ApplicationConnection* connection,
63 mojo::InterfaceRequest<Gpu> request) override { 63 mojo::InterfaceRequest<Gpu> request) override {
64 if (!gpu_state_.get()) 64 if (!gpu_state_.get())
65 gpu_state_ = new gles2::GpuImpl::State; 65 gpu_state_ = new gles2::GpuState;
66 new gles2::GpuImpl(request.Pass(), gpu_state_); 66 new gles2::GpuImpl(request.Pass(), gpu_state_);
67 } 67 }
68 68
69 mojo::ApplicationImpl* app_; 69 scoped_refptr<gles2::GpuState> gpu_state_;
70 scoped_refptr<gles2::GpuImpl::State> gpu_state_;
71 bool is_headless_; 70 bool is_headless_;
72 mojo::TracingImpl tracing_; 71 mojo::TracingImpl tracing_;
73 72
74 DISALLOW_COPY_AND_ASSIGN(NativeViewportAppDelegate); 73 DISALLOW_COPY_AND_ASSIGN(NativeViewportAppDelegate);
75 }; 74 };
76 } 75 }
77 76
78 MojoResult MojoMain(MojoHandle shell_handle) { 77 MojoResult MojoMain(MojoHandle shell_handle) {
79 mojo::ApplicationRunnerChromium runner( 78 mojo::ApplicationRunnerChromium runner(
80 new native_viewport::NativeViewportAppDelegate); 79 new native_viewport::NativeViewportAppDelegate);
81 runner.set_message_loop_type(base::MessageLoop::TYPE_UI); 80 runner.set_message_loop_type(base::MessageLoop::TYPE_UI);
82 return runner.Run(shell_handle); 81 return runner.Run(shell_handle);
83 } 82 }
OLDNEW
« no previous file with comments | « services/native_viewport/BUILD.gn ('k') | services/native_viewport/native_viewport_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698