diff options
Diffstat (limited to 'webkit/glue')
-rw-r--r-- | webkit/glue/gl_bindings_skia_cmd_buffer.cc | 122 | ||||
-rw-r--r-- | webkit/glue/gl_bindings_skia_cmd_buffer.h | 18 | ||||
-rw-r--r-- | webkit/glue/webkit_glue.gypi | 2 |
3 files changed, 142 insertions, 0 deletions
diff --git a/webkit/glue/gl_bindings_skia_cmd_buffer.cc b/webkit/glue/gl_bindings_skia_cmd_buffer.cc new file mode 100644 index 0000000..06010cb --- /dev/null +++ b/webkit/glue/gl_bindings_skia_cmd_buffer.cc @@ -0,0 +1,122 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + + +#include "webkit/glue/gl_bindings_skia_cmd_buffer.h" + +#define GL_GLEXT_PROTOTYPES +#include "gpu/GLES2/gl2.h" +#include "gpu/GLES2/gl2ext.h" + +#include "third_party/skia/gpu/include/GrGLInterface.h" + +namespace webkit_glue { + +void BindSkiaToCommandBufferGL() { + static GrGLInterface cmd_buffer_interface = { + kES2_GrGLBinding, + + glActiveTexture, + glAttachShader, + glBindAttribLocation, + glBindBuffer, + glBindTexture, + glBlendColor, + glBlendFunc, + glBufferData, + glBufferSubData, + glClear, + glClearColor, + glClearStencil, + NULL, // glClientActiveTexture + NULL, // glColor4ub + glColorMask, + NULL, // glColorPointer + glCompileShader, + glCompressedTexImage2D, + glCreateProgram, + glCreateShader, + glCullFace, + glDeleteBuffers, + glDeleteProgram, + glDeleteShader, + glDeleteTextures, + glDepthMask, + glDisable, + NULL, // glDisableClientState + glDisableVertexAttribArray, + glDrawArrays, + glDrawElements, + glEnable, + NULL, // glEnableClientState + glEnableVertexAttribArray, + glFrontFace, + glGenBuffers, + glGenTextures, + glGetBufferParameteriv, + glGetError, + glGetIntegerv, + glGetProgramInfoLog, + glGetProgramiv, + glGetShaderInfoLog, + glGetShaderiv, + glGetString, + glGetUniformLocation, + glLineWidth, + glLinkProgram, + NULL, // glLoadMatrixf + NULL, // glMatrixMode + glPixelStorei, + NULL, // glPointSize + glReadPixels, + glScissor, + NULL, // glShadeModel + glShaderSource, + glStencilFunc, + glStencilFuncSeparate, + glStencilMask, + glStencilMaskSeparate, + glStencilOp, + glStencilOpSeparate, + NULL, // glTexCoordPointer + NULL, // glTexEnvi + glTexImage2D, + glTexParameteri, + glTexSubImage2D, + glUniform1fv, + glUniform1i, + glUniform4fv, + glUniformMatrix3fv, + glUseProgram, + glVertexAttrib4fv, + glVertexAttribPointer, + NULL, // glVertexPointer + glViewport, + glBindFramebuffer, + glBindRenderbuffer, + glCheckFramebufferStatus, + glDeleteFramebuffers, + glDeleteRenderbuffers, + glFramebufferRenderbuffer, + glFramebufferTexture2D, + glGenFramebuffers, + glGenRenderbuffers, + glRenderbufferStorage, + glRenderbufferStorageMultisampleEXT, + glBlitFramebufferEXT, + NULL, // glResolveMultisampleFramebuffer + NULL, // glMapBuffer + NULL, // glUnmapBuffer + + GrGLInterface::kStaticInitEndGuard + }; + static bool host_StubGL_initialized = false; + if (!host_StubGL_initialized) { + GrGLSetGLInterface(&cmd_buffer_interface); + host_StubGL_initialized = true; + } +} + +} // namespace webkit_glue + diff --git a/webkit/glue/gl_bindings_skia_cmd_buffer.h b/webkit/glue/gl_bindings_skia_cmd_buffer.h new file mode 100644 index 0000000..206e4f9 --- /dev/null +++ b/webkit/glue/gl_bindings_skia_cmd_buffer.h @@ -0,0 +1,18 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBKIT_GLUE_GL_BINDINGS_SKIA_CMD_BUFFER_H_ +#define WEBKIT_GLUE_GL_BINDINGS_SKIA_CMD_BUFFER_H_ +#pragma once + +namespace webkit_glue { + +// The GPU back-end for skia requires pointers to GL functions. This function +// binds skia-gpu to the cmd buffers GL. +void BindSkiaToCommandBufferGL(); + +} // namespace webkit_glue + +#endif // WEBKIT_GLUE_GL_BINDINGS_SKIA_CMD_BUFFER_H_ + diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi index 7ab4a38..4d999e5 100644 --- a/webkit/glue/webkit_glue.gypi +++ b/webkit/glue/webkit_glue.gypi @@ -340,6 +340,8 @@ 'form_field.h', 'ftp_directory_listing_response_delegate.cc', 'ftp_directory_listing_response_delegate.h', + 'gl_bindings_skia_cmd_buffer.cc', + 'gl_bindings_skia_cmd_buffer.h', 'glue_serialize.cc', 'glue_serialize.h', 'idb_bindings.cc', |