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