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

Side by Side Diff: ui/ozone/platform/drm/ozone_platform_gbm.cc

Issue 1157793004: ozone: Add overlay candidate implementation that queries support via IPC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing license header Created 5 years, 6 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 | « ui/ozone/platform/drm/ozone_platform_drm.cc ('k') | ui/ozone/public/overlay_candidates_ozone.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 "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
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
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
OLDNEW
« no previous file with comments | « ui/ozone/platform/drm/ozone_platform_drm.cc ('k') | ui/ozone/public/overlay_candidates_ozone.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698