| 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 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 #include "components/display_compositor/compositor_overlay_candidate_validator_o
zone.h" | 66 #include "components/display_compositor/compositor_overlay_candidate_validator_o
zone.h" |
| 67 #include "content/browser/compositor/software_output_device_ozone.h" | 67 #include "content/browser/compositor/software_output_device_ozone.h" |
| 68 #include "ui/ozone/public/overlay_candidates_ozone.h" | 68 #include "ui/ozone/public/overlay_candidates_ozone.h" |
| 69 #include "ui/ozone/public/overlay_manager_ozone.h" | 69 #include "ui/ozone/public/overlay_manager_ozone.h" |
| 70 #include "ui/ozone/public/ozone_platform.h" | 70 #include "ui/ozone/public/ozone_platform.h" |
| 71 #include "ui/ozone/public/ozone_switches.h" | 71 #include "ui/ozone/public/ozone_switches.h" |
| 72 #elif defined(USE_X11) | 72 #elif defined(USE_X11) |
| 73 #include "content/browser/compositor/software_output_device_x11.h" | 73 #include "content/browser/compositor/software_output_device_x11.h" |
| 74 #elif defined(OS_MACOSX) | 74 #elif defined(OS_MACOSX) |
| 75 #include "components/display_compositor/compositor_overlay_candidate_validator_m
ac.h" | 75 #include "components/display_compositor/compositor_overlay_candidate_validator_m
ac.h" |
| 76 #include "content/browser/compositor/gpu_output_surface_mac.h" |
| 76 #include "content/browser/compositor/software_output_device_mac.h" | 77 #include "content/browser/compositor/software_output_device_mac.h" |
| 77 #include "gpu/config/gpu_driver_bug_workaround_type.h" | 78 #include "gpu/config/gpu_driver_bug_workaround_type.h" |
| 78 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" | 79 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" |
| 79 #include "ui/base/cocoa/remote_layer_api.h" | 80 #include "ui/base/cocoa/remote_layer_api.h" |
| 80 #include "ui/base/ui_base_switches.h" | 81 #include "ui/base/ui_base_switches.h" |
| 81 #elif defined(OS_ANDROID) | 82 #elif defined(OS_ANDROID) |
| 82 #include "components/display_compositor/compositor_overlay_candidate_validator_a
ndroid.h" | 83 #include "components/display_compositor/compositor_overlay_candidate_validator_a
ndroid.h" |
| 83 #endif | 84 #endif |
| 84 #if !defined(GPU_SURFACE_HANDLE_IS_ACCELERATED_WINDOW) | 85 #if !defined(GPU_SURFACE_HANDLE_IS_ACCELERATED_WINDOW) |
| 85 #include "content/browser/gpu/gpu_surface_tracker.h" | 86 #include "content/browser/gpu/gpu_surface_tracker.h" |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 } else { | 447 } else { |
| 447 DCHECK(context_provider); | 448 DCHECK(context_provider); |
| 448 const auto& capabilities = context_provider->ContextCapabilities(); | 449 const auto& capabilities = context_provider->ContextCapabilities(); |
| 449 if (data->surface_handle == gpu::kNullSurfaceHandle) { | 450 if (data->surface_handle == gpu::kNullSurfaceHandle) { |
| 450 surface = base::WrapUnique(new OffscreenBrowserCompositorOutputSurface( | 451 surface = base::WrapUnique(new OffscreenBrowserCompositorOutputSurface( |
| 451 context_provider, compositor->vsync_manager(), | 452 context_provider, compositor->vsync_manager(), |
| 452 compositor->task_runner().get(), | 453 compositor->task_runner().get(), |
| 453 std::unique_ptr< | 454 std::unique_ptr< |
| 454 display_compositor::CompositorOverlayCandidateValidator>())); | 455 display_compositor::CompositorOverlayCandidateValidator>())); |
| 455 } else if (capabilities.surfaceless) { | 456 } else if (capabilities.surfaceless) { |
| 456 GLenum target = GL_TEXTURE_2D; | |
| 457 GLenum format = GL_RGB; | |
| 458 #if defined(OS_MACOSX) | 457 #if defined(OS_MACOSX) |
| 459 target = GL_TEXTURE_RECTANGLE_ARB; | 458 surface = base::WrapUnique(new GpuOutputSurfaceMac( |
| 460 format = GL_RGBA; | 459 context_provider, data->surface_handle, compositor->vsync_manager(), |
| 461 #endif | 460 compositor->task_runner().get(), |
| 461 CreateOverlayCandidateValidator(compositor->widget()), |
| 462 BrowserGpuMemoryBufferManager::current())); |
| 463 #else |
| 462 surface = | 464 surface = |
| 463 base::WrapUnique(new GpuSurfacelessBrowserCompositorOutputSurface( | 465 base::WrapUnique(new GpuSurfacelessBrowserCompositorOutputSurface( |
| 464 context_provider, data->surface_handle, | 466 context_provider, data->surface_handle, |
| 465 compositor->vsync_manager(), compositor->task_runner().get(), | 467 compositor->vsync_manager(), compositor->task_runner().get(), |
| 466 CreateOverlayCandidateValidator(compositor->widget()), target, | 468 CreateOverlayCandidateValidator(compositor->widget()), |
| 467 format, BrowserGpuMemoryBufferManager::current())); | 469 GL_TEXTURE_2D, GL_RGB, |
| 470 BrowserGpuMemoryBufferManager::current())); |
| 471 #endif |
| 468 } else { | 472 } else { |
| 469 std::unique_ptr<display_compositor::CompositorOverlayCandidateValidator> | 473 std::unique_ptr<display_compositor::CompositorOverlayCandidateValidator> |
| 470 validator; | 474 validator; |
| 471 #if !defined(OS_MACOSX) | 475 #if !defined(OS_MACOSX) |
| 472 // Overlays are only supported on surfaceless output surfaces on Mac. | 476 // Overlays are only supported on surfaceless output surfaces on Mac. |
| 473 validator = CreateOverlayCandidateValidator(compositor->widget()); | 477 validator = CreateOverlayCandidateValidator(compositor->widget()); |
| 474 #endif | 478 #endif |
| 475 surface = base::WrapUnique(new GpuBrowserCompositorOutputSurface( | 479 surface = base::WrapUnique(new GpuBrowserCompositorOutputSurface( |
| 476 context_provider, compositor->vsync_manager(), | 480 context_provider, compositor->vsync_manager(), |
| 477 compositor->task_runner().get(), std::move(validator))); | 481 compositor->task_runner().get(), std::move(validator))); |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 781 shared_vulkan_context_provider_ = | 785 shared_vulkan_context_provider_ = |
| 782 cc::VulkanInProcessContextProvider::Create(); | 786 cc::VulkanInProcessContextProvider::Create(); |
| 783 } | 787 } |
| 784 | 788 |
| 785 shared_vulkan_context_provider_initialized_ = true; | 789 shared_vulkan_context_provider_initialized_ = true; |
| 786 } | 790 } |
| 787 return shared_vulkan_context_provider_; | 791 return shared_vulkan_context_provider_; |
| 788 } | 792 } |
| 789 | 793 |
| 790 } // namespace content | 794 } // namespace content |
| OLD | NEW |