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