• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2016 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef GrGLTestInterface_DEFINED
9 #define GrGLTestInterface_DEFINED
10 
11 #include "gl/GrGLInterface.h"
12 #include "GrGLDefines.h"
13 
14 /**
15  * Base class for interfaces used for Skia testing. We would like to move this to tools/gpu/gl
16  * when Chromium is no longer using GrGLCreateNullInterface in its unit testing.
17  */
18 class GrGLTestInterface : public GrGLInterface {
19 public:
activeTexture(GrGLenum texture)20     virtual GrGLvoid activeTexture(GrGLenum texture) {}
attachShader(GrGLuint program,GrGLuint shader)21     virtual GrGLvoid attachShader(GrGLuint program, GrGLuint shader) {}
beginQuery(GrGLenum target,GrGLuint id)22     virtual GrGLvoid beginQuery(GrGLenum target, GrGLuint id) {}
bindAttribLocation(GrGLuint program,GrGLuint index,const char * name)23     virtual GrGLvoid bindAttribLocation(GrGLuint program, GrGLuint index, const char* name) {}
bindBuffer(GrGLenum target,GrGLuint buffer)24     virtual GrGLvoid bindBuffer(GrGLenum target, GrGLuint buffer) {}
bindFramebuffer(GrGLenum target,GrGLuint framebuffer)25     virtual GrGLvoid bindFramebuffer(GrGLenum target, GrGLuint framebuffer) {}
bindRenderbuffer(GrGLenum target,GrGLuint renderbuffer)26     virtual GrGLvoid bindRenderbuffer(GrGLenum target, GrGLuint renderbuffer) {}
bindTexture(GrGLenum target,GrGLuint texture)27     virtual GrGLvoid bindTexture(GrGLenum target, GrGLuint texture) {}
bindFragDataLocation(GrGLuint program,GrGLuint colorNumber,const GrGLchar * name)28     virtual GrGLvoid bindFragDataLocation(GrGLuint program, GrGLuint colorNumber, const GrGLchar* name) {}
bindFragDataLocationIndexed(GrGLuint program,GrGLuint colorNumber,GrGLuint index,const GrGLchar * name)29     virtual GrGLvoid bindFragDataLocationIndexed(GrGLuint program, GrGLuint colorNumber, GrGLuint index, const GrGLchar * name) {}
bindVertexArray(GrGLuint array)30     virtual GrGLvoid bindVertexArray(GrGLuint array) {}
blendBarrier()31     virtual GrGLvoid blendBarrier() {}
blendColor(GrGLclampf red,GrGLclampf green,GrGLclampf blue,GrGLclampf alpha)32     virtual GrGLvoid blendColor(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha) {}
blendEquation(GrGLenum mode)33     virtual GrGLvoid blendEquation(GrGLenum mode) {}
blendFunc(GrGLenum sfactor,GrGLenum dfactor)34     virtual GrGLvoid blendFunc(GrGLenum sfactor, GrGLenum dfactor) {}
blitFramebuffer(GrGLint srcX0,GrGLint srcY0,GrGLint srcX1,GrGLint srcY1,GrGLint dstX0,GrGLint dstY0,GrGLint dstX1,GrGLint dstY1,GrGLbitfield mask,GrGLenum filter)35     virtual GrGLvoid blitFramebuffer(GrGLint srcX0, GrGLint srcY0, GrGLint srcX1, GrGLint srcY1, GrGLint dstX0, GrGLint dstY0, GrGLint dstX1, GrGLint dstY1, GrGLbitfield mask, GrGLenum filter) {}
bufferData(GrGLenum target,GrGLsizeiptr size,const GrGLvoid * data,GrGLenum usage)36     virtual GrGLvoid bufferData(GrGLenum target, GrGLsizeiptr size, const GrGLvoid* data, GrGLenum usage) {}
bufferSubData(GrGLenum target,GrGLintptr offset,GrGLsizeiptr size,const GrGLvoid * data)37     virtual GrGLvoid bufferSubData(GrGLenum target, GrGLintptr offset, GrGLsizeiptr size, const GrGLvoid* data) {}
checkFramebufferStatus(GrGLenum target)38     virtual GrGLenum checkFramebufferStatus(GrGLenum target) { return GR_GL_FRAMEBUFFER_COMPLETE; }
clear(GrGLbitfield mask)39     virtual GrGLvoid clear(GrGLbitfield mask) {}
clearColor(GrGLclampf red,GrGLclampf green,GrGLclampf blue,GrGLclampf alpha)40     virtual GrGLvoid clearColor(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha) {}
clearStencil(GrGLint s)41     virtual GrGLvoid clearStencil(GrGLint s) {}
colorMask(GrGLboolean red,GrGLboolean green,GrGLboolean blue,GrGLboolean alpha)42     virtual GrGLvoid colorMask(GrGLboolean red, GrGLboolean green, GrGLboolean blue, GrGLboolean alpha) {}
compileShader(GrGLuint shader)43     virtual GrGLvoid compileShader(GrGLuint shader) {}
compressedTexImage2D(GrGLenum target,GrGLint level,GrGLenum internalformat,GrGLsizei width,GrGLsizei height,GrGLint border,GrGLsizei imageSize,const GrGLvoid * data)44     virtual GrGLvoid compressedTexImage2D(GrGLenum target, GrGLint level, GrGLenum internalformat, GrGLsizei width, GrGLsizei height, GrGLint border, GrGLsizei imageSize, const GrGLvoid* data) {}
compressedTexSubImage2D(GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLsizei imageSize,const GrGLvoid * data)45     virtual GrGLvoid compressedTexSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLsizei imageSize, const GrGLvoid* data) {}
copyTexSubImage2D(GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)46     virtual GrGLvoid copyTexSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
createProgram()47     virtual GrGLuint createProgram() { return 0; }
createShader(GrGLenum type)48     virtual GrGLuint createShader(GrGLenum type) { return 0; }
cullFace(GrGLenum mode)49     virtual GrGLvoid cullFace(GrGLenum mode) {}
deleteBuffers(GrGLsizei n,const GrGLuint * buffers)50     virtual GrGLvoid deleteBuffers(GrGLsizei n, const GrGLuint* buffers) {}
deleteFramebuffers(GrGLsizei n,const GrGLuint * framebuffers)51     virtual GrGLvoid deleteFramebuffers(GrGLsizei n, const GrGLuint *framebuffers) {}
deleteProgram(GrGLuint program)52     virtual GrGLvoid deleteProgram(GrGLuint program) {}
deleteQueries(GrGLsizei n,const GrGLuint * ids)53     virtual GrGLvoid deleteQueries(GrGLsizei n, const GrGLuint *ids) {}
deleteRenderbuffers(GrGLsizei n,const GrGLuint * renderbuffers)54     virtual GrGLvoid deleteRenderbuffers(GrGLsizei n, const GrGLuint *renderbuffers) {}
deleteShader(GrGLuint shader)55     virtual GrGLvoid deleteShader(GrGLuint shader) {}
deleteTextures(GrGLsizei n,const GrGLuint * textures)56     virtual GrGLvoid deleteTextures(GrGLsizei n, const GrGLuint* textures) {}
deleteVertexArrays(GrGLsizei n,const GrGLuint * arrays)57     virtual GrGLvoid deleteVertexArrays(GrGLsizei n, const GrGLuint *arrays) {}
depthMask(GrGLboolean flag)58     virtual GrGLvoid depthMask(GrGLboolean flag) {}
disable(GrGLenum cap)59     virtual GrGLvoid disable(GrGLenum cap) {}
disableVertexAttribArray(GrGLuint index)60     virtual GrGLvoid disableVertexAttribArray(GrGLuint index) {}
drawArrays(GrGLenum mode,GrGLint first,GrGLsizei count)61     virtual GrGLvoid drawArrays(GrGLenum mode, GrGLint first, GrGLsizei count) {}
drawArraysInstanced(GrGLenum mode,GrGLint first,GrGLsizei count,GrGLsizei primcount)62     virtual GrGLvoid drawArraysInstanced(GrGLenum mode, GrGLint first, GrGLsizei count, GrGLsizei primcount) {}
drawArraysIndirect(GrGLenum mode,const GrGLvoid * indirect)63     virtual GrGLvoid drawArraysIndirect(GrGLenum mode, const GrGLvoid* indirect) {}
drawBuffer(GrGLenum mode)64     virtual GrGLvoid drawBuffer(GrGLenum mode) {}
drawBuffers(GrGLsizei n,const GrGLenum * bufs)65     virtual GrGLvoid drawBuffers(GrGLsizei n, const GrGLenum* bufs) {}
drawElements(GrGLenum mode,GrGLsizei count,GrGLenum type,const GrGLvoid * indices)66     virtual GrGLvoid drawElements(GrGLenum mode, GrGLsizei count, GrGLenum type, const GrGLvoid* indices) {}
drawElementsInstanced(GrGLenum mode,GrGLsizei count,GrGLenum type,const GrGLvoid * indices,GrGLsizei primcount)67     virtual GrGLvoid drawElementsInstanced(GrGLenum mode, GrGLsizei count, GrGLenum type, const GrGLvoid *indices, GrGLsizei primcount) {}
drawElementsIndirect(GrGLenum mode,GrGLenum type,const GrGLvoid * indirect)68     virtual GrGLvoid drawElementsIndirect(GrGLenum mode, GrGLenum type, const GrGLvoid* indirect) {}
drawRangeElements(GrGLenum mode,GrGLuint start,GrGLuint end,GrGLsizei count,GrGLenum type,const GrGLvoid * indices)69     virtual GrGLvoid drawRangeElements(GrGLenum mode, GrGLuint start, GrGLuint end, GrGLsizei count, GrGLenum type, const GrGLvoid* indices) {}
enable(GrGLenum cap)70     virtual GrGLvoid enable(GrGLenum cap) {}
enableVertexAttribArray(GrGLuint index)71     virtual GrGLvoid enableVertexAttribArray(GrGLuint index) {}
endQuery(GrGLenum target)72     virtual GrGLvoid endQuery(GrGLenum target) {}
finish()73     virtual GrGLvoid finish() {}
flush()74     virtual GrGLvoid flush() {}
flushMappedBufferRange(GrGLenum target,GrGLintptr offset,GrGLsizeiptr length)75     virtual GrGLvoid flushMappedBufferRange(GrGLenum target, GrGLintptr offset, GrGLsizeiptr length) {}
framebufferRenderbuffer(GrGLenum target,GrGLenum attachment,GrGLenum renderbuffertarget,GrGLuint renderbuffer)76     virtual GrGLvoid framebufferRenderbuffer(GrGLenum target, GrGLenum attachment, GrGLenum renderbuffertarget, GrGLuint renderbuffer) {}
framebufferTexture2D(GrGLenum target,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level)77     virtual GrGLvoid framebufferTexture2D(GrGLenum target, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level) {}
framebufferTexture2DMultisample(GrGLenum target,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level,GrGLsizei samples)78     virtual GrGLvoid framebufferTexture2DMultisample(GrGLenum target, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level, GrGLsizei samples) {}
frontFace(GrGLenum mode)79     virtual GrGLvoid frontFace(GrGLenum mode) {}
genBuffers(GrGLsizei n,GrGLuint * buffers)80     virtual GrGLvoid genBuffers(GrGLsizei n, GrGLuint* buffers) {}
genFramebuffers(GrGLsizei n,GrGLuint * framebuffers)81     virtual GrGLvoid genFramebuffers(GrGLsizei n, GrGLuint *framebuffers) {}
generateMipmap(GrGLenum target)82     virtual GrGLvoid generateMipmap(GrGLenum target) {}
genQueries(GrGLsizei n,GrGLuint * ids)83     virtual GrGLvoid genQueries(GrGLsizei n, GrGLuint *ids) {}
genRenderbuffers(GrGLsizei n,GrGLuint * renderbuffers)84     virtual GrGLvoid genRenderbuffers(GrGLsizei n, GrGLuint *renderbuffers) {}
genTextures(GrGLsizei n,GrGLuint * textures)85     virtual GrGLvoid genTextures(GrGLsizei n, GrGLuint* textures) {}
genVertexArrays(GrGLsizei n,GrGLuint * arrays)86     virtual GrGLvoid genVertexArrays(GrGLsizei n, GrGLuint *arrays) {}
getBufferParameteriv(GrGLenum target,GrGLenum pname,GrGLint * params)87     virtual GrGLvoid getBufferParameteriv(GrGLenum target, GrGLenum pname, GrGLint* params) {}
getError()88     virtual GrGLenum getError() { return GR_GL_NO_ERROR; }
getFramebufferAttachmentParameteriv(GrGLenum target,GrGLenum attachment,GrGLenum pname,GrGLint * params)89     virtual GrGLvoid getFramebufferAttachmentParameteriv(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params) {}
getIntegerv(GrGLenum pname,GrGLint * params)90     virtual GrGLvoid getIntegerv(GrGLenum pname, GrGLint* params) {}
getMultisamplefv(GrGLenum pname,GrGLuint index,GrGLfloat * val)91     virtual GrGLvoid getMultisamplefv(GrGLenum pname, GrGLuint index, GrGLfloat* val) {}
getProgramInfoLog(GrGLuint program,GrGLsizei bufsize,GrGLsizei * length,char * infolog)92     virtual GrGLvoid getProgramInfoLog(GrGLuint program, GrGLsizei bufsize, GrGLsizei* length, char* infolog) {}
getProgramiv(GrGLuint program,GrGLenum pname,GrGLint * params)93     virtual GrGLvoid getProgramiv(GrGLuint program, GrGLenum pname, GrGLint* params) {}
getQueryiv(GrGLenum GLtarget,GrGLenum pname,GrGLint * params)94     virtual GrGLvoid getQueryiv(GrGLenum GLtarget, GrGLenum pname, GrGLint *params) {}
getQueryObjecti64v(GrGLuint id,GrGLenum pname,GrGLint64 * params)95     virtual GrGLvoid getQueryObjecti64v(GrGLuint id, GrGLenum pname, GrGLint64 *params) {}
getQueryObjectiv(GrGLuint id,GrGLenum pname,GrGLint * params)96     virtual GrGLvoid getQueryObjectiv(GrGLuint id, GrGLenum pname, GrGLint *params) {}
getQueryObjectui64v(GrGLuint id,GrGLenum pname,GrGLuint64 * params)97     virtual GrGLvoid getQueryObjectui64v(GrGLuint id, GrGLenum pname, GrGLuint64 *params) {}
getQueryObjectuiv(GrGLuint id,GrGLenum pname,GrGLuint * params)98     virtual GrGLvoid getQueryObjectuiv(GrGLuint id, GrGLenum pname, GrGLuint *params) {}
getRenderbufferParameteriv(GrGLenum target,GrGLenum pname,GrGLint * params)99     virtual GrGLvoid getRenderbufferParameteriv(GrGLenum target, GrGLenum pname, GrGLint* params) {}
getShaderInfoLog(GrGLuint shader,GrGLsizei bufsize,GrGLsizei * length,char * infolog)100     virtual GrGLvoid getShaderInfoLog(GrGLuint shader, GrGLsizei bufsize, GrGLsizei* length, char* infolog) {}
getShaderiv(GrGLuint shader,GrGLenum pname,GrGLint * params)101     virtual GrGLvoid getShaderiv(GrGLuint shader, GrGLenum pname, GrGLint* params) {}
getShaderPrecisionFormat(GrGLenum shadertype,GrGLenum precisiontype,GrGLint * range,GrGLint * precision)102     virtual GrGLvoid getShaderPrecisionFormat(GrGLenum shadertype, GrGLenum precisiontype, GrGLint *range, GrGLint *precision) {}
getString(GrGLenum name)103     virtual const GrGLubyte*  getString(GrGLenum name) { return nullptr; }
getStringi(GrGLenum name,GrGLuint index)104     virtual const GrGLubyte* getStringi(GrGLenum name, GrGLuint index) { return nullptr; }
getTexLevelParameteriv(GrGLenum target,GrGLint level,GrGLenum pname,GrGLint * params)105     virtual GrGLvoid getTexLevelParameteriv(GrGLenum target, GrGLint level, GrGLenum pname, GrGLint* params) {}
getUniformLocation(GrGLuint program,const char * name)106     virtual GrGLint getUniformLocation(GrGLuint program, const char* name) { return 0; }
insertEventMarker(GrGLsizei length,const char * marker)107     virtual GrGLvoid insertEventMarker(GrGLsizei length, const char* marker) {}
invalidateBufferData(GrGLuint buffer)108     virtual GrGLvoid invalidateBufferData(GrGLuint buffer) {}
invalidateBufferSubData(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr length)109     virtual GrGLvoid invalidateBufferSubData(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr length) {}
invalidateFramebuffer(GrGLenum target,GrGLsizei numAttachments,const GrGLenum * attachments)110     virtual GrGLvoid invalidateFramebuffer(GrGLenum target, GrGLsizei numAttachments,  const GrGLenum *attachments) {}
invalidateSubFramebuffer(GrGLenum target,GrGLsizei numAttachments,const GrGLenum * attachments,GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)111     virtual GrGLvoid invalidateSubFramebuffer(GrGLenum target, GrGLsizei numAttachments, const GrGLenum *attachments, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
invalidateTexImage(GrGLuint texture,GrGLint level)112     virtual GrGLvoid invalidateTexImage(GrGLuint texture, GrGLint level) {}
invalidateTexSubImage(GrGLuint texture,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint zoffset,GrGLsizei width,GrGLsizei height,GrGLsizei depth)113     virtual GrGLvoid invalidateTexSubImage(GrGLuint texture, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint zoffset, GrGLsizei width, GrGLsizei height, GrGLsizei depth) {}
isTexture(GrGLuint texture)114     virtual GrGLboolean isTexture(GrGLuint texture) { return GR_GL_FALSE; }
lineWidth(GrGLfloat width)115     virtual GrGLvoid lineWidth(GrGLfloat width) {}
linkProgram(GrGLuint program)116     virtual GrGLvoid linkProgram(GrGLuint program) {}
mapBuffer(GrGLenum target,GrGLenum access)117     virtual GrGLvoid* mapBuffer(GrGLenum target, GrGLenum access) { return nullptr; }
mapBufferRange(GrGLenum target,GrGLintptr offset,GrGLsizeiptr length,GrGLbitfield access)118     virtual GrGLvoid* mapBufferRange(GrGLenum target, GrGLintptr offset, GrGLsizeiptr length, GrGLbitfield access) { return nullptr; }
mapBufferSubData(GrGLuint target,GrGLintptr offset,GrGLsizeiptr size,GrGLenum access)119     virtual GrGLvoid* mapBufferSubData(GrGLuint target, GrGLintptr offset, GrGLsizeiptr size, GrGLenum access) { return nullptr; }
mapTexSubImage2D(GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLenum type,GrGLenum access)120     virtual GrGLvoid* mapTexSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLenum access) { return nullptr; }
minSampleShading(GrGLfloat value)121     virtual GrGLvoid minSampleShading(GrGLfloat value) {}
pixelStorei(GrGLenum pname,GrGLint param)122     virtual GrGLvoid pixelStorei(GrGLenum pname, GrGLint param) {}
polygonMode(GrGLenum face,GrGLenum mode)123     virtual GrGLvoid polygonMode(GrGLenum face, GrGLenum mode) {}
popGroupMarker()124     virtual GrGLvoid popGroupMarker() {}
pushGroupMarker(GrGLsizei length,const char * marker)125     virtual GrGLvoid pushGroupMarker(GrGLsizei length, const char* marker) {}
queryCounter(GrGLuint id,GrGLenum target)126     virtual GrGLvoid queryCounter(GrGLuint id, GrGLenum target) {}
rasterSamples(GrGLuint samples,GrGLboolean fixedsamplelocations)127     virtual GrGLvoid rasterSamples(GrGLuint samples, GrGLboolean fixedsamplelocations) {}
readBuffer(GrGLenum src)128     virtual GrGLvoid readBuffer(GrGLenum src) {}
readPixels(GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLenum type,GrGLvoid * pixels)129     virtual GrGLvoid readPixels(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLvoid* pixels) {}
renderbufferStorage(GrGLenum target,GrGLenum internalformat,GrGLsizei width,GrGLsizei height)130     virtual GrGLvoid renderbufferStorage(GrGLenum target, GrGLenum internalformat, GrGLsizei width, GrGLsizei height) {}
renderbufferStorageMultisample(GrGLenum target,GrGLsizei samples,GrGLenum internalformat,GrGLsizei width,GrGLsizei height)131     virtual GrGLvoid renderbufferStorageMultisample(GrGLenum target, GrGLsizei samples, GrGLenum internalformat, GrGLsizei width, GrGLsizei height) {}
resolveMultisampleFramebuffer()132     virtual GrGLvoid resolveMultisampleFramebuffer() {}
scissor(GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)133     virtual GrGLvoid scissor(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
bindUniformLocation(GrGLuint program,GrGLint location,const char * name)134     virtual GrGLvoid bindUniformLocation(GrGLuint program, GrGLint location, const char* name) {}
135 #if GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE
shaderSource(GrGLuint shader,GrGLsizei count,const char * const * str,const GrGLint * length)136     virtual GrGLvoid shaderSource(GrGLuint shader, GrGLsizei count, const char* const * str, const GrGLint* length) {}
137 #else
shaderSource(GrGLuint shader,GrGLsizei count,const char ** str,const GrGLint * length)138     virtual GrGLvoid shaderSource(GrGLuint shader, GrGLsizei count, const char** str, const GrGLint* length) {}
139 #endif
stencilFunc(GrGLenum func,GrGLint ref,GrGLuint mask)140     virtual GrGLvoid stencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask) {}
stencilFuncSeparate(GrGLenum face,GrGLenum func,GrGLint ref,GrGLuint mask)141     virtual GrGLvoid stencilFuncSeparate(GrGLenum face, GrGLenum func, GrGLint ref, GrGLuint mask) {}
stencilMask(GrGLuint mask)142     virtual GrGLvoid stencilMask(GrGLuint mask) {}
stencilMaskSeparate(GrGLenum face,GrGLuint mask)143     virtual GrGLvoid stencilMaskSeparate(GrGLenum face, GrGLuint mask) {}
stencilOp(GrGLenum fail,GrGLenum zfail,GrGLenum zpass)144     virtual GrGLvoid stencilOp(GrGLenum fail, GrGLenum zfail, GrGLenum zpass) {}
stencilOpSeparate(GrGLenum face,GrGLenum fail,GrGLenum zfail,GrGLenum zpass)145     virtual GrGLvoid stencilOpSeparate(GrGLenum face, GrGLenum fail, GrGLenum zfail, GrGLenum zpass) {}
texBuffer(GrGLenum target,GrGLenum internalformat,GrGLuint buffer)146     virtual GrGLvoid texBuffer(GrGLenum target, GrGLenum internalformat, GrGLuint buffer) {}
texImage2D(GrGLenum target,GrGLint level,GrGLint internalformat,GrGLsizei width,GrGLsizei height,GrGLint border,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)147     virtual GrGLvoid texImage2D(GrGLenum target, GrGLint level, GrGLint internalformat, GrGLsizei width, GrGLsizei height, GrGLint border, GrGLenum format, GrGLenum type, const GrGLvoid* pixels) {}
texParameteri(GrGLenum target,GrGLenum pname,GrGLint param)148     virtual GrGLvoid texParameteri(GrGLenum target, GrGLenum pname, GrGLint param) {}
texParameteriv(GrGLenum target,GrGLenum pname,const GrGLint * params)149     virtual GrGLvoid texParameteriv(GrGLenum target, GrGLenum pname, const GrGLint* params) {}
texStorage2D(GrGLenum target,GrGLsizei levels,GrGLenum internalformat,GrGLsizei width,GrGLsizei height)150     virtual GrGLvoid texStorage2D(GrGLenum target, GrGLsizei levels, GrGLenum internalformat, GrGLsizei width, GrGLsizei height) {}
discardFramebuffer(GrGLenum target,GrGLsizei numAttachments,const GrGLenum * attachments)151     virtual GrGLvoid discardFramebuffer(GrGLenum target, GrGLsizei numAttachments, const GrGLenum* attachments) {}
texSubImage2D(GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)152     virtual GrGLvoid texSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, const GrGLvoid* pixels) {}
textureBarrier()153     virtual GrGLvoid textureBarrier() {}
uniform1f(GrGLint location,GrGLfloat v0)154     virtual GrGLvoid uniform1f(GrGLint location, GrGLfloat v0) {}
uniform1i(GrGLint location,GrGLint v0)155     virtual GrGLvoid uniform1i(GrGLint location, GrGLint v0) {}
uniform1fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)156     virtual GrGLvoid uniform1fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform1iv(GrGLint location,GrGLsizei count,const GrGLint * v)157     virtual GrGLvoid uniform1iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniform2f(GrGLint location,GrGLfloat v0,GrGLfloat v1)158     virtual GrGLvoid uniform2f(GrGLint location, GrGLfloat v0, GrGLfloat v1) {}
uniform2i(GrGLint location,GrGLint v0,GrGLint v1)159     virtual GrGLvoid uniform2i(GrGLint location, GrGLint v0, GrGLint v1) {}
uniform2fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)160     virtual GrGLvoid uniform2fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform2iv(GrGLint location,GrGLsizei count,const GrGLint * v)161     virtual GrGLvoid uniform2iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniform3f(GrGLint location,GrGLfloat v0,GrGLfloat v1,GrGLfloat v2)162     virtual GrGLvoid uniform3f(GrGLint location, GrGLfloat v0, GrGLfloat v1, GrGLfloat v2) {}
uniform3i(GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2)163     virtual GrGLvoid uniform3i(GrGLint location, GrGLint v0, GrGLint v1, GrGLint v2) {}
uniform3fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)164     virtual GrGLvoid uniform3fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform3iv(GrGLint location,GrGLsizei count,const GrGLint * v)165     virtual GrGLvoid uniform3iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniform4f(GrGLint location,GrGLfloat v0,GrGLfloat v1,GrGLfloat v2,GrGLfloat v3)166     virtual GrGLvoid uniform4f(GrGLint location, GrGLfloat v0, GrGLfloat v1, GrGLfloat v2, GrGLfloat v3) {}
uniform4i(GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2,GrGLint v3)167     virtual GrGLvoid uniform4i(GrGLint location, GrGLint v0, GrGLint v1, GrGLint v2, GrGLint v3) {}
uniform4fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)168     virtual GrGLvoid uniform4fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform4iv(GrGLint location,GrGLsizei count,const GrGLint * v)169     virtual GrGLvoid uniform4iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniformMatrix2fv(GrGLint location,GrGLsizei count,GrGLboolean transpose,const GrGLfloat * value)170     virtual GrGLvoid uniformMatrix2fv(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value) {}
uniformMatrix3fv(GrGLint location,GrGLsizei count,GrGLboolean transpose,const GrGLfloat * value)171     virtual GrGLvoid uniformMatrix3fv(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value) {}
uniformMatrix4fv(GrGLint location,GrGLsizei count,GrGLboolean transpose,const GrGLfloat * value)172     virtual GrGLvoid uniformMatrix4fv(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value) {}
unmapBuffer(GrGLenum target)173     virtual GrGLboolean unmapBuffer(GrGLenum target) { return GR_GL_TRUE; }
unmapBufferSubData(const GrGLvoid * mem)174     virtual GrGLvoid unmapBufferSubData(const GrGLvoid* mem) {}
unmapTexSubImage2D(const GrGLvoid * mem)175     virtual GrGLvoid unmapTexSubImage2D(const GrGLvoid* mem) {}
useProgram(GrGLuint program)176     virtual GrGLvoid useProgram(GrGLuint program) {}
vertexAttrib1f(GrGLuint indx,const GrGLfloat value)177     virtual GrGLvoid vertexAttrib1f(GrGLuint indx, const GrGLfloat value) {}
vertexAttrib2fv(GrGLuint indx,const GrGLfloat * values)178     virtual GrGLvoid vertexAttrib2fv(GrGLuint indx, const GrGLfloat* values) {}
vertexAttrib3fv(GrGLuint indx,const GrGLfloat * values)179     virtual GrGLvoid vertexAttrib3fv(GrGLuint indx, const GrGLfloat* values) {}
vertexAttrib4fv(GrGLuint indx,const GrGLfloat * values)180     virtual GrGLvoid vertexAttrib4fv(GrGLuint indx, const GrGLfloat* values) {}
vertexAttribDivisor(GrGLuint index,GrGLuint divisor)181     virtual GrGLvoid vertexAttribDivisor(GrGLuint index, GrGLuint divisor) {}
vertexAttribIPointer(GrGLuint indx,GrGLint size,GrGLenum type,GrGLsizei stride,const GrGLvoid * ptr)182     virtual GrGLvoid vertexAttribIPointer(GrGLuint indx, GrGLint size, GrGLenum type, GrGLsizei stride, const GrGLvoid* ptr) {}
vertexAttribPointer(GrGLuint indx,GrGLint size,GrGLenum type,GrGLboolean normalized,GrGLsizei stride,const GrGLvoid * ptr)183     virtual GrGLvoid vertexAttribPointer(GrGLuint indx, GrGLint size, GrGLenum type, GrGLboolean normalized, GrGLsizei stride, const GrGLvoid* ptr) {}
viewport(GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)184     virtual GrGLvoid viewport(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
matrixLoadf(GrGLenum matrixMode,const GrGLfloat * m)185     virtual GrGLvoid matrixLoadf(GrGLenum matrixMode, const GrGLfloat* m) {}
matrixLoadIdentity(GrGLenum)186     virtual GrGLvoid matrixLoadIdentity(GrGLenum) {}
pathCommands(GrGLuint path,GrGLsizei numCommands,const GrGLubyte * commands,GrGLsizei numCoords,GrGLenum coordType,const GrGLvoid * coords)187     virtual GrGLvoid pathCommands(GrGLuint path, GrGLsizei numCommands, const GrGLubyte *commands, GrGLsizei numCoords, GrGLenum coordType, const GrGLvoid *coords) {}
pathParameteri(GrGLuint path,GrGLenum pname,GrGLint value)188     virtual GrGLvoid pathParameteri(GrGLuint path, GrGLenum pname, GrGLint value) {}
pathParameterf(GrGLuint path,GrGLenum pname,GrGLfloat value)189     virtual GrGLvoid pathParameterf(GrGLuint path, GrGLenum pname, GrGLfloat value) {}
genPaths(GrGLsizei range)190     virtual GrGLuint genPaths(GrGLsizei range) { return 0; }
deletePaths(GrGLuint path,GrGLsizei range)191     virtual GrGLvoid deletePaths(GrGLuint path, GrGLsizei range) {}
isPath(GrGLuint path)192     virtual GrGLboolean isPath(GrGLuint path) { return true; }
pathStencilFunc(GrGLenum func,GrGLint ref,GrGLuint mask)193     virtual GrGLvoid pathStencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask) {}
stencilFillPath(GrGLuint path,GrGLenum fillMode,GrGLuint mask)194     virtual GrGLvoid stencilFillPath(GrGLuint path, GrGLenum fillMode, GrGLuint mask) {}
stencilStrokePath(GrGLuint path,GrGLint reference,GrGLuint mask)195     virtual GrGLvoid stencilStrokePath(GrGLuint path, GrGLint reference, GrGLuint mask) {}
stencilFillPathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLenum fillMode,GrGLuint mask,GrGLenum transformType,const GrGLfloat * transformValues)196     virtual GrGLvoid stencilFillPathInstanced(GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, GrGLuint pathBase, GrGLenum fillMode, GrGLuint mask, GrGLenum transformType, const GrGLfloat *transformValues) {}
stencilStrokePathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLint reference,GrGLuint mask,GrGLenum transformType,const GrGLfloat * transformValues)197     virtual GrGLvoid stencilStrokePathInstanced(GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, GrGLuint pathBase, GrGLint reference, GrGLuint mask, GrGLenum transformType, const GrGLfloat *transformValues) {}
coverFillPath(GrGLuint path,GrGLenum coverMode)198     virtual GrGLvoid coverFillPath(GrGLuint path, GrGLenum coverMode) {}
coverStrokePath(GrGLuint name,GrGLenum coverMode)199     virtual GrGLvoid coverStrokePath(GrGLuint name, GrGLenum coverMode) {}
coverFillPathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLenum coverMode,GrGLenum transformType,const GrGLfloat * transformValues)200     virtual GrGLvoid coverFillPathInstanced(GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, GrGLuint pathBase, GrGLenum coverMode, GrGLenum transformType, const GrGLfloat *transformValues) {}
coverStrokePathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLenum coverMode,GrGLenum transformType,const GrGLfloat * transformValues)201     virtual GrGLvoid coverStrokePathInstanced(GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, GrGLuint pathBase, GrGLenum coverMode, GrGLenum transformType, const GrGLfloat* transformValues) {}
stencilThenCoverFillPath(GrGLuint path,GrGLenum fillMode,GrGLuint mask,GrGLenum coverMode)202     virtual GrGLvoid stencilThenCoverFillPath(GrGLuint path, GrGLenum fillMode, GrGLuint mask, GrGLenum coverMode) {}
stencilThenCoverStrokePath(GrGLuint path,GrGLint reference,GrGLuint mask,GrGLenum coverMode)203     virtual GrGLvoid stencilThenCoverStrokePath(GrGLuint path, GrGLint reference, GrGLuint mask, GrGLenum coverMode) {}
stencilThenCoverFillPathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLenum fillMode,GrGLuint mask,GrGLenum coverMode,GrGLenum transformType,const GrGLfloat * transformValues)204     virtual GrGLvoid stencilThenCoverFillPathInstanced(GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, GrGLuint pathBase, GrGLenum fillMode, GrGLuint mask, GrGLenum coverMode, GrGLenum transformType, const GrGLfloat *transformValues) {}
stencilThenCoverStrokePathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLint reference,GrGLuint mask,GrGLenum coverMode,GrGLenum transformType,const GrGLfloat * transformValues)205     virtual GrGLvoid stencilThenCoverStrokePathInstanced(GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, GrGLuint pathBase, GrGLint reference, GrGLuint mask, GrGLenum coverMode, GrGLenum transformType, const GrGLfloat *transformValues) {}
programPathFragmentInputGen(GrGLuint program,GrGLint location,GrGLenum genMode,GrGLint components,const GrGLfloat * coeffs)206     virtual GrGLvoid programPathFragmentInputGen(GrGLuint program, GrGLint location, GrGLenum genMode, GrGLint components,const GrGLfloat *coeffs) {}
bindFragmentInputLocation(GrGLuint program,GrGLint location,const GrGLchar * name)207     virtual GrGLvoid bindFragmentInputLocation(GrGLuint program, GrGLint location, const GrGLchar* name) {}
getProgramResourceLocation(GrGLuint program,GrGLenum programInterface,const GrGLchar * name)208     virtual GrGLint getProgramResourceLocation(GrGLuint program, GrGLenum programInterface, const GrGLchar *name) { return 0; }
coverageModulation(GrGLenum components)209     virtual GrGLvoid coverageModulation(GrGLenum components) {}
multiDrawArraysIndirect(GrGLenum mode,const GrGLvoid * indirect,GrGLsizei drawcount,GrGLsizei stride)210     virtual GrGLvoid multiDrawArraysIndirect(GrGLenum mode, const GrGLvoid *indirect, GrGLsizei drawcount, GrGLsizei stride) {}
multiDrawElementsIndirect(GrGLenum mode,GrGLenum type,const GrGLvoid * indirect,GrGLsizei drawcount,GrGLsizei stride)211     virtual GrGLvoid multiDrawElementsIndirect(GrGLenum mode, GrGLenum type, const GrGLvoid *indirect, GrGLsizei drawcount, GrGLsizei stride) {}
getTextureHandle(GrGLuint texture)212     virtual GrGLuint64 getTextureHandle(GrGLuint texture) { return 0; }
getTextureSamplerHandle(GrGLuint texture,GrGLuint sampler)213     virtual GrGLuint64 getTextureSamplerHandle(GrGLuint texture, GrGLuint sampler) { return 0; }
makeTextureHandleResident(GrGLuint64 handle)214     virtual GrGLvoid makeTextureHandleResident(GrGLuint64 handle) {}
makeTextureHandleNonResident(GrGLuint64 handle)215     virtual GrGLvoid makeTextureHandleNonResident(GrGLuint64 handle) {}
getImageHandle(GrGLuint texture,GrGLint level,GrGLboolean layered,GrGLint layer,GrGLint format)216     virtual GrGLuint64 getImageHandle(GrGLuint texture, GrGLint level, GrGLboolean layered, GrGLint layer, GrGLint format) { return 0; }
makeImageHandleResident(GrGLuint64 handle,GrGLenum access)217     virtual GrGLvoid makeImageHandleResident(GrGLuint64 handle, GrGLenum access) {}
makeImageHandleNonResident(GrGLuint64 handle)218     virtual GrGLvoid makeImageHandleNonResident(GrGLuint64 handle) {}
isTextureHandleResident(GrGLuint64 handle)219     virtual GrGLboolean isTextureHandleResident(GrGLuint64 handle) { return GR_GL_FALSE; }
isImageHandleResident(GrGLuint64 handle)220     virtual GrGLboolean isImageHandleResident(GrGLuint64 handle) { return GR_GL_FALSE; }
uniformHandleui64(GrGLint location,GrGLuint64 v0)221     virtual GrGLvoid uniformHandleui64(GrGLint location, GrGLuint64 v0) {}
uniformHandleui64v(GrGLint location,GrGLsizei count,const GrGLuint64 * value)222     virtual GrGLvoid uniformHandleui64v(GrGLint location, GrGLsizei count, const GrGLuint64 *value) {}
programUniformHandleui64(GrGLuint program,GrGLint location,GrGLuint64 v0)223     virtual GrGLvoid programUniformHandleui64(GrGLuint program, GrGLint location, GrGLuint64 v0) {}
programUniformHandleui64v(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLuint64 * value)224     virtual GrGLvoid programUniformHandleui64v(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLuint64 *value) {}
textureParameteri(GrGLuint texture,GrGLenum target,GrGLenum pname,GrGLint param)225     virtual GrGLvoid textureParameteri(GrGLuint texture, GrGLenum target, GrGLenum pname, GrGLint param) {}
textureParameteriv(GrGLuint texture,GrGLenum target,GrGLenum pname,const GrGLint * param)226     virtual GrGLvoid textureParameteriv(GrGLuint texture, GrGLenum target, GrGLenum pname, const GrGLint *param) {}
textureParameterf(GrGLuint texture,GrGLenum target,GrGLenum pname,float param)227     virtual GrGLvoid textureParameterf(GrGLuint texture, GrGLenum target, GrGLenum pname, float param) {}
textureParameterfv(GrGLuint texture,GrGLenum target,GrGLenum pname,const float * param)228     virtual GrGLvoid textureParameterfv(GrGLuint texture, GrGLenum target, GrGLenum pname, const float *param) {}
textureImage1D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint GrGLinternalformat,GrGLsizei width,GrGLint border,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)229     virtual GrGLvoid textureImage1D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint GrGLinternalformat, GrGLsizei width, GrGLint border, GrGLenum format, GrGLenum type, const GrGLvoid *pixels) {}
textureImage2D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint GrGLinternalformat,GrGLsizei width,GrGLsizei height,GrGLint border,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)230     virtual GrGLvoid textureImage2D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint GrGLinternalformat, GrGLsizei width, GrGLsizei height, GrGLint border, GrGLenum format, GrGLenum type, const GrGLvoid *pixels) {}
textureSubImage1D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLsizei width,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)231     virtual GrGLvoid textureSubImage1D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLsizei width, GrGLenum format, GrGLenum type, const GrGLvoid *pixels) {}
textureSubImage2D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)232     virtual GrGLvoid textureSubImage2D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, const GrGLvoid *pixels) {}
copyTextureImage1D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum GrGLinternalformat,GrGLint x,GrGLint y,GrGLsizei width,GrGLint border)233     virtual GrGLvoid copyTextureImage1D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum GrGLinternalformat, GrGLint x, GrGLint y, GrGLsizei width, GrGLint border) {}
copyTextureImage2D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum GrGLinternalformat,GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height,GrGLint border)234     virtual GrGLvoid copyTextureImage2D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum GrGLinternalformat, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height, GrGLint border) {}
copyTextureSubImage1D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint x,GrGLint y,GrGLsizei width)235     virtual GrGLvoid copyTextureSubImage1D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint x, GrGLint y, GrGLsizei width) {}
copyTextureSubImage2D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)236     virtual GrGLvoid copyTextureSubImage2D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
getTextureImage(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum format,GrGLenum type,GrGLvoid * pixels)237     virtual GrGLvoid getTextureImage(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum format, GrGLenum type, GrGLvoid *pixels) {}
getTextureParameterfv(GrGLuint texture,GrGLenum target,GrGLenum pname,float * params)238     virtual GrGLvoid getTextureParameterfv(GrGLuint texture, GrGLenum target, GrGLenum pname, float *params) {}
getTextureParameteriv(GrGLuint texture,GrGLenum target,GrGLenum pname,GrGLint * params)239     virtual GrGLvoid getTextureParameteriv(GrGLuint texture, GrGLenum target, GrGLenum pname, GrGLint *params) {}
getTextureLevelParameterfv(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum pname,float * params)240     virtual GrGLvoid getTextureLevelParameterfv(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum pname, float *params) {}
getTextureLevelParameteriv(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum pname,GrGLint * params)241     virtual GrGLvoid getTextureLevelParameteriv(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum pname, GrGLint *params) {}
textureImage3D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint GrGLinternalformat,GrGLsizei width,GrGLsizei height,GrGLsizei depth,GrGLint border,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)242     virtual GrGLvoid textureImage3D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint GrGLinternalformat, GrGLsizei width, GrGLsizei height, GrGLsizei depth, GrGLint border, GrGLenum format, GrGLenum type, const GrGLvoid *pixels) {}
textureSubImage3D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint zoffset,GrGLsizei width,GrGLsizei height,GrGLsizei depth,GrGLenum format,GrGLenum type,const GrGLvoid * pixels)243     virtual GrGLvoid textureSubImage3D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint zoffset, GrGLsizei width, GrGLsizei height, GrGLsizei depth, GrGLenum format, GrGLenum type, const GrGLvoid *pixels) {}
copyTextureSubImage3D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint zoffset,GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)244     virtual GrGLvoid copyTextureSubImage3D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint zoffset, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
compressedTextureImage3D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLsizei height,GrGLsizei depth,GrGLint border,GrGLsizei imageSize,const GrGLvoid * data)245     virtual GrGLvoid compressedTextureImage3D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLsizei height, GrGLsizei depth, GrGLint border, GrGLsizei imageSize, const GrGLvoid *data) {}
compressedTextureImage2D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLsizei height,GrGLint border,GrGLsizei imageSize,const GrGLvoid * data)246     virtual GrGLvoid compressedTextureImage2D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLsizei height, GrGLint border, GrGLsizei imageSize, const GrGLvoid *data) {}
compressedTextureImage1D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLint border,GrGLsizei imageSize,const GrGLvoid * data)247     virtual GrGLvoid compressedTextureImage1D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLint border, GrGLsizei imageSize, const GrGLvoid *data) {}
compressedTextureSubImage3D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint zoffset,GrGLsizei width,GrGLsizei height,GrGLsizei depth,GrGLenum format,GrGLsizei imageSize,const GrGLvoid * data)248     virtual GrGLvoid compressedTextureSubImage3D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint zoffset, GrGLsizei width, GrGLsizei height, GrGLsizei depth, GrGLenum format, GrGLsizei imageSize, const GrGLvoid *data) {}
compressedTextureSubImage2D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLsizei imageSize,const GrGLvoid * data)249     virtual GrGLvoid compressedTextureSubImage2D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLsizei imageSize, const GrGLvoid *data) {}
compressedTextureSubImage1D(GrGLuint texture,GrGLenum target,GrGLint level,GrGLint xoffset,GrGLsizei width,GrGLenum format,GrGLsizei imageSize,const GrGLvoid * data)250     virtual GrGLvoid compressedTextureSubImage1D(GrGLuint texture, GrGLenum target, GrGLint level, GrGLint xoffset, GrGLsizei width, GrGLenum format, GrGLsizei imageSize, const GrGLvoid *data) {}
getCompressedTextureImage(GrGLuint texture,GrGLenum target,GrGLint level,GrGLvoid * img)251     virtual GrGLvoid getCompressedTextureImage(GrGLuint texture, GrGLenum target, GrGLint level, GrGLvoid *img) {}
namedBufferData(GrGLuint buffer,GrGLsizeiptr size,const GrGLvoid * data,GrGLenum usage)252     virtual GrGLvoid namedBufferData(GrGLuint buffer, GrGLsizeiptr size, const GrGLvoid *data, GrGLenum usage) {}
namedBufferSubData(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr size,const GrGLvoid * data)253     virtual GrGLvoid namedBufferSubData(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr size, const GrGLvoid *data) {}
mapNamedBuffer(GrGLuint buffer,GrGLenum access)254     virtual GrGLvoid* mapNamedBuffer(GrGLuint buffer, GrGLenum access) { return nullptr; }
unmapNamedBuffer(GrGLuint buffer)255     virtual GrGLboolean unmapNamedBuffer(GrGLuint buffer) { return GR_GL_FALSE; }
getNamedBufferParameteriv(GrGLuint buffer,GrGLenum pname,GrGLint * params)256     virtual GrGLvoid getNamedBufferParameteriv(GrGLuint buffer, GrGLenum pname, GrGLint *params) {}
getNamedBufferPointerv(GrGLuint buffer,GrGLenum pname,GrGLvoid ** params)257     virtual GrGLvoid getNamedBufferPointerv(GrGLuint buffer, GrGLenum pname, GrGLvoid* *params) {}
getNamedBufferSubData(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr size,GrGLvoid * data)258     virtual GrGLvoid getNamedBufferSubData(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr size, GrGLvoid *data) {}
programUniform1f(GrGLuint program,GrGLint location,float v0)259     virtual GrGLvoid programUniform1f(GrGLuint program, GrGLint location, float v0) {}
programUniform2f(GrGLuint program,GrGLint location,float v0,float v1)260     virtual GrGLvoid programUniform2f(GrGLuint program, GrGLint location, float v0, float v1) {}
programUniform3f(GrGLuint program,GrGLint location,float v0,float v1,float v2)261     virtual GrGLvoid programUniform3f(GrGLuint program, GrGLint location, float v0, float v1, float v2) {}
programUniform4f(GrGLuint program,GrGLint location,float v0,float v1,float v2,float v3)262     virtual GrGLvoid programUniform4f(GrGLuint program, GrGLint location, float v0, float v1, float v2, float v3) {}
programUniform1i(GrGLuint program,GrGLint location,GrGLint v0)263     virtual GrGLvoid programUniform1i(GrGLuint program, GrGLint location, GrGLint v0) {}
programUniform2i(GrGLuint program,GrGLint location,GrGLint v0,GrGLint v1)264     virtual GrGLvoid programUniform2i(GrGLuint program, GrGLint location, GrGLint v0, GrGLint v1) {}
programUniform3i(GrGLuint program,GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2)265     virtual GrGLvoid programUniform3i(GrGLuint program, GrGLint location, GrGLint v0, GrGLint v1, GrGLint v2) {}
programUniform4i(GrGLuint program,GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2,GrGLint v3)266     virtual GrGLvoid programUniform4i(GrGLuint program, GrGLint location, GrGLint v0, GrGLint v1, GrGLint v2, GrGLint v3) {}
programUniform1fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)267     virtual GrGLvoid programUniform1fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform2fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)268     virtual GrGLvoid programUniform2fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform3fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)269     virtual GrGLvoid programUniform3fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform4fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)270     virtual GrGLvoid programUniform4fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform1iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)271     virtual GrGLvoid programUniform1iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniform2iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)272     virtual GrGLvoid programUniform2iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniform3iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)273     virtual GrGLvoid programUniform3iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniform4iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)274     virtual GrGLvoid programUniform4iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniformMatrix2fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)275     virtual GrGLvoid programUniformMatrix2fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix3fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)276     virtual GrGLvoid programUniformMatrix3fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix4fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)277     virtual GrGLvoid programUniformMatrix4fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix2x3fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)278     virtual GrGLvoid programUniformMatrix2x3fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix3x2fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)279     virtual GrGLvoid programUniformMatrix3x2fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix2x4fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)280     virtual GrGLvoid programUniformMatrix2x4fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix4x2fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)281     virtual GrGLvoid programUniformMatrix4x2fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix3x4fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)282     virtual GrGLvoid programUniformMatrix3x4fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
programUniformMatrix4x3fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)283     virtual GrGLvoid programUniformMatrix4x3fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
namedRenderbufferStorage(GrGLuint renderbuffer,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLsizei height)284     virtual GrGLvoid namedRenderbufferStorage(GrGLuint renderbuffer, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLsizei height) {}
getNamedRenderbufferParameteriv(GrGLuint renderbuffer,GrGLenum pname,GrGLint * params)285     virtual GrGLvoid getNamedRenderbufferParameteriv(GrGLuint renderbuffer, GrGLenum pname, GrGLint *params) {}
namedRenderbufferStorageMultisample(GrGLuint renderbuffer,GrGLsizei samples,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLsizei height)286     virtual GrGLvoid namedRenderbufferStorageMultisample(GrGLuint renderbuffer, GrGLsizei samples, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLsizei height) {}
checkNamedFramebufferStatus(GrGLuint framebuffer,GrGLenum target)287     virtual GrGLenum checkNamedFramebufferStatus(GrGLuint framebuffer, GrGLenum target) { return GR_GL_FRAMEBUFFER_COMPLETE; }
namedFramebufferTexture1D(GrGLuint framebuffer,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level)288     virtual GrGLvoid namedFramebufferTexture1D(GrGLuint framebuffer, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level) {}
namedFramebufferTexture2D(GrGLuint framebuffer,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level)289     virtual GrGLvoid namedFramebufferTexture2D(GrGLuint framebuffer, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level) {}
namedFramebufferTexture3D(GrGLuint framebuffer,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level,GrGLint zoffset)290     virtual GrGLvoid namedFramebufferTexture3D(GrGLuint framebuffer, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level, GrGLint zoffset) {}
namedFramebufferRenderbuffer(GrGLuint framebuffer,GrGLenum attachment,GrGLenum renderbuffertarget,GrGLuint renderbuffer)291     virtual GrGLvoid namedFramebufferRenderbuffer(GrGLuint framebuffer, GrGLenum attachment, GrGLenum renderbuffertarget, GrGLuint renderbuffer) {}
getNamedFramebufferAttachmentParameteriv(GrGLuint framebuffer,GrGLenum attachment,GrGLenum pname,GrGLint * params)292     virtual GrGLvoid getNamedFramebufferAttachmentParameteriv(GrGLuint framebuffer, GrGLenum attachment, GrGLenum pname, GrGLint *params) {}
generateTextureMipmap(GrGLuint texture,GrGLenum target)293     virtual GrGLvoid generateTextureMipmap(GrGLuint texture, GrGLenum target) {}
framebufferDrawBuffer(GrGLuint framebuffer,GrGLenum mode)294     virtual GrGLvoid framebufferDrawBuffer(GrGLuint framebuffer, GrGLenum mode) {}
framebufferDrawBuffers(GrGLuint framebuffer,GrGLsizei n,const GrGLenum * bufs)295     virtual GrGLvoid framebufferDrawBuffers(GrGLuint framebuffer, GrGLsizei n, const GrGLenum *bufs) {}
framebufferReadBuffer(GrGLuint framebuffer,GrGLenum mode)296     virtual GrGLvoid framebufferReadBuffer(GrGLuint framebuffer, GrGLenum mode) {}
getFramebufferParameteriv(GrGLuint framebuffer,GrGLenum pname,GrGLint * param)297     virtual GrGLvoid getFramebufferParameteriv(GrGLuint framebuffer, GrGLenum pname, GrGLint *param) {}
namedCopyBufferSubData(GrGLuint readBuffer,GrGLuint writeBuffer,GrGLintptr readOffset,GrGLintptr writeOffset,GrGLsizeiptr size)298     virtual GrGLvoid namedCopyBufferSubData(GrGLuint readBuffer, GrGLuint writeBuffer, GrGLintptr readOffset, GrGLintptr writeOffset, GrGLsizeiptr size) {}
vertexArrayVertexOffset(GrGLuint vaobj,GrGLuint buffer,GrGLint size,GrGLenum type,GrGLsizei stride,GrGLintptr offset)299     virtual GrGLvoid vertexArrayVertexOffset(GrGLuint vaobj, GrGLuint buffer, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayColorOffset(GrGLuint vaobj,GrGLuint buffer,GrGLint size,GrGLenum type,GrGLsizei stride,GrGLintptr offset)300     virtual GrGLvoid vertexArrayColorOffset(GrGLuint vaobj, GrGLuint buffer, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayEdgeFlagOffset(GrGLuint vaobj,GrGLuint buffer,GrGLsizei stride,GrGLintptr offset)301     virtual GrGLvoid vertexArrayEdgeFlagOffset(GrGLuint vaobj, GrGLuint buffer, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayIndexOffset(GrGLuint vaobj,GrGLuint buffer,GrGLenum type,GrGLsizei stride,GrGLintptr offset)302     virtual GrGLvoid vertexArrayIndexOffset(GrGLuint vaobj, GrGLuint buffer, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayNormalOffset(GrGLuint vaobj,GrGLuint buffer,GrGLenum type,GrGLsizei stride,GrGLintptr offset)303     virtual GrGLvoid vertexArrayNormalOffset(GrGLuint vaobj, GrGLuint buffer, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayTexCoordOffset(GrGLuint vaobj,GrGLuint buffer,GrGLint size,GrGLenum type,GrGLsizei stride,GrGLintptr offset)304     virtual GrGLvoid vertexArrayTexCoordOffset(GrGLuint vaobj, GrGLuint buffer, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayMultiTexCoordOffset(GrGLuint vaobj,GrGLuint buffer,GrGLenum texunit,GrGLint size,GrGLenum type,GrGLsizei stride,GrGLintptr offset)305     virtual GrGLvoid vertexArrayMultiTexCoordOffset(GrGLuint vaobj, GrGLuint buffer, GrGLenum texunit, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayFogCoordOffset(GrGLuint vaobj,GrGLuint buffer,GrGLenum type,GrGLsizei stride,GrGLintptr offset)306     virtual GrGLvoid vertexArrayFogCoordOffset(GrGLuint vaobj, GrGLuint buffer, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArraySecondaryColorOffset(GrGLuint vaobj,GrGLuint buffer,GrGLint size,GrGLenum type,GrGLsizei stride,GrGLintptr offset)307     virtual GrGLvoid vertexArraySecondaryColorOffset(GrGLuint vaobj, GrGLuint buffer, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayVertexAttribOffset(GrGLuint vaobj,GrGLuint buffer,GrGLuint index,GrGLint size,GrGLenum type,GrGLboolean normalized,GrGLsizei stride,GrGLintptr offset)308     virtual GrGLvoid vertexArrayVertexAttribOffset(GrGLuint vaobj, GrGLuint buffer, GrGLuint index, GrGLint size, GrGLenum type, GrGLboolean normalized, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayVertexAttribIOffset(GrGLuint vaobj,GrGLuint buffer,GrGLuint index,GrGLint size,GrGLenum type,GrGLsizei stride,GrGLintptr offset)309     virtual GrGLvoid vertexArrayVertexAttribIOffset(GrGLuint vaobj, GrGLuint buffer, GrGLuint index, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
enableVertexArray(GrGLuint vaobj,GrGLenum array)310     virtual GrGLvoid enableVertexArray(GrGLuint vaobj, GrGLenum array) {}
disableVertexArray(GrGLuint vaobj,GrGLenum array)311     virtual GrGLvoid disableVertexArray(GrGLuint vaobj, GrGLenum array) {}
enableVertexArrayAttrib(GrGLuint vaobj,GrGLuint index)312     virtual GrGLvoid enableVertexArrayAttrib(GrGLuint vaobj, GrGLuint index) {}
disableVertexArrayAttrib(GrGLuint vaobj,GrGLuint index)313     virtual GrGLvoid disableVertexArrayAttrib(GrGLuint vaobj, GrGLuint index) {}
getVertexArrayIntegerv(GrGLuint vaobj,GrGLenum pname,GrGLint * param)314     virtual GrGLvoid getVertexArrayIntegerv(GrGLuint vaobj, GrGLenum pname, GrGLint *param) {}
getVertexArrayPointerv(GrGLuint vaobj,GrGLenum pname,GrGLvoid ** param)315     virtual GrGLvoid getVertexArrayPointerv(GrGLuint vaobj, GrGLenum pname, GrGLvoid **param) {}
getVertexArrayIntegeri_v(GrGLuint vaobj,GrGLuint index,GrGLenum pname,GrGLint * param)316     virtual GrGLvoid getVertexArrayIntegeri_v(GrGLuint vaobj, GrGLuint index, GrGLenum pname, GrGLint *param) {}
getVertexArrayPointeri_v(GrGLuint vaobj,GrGLuint index,GrGLenum pname,GrGLvoid ** param)317     virtual GrGLvoid getVertexArrayPointeri_v(GrGLuint vaobj, GrGLuint index, GrGLenum pname, GrGLvoid **param) {}
mapNamedBufferRange(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr length,GrGLbitfield access)318     virtual GrGLvoid* mapNamedBufferRange(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr length, GrGLbitfield access) { return nullptr; }
flushMappedNamedBufferRange(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr length)319     virtual GrGLvoid flushMappedNamedBufferRange(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr length) {}
textureBuffer(GrGLuint texture,GrGLenum target,GrGLenum internalformat,GrGLuint buffer)320     virtual GrGLvoid textureBuffer(GrGLuint texture, GrGLenum target, GrGLenum internalformat, GrGLuint buffer) {}
fenceSync(GrGLenum condition,GrGLbitfield flags)321     virtual GrGLsync fenceSync(GrGLenum condition, GrGLbitfield flags) { return nullptr;  }
clientWaitSync(GrGLsync sync,GrGLbitfield flags,GrGLuint64 timeout)322     virtual GrGLenum clientWaitSync(GrGLsync sync, GrGLbitfield flags, GrGLuint64 timeout) { return GR_GL_WAIT_FAILED;  }
waitSync(GrGLsync sync,GrGLbitfield flags,GrGLuint64 timeout)323     virtual GrGLvoid waitSync(GrGLsync sync, GrGLbitfield flags, GrGLuint64 timeout) {}
deleteSync(GrGLsync sync)324     virtual GrGLvoid deleteSync(GrGLsync sync) {}
debugMessageControl(GrGLenum source,GrGLenum type,GrGLenum severity,GrGLsizei count,const GrGLuint * ids,GrGLboolean enabled)325     virtual GrGLvoid debugMessageControl(GrGLenum source, GrGLenum type, GrGLenum severity, GrGLsizei count, const GrGLuint* ids, GrGLboolean enabled) {}
debugMessageInsert(GrGLenum source,GrGLenum type,GrGLuint id,GrGLenum severity,GrGLsizei length,const GrGLchar * buf)326     virtual GrGLvoid debugMessageInsert(GrGLenum source, GrGLenum type, GrGLuint id, GrGLenum severity, GrGLsizei length,  const GrGLchar* buf) {}
debugMessageCallback(GRGLDEBUGPROC callback,const GrGLvoid * userParam)327     virtual GrGLvoid debugMessageCallback(GRGLDEBUGPROC callback, const GrGLvoid* userParam) {}
getDebugMessageLog(GrGLuint count,GrGLsizei bufSize,GrGLenum * sources,GrGLenum * types,GrGLuint * ids,GrGLenum * severities,GrGLsizei * lengths,GrGLchar * messageLog)328     virtual GrGLuint getDebugMessageLog(GrGLuint count, GrGLsizei bufSize, GrGLenum* sources, GrGLenum* types, GrGLuint* ids, GrGLenum* severities, GrGLsizei* lengths,  GrGLchar* messageLog) { return 0; }
pushDebugGroup(GrGLenum source,GrGLuint id,GrGLsizei length,const GrGLchar * message)329     virtual GrGLvoid pushDebugGroup(GrGLenum source, GrGLuint id, GrGLsizei length,  const GrGLchar * message) {}
popDebugGroup()330     virtual GrGLvoid popDebugGroup() {}
objectLabel(GrGLenum identifier,GrGLuint name,GrGLsizei length,const GrGLchar * label)331     virtual GrGLvoid objectLabel(GrGLenum identifier, GrGLuint name, GrGLsizei length, const GrGLchar *label) {}
getInternalformativ(GrGLenum target,GrGLenum internalformat,GrGLenum pname,GrGLsizei bufSize,GrGLint * params)332     virtual GrGLvoid getInternalformativ(GrGLenum target, GrGLenum internalformat, GrGLenum pname, GrGLsizei bufSize, GrGLint *params) {}
333 
334 protected:
335     // This must be called by leaf class
init(GrGLStandard standard)336     void init(GrGLStandard standard) {
337         fStandard = standard;
338         fExtensions.init(standard, fFunctions.fGetString, fFunctions.fGetStringi,
339                          fFunctions.fGetIntegerv, nullptr, GR_EGL_NO_DISPLAY);
340     }
341     GrGLTestInterface();
342 };
343 
344 #endif
345