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/gpu/browser_gpu_memory_buffer_manager.h" | 5 #include "content/browser/gpu/browser_gpu_memory_buffer_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 | 91 |
92 BrowserGpuMemoryBufferManager::~BrowserGpuMemoryBufferManager() { | 92 BrowserGpuMemoryBufferManager::~BrowserGpuMemoryBufferManager() { |
93 g_gpu_memory_buffer_manager = nullptr; | 93 g_gpu_memory_buffer_manager = nullptr; |
94 } | 94 } |
95 | 95 |
96 // static | 96 // static |
97 BrowserGpuMemoryBufferManager* BrowserGpuMemoryBufferManager::current() { | 97 BrowserGpuMemoryBufferManager* BrowserGpuMemoryBufferManager::current() { |
98 return g_gpu_memory_buffer_manager; | 98 return g_gpu_memory_buffer_manager; |
99 } | 99 } |
100 | 100 |
101 // static | |
102 uint32_t BrowserGpuMemoryBufferManager::GetImageTextureTarget( | |
103 gfx::BufferFormat format, | |
104 gfx::BufferUsage usage) { | |
105 gpu::GpuMemoryBufferConfigurationSet native_configurations = | |
106 gpu::GetNativeGpuMemoryBufferConfigurations(); | |
107 if (native_configurations.find(std::make_pair(format, usage)) == | |
108 native_configurations.end()) { | |
109 return GL_TEXTURE_2D; | |
110 } | |
111 | |
112 switch (gpu::GetNativeGpuMemoryBufferType()) { | |
113 case gfx::OZONE_NATIVE_PIXMAP: | |
114 // GPU memory buffers that are shared with the GL using EGLImages | |
115 // require TEXTURE_EXTERNAL_OES. | |
116 return GL_TEXTURE_EXTERNAL_OES; | |
117 case gfx::IO_SURFACE_BUFFER: | |
118 // IOSurface backed images require GL_TEXTURE_RECTANGLE_ARB. | |
119 return GL_TEXTURE_RECTANGLE_ARB; | |
120 case gfx::SHARED_MEMORY_BUFFER: | |
121 return GL_TEXTURE_2D; | |
122 case gfx::EMPTY_BUFFER: | |
123 NOTREACHED(); | |
124 return GL_TEXTURE_2D; | |
125 } | |
126 | |
127 NOTREACHED(); | |
128 return GL_TEXTURE_2D; | |
129 } | |
130 | |
131 std::unique_ptr<gfx::GpuMemoryBuffer> | 101 std::unique_ptr<gfx::GpuMemoryBuffer> |
132 BrowserGpuMemoryBufferManager::CreateGpuMemoryBuffer( | 102 BrowserGpuMemoryBufferManager::CreateGpuMemoryBuffer( |
133 const gfx::Size& size, | 103 const gfx::Size& size, |
134 gfx::BufferFormat format, | 104 gfx::BufferFormat format, |
135 gfx::BufferUsage usage, | 105 gfx::BufferUsage usage, |
136 gpu::SurfaceHandle surface_handle) { | 106 gpu::SurfaceHandle surface_handle) { |
137 return AllocateGpuMemoryBufferForSurface(size, format, usage, surface_handle); | 107 return AllocateGpuMemoryBufferForSurface(size, format, usage, surface_handle); |
138 } | 108 } |
139 | 109 |
140 void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForChildProcess( | 110 void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForChildProcess( |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
537 format(format), | 507 format(format), |
538 usage(usage), | 508 usage(usage), |
539 gpu_host_id(gpu_host_id) {} | 509 gpu_host_id(gpu_host_id) {} |
540 | 510 |
541 BrowserGpuMemoryBufferManager::BufferInfo::BufferInfo(const BufferInfo& other) = | 511 BrowserGpuMemoryBufferManager::BufferInfo::BufferInfo(const BufferInfo& other) = |
542 default; | 512 default; |
543 | 513 |
544 BrowserGpuMemoryBufferManager::BufferInfo::~BufferInfo() {} | 514 BrowserGpuMemoryBufferManager::BufferInfo::~BufferInfo() {} |
545 | 515 |
546 } // namespace content | 516 } // namespace content |
OLD | NEW |