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->fStandard = kGLES_GrGLStandard; 20 interface->fExtensions.init(kGLES_GrGLStandard, 21 glGetString, 22 NULL, 23 glGetIntegerv); 24 25 GrGLInterface::Functions* functions = &interface->fFunctions; 26 functions->fActiveTexture = glActiveTexture; 27 functions->fAttachShader = glAttachShader; 28 functions->fBindAttribLocation = glBindAttribLocation; 29 functions->fBindBuffer = glBindBuffer; 30 functions->fBindTexture = glBindTexture; 31 functions->fBindVertexArray = glBindVertexArrayOES; 32 functions->fBlendColor = glBlendColor; 33 functions->fBlendFunc = glBlendFunc; 34 functions->fBufferData = glBufferData; 35 functions->fBufferSubData = glBufferSubData; 36 functions->fClear = glClear; 37 functions->fClearColor = glClearColor; 38 functions->fClearStencil = glClearStencil; 39 functions->fColorMask = glColorMask; 40 functions->fCompileShader = glCompileShader; 41 functions->fCompressedTexImage2D = glCompressedTexImage2D; 42 functions->fCopyTexSubImage2D = glCopyTexSubImage2D; 43 functions->fCreateProgram = glCreateProgram; 44 functions->fCreateShader = glCreateShader; 45 functions->fCullFace = glCullFace; 46 functions->fDeleteBuffers = glDeleteBuffers; 47 functions->fDeleteProgram = glDeleteProgram; 48 functions->fDeleteShader = glDeleteShader; 49 functions->fDeleteTextures = glDeleteTextures; 50 functions->fDeleteVertexArrays = glDeleteVertexArraysOES; 51 functions->fDepthMask = glDepthMask; 52 functions->fDisable = glDisable; 53 functions->fDisableVertexAttribArray = glDisableVertexAttribArray; 54 functions->fDiscardFramebuffer = glDiscardFramebufferEXT; 55 functions->fDrawArrays = glDrawArrays; 56 functions->fDrawElements = glDrawElements; 57 functions->fEnable = glEnable; 58 functions->fEnableVertexAttribArray = glEnableVertexAttribArray; 59 functions->fFinish = glFinish; 60 functions->fFlush = glFlush; 61 functions->fFrontFace = glFrontFace; 62 functions->fGenBuffers = glGenBuffers; 63 functions->fGenTextures = glGenTextures; 64 functions->fGenVertexArrays = glGenVertexArraysOES; 65 functions->fGetBufferParameteriv = glGetBufferParameteriv; 66 functions->fGetError = glGetError; 67 functions->fGetIntegerv = glGetIntegerv; 68 functions->fGetProgramInfoLog = glGetProgramInfoLog; 69 functions->fGetProgramiv = glGetProgramiv; 70 functions->fGetShaderInfoLog = glGetShaderInfoLog; 71 functions->fGetShaderiv = glGetShaderiv; 72 functions->fGetString = glGetString; 73 functions->fGetUniformLocation = glGetUniformLocation; 74 functions->fInsertEventMarker = glInsertEventMarkerEXT; 75 functions->fLineWidth = glLineWidth; 76 functions->fLinkProgram = glLinkProgram; 77 functions->fMapBufferSubData = glMapBufferSubDataCHROMIUM; 78 functions->fMapTexSubImage2D = glMapTexSubImage2DCHROMIUM; 79 functions->fPixelStorei = glPixelStorei; 80 functions->fPopGroupMarker = glPopGroupMarkerEXT; 81 functions->fPushGroupMarker = glPushGroupMarkerEXT; 82 functions->fReadPixels = glReadPixels; 83 functions->fScissor = glScissor; 84 functions->fShaderSource = glShaderSource; 85 functions->fStencilFunc = glStencilFunc; 86 functions->fStencilFuncSeparate = glStencilFuncSeparate; 87 functions->fStencilMask = glStencilMask; 88 functions->fStencilMaskSeparate = glStencilMaskSeparate; 89 functions->fStencilOp = glStencilOp; 90 functions->fStencilOpSeparate = glStencilOpSeparate; 91 functions->fTexImage2D = glTexImage2D; 92 functions->fTexParameteri = glTexParameteri; 93 functions->fTexParameteriv = glTexParameteriv; 94 functions->fTexStorage2D = glTexStorage2DEXT; 95 functions->fTexSubImage2D = glTexSubImage2D; 96 functions->fUniform1f = glUniform1f; 97 functions->fUniform1i = glUniform1i; 98 functions->fUniform1fv = glUniform1fv; 99 functions->fUniform1iv = glUniform1iv; 100 functions->fUniform2f = glUniform2f; 101 functions->fUniform2i = glUniform2i; 102 functions->fUniform2fv = glUniform2fv; 103 functions->fUniform2iv = glUniform2iv; 104 functions->fUniform3f = glUniform3f; 105 functions->fUniform3i = glUniform3i; 106 functions->fUniform3fv = glUniform3fv; 107 functions->fUniform3iv = glUniform3iv; 108 functions->fUniform4f = glUniform4f; 109 functions->fUniform4i = glUniform4i; 110 functions->fUniform4fv = glUniform4fv; 111 functions->fUniform4iv = glUniform4iv; 112 functions->fUniformMatrix2fv = glUniformMatrix2fv; 113 functions->fUniformMatrix3fv = glUniformMatrix3fv; 114 functions->fUniformMatrix4fv = glUniformMatrix4fv; 115 functions->fUnmapBufferSubData = glUnmapBufferSubDataCHROMIUM; 116 functions->fUnmapTexSubImage2D = glUnmapTexSubImage2DCHROMIUM; 117 functions->fUseProgram = glUseProgram; 118 functions->fVertexAttrib4fv = glVertexAttrib4fv; 119 functions->fVertexAttribPointer = glVertexAttribPointer; 120 functions->fViewport = glViewport; 121 functions->fBindFramebuffer = glBindFramebuffer; 122 functions->fBindRenderbuffer = glBindRenderbuffer; 123 functions->fCheckFramebufferStatus = glCheckFramebufferStatus; 124 functions->fDeleteFramebuffers = glDeleteFramebuffers; 125 functions->fDeleteRenderbuffers = glDeleteRenderbuffers; 126 functions->fFramebufferRenderbuffer = glFramebufferRenderbuffer; 127 functions->fFramebufferTexture2D = glFramebufferTexture2D; 128 functions->fFramebufferTexture2DMultisample = 129 glFramebufferTexture2DMultisampleEXT; 130 functions->fGenFramebuffers = glGenFramebuffers; 131 functions->fGenRenderbuffers = glGenRenderbuffers; 132 functions->fGetFramebufferAttachmentParameteriv = 133 glGetFramebufferAttachmentParameteriv; 134 functions->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; 135 functions->fRenderbufferStorage = glRenderbufferStorage; 136 functions->fRenderbufferStorageMultisample = 137 glRenderbufferStorageMultisampleCHROMIUM; 138 functions->fRenderbufferStorageMultisampleES2EXT = 139 glRenderbufferStorageMultisampleEXT; 140 functions->fBindUniformLocation = glBindUniformLocationCHROMIUM; 141 functions->fBlitFramebuffer = glBlitFramebufferCHROMIUM; 142 functions->fGenerateMipmap = glGenerateMipmap; 143 144 return interface; 145 } 146 147 } // namespace skia 148