1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h" 6 7 #ifndef GL_GLEXT_PROTOTYPES 8 #define GL_GLEXT_PROTOTYPES 9 #endif 10 #include "gpu/GLES2/gl2extchromium.h" 11 #include "third_party/khronos/GLES2/gl2.h" 12 #include "third_party/khronos/GLES2/gl2ext.h" 13 #include "third_party/skia/include/gpu/gl/GrGLInterface.h" 14 15 namespace skia_bindings { 16 17 GrGLInterface* CreateCommandBufferSkiaGLBinding() { 18 GrGLInterface* interface = new GrGLInterface; 19 interface->fBindingsExported = kES2_GrGLBinding; 20 interface->fActiveTexture = glActiveTexture; 21 interface->fAttachShader = glAttachShader; 22 interface->fBindAttribLocation = glBindAttribLocation; 23 interface->fBindBuffer = glBindBuffer; 24 interface->fBindTexture = glBindTexture; 25 interface->fBindVertexArray = glBindVertexArrayOES; 26 interface->fBlendColor = glBlendColor; 27 interface->fBlendFunc = glBlendFunc; 28 interface->fBufferData = glBufferData; 29 interface->fBufferSubData = glBufferSubData; 30 interface->fClear = glClear; 31 interface->fClearColor = glClearColor; 32 interface->fClearStencil = glClearStencil; 33 interface->fColorMask = glColorMask; 34 interface->fCompileShader = glCompileShader; 35 interface->fCompressedTexImage2D = glCompressedTexImage2D; 36 interface->fCopyTexSubImage2D = glCopyTexSubImage2D; 37 interface->fCreateProgram = glCreateProgram; 38 interface->fCreateShader = glCreateShader; 39 interface->fCullFace = glCullFace; 40 interface->fDeleteBuffers = glDeleteBuffers; 41 interface->fDeleteProgram = glDeleteProgram; 42 interface->fDeleteShader = glDeleteShader; 43 interface->fDeleteTextures = glDeleteTextures; 44 interface->fDeleteVertexArrays = glDeleteVertexArraysOES; 45 interface->fDepthMask = glDepthMask; 46 interface->fDisable = glDisable; 47 interface->fDisableVertexAttribArray = glDisableVertexAttribArray; 48 interface->fDrawArrays = glDrawArrays; 49 interface->fDrawElements = glDrawElements; 50 interface->fEnable = glEnable; 51 interface->fEnableVertexAttribArray = glEnableVertexAttribArray; 52 interface->fFinish = glFinish; 53 interface->fFlush = glFlush; 54 interface->fFrontFace = glFrontFace; 55 interface->fGenBuffers = glGenBuffers; 56 interface->fGenTextures = glGenTextures; 57 interface->fGenVertexArrays = glGenVertexArraysOES; 58 interface->fGetBufferParameteriv = glGetBufferParameteriv; 59 interface->fGetError = glGetError; 60 interface->fGetIntegerv = glGetIntegerv; 61 interface->fGetProgramInfoLog = glGetProgramInfoLog; 62 interface->fGetProgramiv = glGetProgramiv; 63 interface->fGetShaderInfoLog = glGetShaderInfoLog; 64 interface->fGetShaderiv = glGetShaderiv; 65 interface->fGetString = glGetString; 66 interface->fGetUniformLocation = glGetUniformLocation; 67 interface->fLineWidth = glLineWidth; 68 interface->fLinkProgram = glLinkProgram; 69 interface->fPixelStorei = glPixelStorei; 70 interface->fReadPixels = glReadPixels; 71 interface->fScissor = glScissor; 72 interface->fShaderSource = glShaderSource; 73 interface->fStencilFunc = glStencilFunc; 74 interface->fStencilFuncSeparate = glStencilFuncSeparate; 75 interface->fStencilMask = glStencilMask; 76 interface->fStencilMaskSeparate = glStencilMaskSeparate; 77 interface->fStencilOp = glStencilOp; 78 interface->fStencilOpSeparate = glStencilOpSeparate; 79 interface->fTexImage2D = glTexImage2D; 80 interface->fTexParameteri = glTexParameteri; 81 interface->fTexParameteriv = glTexParameteriv; 82 interface->fTexStorage2D = glTexStorage2DEXT; 83 interface->fTexSubImage2D = glTexSubImage2D; 84 interface->fUniform1f = glUniform1f; 85 interface->fUniform1i = glUniform1i; 86 interface->fUniform1fv = glUniform1fv; 87 interface->fUniform1iv = glUniform1iv; 88 interface->fUniform2f = glUniform2f; 89 interface->fUniform2i = glUniform2i; 90 interface->fUniform2fv = glUniform2fv; 91 interface->fUniform2iv = glUniform2iv; 92 interface->fUniform3f = glUniform3f; 93 interface->fUniform3i = glUniform3i; 94 interface->fUniform3fv = glUniform3fv; 95 interface->fUniform3iv = glUniform3iv; 96 interface->fUniform4f = glUniform4f; 97 interface->fUniform4i = glUniform4i; 98 interface->fUniform4fv = glUniform4fv; 99 interface->fUniform4iv = glUniform4iv; 100 interface->fUniformMatrix2fv = glUniformMatrix2fv; 101 interface->fUniformMatrix3fv = glUniformMatrix3fv; 102 interface->fUniformMatrix4fv = glUniformMatrix4fv; 103 interface->fUseProgram = glUseProgram; 104 interface->fVertexAttrib4fv = glVertexAttrib4fv; 105 interface->fVertexAttribPointer = glVertexAttribPointer; 106 interface->fViewport = glViewport; 107 interface->fBindFramebuffer = glBindFramebuffer; 108 interface->fBindRenderbuffer = glBindRenderbuffer; 109 interface->fCheckFramebufferStatus = glCheckFramebufferStatus; 110 interface->fDeleteFramebuffers = glDeleteFramebuffers; 111 interface->fDeleteRenderbuffers = glDeleteRenderbuffers; 112 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer; 113 interface->fFramebufferTexture2D = glFramebufferTexture2D; 114 interface->fFramebufferTexture2DMultisample = 115 glFramebufferTexture2DMultisampleEXT; 116 interface->fGenFramebuffers = glGenFramebuffers; 117 interface->fGenRenderbuffers = glGenRenderbuffers; 118 interface->fGetFramebufferAttachmentParameteriv = 119 glGetFramebufferAttachmentParameteriv; 120 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; 121 interface->fRenderbufferStorage = glRenderbufferStorage; 122 interface->fRenderbufferStorageMultisample = 123 glRenderbufferStorageMultisampleCHROMIUM; 124 interface->fRenderbufferStorageMultisampleES2EXT = 125 glRenderbufferStorageMultisampleEXT; 126 interface->fBindUniformLocation = glBindUniformLocationCHROMIUM; 127 interface->fBlitFramebuffer = glBlitFramebufferCHROMIUM; 128 interface->fGenerateMipmap = glGenerateMipmap; 129 return interface; 130 } 131 132 } // namespace skia 133