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