Index: gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc |
diff --git a/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc b/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc |
index 1fca3386c998dd3884b5f5fbafa9f6ea5e1c4a96..d93206e6f0ddbafb91c891f3d8ec7a90e75fb95a 100644 |
--- a/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc |
+++ b/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc |
@@ -22,19 +22,14 @@ std::function<R(Args...)> gles_bind(R (GLES2Interface::*func)(Args...), |
namespace skia_bindings { |
sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
- // Until Chromium is passing the WebGL 2.0 conformance we're limiting Skia to |
- // a GLES 2.0 interface (plus extensions). |
- auto get_string_version_override = [impl](GLenum name) { |
- if (name == GL_VERSION) |
- return reinterpret_cast<const GLubyte*>("OpenGL ES 2.0 Chromium"); |
- return impl->GetString(name); |
- }; |
- |
sk_sp<GrGLInterface> interface(new GrGLInterface); |
interface->fStandard = kGLES_GrGLStandard; |
- interface->fExtensions.init(kGLES_GrGLStandard, get_string_version_override, |
- nullptr, |
- gles_bind(&GLES2Interface::GetIntegerv, impl)); |
+ |
+ auto get_string = gles_bind(&GLES2Interface::GetString, impl); |
+ auto get_stringi = gles_bind(&GLES2Interface::GetStringi, impl); |
+ auto get_integerv = gles_bind(&GLES2Interface::GetIntegerv, impl); |
+ interface->fExtensions.init(kGLES_GrGLStandard, get_string, get_stringi, |
+ get_integerv); |
GrGLInterface::Functions* functions = &interface->fFunctions; |
functions->fActiveTexture = gles_bind(&GLES2Interface::ActiveTexture, impl); |
@@ -54,6 +49,7 @@ sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
functions->fClear = gles_bind(&GLES2Interface::Clear, impl); |
functions->fClearColor = gles_bind(&GLES2Interface::ClearColor, impl); |
functions->fClearStencil = gles_bind(&GLES2Interface::ClearStencil, impl); |
+ functions->fClientWaitSync = gles_bind(&GLES2Interface::ClientWaitSync, impl); |
functions->fColorMask = gles_bind(&GLES2Interface::ColorMask, impl); |
functions->fCompileShader = gles_bind(&GLES2Interface::CompileShader, impl); |
functions->fCompressedTexImage2D = |
@@ -68,6 +64,7 @@ sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
functions->fDeleteBuffers = gles_bind(&GLES2Interface::DeleteBuffers, impl); |
functions->fDeleteProgram = gles_bind(&GLES2Interface::DeleteProgram, impl); |
functions->fDeleteShader = gles_bind(&GLES2Interface::DeleteShader, impl); |
+ functions->fDeleteSync = gles_bind(&GLES2Interface::DeleteSync, impl); |
functions->fDeleteTextures = gles_bind(&GLES2Interface::DeleteTextures, impl); |
functions->fDeleteVertexArrays = |
gles_bind(&GLES2Interface::DeleteVertexArraysOES, impl); |
@@ -78,12 +75,21 @@ sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
functions->fDiscardFramebuffer = |
gles_bind(&GLES2Interface::DiscardFramebufferEXT, impl); |
functions->fDrawArrays = gles_bind(&GLES2Interface::DrawArrays, impl); |
+ functions->fDrawArraysInstanced = |
+ gles_bind(&GLES2Interface::DrawArraysInstancedANGLE, impl); |
functions->fDrawElements = gles_bind(&GLES2Interface::DrawElements, impl); |
+ functions->fDrawElementsInstanced = |
+ gles_bind(&GLES2Interface::DrawElementsInstancedANGLE, impl); |
+ functions->fDrawRangeElements = |
+ gles_bind(&GLES2Interface::DrawRangeElements, impl); |
functions->fEnable = gles_bind(&GLES2Interface::Enable, impl); |
functions->fEnableVertexAttribArray = |
gles_bind(&GLES2Interface::EnableVertexAttribArray, impl); |
+ functions->fFenceSync = gles_bind(&GLES2Interface::FenceSync, impl); |
functions->fFinish = gles_bind(&GLES2Interface::Finish, impl); |
functions->fFlush = gles_bind(&GLES2Interface::Flush, impl); |
+ functions->fFlushMappedBufferRange = |
+ gles_bind(&GLES2Interface::FlushMappedBufferRange, impl); |
functions->fFrontFace = gles_bind(&GLES2Interface::FrontFace, impl); |
functions->fGenBuffers = gles_bind(&GLES2Interface::GenBuffers, impl); |
functions->fGenTextures = gles_bind(&GLES2Interface::GenTextures, impl); |
@@ -92,7 +98,7 @@ sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
functions->fGetBufferParameteriv = |
gles_bind(&GLES2Interface::GetBufferParameteriv, impl); |
functions->fGetError = gles_bind(&GLES2Interface::GetError, impl); |
- functions->fGetIntegerv = gles_bind(&GLES2Interface::GetIntegerv, impl); |
+ functions->fGetIntegerv = get_integerv; |
functions->fGetProgramInfoLog = |
gles_bind(&GLES2Interface::GetProgramInfoLog, impl); |
functions->fGetProgramiv = gles_bind(&GLES2Interface::GetProgramiv, impl); |
@@ -101,14 +107,20 @@ sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
functions->fGetShaderiv = gles_bind(&GLES2Interface::GetShaderiv, impl); |
functions->fGetShaderPrecisionFormat = |
gles_bind(&GLES2Interface::GetShaderPrecisionFormat, impl); |
- functions->fGetString = get_string_version_override; |
+ functions->fGetString = get_string; |
+ functions->fGetStringi = get_stringi; |
functions->fGetUniformLocation = |
gles_bind(&GLES2Interface::GetUniformLocation, impl); |
functions->fInsertEventMarker = |
gles_bind(&GLES2Interface::InsertEventMarkerEXT, impl); |
+ functions->fInvalidateFramebuffer = |
+ gles_bind(&GLES2Interface::InvalidateFramebuffer, impl); |
+ functions->fInvalidateSubFramebuffer = |
+ gles_bind(&GLES2Interface::InvalidateSubFramebuffer, impl); |
functions->fIsTexture = gles_bind(&GLES2Interface::IsTexture, impl); |
functions->fLineWidth = gles_bind(&GLES2Interface::LineWidth, impl); |
functions->fLinkProgram = gles_bind(&GLES2Interface::LinkProgram, impl); |
+ functions->fMapBufferRange = gles_bind(&GLES2Interface::MapBufferRange, impl); |
functions->fMapBufferSubData = |
gles_bind(&GLES2Interface::MapBufferSubDataCHROMIUM, impl); |
functions->fMapTexSubImage2D = |
@@ -169,9 +181,14 @@ sk_sp<GrGLInterface> CreateGLES2InterfaceBindings(GLES2Interface* impl) { |
gles_bind(&GLES2Interface::VertexAttrib3fv, impl); |
functions->fVertexAttrib4fv = |
gles_bind(&GLES2Interface::VertexAttrib4fv, impl); |
+ functions->fVertexAttribDivisor = |
+ gles_bind(&GLES2Interface::VertexAttribDivisorANGLE, impl); |
functions->fVertexAttribPointer = |
gles_bind(&GLES2Interface::VertexAttribPointer, impl); |
+ functions->fVertexAttribIPointer = |
+ gles_bind(&GLES2Interface::VertexAttribIPointer, impl); |
functions->fViewport = gles_bind(&GLES2Interface::Viewport, impl); |
+ functions->fWaitSync = gles_bind(&GLES2Interface::WaitSync, impl); |
functions->fBindFramebuffer = |
gles_bind(&GLES2Interface::BindFramebuffer, impl); |
functions->fBindRenderbuffer = |