1// Copyright (c) 2011 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 6#include "webkit/glue/gl_bindings_skia_cmd_buffer.h" 7 8#define GL_GLEXT_PROTOTYPES 9#include "gpu/GLES2/gl2.h" 10#include "gpu/GLES2/gl2ext.h" 11 12#include "third_party/skia/gpu/include/GrGLInterface.h" 13 14namespace webkit_glue { 15 16void BindSkiaToCommandBufferGL() { 17 static GrGLInterface cmd_buffer_interface = { 18 kES2_GrGLBinding, 19 20 glActiveTexture, 21 glAttachShader, 22 glBindAttribLocation, 23 glBindBuffer, 24 glBindTexture, 25 glBlendColor, 26 glBlendFunc, 27 glBufferData, 28 glBufferSubData, 29 glClear, 30 glClearColor, 31 glClearStencil, 32 NULL, // glClientActiveTexture 33 NULL, // glColor4ub 34 glColorMask, 35 NULL, // glColorPointer 36 glCompileShader, 37 glCompressedTexImage2D, 38 glCreateProgram, 39 glCreateShader, 40 glCullFace, 41 glDeleteBuffers, 42 glDeleteProgram, 43 glDeleteShader, 44 glDeleteTextures, 45 glDepthMask, 46 glDisable, 47 NULL, // glDisableClientState 48 glDisableVertexAttribArray, 49 glDrawArrays, 50 glDrawElements, 51 glEnable, 52 NULL, // glEnableClientState 53 glEnableVertexAttribArray, 54 glFrontFace, 55 glGenBuffers, 56 glGenTextures, 57 glGetBufferParameteriv, 58 glGetError, 59 glGetIntegerv, 60 glGetProgramInfoLog, 61 glGetProgramiv, 62 glGetShaderInfoLog, 63 glGetShaderiv, 64 glGetString, 65 glGetUniformLocation, 66 glLineWidth, 67 glLinkProgram, 68 NULL, // glLoadMatrixf 69 NULL, // glMatrixMode 70 glPixelStorei, 71 NULL, // glPointSize 72 glReadPixels, 73 glScissor, 74 NULL, // glShadeModel 75 glShaderSource, 76 glStencilFunc, 77 glStencilFuncSeparate, 78 glStencilMask, 79 glStencilMaskSeparate, 80 glStencilOp, 81 glStencilOpSeparate, 82 NULL, // glTexCoordPointer 83 NULL, // glTexEnvi 84 glTexImage2D, 85 glTexParameteri, 86 glTexSubImage2D, 87 glUniform1fv, 88 glUniform1i, 89 glUniform4fv, 90 glUniformMatrix3fv, 91 glUseProgram, 92 glVertexAttrib4fv, 93 glVertexAttribPointer, 94 NULL, // glVertexPointer 95 glViewport, 96 glBindFramebuffer, 97 glBindRenderbuffer, 98 glCheckFramebufferStatus, 99 glDeleteFramebuffers, 100 glDeleteRenderbuffers, 101 glFramebufferRenderbuffer, 102 glFramebufferTexture2D, 103 glGenFramebuffers, 104 glGenRenderbuffers, 105 glRenderbufferStorage, 106 glRenderbufferStorageMultisampleEXT, 107 glBlitFramebufferEXT, 108 NULL, // glResolveMultisampleFramebuffer 109 NULL, // glMapBuffer 110 NULL, // glUnmapBuffer 111 112 GrGLInterface::kStaticInitEndGuard 113 }; 114 static bool host_StubGL_initialized = false; 115 if (!host_StubGL_initialized) { 116 GrGLSetGLInterface(&cmd_buffer_interface); 117 host_StubGL_initialized = true; 118 } 119} 120 121} // namespace webkit_glue 122 123