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 "content/browser/compositor/gpu_process_transport_factory.h" | 5 #include "content/browser/compositor/gpu_process_transport_factory.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 scoped_ptr<SoftwareBrowserCompositorOutputSurface> surface( | 223 scoped_ptr<SoftwareBrowserCompositorOutputSurface> surface( |
224 new SoftwareBrowserCompositorOutputSurface( | 224 new SoftwareBrowserCompositorOutputSurface( |
225 output_surface_proxy_, | 225 output_surface_proxy_, |
226 CreateSoftwareOutputDevice(compositor), | 226 CreateSoftwareOutputDevice(compositor), |
227 per_compositor_data_[compositor]->surface_id, | 227 per_compositor_data_[compositor]->surface_id, |
228 &output_surface_map_, | 228 &output_surface_map_, |
229 compositor->vsync_manager())); | 229 compositor->vsync_manager())); |
230 return surface.PassAs<cc::OutputSurface>(); | 230 return surface.PassAs<cc::OutputSurface>(); |
231 } | 231 } |
232 | 232 |
233 scoped_ptr<BrowserCompositorOutputSurface> surface( | 233 scoped_ptr<BrowserCompositorOutputSurface> surface; |
234 new GpuBrowserCompositorOutputSurface( | 234 #if defined(USE_OZONE) |
235 context_provider, | 235 if (ui::SurfaceFactoryOzone::GetInstance()->CanShowPrimaryPlaneAsOverlay()) { |
236 per_compositor_data_[compositor]->surface_id, | 236 surface.reset(new GpuSurfacelessBrowserCompositorOutputSurface( |
237 &output_surface_map_, | 237 context_provider, |
238 compositor->vsync_manager(), | 238 per_compositor_data_[compositor]->surface_id, |
239 CreateOverlayCandidateValidator(compositor->widget()))); | 239 &output_surface_map_, |
| 240 compositor->vsync_manager(), |
| 241 CreateOverlayCandidateValidator(compositor->widget()), |
| 242 GL_RGB8_OES, |
| 243 0)); |
| 244 } |
| 245 #endif |
| 246 if (!surface) |
| 247 surface.reset(new GpuBrowserCompositorOutputSurface( |
| 248 context_provider, |
| 249 per_compositor_data_[compositor]->surface_id, |
| 250 &output_surface_map_, |
| 251 compositor->vsync_manager(), |
| 252 CreateOverlayCandidateValidator(compositor->widget()))); |
| 253 |
240 if (data->reflector.get()) | 254 if (data->reflector.get()) |
241 data->reflector->ReattachToOutputSurfaceFromMainThread(surface.get()); | 255 data->reflector->ReattachToOutputSurfaceFromMainThread(surface.get()); |
242 | 256 |
243 return surface.PassAs<cc::OutputSurface>(); | 257 return surface.PassAs<cc::OutputSurface>(); |
244 } | 258 } |
245 | 259 |
246 scoped_refptr<ui::Reflector> GpuProcessTransportFactory::CreateReflector( | 260 scoped_refptr<ui::Reflector> GpuProcessTransportFactory::CreateReflector( |
247 ui::Compositor* source, | 261 ui::Compositor* source, |
248 ui::Layer* target) { | 262 ui::Layer* target) { |
249 PerCompositorData* data = per_compositor_data_[source]; | 263 PerCompositorData* data = per_compositor_data_[source]; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 FOR_EACH_OBSERVER(ImageTransportFactoryObserver, | 472 FOR_EACH_OBSERVER(ImageTransportFactoryObserver, |
459 observer_list_, | 473 observer_list_, |
460 OnLostResources()); | 474 OnLostResources()); |
461 | 475 |
462 // Kill things that use the shared context before killing the shared context. | 476 // Kill things that use the shared context before killing the shared context. |
463 lost_gl_helper.reset(); | 477 lost_gl_helper.reset(); |
464 lost_shared_main_thread_contexts = NULL; | 478 lost_shared_main_thread_contexts = NULL; |
465 } | 479 } |
466 | 480 |
467 } // namespace content | 481 } // namespace content |
OLD | NEW |