| Index: ui/gl/gl_image_io_surface.mm
|
| diff --git a/ui/gl/gl_image_io_surface.mm b/ui/gl/gl_image_io_surface.mm
|
| index 3b244e3e94bbfe9f521e6b8949c7cca16170c631..b5210c4fee5f99824e200ad56db8026c06e10dc4 100644
|
| --- a/ui/gl/gl_image_io_surface.mm
|
| +++ b/ui/gl/gl_image_io_surface.mm
|
| @@ -274,11 +274,6 @@ GLenum ConvertRequestedInternalFormat(GLenum internalformat) {
|
| if (format_ != gfx::BufferFormat::YUV_420_BIPLANAR)
|
| return false;
|
|
|
| - if (target != GL_TEXTURE_RECTANGLE_ARB) {
|
| - LOG(ERROR) << "YUV_420_BIPLANAR requires GL_TEXTURE_RECTANGLE_ARB target";
|
| - return false;
|
| - }
|
| -
|
| GLContext* gl_context = GLContext::GetCurrent();
|
| DCHECK(gl_context);
|
|
|
| @@ -290,9 +285,27 @@ GLenum ConvertRequestedInternalFormat(GLenum internalformat) {
|
| // Note that state restoration is done explicitly instead of scoped binders to
|
| // avoid https://crbug.com/601729.
|
| GLint rgb_texture = 0;
|
| - glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &rgb_texture);
|
| + GLenum target_getter = 0;
|
| + switch (target) {
|
| + case GL_TEXTURE_2D:
|
| + target_getter = GL_TEXTURE_BINDING_2D;
|
| + break;
|
| + case GL_TEXTURE_CUBE_MAP:
|
| + target_getter = GL_TEXTURE_BINDING_CUBE_MAP;
|
| + break;
|
| + case GL_TEXTURE_EXTERNAL_OES:
|
| + target_getter = GL_TEXTURE_BINDING_EXTERNAL_OES;
|
| + break;
|
| + case GL_TEXTURE_RECTANGLE_ARB:
|
| + target_getter = GL_TEXTURE_BINDING_RECTANGLE_ARB;
|
| + break;
|
| + default:
|
| + NOTIMPLEMENTED() << " Target not supported.";
|
| + return false;
|
| + }
|
| + glGetIntegerv(target_getter, &rgb_texture);
|
| base::ScopedClosureRunner destroy_resources_runner(base::BindBlock(^{
|
| - glBindTexture(GL_TEXTURE_RECTANGLE_ARB, rgb_texture);
|
| + glBindTexture(target, rgb_texture);
|
| }));
|
|
|
| CGLContextObj cgl_context = CGLGetCurrentContext();
|
| @@ -319,10 +332,7 @@ GLenum ConvertRequestedInternalFormat(GLenum internalformat) {
|
| }
|
| }
|
|
|
| - yuv_to_rgb_converter->CopyYUV420ToRGB(
|
| - GL_TEXTURE_RECTANGLE_ARB,
|
| - size_,
|
| - rgb_texture);
|
| + yuv_to_rgb_converter->CopyYUV420ToRGB(target, size_, rgb_texture);
|
| return true;
|
| }
|
|
|
|
|