| // Copyright (c) 2012 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 "ui/gl/gl_bindings_skia_in_process.h" |
| |
| #include "base/logging.h" |
| #include "third_party/skia/include/gpu/gl/GrGLInterface.h" |
| #include "ui/gl/gl_bindings.h" |
| #include "ui/gl/gl_implementation.h" |
| |
| namespace { |
| |
| extern "C" { |
| // The following stub functions are required because the glXXX routines exported |
| // via gl_bindings.h use call-type GL_BINDING_CALL, which on Windows is stdcall. |
| // Skia has been built such that its GrGLInterface GL pointers are __cdecl. |
| |
| GLvoid StubGLActiveTexture(GLenum texture) { |
| glActiveTexture(texture); |
| } |
| |
| GLvoid StubGLAttachShader(GLuint program, GLuint shader) { |
| glAttachShader(program, shader); |
| } |
| |
| GLvoid StubGLBeginQuery(GLenum target, GLuint id) { |
| glBeginQuery(target, id); |
| } |
| |
| GLvoid StubGLBindAttribLocation(GLuint program, GLuint index, |
| const char* name) { |
| glBindAttribLocation(program, index, name); |
| } |
| |
| GLvoid StubGLBindBuffer(GLenum target, GLuint buffer) { |
| glBindBuffer(target, buffer); |
| } |
| |
| GLvoid StubGLBindFragDataLocation(GLuint program, GLuint colorNumber, |
| const GLchar * name) { |
| glBindFragDataLocation(program, colorNumber, name); |
| } |
| |
| GLvoid StubGLBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, |
| GLuint index, const GLchar * name) { |
| glBindFragDataLocationIndexed(program, colorNumber, index, name); |
| } |
| |
| GLvoid StubGLBindFramebuffer(GLenum target, GLuint framebuffer) { |
| glBindFramebufferEXT(target, framebuffer); |
| } |
| |
| GLvoid StubGLBindRenderbuffer(GLenum target, GLuint renderbuffer) { |
| glBindRenderbufferEXT(target, renderbuffer); |
| } |
| |
| GLvoid StubGLBindTexture(GLenum target, GLuint texture) { |
| glBindTexture(target, texture); |
| } |
| |
| GLvoid StubGLBlendColor(GLclampf red, GLclampf green, GLclampf blue, |
| GLclampf alpha) { |
| glBlendColor(red, green, blue, alpha); |
| } |
| |
| GLvoid StubGLBlendFunc(GLenum sfactor, GLenum dfactor) { |
| glBlendFunc(sfactor, dfactor); |
| } |
| |
| GLvoid StubGLBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, |
| GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, |
| GLbitfield mask, GLenum filter) { |
| glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, |
| mask, filter); |
| } |
| |
| GLvoid StubGLBufferData(GLenum target, GLsizeiptr size, const void* data, |
| GLenum usage) { |
| glBufferData(target, size, data, usage); |
| } |
| |
| GLvoid StubGLBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, |
| const void* data) { |
| glBufferSubData(target, offset, size, data); |
| } |
| |
| GLenum StubGLCheckFramebufferStatus(GLenum target) { |
| return glCheckFramebufferStatusEXT(target); |
| } |
| |
| GLvoid StubGLClear(GLbitfield mask) { |
| glClear(mask); |
| } |
| |
| GLvoid StubGLClearColor(GLclampf red, GLclampf green, GLclampf blue, |
| GLclampf alpha) { |
| glClearColor(red, green, blue, alpha); |
| } |
| |
| GLvoid StubGLClearStencil(GLint s) { |
| glClearStencil(s); |
| } |
| |
| GLvoid StubGLColorMask(GLboolean red, GLboolean green, GLboolean blue, |
| GLboolean alpha) { |
| glColorMask(red, green, blue, alpha); |
| } |
| |
| GLvoid StubGLCompileShader(GLuint shader) { |
| glCompileShader(shader); |
| } |
| |
| GLvoid StubGLCompressedTexImage2D(GLenum target, GLint level, |
| GLenum internalformat, GLsizei width, |
| GLsizei height, GLint border, |
| GLsizei imageSize, const void* data) { |
| glCompressedTexImage2D(target, level, internalformat, width, height, border, |
| imageSize, data); |
| } |
| |
| GLuint StubGLCreateProgram(void) { |
| return glCreateProgram(); |
| } |
| |
| GLuint StubGLCreateShader(GLenum type) { |
| return glCreateShader(type); |
| } |
| |
| GLvoid StubGLCullFace(GLenum mode) { |
| glCullFace(mode); |
| } |
| |
| GLvoid StubGLDeleteBuffers(GLsizei n, const GLuint* buffers) { |
| glDeleteBuffersARB(n, buffers); |
| } |
| |
| GLvoid StubGLDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { |
| glDeleteFramebuffersEXT(n, framebuffers); |
| } |
| |
| GLvoid StubGLDeleteQueries(GLsizei n, const GLuint* ids) { |
| glDeleteQueries(n, ids); |
| } |
| |
| GLvoid StubGLDeleteProgram(GLuint program) { |
| glDeleteProgram(program); |
| } |
| |
| GLvoid StubGLDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { |
| glDeleteRenderbuffersEXT(n, renderbuffers); |
| } |
| |
| GLvoid StubGLDeleteShader(GLuint shader) { |
| glDeleteShader(shader); |
| } |
| |
| GLvoid StubGLDeleteTextures(GLsizei n, const GLuint* textures) { |
| glDeleteTextures(n, textures); |
| } |
| |
| GLvoid StubGLDepthMask(GLboolean flag) { |
| glDepthMask(flag); |
| } |
| |
| GLvoid StubGLDisable(GLenum cap) { |
| glDisable(cap); |
| } |
| |
| GLvoid StubGLDisableVertexAttribArray(GLuint index) { |
| glDisableVertexAttribArray(index); |
| } |
| |
| GLvoid StubGLDrawArrays(GLenum mode, GLint first, GLsizei count) { |
| glDrawArrays(mode, first, count); |
| } |
| |
| GLvoid StubGLDrawBuffer(GLenum mode) { |
| glDrawBuffer(mode); |
| } |
| |
| GLvoid StubGLDrawBuffers(GLsizei n, const GLenum* bufs) { |
| glDrawBuffersARB(n, bufs); |
| } |
| |
| GLvoid StubGLDrawElements(GLenum mode, GLsizei count, GLenum type, |
| const void* indices) { |
| glDrawElements(mode, count, type, indices); |
| } |
| |
| GLvoid StubGLEnable(GLenum cap) { |
| glEnable(cap); |
| } |
| |
| GLvoid StubGLEnableVertexAttribArray(GLuint index) { |
| glEnableVertexAttribArray(index); |
| } |
| |
| GLvoid StubGLEndQuery(GLenum target) { |
| glEndQuery(target); |
| } |
| |
| GLvoid StubGLFinish() { |
| glFinish(); |
| } |
| |
| GLvoid StubGLFlush() { |
| glFlush(); |
| } |
| |
| GLvoid StubGLFramebufferRenderbuffer(GLenum target, GLenum attachment, |
| GLenum renderbuffertarget, |
| GLuint renderbuffer) { |
| glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, |
| renderbuffer); |
| } |
| |
| GLvoid StubGLFramebufferTexture2D(GLenum target, GLenum attachment, |
| GLenum textarget, GLuint texture, |
| GLint level) { |
| glFramebufferTexture2DEXT(target, attachment, textarget, texture, level); |
| } |
| |
| GLvoid StubGLFrontFace(GLenum mode) { |
| glFrontFace(mode); |
| } |
| |
| GLvoid StubGLGenBuffers(GLsizei n, GLuint* buffers) { |
| glGenBuffersARB(n, buffers); |
| } |
| |
| GLvoid StubGLGenFramebuffers(GLsizei n, GLuint* framebuffers) { |
| glGenFramebuffersEXT(n, framebuffers); |
| } |
| |
| GLvoid StubGLGenQueries(GLsizei n, GLuint* ids) { |
| glGenQueries(n, ids); |
| } |
| |
| GLvoid StubGLGenRenderbuffers(GLsizei n, GLuint* renderbuffers) { |
| glGenRenderbuffersEXT(n, renderbuffers); |
| } |
| |
| GLvoid StubGLGenTextures(GLsizei n, GLuint* textures) { |
| glGenTextures(n, textures); |
| } |
| |
| GLvoid StubGLGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { |
| glGetBufferParameteriv(target, pname, params); |
| } |
| |
| GLvoid StubGLGetFramebufferAttachmentParameteriv(GLenum target, |
| GLenum attachment, |
| GLenum pname, GLint* params) { |
| glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params); |
| } |
| |
| GLenum StubGLGetError() { |
| return glGetError(); |
| } |
| |
| GLvoid StubGLGetIntegerv(GLenum pname, GLint* params) { |
| glGetIntegerv(pname, params); |
| } |
| |
| GLvoid StubGLGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, |
| char* infolog) { |
| glGetProgramInfoLog(program, bufsize, length, infolog); |
| } |
| |
| GLvoid StubGLGetProgramiv(GLuint program, GLenum pname, GLint* params) { |
| glGetProgramiv(program, pname, params); |
| } |
| |
| GLvoid StubGLGetRenderbufferParameteriv(GLenum target, |
| GLenum pname, GLint* params) { |
| glGetRenderbufferParameterivEXT(target, pname, params); |
| } |
| |
| GLvoid StubGLGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, |
| char* infolog) { |
| glGetShaderInfoLog(shader, bufsize, length, infolog); |
| } |
| |
| GLvoid StubGLGetShaderiv(GLuint shader, GLenum pname, GLint* params) { |
| glGetShaderiv(shader, pname, params); |
| } |
| |
| const GLubyte* StubGLGetString(GLenum name) { |
| return glGetString(name); |
| } |
| |
| GLvoid StubGLGetQueryiv(GLenum target, GLenum pname, GLint* params) { |
| glGetQueryiv(target, pname, params); |
| } |
| |
| GLvoid StubGLGetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params) { |
| glGetQueryObjecti64v(id, pname, params); |
| } |
| |
| GLvoid StubGLGetQueryObjectiv(GLuint id, GLenum pname, GLint* params) { |
| glGetQueryObjectiv(id, pname, params); |
| } |
| |
| GLvoid StubGLGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params) { |
| glGetQueryObjectui64v(id, pname, params); |
| } |
| |
| GLvoid StubGLGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params) { |
| glGetQueryObjectuiv(id, pname, params); |
| } |
| |
| GLvoid StubGLGetTexLevelParameteriv(GLenum target, GLint level, |
| GLenum pname, GLint* params) { |
| glGetTexLevelParameteriv(target, level, pname, params); |
| } |
| |
| GLint StubGLGetUniformLocation(GLuint program, const char* name) { |
| return glGetUniformLocation(program, name); |
| } |
| |
| GLvoid StubGLLineWidth(GLfloat width) { |
| glLineWidth(width); |
| } |
| |
| GLvoid StubGLLinkProgram(GLuint program) { |
| glLinkProgram(program); |
| } |
| |
| void* StubGLMapBuffer(GLenum target, GLenum access) { |
| return glMapBuffer(target, access); |
| } |
| |
| GLvoid StubGLPixelStorei(GLenum pname, GLint param) { |
| glPixelStorei(pname, param); |
| } |
| |
| GLvoid StubGLQueryCounter(GLuint id, GLenum target) { |
| glQueryCounter(id, target); |
| } |
| |
| GLvoid StubGLReadBuffer(GLenum src) { |
| glReadBuffer(src); |
| } |
| |
| GLvoid StubGLReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, |
| GLenum format, GLenum type, void* pixels) { |
| glReadPixels(x, y, width, height, format, type, pixels); |
| } |
| |
| GLvoid StubGLRenderbufferStorage(GLenum target, GLenum internalformat, |
| GLsizei width, GLsizei height) { |
| glRenderbufferStorageEXT(target, internalformat, width, height); |
| } |
| |
| GLvoid StubGLRenderbufferStorageMultisample(GLenum target, GLsizei samples, |
| GLenum internalformat, |
| GLsizei width, GLsizei height) { |
| glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, |
| height); |
| } |
| |
| GLvoid StubGLScissor(GLint x, GLint y, GLsizei width, GLsizei height) { |
| glScissor(x, y, width, height); |
| } |
| |
| GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char** str, |
| const GLint* length) { |
| glShaderSource(shader, count, str, length); |
| } |
| |
| GLvoid StubGLStencilFunc(GLenum func, GLint ref, GLuint mask) { |
| glStencilFunc(func, ref, mask); |
| } |
| |
| GLvoid StubGLStencilFuncSeparate(GLenum face, GLenum func, GLint ref, |
| GLuint mask) { |
| glStencilFuncSeparate(face, func, ref, mask); |
| } |
| |
| GLvoid StubGLStencilMask(GLuint mask) { |
| glStencilMask(mask); |
| } |
| |
| GLvoid StubGLStencilMaskSeparate(GLenum face, GLuint mask) { |
| glStencilMaskSeparate(face, mask); |
| } |
| |
| GLvoid StubGLStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { |
| glStencilOp(fail, zfail, zpass); |
| } |
| |
| GLvoid StubGLStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, |
| GLenum zpass) { |
| glStencilOpSeparate(face, fail, zfail, zpass); |
| } |
| |
| GLvoid StubGLTexImage2D(GLenum target, GLint level, GLint internalformat, |
| GLsizei width, GLsizei height, GLint border, |
| GLenum format, GLenum type, const void* pixels) { |
| glTexImage2D(target, level, internalformat, width, height, border, format, |
| type, pixels); |
| } |
| |
| GLvoid StubGLTexParameteri(GLenum target, GLenum pname, GLint param) { |
| glTexParameteri(target, pname, param); |
| } |
| |
| GLvoid StubGLTexParameteriv(GLenum target, GLenum pname, const GLint* params) { |
| glTexParameteriv(target, pname, params); |
| } |
| |
| GLvoid StubGLTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, |
| GLsizei width, GLsizei height) { |
| glTexStorage2DEXT(target, levels, internalFormat, width, height); |
| } |
| |
| GLvoid StubGLTexSubImage2D(GLenum target, GLint level, GLint xoffset, |
| GLint yoffset, GLsizei width, GLsizei height, |
| GLenum format, GLenum type, const void* pixels) { |
| glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, |
| pixels); |
| } |
| |
| GLvoid StubGLUniform1f(GLint location, GLfloat v) { |
| glUniform1i(location, v); |
| } |
| |
| GLvoid StubGLUniform1i(GLint location, GLint v) { |
| glUniform1i(location, v); |
| } |
| |
| GLvoid StubGLUniform1fv(GLint location, GLsizei count, const GLfloat* v) { |
| glUniform1fv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform1iv(GLint location, GLsizei count, const GLint* v) { |
| glUniform1iv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform2f(GLint location, GLfloat v0, GLfloat v1) { |
| glUniform2i(location, v0, v1); |
| } |
| |
| GLvoid StubGLUniform2i(GLint location, GLint v0, GLint v1) { |
| glUniform2i(location, v0, v1); |
| } |
| |
| GLvoid StubGLUniform2fv(GLint location, GLsizei count, const GLfloat* v) { |
| glUniform2fv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform2iv(GLint location, GLsizei count, const GLint* v) { |
| glUniform2iv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { |
| glUniform3i(location, v0, v1, v2); |
| } |
| |
| GLvoid StubGLUniform3i(GLint location, GLint v0, GLint v1, GLint v2) { |
| glUniform3i(location, v0, v1, v2); |
| } |
| |
| GLvoid StubGLUniform3fv(GLint location, GLsizei count, const GLfloat* v) { |
| glUniform3fv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform3iv(GLint location, GLsizei count, const GLint* v) { |
| glUniform3iv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, |
| GLfloat v3) { |
| glUniform4i(location, v0, v1, v2, v3); |
| } |
| |
| GLvoid StubGLUniform4i(GLint location, GLint v0, GLint v1, GLint v2, |
| GLint v3) { |
| glUniform4i(location, v0, v1, v2, v3); |
| } |
| |
| GLvoid StubGLUniform4fv(GLint location, GLsizei count, const GLfloat* v) { |
| glUniform4fv(location, count, v); |
| } |
| |
| GLvoid StubGLUniform4iv(GLint location, GLsizei count, const GLint* v) { |
| glUniform4iv(location, count, v); |
| } |
| |
| GLvoid StubGLUniformMatrix2fv(GLint location, GLsizei count, |
| GLboolean transpose, const GLfloat* value) { |
| glUniformMatrix2fv(location, count, transpose, value); |
| } |
| |
| GLvoid StubGLUniformMatrix3fv(GLint location, GLsizei count, |
| GLboolean transpose, const GLfloat* value) { |
| glUniformMatrix3fv(location, count, transpose, value); |
| } |
| |
| GLvoid StubGLUniformMatrix4fv(GLint location, GLsizei count, |
| GLboolean transpose, const GLfloat* value) { |
| glUniformMatrix4fv(location, count, transpose, value); |
| } |
| |
| GLboolean StubGLUnmapBuffer(GLenum target) { |
| return glUnmapBuffer(target); |
| } |
| |
| GLvoid StubGLUseProgram(GLuint program) { |
| glUseProgram(program); |
| } |
| |
| GLvoid StubGLVertexAttrib4fv(GLuint indx, const GLfloat* values) { |
| glVertexAttrib4fv(indx, values); |
| } |
| |
| GLvoid StubGLVertexAttribPointer(GLuint indx, GLint size, GLenum type, |
| GLboolean normalized, GLsizei stride, |
| const void* ptr) { |
| glVertexAttribPointer(indx, size, type, normalized, stride, ptr); |
| } |
| |
| GLvoid StubGLViewport(GLint x, GLint y, GLsizei width, GLsizei height) { |
| glViewport(x, y, width, height); |
| } |
| } // extern "C" |
| } // namespace |
| |
| namespace gfx { |
| |
| GrGLInterface* CreateInProcessSkiaGLBinding() { |
| GrGLBinding binding; |
| switch (gfx::GetGLImplementation()) { |
| case gfx::kGLImplementationNone: |
| NOTREACHED(); |
| return NULL; |
| case gfx::kGLImplementationDesktopGL: |
| case gfx::kGLImplementationAppleGL: |
| binding = kDesktop_GrGLBinding; |
| break; |
| case gfx::kGLImplementationOSMesaGL: |
| binding = kDesktop_GrGLBinding; |
| break; |
| case gfx::kGLImplementationEGLGLES2: |
| binding = kES2_GrGLBinding; |
| break; |
| case gfx::kGLImplementationMockGL: |
| NOTREACHED(); |
| return NULL; |
| default: |
| NOTREACHED(); |
| return NULL; |
| } |
| |
| GrGLInterface* interface = new GrGLInterface; |
| |
| interface->fBindingsExported = binding; |
| interface->fActiveTexture = StubGLActiveTexture; |
| interface->fAttachShader = StubGLAttachShader; |
| interface->fBeginQuery = StubGLBeginQuery; |
| interface->fBindAttribLocation = StubGLBindAttribLocation; |
| interface->fBindBuffer = StubGLBindBuffer; |
| interface->fBindFragDataLocation = StubGLBindFragDataLocation; |
| interface->fBindTexture = StubGLBindTexture; |
| interface->fBlendColor = StubGLBlendColor; |
| interface->fBlendFunc = StubGLBlendFunc; |
| interface->fBufferData = StubGLBufferData; |
| interface->fBufferSubData = StubGLBufferSubData; |
| interface->fClear = StubGLClear; |
| interface->fClearColor = StubGLClearColor; |
| interface->fClearStencil = StubGLClearStencil; |
| interface->fColorMask = StubGLColorMask; |
| interface->fCompileShader = StubGLCompileShader; |
| interface->fCompressedTexImage2D = StubGLCompressedTexImage2D; |
| interface->fCreateProgram = StubGLCreateProgram; |
| interface->fCreateShader = StubGLCreateShader; |
| interface->fCullFace = StubGLCullFace; |
| interface->fDeleteBuffers = StubGLDeleteBuffers; |
| interface->fDeleteProgram = StubGLDeleteProgram; |
| interface->fDeleteQueries = StubGLDeleteQueries; |
| interface->fDeleteShader = StubGLDeleteShader; |
| interface->fDeleteTextures = StubGLDeleteTextures; |
| interface->fDepthMask = StubGLDepthMask; |
| interface->fDisable = StubGLDisable; |
| interface->fDisableVertexAttribArray = StubGLDisableVertexAttribArray; |
| interface->fDrawArrays = StubGLDrawArrays; |
| interface->fDrawBuffer = StubGLDrawBuffer; |
| interface->fDrawBuffers = StubGLDrawBuffers; |
| interface->fDrawElements = StubGLDrawElements; |
| interface->fEnable = StubGLEnable; |
| interface->fEnableVertexAttribArray = StubGLEnableVertexAttribArray; |
| interface->fEndQuery = StubGLEndQuery; |
| interface->fFinish = StubGLFinish; |
| interface->fFlush = StubGLFlush; |
| interface->fFrontFace = StubGLFrontFace; |
| interface->fGenBuffers = StubGLGenBuffers; |
| interface->fGenQueries = StubGLGenQueries; |
| interface->fGenTextures = StubGLGenTextures; |
| interface->fGetBufferParameteriv = StubGLGetBufferParameteriv; |
| interface->fGetError = StubGLGetError; |
| interface->fGetIntegerv = StubGLGetIntegerv; |
| interface->fGetQueryiv = StubGLGetQueryiv; |
| interface->fGetQueryObjecti64v = StubGLGetQueryObjecti64v; |
| interface->fGetQueryObjectiv = StubGLGetQueryObjectiv; |
| interface->fGetQueryObjectui64v = StubGLGetQueryObjectui64v; |
| interface->fGetQueryObjectuiv = StubGLGetQueryObjectuiv; |
| interface->fGetProgramInfoLog = StubGLGetProgramInfoLog; |
| interface->fGetProgramiv = StubGLGetProgramiv; |
| interface->fGetShaderInfoLog = StubGLGetShaderInfoLog; |
| interface->fGetShaderiv = StubGLGetShaderiv; |
| interface->fGetString = StubGLGetString; |
| interface->fGetTexLevelParameteriv = StubGLGetTexLevelParameteriv; |
| interface->fGetUniformLocation = StubGLGetUniformLocation; |
| interface->fLineWidth = StubGLLineWidth; |
| interface->fLinkProgram = StubGLLinkProgram; |
| interface->fPixelStorei = StubGLPixelStorei; |
| interface->fQueryCounter = StubGLQueryCounter; |
| interface->fReadBuffer = StubGLReadBuffer; |
| interface->fReadPixels = StubGLReadPixels; |
| interface->fScissor = StubGLScissor; |
| interface->fShaderSource = StubGLShaderSource; |
| interface->fStencilFunc = StubGLStencilFunc; |
| interface->fStencilFuncSeparate = StubGLStencilFuncSeparate; |
| interface->fStencilMask = StubGLStencilMask; |
| interface->fStencilMaskSeparate = StubGLStencilMaskSeparate; |
| interface->fStencilOp = StubGLStencilOp; |
| interface->fStencilOpSeparate = StubGLStencilOpSeparate; |
| interface->fTexImage2D = StubGLTexImage2D; |
| interface->fTexParameteri = StubGLTexParameteri; |
| interface->fTexParameteriv = StubGLTexParameteriv; |
| interface->fTexSubImage2D = StubGLTexSubImage2D; |
| interface->fTexStorage2D = StubGLTexStorage2D; |
| interface->fUniform1f = StubGLUniform1f; |
| interface->fUniform1i = StubGLUniform1i; |
| interface->fUniform1fv = StubGLUniform1fv; |
| interface->fUniform1iv = StubGLUniform1iv; |
| interface->fUniform2f = StubGLUniform2f; |
| interface->fUniform2i = StubGLUniform2i; |
| interface->fUniform2fv = StubGLUniform2fv; |
| interface->fUniform2iv = StubGLUniform2iv; |
| interface->fUniform3f = StubGLUniform3f; |
| interface->fUniform3i = StubGLUniform3i; |
| interface->fUniform3fv = StubGLUniform3fv; |
| interface->fUniform3iv = StubGLUniform3iv; |
| interface->fUniform4f = StubGLUniform4f; |
| interface->fUniform4i = StubGLUniform4i; |
| interface->fUniform4fv = StubGLUniform4fv; |
| interface->fUniform4iv = StubGLUniform4iv; |
| interface->fUniformMatrix2fv = StubGLUniformMatrix2fv; |
| interface->fUniformMatrix3fv = StubGLUniformMatrix3fv; |
| interface->fUniformMatrix4fv = StubGLUniformMatrix4fv; |
| interface->fUseProgram = StubGLUseProgram; |
| interface->fVertexAttrib4fv = StubGLVertexAttrib4fv; |
| interface->fVertexAttribPointer = StubGLVertexAttribPointer; |
| interface->fViewport = StubGLViewport; |
| interface->fBindFramebuffer = StubGLBindFramebuffer; |
| interface->fBindRenderbuffer = StubGLBindRenderbuffer; |
| interface->fCheckFramebufferStatus = StubGLCheckFramebufferStatus; |
| interface->fDeleteFramebuffers = StubGLDeleteFramebuffers; |
| interface->fDeleteRenderbuffers = StubGLDeleteRenderbuffers; |
| interface->fFramebufferRenderbuffer = StubGLFramebufferRenderbuffer; |
| interface->fFramebufferTexture2D = StubGLFramebufferTexture2D; |
| interface->fGenFramebuffers = StubGLGenFramebuffers; |
| interface->fGenRenderbuffers = StubGLGenRenderbuffers; |
| interface->fGetFramebufferAttachmentParameteriv = |
| StubGLGetFramebufferAttachmentParameteriv; |
| interface->fGetRenderbufferParameteriv = StubGLGetRenderbufferParameteriv; |
| interface->fRenderbufferStorage = StubGLRenderbufferStorage; |
| interface->fRenderbufferStorageMultisample = |
| StubGLRenderbufferStorageMultisample; |
| interface->fBlitFramebuffer = StubGLBlitFramebuffer; |
| interface->fMapBuffer = StubGLMapBuffer; |
| interface->fUnmapBuffer = StubGLUnmapBuffer; |
| interface->fBindFragDataLocationIndexed = |
| StubGLBindFragDataLocationIndexed; |
| return interface; |
| } |
| |
| } // namespace gfx |