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 b6d55980a0cd2e7f0a7eb4cac6fd14854d2afc64..9662123623b71959f5d74764f9004df8877e08d0 100644 |
| --- a/ui/gl/gl_gl_api_implementation.cc |
| +++ b/ui/gl/gl_gl_api_implementation.cc |
| @@ -527,6 +527,8 @@ void VirtualGLApi::Initialize(DriverGL* driver, GLContext* real_context) { |
| DCHECK(real_context->IsCurrent(NULL)); |
| extensions_ = real_context->GetExtensions(); |
| + extensions_vec_ = base::SplitString(extensions_, " ", base::TRIM_WHITESPACE, |
| + base::SPLIT_WANT_ALL); |
| } |
| bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { |
| @@ -600,6 +602,17 @@ void VirtualGLApi::OnReleaseVirtuallyCurrent(GLContext* virtual_context) { |
| current_context_ = NULL; |
| } |
| +void VirtualGLApi::glGetIntegervFn(GLenum pname, GLint* params) { |
| + switch (pname) { |
| + case GL_EXTENSIONS: |
|
no sievers
2015/12/04 20:16:14
did you mean GL_NUM_EXTENSIONS?
David Yen
2015/12/04 22:21:41
Ah yes, thank you for catching this. Done.
|
| + *params = static_cast<GLint>(extensions_vec_.size()); |
| + break; |
| + default: |
| + driver_->fn.glGetIntegervFn(pname, params); |
| + break; |
| + } |
| +} |
| + |
| const GLubyte* VirtualGLApi::glGetStringFn(GLenum name) { |
| switch (name) { |
| case GL_EXTENSIONS: |
| @@ -609,6 +622,17 @@ const GLubyte* VirtualGLApi::glGetStringFn(GLenum name) { |
| } |
| } |
| +const GLubyte* VirtualGLApi::glGetStringiFn(GLenum name, GLuint index) { |
| + switch (name) { |
| + case GL_EXTENSIONS: |
| + if (index >= extensions_vec_.size()) |
| + return NULL; |
| + return reinterpret_cast<const GLubyte*>(extensions_vec_[index].c_str()); |
| + default: |
| + return driver_->fn.glGetStringiFn(name, index); |
| + } |
| +} |
| + |
| void VirtualGLApi::glFlushFn() { |
| GLApiBase::glFlushFn(); |
| } |