Chromium Code Reviews| Index: ui/gl/gl_gl_api_implementation.cc |
| diff --git a/ui/gl/gl_gl_api_implementation.cc b/ui/gl/gl_gl_api_implementation.cc |
| index 369c3952808d1f3c86885415325bb8f7939fb0c8..9e9b9381ace9ecdab9b70bc7965dd80ae52e32e6 100644 |
| --- a/ui/gl/gl_gl_api_implementation.cc |
| +++ b/ui/gl/gl_gl_api_implementation.cc |
| @@ -154,9 +154,43 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format, |
| break; |
| } |
| } |
| + |
| + if (!(gfx::g_version_info->is_es2)) { |
|
Ken Russell (switch to Gerrit)
2016/05/02 21:16:48
This negative if-statement is pretty broad and I t
xinghua.cao
2016/05/04 02:55:41
Done.
|
| + switch (internal_format) { |
| + case GL_SRGB_EXT: |
| + gl_internal_format = GL_SRGB8; |
| + break; |
| + case GL_SRGB_ALPHA_EXT: |
| + gl_internal_format = GL_SRGB8_ALPHA8; |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| + |
| return gl_internal_format; |
| } |
| +static inline GLenum GetTexFormat(GLenum format) { |
| + GLenum gl_format = format; |
| + |
| + DCHECK(gfx::g_version_info); |
| + if (!(gfx::g_version_info->is_es2)) { |
|
Ken Russell (switch to Gerrit)
2016/05/02 21:16:48
Same comment as above in GetTexInternalFormat.
xinghua.cao
2016/05/04 02:55:40
Done.
|
| + switch (format) { |
| + case GL_SRGB_EXT: |
| + gl_format = GL_RGB; |
| + break; |
| + case GL_SRGB_ALPHA_EXT: |
| + gl_format = GL_RGBA; |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| + |
| + return gl_format; |
| +} |
| + |
| static inline GLenum GetTexType(GLenum type) { |
| if (gfx::GetGLImplementation() != gfx::kGLImplementationEGLGLES2) { |
| if (type == GL_HALF_FLOAT_OES) |
| @@ -171,18 +205,21 @@ static void GL_BINDING_CALL CustomTexImage2D( |
| const void* pixels) { |
| GLenum gl_internal_format = GetTexInternalFormat( |
| internalformat, format, type); |
| + GLenum gl_format = GetTexFormat(format); |
| GLenum gl_type = GetTexType(type); |
| g_driver_gl.orig_fn.glTexImage2DFn( |
| - target, level, gl_internal_format, width, height, border, format, gl_type, |
| - pixels); |
| + target, level, gl_internal_format, width, height, border, gl_format, |
| + gl_type, pixels); |
| } |
| static void GL_BINDING_CALL CustomTexSubImage2D( |
| GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, |
| GLsizei height, GLenum format, GLenum type, const void* pixels) { |
| + GLenum gl_format = GetTexFormat(format); |
| GLenum gl_type = GetTexType(type); |
| g_driver_gl.orig_fn.glTexSubImage2DFn( |
| - target, level, xoffset, yoffset, width, height, format, gl_type, pixels); |
| + target, level, xoffset, yoffset, width, height, gl_format, gl_type, |
| + pixels); |
| } |
| static void GL_BINDING_CALL CustomTexStorage2DEXT( |