| Index: gpu/ipc/host/gpu_memory_buffer_support.cc
|
| diff --git a/gpu/ipc/host/gpu_memory_buffer_support.cc b/gpu/ipc/host/gpu_memory_buffer_support.cc
|
| index 566a9a3a8522d2d2c605f2d0d700fab5366aaa4c..9c83048c77f74bd4c8f6bf3f129caf7f1c40322e 100644
|
| --- a/gpu/ipc/host/gpu_memory_buffer_support.cc
|
| +++ b/gpu/ipc/host/gpu_memory_buffer_support.cc
|
| @@ -9,6 +9,7 @@
|
| #include "build/build_config.h"
|
| #include "gpu/ipc/common/gpu_memory_buffer_support.h"
|
| #include "gpu/ipc/host/gpu_switches.h"
|
| +#include "ui/gl/gl_bindings.h"
|
| #include "ui/gl/gl_switches.h"
|
|
|
| namespace gpu {
|
| @@ -82,4 +83,32 @@ GpuMemoryBufferConfigurationSet GetNativeGpuMemoryBufferConfigurations() {
|
| return configurations;
|
| }
|
|
|
| +uint32_t GetImageTextureTarget(gfx::BufferFormat format,
|
| + gfx::BufferUsage usage) {
|
| + GpuMemoryBufferConfigurationSet native_configurations =
|
| + GetNativeGpuMemoryBufferConfigurations();
|
| + if (native_configurations.find(std::make_pair(format, usage)) ==
|
| + native_configurations.end()) {
|
| + return GL_TEXTURE_2D;
|
| + }
|
| +
|
| + switch (GetNativeGpuMemoryBufferType()) {
|
| + case gfx::OZONE_NATIVE_PIXMAP:
|
| + // GPU memory buffers that are shared with the GL using EGLImages
|
| + // require TEXTURE_EXTERNAL_OES.
|
| + return GL_TEXTURE_EXTERNAL_OES;
|
| + case gfx::IO_SURFACE_BUFFER:
|
| + // IOSurface backed images require GL_TEXTURE_RECTANGLE_ARB.
|
| + return GL_TEXTURE_RECTANGLE_ARB;
|
| + case gfx::SHARED_MEMORY_BUFFER:
|
| + return GL_TEXTURE_2D;
|
| + case gfx::EMPTY_BUFFER:
|
| + NOTREACHED();
|
| + return GL_TEXTURE_2D;
|
| + }
|
| +
|
| + NOTREACHED();
|
| + return GL_TEXTURE_2D;
|
| +}
|
| +
|
| } // namespace gpu
|
|
|