• 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) {}
bindSampler(GrGLuint unit,GrGLuint sampler)27     virtual GrGLvoid bindSampler(GrGLuint unit, GrGLuint sampler) {}
bindTexture(GrGLenum target,GrGLuint texture)28     virtual GrGLvoid bindTexture(GrGLenum target, GrGLuint texture) {}
bindFragDataLocation(GrGLuint program,GrGLuint colorNumber,const GrGLchar * name)29     virtual GrGLvoid bindFragDataLocation(GrGLuint program, GrGLuint colorNumber, const GrGLchar* name) {}
bindFragDataLocationIndexed(GrGLuint program,GrGLuint colorNumber,GrGLuint index,const GrGLchar * name)30     virtual GrGLvoid bindFragDataLocationIndexed(GrGLuint program, GrGLuint colorNumber, GrGLuint index, const GrGLchar * name) {}
bindVertexArray(GrGLuint array)31     virtual GrGLvoid bindVertexArray(GrGLuint array) {}
blendBarrier()32     virtual GrGLvoid blendBarrier() {}
blendColor(GrGLclampf red,GrGLclampf green,GrGLclampf blue,GrGLclampf alpha)33     virtual GrGLvoid blendColor(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha) {}
blendEquation(GrGLenum mode)34     virtual GrGLvoid blendEquation(GrGLenum mode) {}
blendFunc(GrGLenum sfactor,GrGLenum dfactor)35     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)36     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)37     virtual GrGLvoid bufferData(GrGLenum target, GrGLsizeiptr size, const GrGLvoid* data, GrGLenum usage) {}
bufferSubData(GrGLenum target,GrGLintptr offset,GrGLsizeiptr size,const GrGLvoid * data)38     virtual GrGLvoid bufferSubData(GrGLenum target, GrGLintptr offset, GrGLsizeiptr size, const GrGLvoid* data) {}
checkFramebufferStatus(GrGLenum target)39     virtual GrGLenum checkFramebufferStatus(GrGLenum target) { return GR_GL_FRAMEBUFFER_COMPLETE; }
clear(GrGLbitfield mask)40     virtual GrGLvoid clear(GrGLbitfield mask) {}
clearColor(GrGLclampf red,GrGLclampf green,GrGLclampf blue,GrGLclampf alpha)41     virtual GrGLvoid clearColor(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha) {}
clearStencil(GrGLint s)42     virtual GrGLvoid clearStencil(GrGLint s) {}
colorMask(GrGLboolean red,GrGLboolean green,GrGLboolean blue,GrGLboolean alpha)43     virtual GrGLvoid colorMask(GrGLboolean red, GrGLboolean green, GrGLboolean blue, GrGLboolean alpha) {}
compileShader(GrGLuint shader)44     virtual GrGLvoid compileShader(GrGLuint shader) {}
compressedTexImage2D(GrGLenum target,GrGLint level,GrGLenum internalformat,GrGLsizei width,GrGLsizei height,GrGLint border,GrGLsizei imageSize,const GrGLvoid * data)45     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)46     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)47     virtual GrGLvoid copyTexSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
createProgram()48     virtual GrGLuint createProgram() { return 0; }
createShader(GrGLenum type)49     virtual GrGLuint createShader(GrGLenum type) { return 0; }
cullFace(GrGLenum mode)50     virtual GrGLvoid cullFace(GrGLenum mode) {}
deleteBuffers(GrGLsizei n,const GrGLuint * buffers)51     virtual GrGLvoid deleteBuffers(GrGLsizei n, const GrGLuint* buffers) {}
deleteFramebuffers(GrGLsizei n,const GrGLuint * framebuffers)52     virtual GrGLvoid deleteFramebuffers(GrGLsizei n, const GrGLuint *framebuffers) {}
deleteProgram(GrGLuint program)53     virtual GrGLvoid deleteProgram(GrGLuint program) {}
deleteQueries(GrGLsizei n,const GrGLuint * ids)54     virtual GrGLvoid deleteQueries(GrGLsizei n, const GrGLuint *ids) {}
deleteRenderbuffers(GrGLsizei n,const GrGLuint * renderbuffers)55     virtual GrGLvoid deleteRenderbuffers(GrGLsizei n, const GrGLuint *renderbuffers) {}
deleteSamplers(GrGLsizei n,const GrGLuint * samplers)56     virtual GrGLvoid deleteSamplers(GrGLsizei n, const GrGLuint* samplers) {}
deleteShader(GrGLuint shader)57     virtual GrGLvoid deleteShader(GrGLuint shader) {}
deleteTextures(GrGLsizei n,const GrGLuint * textures)58     virtual GrGLvoid deleteTextures(GrGLsizei n, const GrGLuint* textures) {}
deleteVertexArrays(GrGLsizei n,const GrGLuint * arrays)59     virtual GrGLvoid deleteVertexArrays(GrGLsizei n, const GrGLuint *arrays) {}
depthMask(GrGLboolean flag)60     virtual GrGLvoid depthMask(GrGLboolean flag) {}
disable(GrGLenum cap)61     virtual GrGLvoid disable(GrGLenum cap) {}
disableVertexAttribArray(GrGLuint index)62     virtual GrGLvoid disableVertexAttribArray(GrGLuint index) {}
drawArrays(GrGLenum mode,GrGLint first,GrGLsizei count)63     virtual GrGLvoid drawArrays(GrGLenum mode, GrGLint first, GrGLsizei count) {}
drawArraysInstanced(GrGLenum mode,GrGLint first,GrGLsizei count,GrGLsizei primcount)64     virtual GrGLvoid drawArraysInstanced(GrGLenum mode, GrGLint first, GrGLsizei count, GrGLsizei primcount) {}
drawArraysIndirect(GrGLenum mode,const GrGLvoid * indirect)65     virtual GrGLvoid drawArraysIndirect(GrGLenum mode, const GrGLvoid* indirect) {}
drawBuffer(GrGLenum mode)66     virtual GrGLvoid drawBuffer(GrGLenum mode) {}
drawBuffers(GrGLsizei n,const GrGLenum * bufs)67     virtual GrGLvoid drawBuffers(GrGLsizei n, const GrGLenum* bufs) {}
drawElements(GrGLenum mode,GrGLsizei count,GrGLenum type,const GrGLvoid * indices)68     virtual GrGLvoid drawElements(GrGLenum mode, GrGLsizei count, GrGLenum type, const GrGLvoid* indices) {}
drawElementsInstanced(GrGLenum mode,GrGLsizei count,GrGLenum type,const GrGLvoid * indices,GrGLsizei primcount)69     virtual GrGLvoid drawElementsInstanced(GrGLenum mode, GrGLsizei count, GrGLenum type, const GrGLvoid *indices, GrGLsizei primcount) {}
drawElementsIndirect(GrGLenum mode,GrGLenum type,const GrGLvoid * indirect)70     virtual GrGLvoid drawElementsIndirect(GrGLenum mode, GrGLenum type, const GrGLvoid* indirect) {}
drawRangeElements(GrGLenum mode,GrGLuint start,GrGLuint end,GrGLsizei count,GrGLenum type,const GrGLvoid * indices)71     virtual GrGLvoid drawRangeElements(GrGLenum mode, GrGLuint start, GrGLuint end, GrGLsizei count, GrGLenum type, const GrGLvoid* indices) {}
enable(GrGLenum cap)72     virtual GrGLvoid enable(GrGLenum cap) {}
enableVertexAttribArray(GrGLuint index)73     virtual GrGLvoid enableVertexAttribArray(GrGLuint index) {}
endQuery(GrGLenum target)74     virtual GrGLvoid endQuery(GrGLenum target) {}
finish()75     virtual GrGLvoid finish() {}
flush()76     virtual GrGLvoid flush() {}
flushMappedBufferRange(GrGLenum target,GrGLintptr offset,GrGLsizeiptr length)77     virtual GrGLvoid flushMappedBufferRange(GrGLenum target, GrGLintptr offset, GrGLsizeiptr length) {}
framebufferRenderbuffer(GrGLenum target,GrGLenum attachment,GrGLenum renderbuffertarget,GrGLuint renderbuffer)78     virtual GrGLvoid framebufferRenderbuffer(GrGLenum target, GrGLenum attachment, GrGLenum renderbuffertarget, GrGLuint renderbuffer) {}
framebufferTexture2D(GrGLenum target,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level)79     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)80     virtual GrGLvoid framebufferTexture2DMultisample(GrGLenum target, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level, GrGLsizei samples) {}
frontFace(GrGLenum mode)81     virtual GrGLvoid frontFace(GrGLenum mode) {}
genBuffers(GrGLsizei n,GrGLuint * buffers)82     virtual GrGLvoid genBuffers(GrGLsizei n, GrGLuint* buffers) {}
genFramebuffers(GrGLsizei n,GrGLuint * framebuffers)83     virtual GrGLvoid genFramebuffers(GrGLsizei n, GrGLuint *framebuffers) {}
generateMipmap(GrGLenum target)84     virtual GrGLvoid generateMipmap(GrGLenum target) {}
genQueries(GrGLsizei n,GrGLuint * ids)85     virtual GrGLvoid genQueries(GrGLsizei n, GrGLuint *ids) {}
genRenderbuffers(GrGLsizei n,GrGLuint * renderbuffers)86     virtual GrGLvoid genRenderbuffers(GrGLsizei n, GrGLuint *renderbuffers) {}
genSamplers(GrGLsizei n,GrGLuint * samplers)87     virtual GrGLvoid genSamplers(GrGLsizei n, GrGLuint *samplers) {}
genTextures(GrGLsizei n,GrGLuint * textures)88     virtual GrGLvoid genTextures(GrGLsizei n, GrGLuint* textures) {}
genVertexArrays(GrGLsizei n,GrGLuint * arrays)89     virtual GrGLvoid genVertexArrays(GrGLsizei n, GrGLuint *arrays) {}
getBufferParameteriv(GrGLenum target,GrGLenum pname,GrGLint * params)90     virtual GrGLvoid getBufferParameteriv(GrGLenum target, GrGLenum pname, GrGLint* params) {}
getError()91     virtual GrGLenum getError() { return GR_GL_NO_ERROR; }
getFramebufferAttachmentParameteriv(GrGLenum target,GrGLenum attachment,GrGLenum pname,GrGLint * params)92     virtual GrGLvoid getFramebufferAttachmentParameteriv(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params) {}
getIntegerv(GrGLenum pname,GrGLint * params)93     virtual GrGLvoid getIntegerv(GrGLenum pname, GrGLint* params) {}
getMultisamplefv(GrGLenum pname,GrGLuint index,GrGLfloat * val)94     virtual GrGLvoid getMultisamplefv(GrGLenum pname, GrGLuint index, GrGLfloat* val) {}
getProgramInfoLog(GrGLuint program,GrGLsizei bufsize,GrGLsizei * length,char * infolog)95     virtual GrGLvoid getProgramInfoLog(GrGLuint program, GrGLsizei bufsize, GrGLsizei* length, char* infolog) {}
getProgramiv(GrGLuint program,GrGLenum pname,GrGLint * params)96     virtual GrGLvoid getProgramiv(GrGLuint program, GrGLenum pname, GrGLint* params) {}
getQueryiv(GrGLenum GLtarget,GrGLenum pname,GrGLint * params)97     virtual GrGLvoid getQueryiv(GrGLenum GLtarget, GrGLenum pname, GrGLint *params) {}
getQueryObjecti64v(GrGLuint id,GrGLenum pname,GrGLint64 * params)98     virtual GrGLvoid getQueryObjecti64v(GrGLuint id, GrGLenum pname, GrGLint64 *params) {}
getQueryObjectiv(GrGLuint id,GrGLenum pname,GrGLint * params)99     virtual GrGLvoid getQueryObjectiv(GrGLuint id, GrGLenum pname, GrGLint *params) {}
getQueryObjectui64v(GrGLuint id,GrGLenum pname,GrGLuint64 * params)100     virtual GrGLvoid getQueryObjectui64v(GrGLuint id, GrGLenum pname, GrGLuint64 *params) {}
getQueryObjectuiv(GrGLuint id,GrGLenum pname,GrGLuint * params)101     virtual GrGLvoid getQueryObjectuiv(GrGLuint id, GrGLenum pname, GrGLuint *params) {}
getRenderbufferParameteriv(GrGLenum target,GrGLenum pname,GrGLint * params)102     virtual GrGLvoid getRenderbufferParameteriv(GrGLenum target, GrGLenum pname, GrGLint* params) {}
getShaderInfoLog(GrGLuint shader,GrGLsizei bufsize,GrGLsizei * length,char * infolog)103     virtual GrGLvoid getShaderInfoLog(GrGLuint shader, GrGLsizei bufsize, GrGLsizei* length, char* infolog) {}
getShaderiv(GrGLuint shader,GrGLenum pname,GrGLint * params)104     virtual GrGLvoid getShaderiv(GrGLuint shader, GrGLenum pname, GrGLint* params) {}
getShaderPrecisionFormat(GrGLenum shadertype,GrGLenum precisiontype,GrGLint * range,GrGLint * precision)105     virtual GrGLvoid getShaderPrecisionFormat(GrGLenum shadertype, GrGLenum precisiontype, GrGLint *range, GrGLint *precision) {}
getString(GrGLenum name)106     virtual const GrGLubyte*  getString(GrGLenum name) { return nullptr; }
getStringi(GrGLenum name,GrGLuint index)107     virtual const GrGLubyte* getStringi(GrGLenum name, GrGLuint index) { return nullptr; }
getTexLevelParameteriv(GrGLenum target,GrGLint level,GrGLenum pname,GrGLint * params)108     virtual GrGLvoid getTexLevelParameteriv(GrGLenum target, GrGLint level, GrGLenum pname, GrGLint* params) {}
getUniformLocation(GrGLuint program,const char * name)109     virtual GrGLint getUniformLocation(GrGLuint program, const char* name) { return 0; }
insertEventMarker(GrGLsizei length,const char * marker)110     virtual GrGLvoid insertEventMarker(GrGLsizei length, const char* marker) {}
invalidateBufferData(GrGLuint buffer)111     virtual GrGLvoid invalidateBufferData(GrGLuint buffer) {}
invalidateBufferSubData(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr length)112     virtual GrGLvoid invalidateBufferSubData(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr length) {}
invalidateFramebuffer(GrGLenum target,GrGLsizei numAttachments,const GrGLenum * attachments)113     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)114     virtual GrGLvoid invalidateSubFramebuffer(GrGLenum target, GrGLsizei numAttachments, const GrGLenum *attachments, GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
invalidateTexImage(GrGLuint texture,GrGLint level)115     virtual GrGLvoid invalidateTexImage(GrGLuint texture, GrGLint level) {}
invalidateTexSubImage(GrGLuint texture,GrGLint level,GrGLint xoffset,GrGLint yoffset,GrGLint zoffset,GrGLsizei width,GrGLsizei height,GrGLsizei depth)116     virtual GrGLvoid invalidateTexSubImage(GrGLuint texture, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLint zoffset, GrGLsizei width, GrGLsizei height, GrGLsizei depth) {}
isTexture(GrGLuint texture)117     virtual GrGLboolean isTexture(GrGLuint texture) { return GR_GL_FALSE; }
lineWidth(GrGLfloat width)118     virtual GrGLvoid lineWidth(GrGLfloat width) {}
linkProgram(GrGLuint program)119     virtual GrGLvoid linkProgram(GrGLuint program) {}
mapBuffer(GrGLenum target,GrGLenum access)120     virtual GrGLvoid* mapBuffer(GrGLenum target, GrGLenum access) { return nullptr; }
mapBufferRange(GrGLenum target,GrGLintptr offset,GrGLsizeiptr length,GrGLbitfield access)121     virtual GrGLvoid* mapBufferRange(GrGLenum target, GrGLintptr offset, GrGLsizeiptr length, GrGLbitfield access) { return nullptr; }
mapBufferSubData(GrGLuint target,GrGLintptr offset,GrGLsizeiptr size,GrGLenum access)122     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)123     virtual GrGLvoid* mapTexSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLenum access) { return nullptr; }
pixelStorei(GrGLenum pname,GrGLint param)124     virtual GrGLvoid pixelStorei(GrGLenum pname, GrGLint param) {}
polygonMode(GrGLenum face,GrGLenum mode)125     virtual GrGLvoid polygonMode(GrGLenum face, GrGLenum mode) {}
popGroupMarker()126     virtual GrGLvoid popGroupMarker() {}
pushGroupMarker(GrGLsizei length,const char * marker)127     virtual GrGLvoid pushGroupMarker(GrGLsizei length, const char* marker) {}
queryCounter(GrGLuint id,GrGLenum target)128     virtual GrGLvoid queryCounter(GrGLuint id, GrGLenum target) {}
rasterSamples(GrGLuint samples,GrGLboolean fixedsamplelocations)129     virtual GrGLvoid rasterSamples(GrGLuint samples, GrGLboolean fixedsamplelocations) {}
readBuffer(GrGLenum src)130     virtual GrGLvoid readBuffer(GrGLenum src) {}
readPixels(GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height,GrGLenum format,GrGLenum type,GrGLvoid * pixels)131     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)132     virtual GrGLvoid renderbufferStorage(GrGLenum target, GrGLenum internalformat, GrGLsizei width, GrGLsizei height) {}
renderbufferStorageMultisample(GrGLenum target,GrGLsizei samples,GrGLenum internalformat,GrGLsizei width,GrGLsizei height)133     virtual GrGLvoid renderbufferStorageMultisample(GrGLenum target, GrGLsizei samples, GrGLenum internalformat, GrGLsizei width, GrGLsizei height) {}
resolveMultisampleFramebuffer()134     virtual GrGLvoid resolveMultisampleFramebuffer() {}
samplerParameteri(GrGLuint sampler,GrGLenum pname,GrGLint param)135     virtual GrGLvoid samplerParameteri(GrGLuint sampler, GrGLenum pname, GrGLint param) {}
samplerParameteriv(GrGLuint sampler,GrGLenum pname,const GrGLint * param)136     virtual GrGLvoid samplerParameteriv(GrGLuint sampler, GrGLenum pname, const GrGLint* param) {}
scissor(GrGLint x,GrGLint y,GrGLsizei width,GrGLsizei height)137     virtual GrGLvoid scissor(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
bindUniformLocation(GrGLuint program,GrGLint location,const char * name)138     virtual GrGLvoid bindUniformLocation(GrGLuint program, GrGLint location, const char* name) {}
shaderSource(GrGLuint shader,GrGLsizei count,const char * const * str,const GrGLint * length)139     virtual GrGLvoid shaderSource(GrGLuint shader, GrGLsizei count, const char* const * str, const GrGLint* length) {}
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) {}
texParameterf(GrGLenum target,GrGLenum pname,GrGLfloat param)148     virtual GrGLvoid texParameterf(GrGLenum target, GrGLenum pname, GrGLfloat param) {}
texParameterfv(GrGLenum target,GrGLenum pname,const GrGLfloat * params)149     virtual GrGLvoid texParameterfv(GrGLenum target, GrGLenum pname, const GrGLfloat* params) {}
texParameteri(GrGLenum target,GrGLenum pname,GrGLint param)150     virtual GrGLvoid texParameteri(GrGLenum target, GrGLenum pname, GrGLint param) {}
texParameteriv(GrGLenum target,GrGLenum pname,const GrGLint * params)151     virtual GrGLvoid texParameteriv(GrGLenum target, GrGLenum pname, const GrGLint* params) {}
texStorage2D(GrGLenum target,GrGLsizei levels,GrGLenum internalformat,GrGLsizei width,GrGLsizei height)152     virtual GrGLvoid texStorage2D(GrGLenum target, GrGLsizei levels, GrGLenum internalformat, GrGLsizei width, GrGLsizei height) {}
discardFramebuffer(GrGLenum target,GrGLsizei numAttachments,const GrGLenum * attachments)153     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)154     virtual GrGLvoid texSubImage2D(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, const GrGLvoid* pixels) {}
textureBarrier()155     virtual GrGLvoid textureBarrier() {}
uniform1f(GrGLint location,GrGLfloat v0)156     virtual GrGLvoid uniform1f(GrGLint location, GrGLfloat v0) {}
uniform1i(GrGLint location,GrGLint v0)157     virtual GrGLvoid uniform1i(GrGLint location, GrGLint v0) {}
uniform1fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)158     virtual GrGLvoid uniform1fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform1iv(GrGLint location,GrGLsizei count,const GrGLint * v)159     virtual GrGLvoid uniform1iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniform2f(GrGLint location,GrGLfloat v0,GrGLfloat v1)160     virtual GrGLvoid uniform2f(GrGLint location, GrGLfloat v0, GrGLfloat v1) {}
uniform2i(GrGLint location,GrGLint v0,GrGLint v1)161     virtual GrGLvoid uniform2i(GrGLint location, GrGLint v0, GrGLint v1) {}
uniform2fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)162     virtual GrGLvoid uniform2fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform2iv(GrGLint location,GrGLsizei count,const GrGLint * v)163     virtual GrGLvoid uniform2iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniform3f(GrGLint location,GrGLfloat v0,GrGLfloat v1,GrGLfloat v2)164     virtual GrGLvoid uniform3f(GrGLint location, GrGLfloat v0, GrGLfloat v1, GrGLfloat v2) {}
uniform3i(GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2)165     virtual GrGLvoid uniform3i(GrGLint location, GrGLint v0, GrGLint v1, GrGLint v2) {}
uniform3fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)166     virtual GrGLvoid uniform3fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform3iv(GrGLint location,GrGLsizei count,const GrGLint * v)167     virtual GrGLvoid uniform3iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniform4f(GrGLint location,GrGLfloat v0,GrGLfloat v1,GrGLfloat v2,GrGLfloat v3)168     virtual GrGLvoid uniform4f(GrGLint location, GrGLfloat v0, GrGLfloat v1, GrGLfloat v2, GrGLfloat v3) {}
uniform4i(GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2,GrGLint v3)169     virtual GrGLvoid uniform4i(GrGLint location, GrGLint v0, GrGLint v1, GrGLint v2, GrGLint v3) {}
uniform4fv(GrGLint location,GrGLsizei count,const GrGLfloat * v)170     virtual GrGLvoid uniform4fv(GrGLint location, GrGLsizei count, const GrGLfloat* v) {}
uniform4iv(GrGLint location,GrGLsizei count,const GrGLint * v)171     virtual GrGLvoid uniform4iv(GrGLint location, GrGLsizei count, const GrGLint* v) {}
uniformMatrix2fv(GrGLint location,GrGLsizei count,GrGLboolean transpose,const GrGLfloat * value)172     virtual GrGLvoid uniformMatrix2fv(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value) {}
uniformMatrix3fv(GrGLint location,GrGLsizei count,GrGLboolean transpose,const GrGLfloat * value)173     virtual GrGLvoid uniformMatrix3fv(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value) {}
uniformMatrix4fv(GrGLint location,GrGLsizei count,GrGLboolean transpose,const GrGLfloat * value)174     virtual GrGLvoid uniformMatrix4fv(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value) {}
unmapBuffer(GrGLenum target)175     virtual GrGLboolean unmapBuffer(GrGLenum target) { return GR_GL_TRUE; }
unmapBufferSubData(const GrGLvoid * mem)176     virtual GrGLvoid unmapBufferSubData(const GrGLvoid* mem) {}
unmapTexSubImage2D(const GrGLvoid * mem)177     virtual GrGLvoid unmapTexSubImage2D(const GrGLvoid* mem) {}
useProgram(GrGLuint program)178     virtual GrGLvoid useProgram(GrGLuint program) {}
vertexAttrib1f(GrGLuint indx,const GrGLfloat value)179     virtual GrGLvoid vertexAttrib1f(GrGLuint indx, const GrGLfloat value) {}
vertexAttrib2fv(GrGLuint indx,const GrGLfloat * values)180     virtual GrGLvoid vertexAttrib2fv(GrGLuint indx, const GrGLfloat* values) {}
vertexAttrib3fv(GrGLuint indx,const GrGLfloat * values)181     virtual GrGLvoid vertexAttrib3fv(GrGLuint indx, const GrGLfloat* values) {}
vertexAttrib4fv(GrGLuint indx,const GrGLfloat * values)182     virtual GrGLvoid vertexAttrib4fv(GrGLuint indx, const GrGLfloat* values) {}
vertexAttribDivisor(GrGLuint index,GrGLuint divisor)183     virtual GrGLvoid vertexAttribDivisor(GrGLuint index, GrGLuint divisor) {}
vertexAttribIPointer(GrGLuint indx,GrGLint size,GrGLenum type,GrGLsizei stride,const GrGLvoid * ptr)184     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)185     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)186     virtual GrGLvoid viewport(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height) {}
matrixLoadf(GrGLenum matrixMode,const GrGLfloat * m)187     virtual GrGLvoid matrixLoadf(GrGLenum matrixMode, const GrGLfloat* m) {}
matrixLoadIdentity(GrGLenum)188     virtual GrGLvoid matrixLoadIdentity(GrGLenum) {}
pathCommands(GrGLuint path,GrGLsizei numCommands,const GrGLubyte * commands,GrGLsizei numCoords,GrGLenum coordType,const GrGLvoid * coords)189     virtual GrGLvoid pathCommands(GrGLuint path, GrGLsizei numCommands, const GrGLubyte *commands, GrGLsizei numCoords, GrGLenum coordType, const GrGLvoid *coords) {}
pathParameteri(GrGLuint path,GrGLenum pname,GrGLint value)190     virtual GrGLvoid pathParameteri(GrGLuint path, GrGLenum pname, GrGLint value) {}
pathParameterf(GrGLuint path,GrGLenum pname,GrGLfloat value)191     virtual GrGLvoid pathParameterf(GrGLuint path, GrGLenum pname, GrGLfloat value) {}
genPaths(GrGLsizei range)192     virtual GrGLuint genPaths(GrGLsizei range) { return 0; }
deletePaths(GrGLuint path,GrGLsizei range)193     virtual GrGLvoid deletePaths(GrGLuint path, GrGLsizei range) {}
isPath(GrGLuint path)194     virtual GrGLboolean isPath(GrGLuint path) { return true; }
pathStencilFunc(GrGLenum func,GrGLint ref,GrGLuint mask)195     virtual GrGLvoid pathStencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask) {}
stencilFillPath(GrGLuint path,GrGLenum fillMode,GrGLuint mask)196     virtual GrGLvoid stencilFillPath(GrGLuint path, GrGLenum fillMode, GrGLuint mask) {}
stencilStrokePath(GrGLuint path,GrGLint reference,GrGLuint mask)197     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)198     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)199     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)200     virtual GrGLvoid coverFillPath(GrGLuint path, GrGLenum coverMode) {}
coverStrokePath(GrGLuint name,GrGLenum coverMode)201     virtual GrGLvoid coverStrokePath(GrGLuint name, GrGLenum coverMode) {}
coverFillPathInstanced(GrGLsizei numPaths,GrGLenum pathNameType,const GrGLvoid * paths,GrGLuint pathBase,GrGLenum coverMode,GrGLenum transformType,const GrGLfloat * transformValues)202     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)203     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)204     virtual GrGLvoid stencilThenCoverFillPath(GrGLuint path, GrGLenum fillMode, GrGLuint mask, GrGLenum coverMode) {}
stencilThenCoverStrokePath(GrGLuint path,GrGLint reference,GrGLuint mask,GrGLenum coverMode)205     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)206     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)207     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)208     virtual GrGLvoid programPathFragmentInputGen(GrGLuint program, GrGLint location, GrGLenum genMode, GrGLint components,const GrGLfloat *coeffs) {}
bindFragmentInputLocation(GrGLuint program,GrGLint location,const GrGLchar * name)209     virtual GrGLvoid bindFragmentInputLocation(GrGLuint program, GrGLint location, const GrGLchar* name) {}
getProgramResourceLocation(GrGLuint program,GrGLenum programInterface,const GrGLchar * name)210     virtual GrGLint getProgramResourceLocation(GrGLuint program, GrGLenum programInterface, const GrGLchar *name) { return 0; }
coverageModulation(GrGLenum components)211     virtual GrGLvoid coverageModulation(GrGLenum components) {}
multiDrawArraysIndirect(GrGLenum mode,const GrGLvoid * indirect,GrGLsizei drawcount,GrGLsizei stride)212     virtual GrGLvoid multiDrawArraysIndirect(GrGLenum mode, const GrGLvoid *indirect, GrGLsizei drawcount, GrGLsizei stride) {}
multiDrawElementsIndirect(GrGLenum mode,GrGLenum type,const GrGLvoid * indirect,GrGLsizei drawcount,GrGLsizei stride)213     virtual GrGLvoid multiDrawElementsIndirect(GrGLenum mode, GrGLenum type, const GrGLvoid *indirect, GrGLsizei drawcount, GrGLsizei stride) {}
getTextureHandle(GrGLuint texture)214     virtual GrGLuint64 getTextureHandle(GrGLuint texture) { return 0; }
getTextureSamplerHandle(GrGLuint texture,GrGLuint sampler)215     virtual GrGLuint64 getTextureSamplerHandle(GrGLuint texture, GrGLuint sampler) { return 0; }
makeTextureHandleResident(GrGLuint64 handle)216     virtual GrGLvoid makeTextureHandleResident(GrGLuint64 handle) {}
makeTextureHandleNonResident(GrGLuint64 handle)217     virtual GrGLvoid makeTextureHandleNonResident(GrGLuint64 handle) {}
getImageHandle(GrGLuint texture,GrGLint level,GrGLboolean layered,GrGLint layer,GrGLint format)218     virtual GrGLuint64 getImageHandle(GrGLuint texture, GrGLint level, GrGLboolean layered, GrGLint layer, GrGLint format) { return 0; }
makeImageHandleResident(GrGLuint64 handle,GrGLenum access)219     virtual GrGLvoid makeImageHandleResident(GrGLuint64 handle, GrGLenum access) {}
makeImageHandleNonResident(GrGLuint64 handle)220     virtual GrGLvoid makeImageHandleNonResident(GrGLuint64 handle) {}
isTextureHandleResident(GrGLuint64 handle)221     virtual GrGLboolean isTextureHandleResident(GrGLuint64 handle) { return GR_GL_FALSE; }
isImageHandleResident(GrGLuint64 handle)222     virtual GrGLboolean isImageHandleResident(GrGLuint64 handle) { return GR_GL_FALSE; }
uniformHandleui64(GrGLint location,GrGLuint64 v0)223     virtual GrGLvoid uniformHandleui64(GrGLint location, GrGLuint64 v0) {}
uniformHandleui64v(GrGLint location,GrGLsizei count,const GrGLuint64 * value)224     virtual GrGLvoid uniformHandleui64v(GrGLint location, GrGLsizei count, const GrGLuint64 *value) {}
programUniformHandleui64(GrGLuint program,GrGLint location,GrGLuint64 v0)225     virtual GrGLvoid programUniformHandleui64(GrGLuint program, GrGLint location, GrGLuint64 v0) {}
programUniformHandleui64v(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLuint64 * value)226     virtual GrGLvoid programUniformHandleui64v(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLuint64 *value) {}
textureParameteri(GrGLuint texture,GrGLenum target,GrGLenum pname,GrGLint param)227     virtual GrGLvoid textureParameteri(GrGLuint texture, GrGLenum target, GrGLenum pname, GrGLint param) {}
textureParameteriv(GrGLuint texture,GrGLenum target,GrGLenum pname,const GrGLint * param)228     virtual GrGLvoid textureParameteriv(GrGLuint texture, GrGLenum target, GrGLenum pname, const GrGLint *param) {}
textureParameterf(GrGLuint texture,GrGLenum target,GrGLenum pname,float param)229     virtual GrGLvoid textureParameterf(GrGLuint texture, GrGLenum target, GrGLenum pname, float param) {}
textureParameterfv(GrGLuint texture,GrGLenum target,GrGLenum pname,const float * param)230     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)231     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)232     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)233     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)234     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)235     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)236     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)237     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)238     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)239     virtual GrGLvoid getTextureImage(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum format, GrGLenum type, GrGLvoid *pixels) {}
getTextureParameterfv(GrGLuint texture,GrGLenum target,GrGLenum pname,float * params)240     virtual GrGLvoid getTextureParameterfv(GrGLuint texture, GrGLenum target, GrGLenum pname, float *params) {}
getTextureParameteriv(GrGLuint texture,GrGLenum target,GrGLenum pname,GrGLint * params)241     virtual GrGLvoid getTextureParameteriv(GrGLuint texture, GrGLenum target, GrGLenum pname, GrGLint *params) {}
getTextureLevelParameterfv(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum pname,float * params)242     virtual GrGLvoid getTextureLevelParameterfv(GrGLuint texture, GrGLenum target, GrGLint level, GrGLenum pname, float *params) {}
getTextureLevelParameteriv(GrGLuint texture,GrGLenum target,GrGLint level,GrGLenum pname,GrGLint * params)243     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)244     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)245     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)246     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)247     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)248     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)249     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)250     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)251     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)252     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)253     virtual GrGLvoid getCompressedTextureImage(GrGLuint texture, GrGLenum target, GrGLint level, GrGLvoid *img) {}
namedBufferData(GrGLuint buffer,GrGLsizeiptr size,const GrGLvoid * data,GrGLenum usage)254     virtual GrGLvoid namedBufferData(GrGLuint buffer, GrGLsizeiptr size, const GrGLvoid *data, GrGLenum usage) {}
namedBufferSubData(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr size,const GrGLvoid * data)255     virtual GrGLvoid namedBufferSubData(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr size, const GrGLvoid *data) {}
mapNamedBuffer(GrGLuint buffer,GrGLenum access)256     virtual GrGLvoid* mapNamedBuffer(GrGLuint buffer, GrGLenum access) { return nullptr; }
unmapNamedBuffer(GrGLuint buffer)257     virtual GrGLboolean unmapNamedBuffer(GrGLuint buffer) { return GR_GL_FALSE; }
getNamedBufferParameteriv(GrGLuint buffer,GrGLenum pname,GrGLint * params)258     virtual GrGLvoid getNamedBufferParameteriv(GrGLuint buffer, GrGLenum pname, GrGLint *params) {}
getNamedBufferPointerv(GrGLuint buffer,GrGLenum pname,GrGLvoid ** params)259     virtual GrGLvoid getNamedBufferPointerv(GrGLuint buffer, GrGLenum pname, GrGLvoid* *params) {}
getNamedBufferSubData(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr size,GrGLvoid * data)260     virtual GrGLvoid getNamedBufferSubData(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr size, GrGLvoid *data) {}
programUniform1f(GrGLuint program,GrGLint location,float v0)261     virtual GrGLvoid programUniform1f(GrGLuint program, GrGLint location, float v0) {}
programUniform2f(GrGLuint program,GrGLint location,float v0,float v1)262     virtual GrGLvoid programUniform2f(GrGLuint program, GrGLint location, float v0, float v1) {}
programUniform3f(GrGLuint program,GrGLint location,float v0,float v1,float v2)263     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)264     virtual GrGLvoid programUniform4f(GrGLuint program, GrGLint location, float v0, float v1, float v2, float v3) {}
programUniform1i(GrGLuint program,GrGLint location,GrGLint v0)265     virtual GrGLvoid programUniform1i(GrGLuint program, GrGLint location, GrGLint v0) {}
programUniform2i(GrGLuint program,GrGLint location,GrGLint v0,GrGLint v1)266     virtual GrGLvoid programUniform2i(GrGLuint program, GrGLint location, GrGLint v0, GrGLint v1) {}
programUniform3i(GrGLuint program,GrGLint location,GrGLint v0,GrGLint v1,GrGLint v2)267     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)268     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)269     virtual GrGLvoid programUniform1fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform2fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)270     virtual GrGLvoid programUniform2fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform3fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)271     virtual GrGLvoid programUniform3fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform4fv(GrGLuint program,GrGLint location,GrGLsizei count,const float * value)272     virtual GrGLvoid programUniform4fv(GrGLuint program, GrGLint location, GrGLsizei count, const float *value) {}
programUniform1iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)273     virtual GrGLvoid programUniform1iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniform2iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)274     virtual GrGLvoid programUniform2iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniform3iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)275     virtual GrGLvoid programUniform3iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniform4iv(GrGLuint program,GrGLint location,GrGLsizei count,const GrGLint * value)276     virtual GrGLvoid programUniform4iv(GrGLuint program, GrGLint location, GrGLsizei count, const GrGLint *value) {}
programUniformMatrix2fv(GrGLuint program,GrGLint location,GrGLsizei count,GrGLboolean transpose,const float * value)277     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)278     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)279     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)280     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)281     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)282     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)283     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)284     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)285     virtual GrGLvoid programUniformMatrix4x3fv(GrGLuint program, GrGLint location, GrGLsizei count, GrGLboolean transpose, const float *value) {}
namedRenderbufferStorage(GrGLuint renderbuffer,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLsizei height)286     virtual GrGLvoid namedRenderbufferStorage(GrGLuint renderbuffer, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLsizei height) {}
getNamedRenderbufferParameteriv(GrGLuint renderbuffer,GrGLenum pname,GrGLint * params)287     virtual GrGLvoid getNamedRenderbufferParameteriv(GrGLuint renderbuffer, GrGLenum pname, GrGLint *params) {}
namedRenderbufferStorageMultisample(GrGLuint renderbuffer,GrGLsizei samples,GrGLenum GrGLinternalformat,GrGLsizei width,GrGLsizei height)288     virtual GrGLvoid namedRenderbufferStorageMultisample(GrGLuint renderbuffer, GrGLsizei samples, GrGLenum GrGLinternalformat, GrGLsizei width, GrGLsizei height) {}
checkNamedFramebufferStatus(GrGLuint framebuffer,GrGLenum target)289     virtual GrGLenum checkNamedFramebufferStatus(GrGLuint framebuffer, GrGLenum target) { return GR_GL_FRAMEBUFFER_COMPLETE; }
namedFramebufferTexture1D(GrGLuint framebuffer,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level)290     virtual GrGLvoid namedFramebufferTexture1D(GrGLuint framebuffer, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level) {}
namedFramebufferTexture2D(GrGLuint framebuffer,GrGLenum attachment,GrGLenum textarget,GrGLuint texture,GrGLint level)291     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)292     virtual GrGLvoid namedFramebufferTexture3D(GrGLuint framebuffer, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level, GrGLint zoffset) {}
namedFramebufferRenderbuffer(GrGLuint framebuffer,GrGLenum attachment,GrGLenum renderbuffertarget,GrGLuint renderbuffer)293     virtual GrGLvoid namedFramebufferRenderbuffer(GrGLuint framebuffer, GrGLenum attachment, GrGLenum renderbuffertarget, GrGLuint renderbuffer) {}
getNamedFramebufferAttachmentParameteriv(GrGLuint framebuffer,GrGLenum attachment,GrGLenum pname,GrGLint * params)294     virtual GrGLvoid getNamedFramebufferAttachmentParameteriv(GrGLuint framebuffer, GrGLenum attachment, GrGLenum pname, GrGLint *params) {}
generateTextureMipmap(GrGLuint texture,GrGLenum target)295     virtual GrGLvoid generateTextureMipmap(GrGLuint texture, GrGLenum target) {}
framebufferDrawBuffer(GrGLuint framebuffer,GrGLenum mode)296     virtual GrGLvoid framebufferDrawBuffer(GrGLuint framebuffer, GrGLenum mode) {}
framebufferDrawBuffers(GrGLuint framebuffer,GrGLsizei n,const GrGLenum * bufs)297     virtual GrGLvoid framebufferDrawBuffers(GrGLuint framebuffer, GrGLsizei n, const GrGLenum *bufs) {}
framebufferReadBuffer(GrGLuint framebuffer,GrGLenum mode)298     virtual GrGLvoid framebufferReadBuffer(GrGLuint framebuffer, GrGLenum mode) {}
getFramebufferParameteriv(GrGLuint framebuffer,GrGLenum pname,GrGLint * param)299     virtual GrGLvoid getFramebufferParameteriv(GrGLuint framebuffer, GrGLenum pname, GrGLint *param) {}
namedCopyBufferSubData(GrGLuint readBuffer,GrGLuint writeBuffer,GrGLintptr readOffset,GrGLintptr writeOffset,GrGLsizeiptr size)300     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)301     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)302     virtual GrGLvoid vertexArrayColorOffset(GrGLuint vaobj, GrGLuint buffer, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayEdgeFlagOffset(GrGLuint vaobj,GrGLuint buffer,GrGLsizei stride,GrGLintptr offset)303     virtual GrGLvoid vertexArrayEdgeFlagOffset(GrGLuint vaobj, GrGLuint buffer, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayIndexOffset(GrGLuint vaobj,GrGLuint buffer,GrGLenum type,GrGLsizei stride,GrGLintptr offset)304     virtual GrGLvoid vertexArrayIndexOffset(GrGLuint vaobj, GrGLuint buffer, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
vertexArrayNormalOffset(GrGLuint vaobj,GrGLuint buffer,GrGLenum type,GrGLsizei stride,GrGLintptr offset)305     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)306     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)307     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)308     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)309     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)310     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)311     virtual GrGLvoid vertexArrayVertexAttribIOffset(GrGLuint vaobj, GrGLuint buffer, GrGLuint index, GrGLint size, GrGLenum type, GrGLsizei stride, GrGLintptr offset) {}
enableVertexArray(GrGLuint vaobj,GrGLenum array)312     virtual GrGLvoid enableVertexArray(GrGLuint vaobj, GrGLenum array) {}
disableVertexArray(GrGLuint vaobj,GrGLenum array)313     virtual GrGLvoid disableVertexArray(GrGLuint vaobj, GrGLenum array) {}
enableVertexArrayAttrib(GrGLuint vaobj,GrGLuint index)314     virtual GrGLvoid enableVertexArrayAttrib(GrGLuint vaobj, GrGLuint index) {}
disableVertexArrayAttrib(GrGLuint vaobj,GrGLuint index)315     virtual GrGLvoid disableVertexArrayAttrib(GrGLuint vaobj, GrGLuint index) {}
getVertexArrayIntegerv(GrGLuint vaobj,GrGLenum pname,GrGLint * param)316     virtual GrGLvoid getVertexArrayIntegerv(GrGLuint vaobj, GrGLenum pname, GrGLint *param) {}
getVertexArrayPointerv(GrGLuint vaobj,GrGLenum pname,GrGLvoid ** param)317     virtual GrGLvoid getVertexArrayPointerv(GrGLuint vaobj, GrGLenum pname, GrGLvoid **param) {}
getVertexArrayIntegeri_v(GrGLuint vaobj,GrGLuint index,GrGLenum pname,GrGLint * param)318     virtual GrGLvoid getVertexArrayIntegeri_v(GrGLuint vaobj, GrGLuint index, GrGLenum pname, GrGLint *param) {}
getVertexArrayPointeri_v(GrGLuint vaobj,GrGLuint index,GrGLenum pname,GrGLvoid ** param)319     virtual GrGLvoid getVertexArrayPointeri_v(GrGLuint vaobj, GrGLuint index, GrGLenum pname, GrGLvoid **param) {}
mapNamedBufferRange(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr length,GrGLbitfield access)320     virtual GrGLvoid* mapNamedBufferRange(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr length, GrGLbitfield access) { return nullptr; }
flushMappedNamedBufferRange(GrGLuint buffer,GrGLintptr offset,GrGLsizeiptr length)321     virtual GrGLvoid flushMappedNamedBufferRange(GrGLuint buffer, GrGLintptr offset, GrGLsizeiptr length) {}
textureBuffer(GrGLuint texture,GrGLenum target,GrGLenum internalformat,GrGLuint buffer)322     virtual GrGLvoid textureBuffer(GrGLuint texture, GrGLenum target, GrGLenum internalformat, GrGLuint buffer) {}
fenceSync(GrGLenum condition,GrGLbitfield flags)323     virtual GrGLsync fenceSync(GrGLenum condition, GrGLbitfield flags) { return nullptr;  }
isSync(GrGLsync)324     virtual GrGLboolean isSync(GrGLsync) { return false;  }
clientWaitSync(GrGLsync sync,GrGLbitfield flags,GrGLuint64 timeout)325     virtual GrGLenum clientWaitSync(GrGLsync sync, GrGLbitfield flags, GrGLuint64 timeout) { return GR_GL_WAIT_FAILED;  }
waitSync(GrGLsync sync,GrGLbitfield flags,GrGLuint64 timeout)326     virtual GrGLvoid waitSync(GrGLsync sync, GrGLbitfield flags, GrGLuint64 timeout) {}
deleteSync(GrGLsync sync)327     virtual GrGLvoid deleteSync(GrGLsync sync) {}
debugMessageControl(GrGLenum source,GrGLenum type,GrGLenum severity,GrGLsizei count,const GrGLuint * ids,GrGLboolean enabled)328     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)329     virtual GrGLvoid debugMessageInsert(GrGLenum source, GrGLenum type, GrGLuint id, GrGLenum severity, GrGLsizei length,  const GrGLchar* buf) {}
debugMessageCallback(GRGLDEBUGPROC callback,const GrGLvoid * userParam)330     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)331     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)332     virtual GrGLvoid pushDebugGroup(GrGLenum source, GrGLuint id, GrGLsizei length,  const GrGLchar * message) {}
popDebugGroup()333     virtual GrGLvoid popDebugGroup() {}
objectLabel(GrGLenum identifier,GrGLuint name,GrGLsizei length,const GrGLchar * label)334     virtual GrGLvoid objectLabel(GrGLenum identifier, GrGLuint name, GrGLsizei length, const GrGLchar *label) {}
getInternalformativ(GrGLenum target,GrGLenum internalformat,GrGLenum pname,GrGLsizei bufSize,GrGLint * params)335     virtual GrGLvoid getInternalformativ(GrGLenum target, GrGLenum internalformat, GrGLenum pname, GrGLsizei bufSize, GrGLint *params) {}
programBinary(GrGLuint program,GrGLenum binaryFormat,void * binary,GrGLsizei length)336     virtual GrGLvoid programBinary(GrGLuint program, GrGLenum binaryFormat, void *binary, GrGLsizei length) {}
getProgramBinary(GrGLuint program,GrGLsizei bufsize,GrGLsizei * length,GrGLenum * binaryFormat,void * binary)337     virtual GrGLvoid getProgramBinary(GrGLuint program, GrGLsizei bufsize, GrGLsizei* length, GrGLenum *binaryFormat, void *binary) {}
programParameteri(GrGLuint program,GrGLenum pname,GrGLint value)338     virtual GrGLvoid programParameteri(GrGLuint program, GrGLenum pname, GrGLint value) {}
339 
340 protected:
341     // This must be called by leaf class
init(GrGLStandard standard)342     void init(GrGLStandard standard) {
343         fStandard = standard;
344         fExtensions.init(standard, fFunctions.fGetString, fFunctions.fGetStringi,
345                          fFunctions.fGetIntegerv, nullptr, GR_EGL_NO_DISPLAY);
346     }
347     GrGLTestInterface();
348 };
349 
350 #endif
351