OLD | NEW |
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 "ui/ozone/platform/drm/ozone_platform_gbm.h" | 5 #include "ui/ozone/platform/drm/ozone_platform_gbm.h" |
6 | 6 |
7 #include <dlfcn.h> | 7 #include <dlfcn.h> |
8 #include <gbm.h> | 8 #include <gbm.h> |
9 #include <stdlib.h> | 9 #include <stdlib.h> |
10 | 10 |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 } | 151 } |
152 void InitializeUI() override { | 152 void InitializeUI() override { |
153 device_manager_ = CreateDeviceManager(); | 153 device_manager_ = CreateDeviceManager(); |
154 window_manager_.reset(new DrmWindowHostManager()); | 154 window_manager_.reset(new DrmWindowHostManager()); |
155 cursor_.reset(new DrmCursor(window_manager_.get())); | 155 cursor_.reset(new DrmCursor(window_manager_.get())); |
156 gpu_platform_support_host_.reset( | 156 gpu_platform_support_host_.reset( |
157 new DrmGpuPlatformSupportHost(cursor_.get())); | 157 new DrmGpuPlatformSupportHost(cursor_.get())); |
158 display_manager_.reset(new DrmDisplayHostManager( | 158 display_manager_.reset(new DrmDisplayHostManager( |
159 gpu_platform_support_host_.get(), device_manager_.get())); | 159 gpu_platform_support_host_.get(), device_manager_.get())); |
160 cursor_factory_ozone_.reset(new BitmapCursorFactoryOzone); | 160 cursor_factory_ozone_.reset(new BitmapCursorFactoryOzone); |
161 overlay_manager_.reset(new DrmOverlayManager(use_surfaceless_)); | 161 overlay_manager_.reset(new DrmOverlayManager( |
| 162 use_surfaceless_, gpu_platform_support_host_.get())); |
162 #if defined(USE_XKBCOMMON) | 163 #if defined(USE_XKBCOMMON) |
163 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine(make_scoped_ptr( | 164 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine(make_scoped_ptr( |
164 new XkbKeyboardLayoutEngine(xkb_evdev_code_converter_))); | 165 new XkbKeyboardLayoutEngine(xkb_evdev_code_converter_))); |
165 #else | 166 #else |
166 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine( | 167 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine( |
167 make_scoped_ptr(new StubKeyboardLayoutEngine())); | 168 make_scoped_ptr(new StubKeyboardLayoutEngine())); |
168 #endif | 169 #endif |
169 event_factory_ozone_.reset(new EventFactoryEvdev( | 170 event_factory_ozone_.reset(new EventFactoryEvdev( |
170 cursor_.get(), device_manager_.get(), | 171 cursor_.get(), device_manager_.get(), |
171 KeyboardLayoutEngineManager::GetKeyboardLayoutEngine())); | 172 KeyboardLayoutEngineManager::GetKeyboardLayoutEngine())); |
172 } | 173 } |
173 | 174 |
174 void InitializeGPU() override { | 175 void InitializeGPU() override { |
175 bool use_atomic = false; | 176 bool use_atomic = false; |
176 gl_api_loader_.reset(new GlApiLoader()); | 177 gl_api_loader_.reset(new GlApiLoader()); |
177 drm_device_manager_.reset(new DrmDeviceManager( | 178 drm_device_manager_.reset(new DrmDeviceManager( |
178 scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator(use_atomic)))); | 179 scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator(use_atomic)))); |
179 buffer_generator_.reset(new GbmBufferGenerator()); | 180 buffer_generator_.reset(new GbmBufferGenerator()); |
180 screen_manager_.reset(new ScreenManager(buffer_generator_.get())); | 181 screen_manager_.reset(new ScreenManager(buffer_generator_.get())); |
181 surface_factory_ozone_.reset(new GbmSurfaceFactory(use_surfaceless_)); | 182 surface_factory_ozone_.reset(new GbmSurfaceFactory(use_surfaceless_)); |
182 surface_factory_ozone_->InitializeGpu(drm_device_manager_.get(), | 183 surface_factory_ozone_->InitializeGpu(drm_device_manager_.get(), |
183 screen_manager_.get()); | 184 screen_manager_.get()); |
184 scoped_ptr<DrmGpuDisplayManager> display_manager(new DrmGpuDisplayManager( | 185 scoped_ptr<DrmGpuDisplayManager> display_manager(new DrmGpuDisplayManager( |
185 screen_manager_.get(), drm_device_manager_.get())); | 186 screen_manager_.get(), drm_device_manager_.get())); |
186 gpu_platform_support_.reset(new DrmGpuPlatformSupport( | 187 gpu_platform_support_.reset(new DrmGpuPlatformSupport( |
187 drm_device_manager_.get(), screen_manager_.get(), | 188 drm_device_manager_.get(), screen_manager_.get(), |
188 display_manager.Pass())); | 189 buffer_generator_.get(), display_manager.Pass())); |
189 } | 190 } |
190 | 191 |
191 private: | 192 private: |
192 // Objects in both processes. | 193 // Objects in both processes. |
193 bool use_surfaceless_; | 194 bool use_surfaceless_; |
194 | 195 |
195 // Objects in the GPU process. | 196 // Objects in the GPU process. |
196 scoped_ptr<GbmSurfaceFactory> surface_factory_ozone_; | 197 scoped_ptr<GbmSurfaceFactory> surface_factory_ozone_; |
197 scoped_ptr<GlApiLoader> gl_api_loader_; | 198 scoped_ptr<GlApiLoader> gl_api_loader_; |
198 scoped_ptr<DrmDeviceManager> drm_device_manager_; | 199 scoped_ptr<DrmDeviceManager> drm_device_manager_; |
(...skipping 23 matching lines...) Expand all Loading... |
222 OzonePlatform* CreateOzonePlatformGbm() { | 223 OzonePlatform* CreateOzonePlatformGbm() { |
223 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); | 224 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); |
224 #if defined(USE_MESA_PLATFORM_NULL) | 225 #if defined(USE_MESA_PLATFORM_NULL) |
225 // Only works with surfaceless. | 226 // Only works with surfaceless. |
226 cmd->AppendSwitch(switches::kOzoneUseSurfaceless); | 227 cmd->AppendSwitch(switches::kOzoneUseSurfaceless); |
227 #endif | 228 #endif |
228 return new OzonePlatformGbm(cmd->HasSwitch(switches::kOzoneUseSurfaceless)); | 229 return new OzonePlatformGbm(cmd->HasSwitch(switches::kOzoneUseSurfaceless)); |
229 } | 230 } |
230 | 231 |
231 } // namespace ui | 232 } // namespace ui |
OLD | NEW |