Avi Drissman | 4e1b7bc3 | 2022-09-15 14:03:50 | [diff] [blame] | 1 | // Copyright 2019 The Chromium Authors |
Ken Rockot | 6d9ed9503 | 2019-11-13 17:20:47 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #ifndef CONTENT_GPU_BROWSER_EXPOSED_GPU_INTERFACES_H_ |
| 6 | #define CONTENT_GPU_BROWSER_EXPOSED_GPU_INTERFACES_H_ |
| 7 | |
| 8 | namespace gpu { |
| 9 | struct GpuPreferences; |
Chunbo Hua | d90bffb2 | 2020-09-28 15:34:36 | [diff] [blame] | 10 | class GpuDriverBugWorkarounds; |
Ken Rockot | 6d9ed9503 | 2019-11-13 17:20:47 | [diff] [blame] | 11 | } |
| 12 | |
| 13 | namespace mojo { |
| 14 | class BinderMap; |
| 15 | } |
| 16 | |
Colin Blundell | 8b1809e | 2025-07-09 08:01:11 | [diff] [blame] | 17 | namespace viz { |
| 18 | class GpuServiceImpl; |
| 19 | } |
| 20 | |
Ken Rockot | 6d9ed9503 | 2019-11-13 17:20:47 | [diff] [blame] | 21 | namespace content { |
| 22 | |
| 23 | // Populates a BinderMap with interfaces exposed by all Content embedders from |
| 24 | // the GPU process to the browser. The browser can bind these interfaces through |
| 25 | // |GpuProcessHost::BindReceiver()|. |
| 26 | // |
| 27 | // Embedder-specific GPU interfaces can be exposed to the browser via |
| 28 | // |ContentGpuClient::ExposeInterfacesToBrowser()| or embedder-specific helper |
| 29 | // functions. |
Chunbo Hua | d90bffb2 | 2020-09-28 15:34:36 | [diff] [blame] | 30 | void ExposeGpuInterfacesToBrowser( |
Colin Blundell | 8b1809e | 2025-07-09 08:01:11 | [diff] [blame] | 31 | viz::GpuServiceImpl* gpu_service, |
Chunbo Hua | d90bffb2 | 2020-09-28 15:34:36 | [diff] [blame] | 32 | const gpu::GpuPreferences& gpu_preferences, |
| 33 | const gpu::GpuDriverBugWorkarounds& gpu_workarounds, |
| 34 | mojo::BinderMap* binders); |
Ken Rockot | 6d9ed9503 | 2019-11-13 17:20:47 | [diff] [blame] | 35 | |
| 36 | } // namespace content |
| 37 | |
| 38 | #endif // CONTENT_GPU_BROWSER_EXPOSED_GPU_INTERFACES_H_ |