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 #include "GrGLTestInterface.h" 9 10 namespace { 11 template<typename R, typename... A> 12 GrGLFunction<R(*)(A...)> bind_to_member(GrGLTestInterface* interface, 13 R (GrGLTestInterface::*member)(A...)) { 14 return [interface, member] (A... a) -> R { return (interface->*member)(a...); }; 15 } 16 } // anonymous namespace 17 18 GrGLTestInterface::GrGLTestInterface() { 19 fFunctions.fActiveTexture = bind_to_member(this, &GrGLTestInterface::activeTexture); 20 fFunctions.fAttachShader = bind_to_member(this, &GrGLTestInterface::attachShader); 21 fFunctions.fBeginQuery = bind_to_member(this, &GrGLTestInterface::beginQuery); 22 fFunctions.fBindAttribLocation = bind_to_member(this, &GrGLTestInterface::bindAttribLocation); 23 fFunctions.fBindBuffer = bind_to_member(this, &GrGLTestInterface::bindBuffer); 24 fFunctions.fBindFramebuffer = bind_to_member(this, &GrGLTestInterface::bindFramebuffer); 25 fFunctions.fBindRenderbuffer = bind_to_member(this, &GrGLTestInterface::bindRenderbuffer); 26 fFunctions.fBindTexture = bind_to_member(this, &GrGLTestInterface::bindTexture); 27 fFunctions.fBindFragDataLocation = bind_to_member(this, &GrGLTestInterface::bindFragDataLocation); 28 fFunctions.fBindFragDataLocationIndexed = bind_to_member(this, &GrGLTestInterface::bindFragDataLocationIndexed); 29 fFunctions.fBindVertexArray = bind_to_member(this, &GrGLTestInterface::bindVertexArray); 30 fFunctions.fBlendBarrier = bind_to_member(this, &GrGLTestInterface::blendBarrier); 31 fFunctions.fBlendColor = bind_to_member(this, &GrGLTestInterface::blendColor); 32 fFunctions.fBlendEquation = bind_to_member(this, &GrGLTestInterface::blendEquation); 33 fFunctions.fBlendFunc = bind_to_member(this, &GrGLTestInterface::blendFunc); 34 fFunctions.fBlitFramebuffer = bind_to_member(this, &GrGLTestInterface::blitFramebuffer); 35 fFunctions.fBufferData = bind_to_member(this, &GrGLTestInterface::bufferData); 36 fFunctions.fBufferSubData = bind_to_member(this, &GrGLTestInterface::bufferSubData); 37 fFunctions.fCheckFramebufferStatus = bind_to_member(this, &GrGLTestInterface::checkFramebufferStatus); 38 fFunctions.fClear = bind_to_member(this, &GrGLTestInterface::clear); 39 fFunctions.fClearColor = bind_to_member(this, &GrGLTestInterface::clearColor); 40 fFunctions.fClearStencil = bind_to_member(this, &GrGLTestInterface::clearStencil); 41 fFunctions.fColorMask = bind_to_member(this, &GrGLTestInterface::colorMask); 42 fFunctions.fCompileShader = bind_to_member(this, &GrGLTestInterface::compileShader); 43 fFunctions.fCompressedTexImage2D = bind_to_member(this, &GrGLTestInterface::compressedTexImage2D); 44 fFunctions.fCompressedTexSubImage2D = bind_to_member(this, &GrGLTestInterface::compressedTexSubImage2D); 45 fFunctions.fCopyTexSubImage2D = bind_to_member(this, &GrGLTestInterface::copyTexSubImage2D); 46 fFunctions.fCreateProgram = bind_to_member(this, &GrGLTestInterface::createProgram); 47 fFunctions.fCreateShader = bind_to_member(this, &GrGLTestInterface::createShader); 48 fFunctions.fCullFace = bind_to_member(this, &GrGLTestInterface::cullFace); 49 fFunctions.fDeleteBuffers = bind_to_member(this, &GrGLTestInterface::deleteBuffers); 50 fFunctions.fDeleteFramebuffers = bind_to_member(this, &GrGLTestInterface::deleteFramebuffers); 51 fFunctions.fDeleteProgram = bind_to_member(this, &GrGLTestInterface::deleteProgram); 52 fFunctions.fDeleteQueries = bind_to_member(this, &GrGLTestInterface::deleteQueries); 53 fFunctions.fDeleteRenderbuffers = bind_to_member(this, &GrGLTestInterface::deleteRenderbuffers); 54 fFunctions.fDeleteShader = bind_to_member(this, &GrGLTestInterface::deleteShader); 55 fFunctions.fDeleteTextures = bind_to_member(this, &GrGLTestInterface::deleteTextures); 56 fFunctions.fDeleteVertexArrays = bind_to_member(this, &GrGLTestInterface::deleteVertexArrays); 57 fFunctions.fDepthMask = bind_to_member(this, &GrGLTestInterface::depthMask); 58 fFunctions.fDisable = bind_to_member(this, &GrGLTestInterface::disable); 59 fFunctions.fDisableVertexAttribArray = bind_to_member(this, &GrGLTestInterface::disableVertexAttribArray); 60 fFunctions.fDrawArrays = bind_to_member(this, &GrGLTestInterface::drawArrays); 61 fFunctions.fDrawArraysInstanced = bind_to_member(this, &GrGLTestInterface::drawArraysInstanced); 62 fFunctions.fDrawArraysIndirect = bind_to_member(this, &GrGLTestInterface::drawArraysIndirect); 63 fFunctions.fDrawBuffer = bind_to_member(this, &GrGLTestInterface::drawBuffer); 64 fFunctions.fDrawBuffers = bind_to_member(this, &GrGLTestInterface::drawBuffers); 65 fFunctions.fDrawElements = bind_to_member(this, &GrGLTestInterface::drawElements); 66 fFunctions.fDrawElementsInstanced = bind_to_member(this, &GrGLTestInterface::drawElementsInstanced); 67 fFunctions.fDrawElementsIndirect = bind_to_member(this, &GrGLTestInterface::drawElementsIndirect); 68 fFunctions.fDrawRangeElements = bind_to_member(this, &GrGLTestInterface::drawRangeElements); 69 fFunctions.fEnable = bind_to_member(this, &GrGLTestInterface::enable); 70 fFunctions.fEnableVertexAttribArray = bind_to_member(this, &GrGLTestInterface::enableVertexAttribArray); 71 fFunctions.fEndQuery = bind_to_member(this, &GrGLTestInterface::endQuery); 72 fFunctions.fFinish = bind_to_member(this, &GrGLTestInterface::finish); 73 fFunctions.fFlush = bind_to_member(this, &GrGLTestInterface::flush); 74 fFunctions.fFlushMappedBufferRange = bind_to_member(this, &GrGLTestInterface::flushMappedBufferRange); 75 fFunctions.fFramebufferRenderbuffer = bind_to_member(this, &GrGLTestInterface::framebufferRenderbuffer); 76 fFunctions.fFramebufferTexture2D = bind_to_member(this, &GrGLTestInterface::framebufferTexture2D); 77 fFunctions.fFramebufferTexture2DMultisample = bind_to_member(this, &GrGLTestInterface::framebufferTexture2DMultisample); 78 fFunctions.fFrontFace = bind_to_member(this, &GrGLTestInterface::frontFace); 79 fFunctions.fGenBuffers = bind_to_member(this, &GrGLTestInterface::genBuffers); 80 fFunctions.fGenFramebuffers = bind_to_member(this, &GrGLTestInterface::genFramebuffers); 81 fFunctions.fGenerateMipmap = bind_to_member(this, &GrGLTestInterface::generateMipmap); 82 fFunctions.fGenQueries = bind_to_member(this, &GrGLTestInterface::genQueries); 83 fFunctions.fGenRenderbuffers = bind_to_member(this, &GrGLTestInterface::genRenderbuffers); 84 fFunctions.fGenTextures = bind_to_member(this, &GrGLTestInterface::genTextures); 85 fFunctions.fGenVertexArrays = bind_to_member(this, &GrGLTestInterface::genVertexArrays); 86 fFunctions.fGetBufferParameteriv = bind_to_member(this, &GrGLTestInterface::getBufferParameteriv); 87 fFunctions.fGetError = bind_to_member(this, &GrGLTestInterface::getError); 88 fFunctions.fGetFramebufferAttachmentParameteriv = bind_to_member(this, &GrGLTestInterface::getFramebufferAttachmentParameteriv); 89 fFunctions.fGetIntegerv = bind_to_member(this, &GrGLTestInterface::getIntegerv); 90 fFunctions.fGetMultisamplefv = bind_to_member(this, &GrGLTestInterface::getMultisamplefv); 91 fFunctions.fGetProgramInfoLog = bind_to_member(this, &GrGLTestInterface::getProgramInfoLog); 92 fFunctions.fGetProgramiv = bind_to_member(this, &GrGLTestInterface::getProgramiv); 93 fFunctions.fGetQueryiv = bind_to_member(this, &GrGLTestInterface::getQueryiv); 94 fFunctions.fGetQueryObjecti64v = bind_to_member(this, &GrGLTestInterface::getQueryObjecti64v); 95 fFunctions.fGetQueryObjectiv = bind_to_member(this, &GrGLTestInterface::getQueryObjectiv); 96 fFunctions.fGetQueryObjectui64v = bind_to_member(this, &GrGLTestInterface::getQueryObjectui64v); 97 fFunctions.fGetQueryObjectuiv = bind_to_member(this, &GrGLTestInterface::getQueryObjectuiv); 98 fFunctions.fGetRenderbufferParameteriv = bind_to_member(this, &GrGLTestInterface::getRenderbufferParameteriv); 99 fFunctions.fGetShaderInfoLog = bind_to_member(this, &GrGLTestInterface::getShaderInfoLog); 100 fFunctions.fGetShaderiv = bind_to_member(this, &GrGLTestInterface::getShaderiv); 101 fFunctions.fGetShaderPrecisionFormat = bind_to_member(this, &GrGLTestInterface::getShaderPrecisionFormat); 102 fFunctions.fGetString = bind_to_member(this, &GrGLTestInterface::getString); 103 fFunctions.fGetStringi = bind_to_member(this, &GrGLTestInterface::getStringi); 104 fFunctions.fGetTexLevelParameteriv = bind_to_member(this, &GrGLTestInterface::getTexLevelParameteriv); 105 fFunctions.fGetUniformLocation = bind_to_member(this, &GrGLTestInterface::getUniformLocation); 106 fFunctions.fInsertEventMarker = bind_to_member(this, &GrGLTestInterface::insertEventMarker); 107 fFunctions.fInvalidateBufferData = bind_to_member(this, &GrGLTestInterface::invalidateBufferData); 108 fFunctions.fInvalidateBufferSubData = bind_to_member(this, &GrGLTestInterface::invalidateBufferSubData); 109 fFunctions.fInvalidateFramebuffer = bind_to_member(this, &GrGLTestInterface::invalidateFramebuffer); 110 fFunctions.fInvalidateSubFramebuffer = bind_to_member(this, &GrGLTestInterface::invalidateSubFramebuffer); 111 fFunctions.fInvalidateTexImage = bind_to_member(this, &GrGLTestInterface::invalidateTexImage); 112 fFunctions.fInvalidateTexSubImage = bind_to_member(this, &GrGLTestInterface::invalidateTexSubImage); 113 fFunctions.fIsTexture = bind_to_member(this, &GrGLTestInterface::isTexture); 114 fFunctions.fLineWidth = bind_to_member(this, &GrGLTestInterface::lineWidth); 115 fFunctions.fLinkProgram = bind_to_member(this, &GrGLTestInterface::linkProgram); 116 fFunctions.fMapBuffer = bind_to_member(this, &GrGLTestInterface::mapBuffer); 117 fFunctions.fMapBufferRange = bind_to_member(this, &GrGLTestInterface::mapBufferRange); 118 fFunctions.fMapBufferSubData = bind_to_member(this, &GrGLTestInterface::mapBufferSubData); 119 fFunctions.fMapTexSubImage2D = bind_to_member(this, &GrGLTestInterface::mapTexSubImage2D); 120 fFunctions.fMinSampleShading = bind_to_member(this, &GrGLTestInterface::minSampleShading); 121 fFunctions.fPixelStorei = bind_to_member(this, &GrGLTestInterface::pixelStorei); 122 fFunctions.fPolygonMode = bind_to_member(this, &GrGLTestInterface::polygonMode); 123 fFunctions.fPopGroupMarker = bind_to_member(this, &GrGLTestInterface::popGroupMarker); 124 fFunctions.fPushGroupMarker = bind_to_member(this, &GrGLTestInterface::pushGroupMarker); 125 fFunctions.fQueryCounter = bind_to_member(this, &GrGLTestInterface::queryCounter); 126 fFunctions.fRasterSamples = bind_to_member(this, &GrGLTestInterface::rasterSamples); 127 fFunctions.fReadBuffer = bind_to_member(this, &GrGLTestInterface::readBuffer); 128 fFunctions.fReadPixels = bind_to_member(this, &GrGLTestInterface::readPixels); 129 fFunctions.fRenderbufferStorage = bind_to_member(this, &GrGLTestInterface::renderbufferStorage); 130 fFunctions.fRenderbufferStorageMultisample = bind_to_member(this, &GrGLTestInterface::renderbufferStorageMultisample); 131 fFunctions.fResolveMultisampleFramebuffer = bind_to_member(this, &GrGLTestInterface::resolveMultisampleFramebuffer); 132 fFunctions.fScissor = bind_to_member(this, &GrGLTestInterface::scissor); 133 fFunctions.fBindUniformLocation = bind_to_member(this, &GrGLTestInterface::bindUniformLocation); 134 fFunctions.fShaderSource = bind_to_member(this, &GrGLTestInterface::shaderSource); 135 fFunctions.fStencilFunc = bind_to_member(this, &GrGLTestInterface::stencilFunc); 136 fFunctions.fStencilFuncSeparate = bind_to_member(this, &GrGLTestInterface::stencilFuncSeparate); 137 fFunctions.fStencilMask = bind_to_member(this, &GrGLTestInterface::stencilMask); 138 fFunctions.fStencilMaskSeparate = bind_to_member(this, &GrGLTestInterface::stencilMaskSeparate); 139 fFunctions.fStencilOp = bind_to_member(this, &GrGLTestInterface::stencilOp); 140 fFunctions.fStencilOpSeparate = bind_to_member(this, &GrGLTestInterface::stencilOpSeparate); 141 fFunctions.fTexBuffer = bind_to_member(this, &GrGLTestInterface::texBuffer); 142 fFunctions.fTexImage2D = bind_to_member(this, &GrGLTestInterface::texImage2D); 143 fFunctions.fTexParameteri = bind_to_member(this, &GrGLTestInterface::texParameteri); 144 fFunctions.fTexParameteriv = bind_to_member(this, &GrGLTestInterface::texParameteriv); 145 fFunctions.fTexStorage2D = bind_to_member(this, &GrGLTestInterface::texStorage2D); 146 fFunctions.fDiscardFramebuffer = bind_to_member(this, &GrGLTestInterface::discardFramebuffer); 147 fFunctions.fTexSubImage2D = bind_to_member(this, &GrGLTestInterface::texSubImage2D); 148 fFunctions.fTextureBarrier = bind_to_member(this, &GrGLTestInterface::textureBarrier); 149 fFunctions.fUniform1f = bind_to_member(this, &GrGLTestInterface::uniform1f); 150 fFunctions.fUniform1i = bind_to_member(this, &GrGLTestInterface::uniform1i); 151 fFunctions.fUniform1fv = bind_to_member(this, &GrGLTestInterface::uniform1fv); 152 fFunctions.fUniform1iv = bind_to_member(this, &GrGLTestInterface::uniform1iv); 153 fFunctions.fUniform2f = bind_to_member(this, &GrGLTestInterface::uniform2f); 154 fFunctions.fUniform2i = bind_to_member(this, &GrGLTestInterface::uniform2i); 155 fFunctions.fUniform2fv = bind_to_member(this, &GrGLTestInterface::uniform2fv); 156 fFunctions.fUniform2iv = bind_to_member(this, &GrGLTestInterface::uniform2iv); 157 fFunctions.fUniform3f = bind_to_member(this, &GrGLTestInterface::uniform3f); 158 fFunctions.fUniform3i = bind_to_member(this, &GrGLTestInterface::uniform3i); 159 fFunctions.fUniform3fv = bind_to_member(this, &GrGLTestInterface::uniform3fv); 160 fFunctions.fUniform3iv = bind_to_member(this, &GrGLTestInterface::uniform3iv); 161 fFunctions.fUniform4f = bind_to_member(this, &GrGLTestInterface::uniform4f); 162 fFunctions.fUniform4i = bind_to_member(this, &GrGLTestInterface::uniform4i); 163 fFunctions.fUniform4fv = bind_to_member(this, &GrGLTestInterface::uniform4fv); 164 fFunctions.fUniform4iv = bind_to_member(this, &GrGLTestInterface::uniform4iv); 165 fFunctions.fUniformMatrix2fv = bind_to_member(this, &GrGLTestInterface::uniformMatrix2fv); 166 fFunctions.fUniformMatrix3fv = bind_to_member(this, &GrGLTestInterface::uniformMatrix3fv); 167 fFunctions.fUniformMatrix4fv = bind_to_member(this, &GrGLTestInterface::uniformMatrix4fv); 168 fFunctions.fUnmapBuffer = bind_to_member(this, &GrGLTestInterface::unmapBuffer); 169 fFunctions.fUnmapBufferSubData = bind_to_member(this, &GrGLTestInterface::unmapBufferSubData); 170 fFunctions.fUnmapTexSubImage2D = bind_to_member(this, &GrGLTestInterface::unmapTexSubImage2D); 171 fFunctions.fUseProgram = bind_to_member(this, &GrGLTestInterface::useProgram); 172 fFunctions.fVertexAttrib1f = bind_to_member(this, &GrGLTestInterface::vertexAttrib1f); 173 fFunctions.fVertexAttrib2fv = bind_to_member(this, &GrGLTestInterface::vertexAttrib2fv); 174 fFunctions.fVertexAttrib3fv = bind_to_member(this, &GrGLTestInterface::vertexAttrib3fv); 175 fFunctions.fVertexAttrib4fv = bind_to_member(this, &GrGLTestInterface::vertexAttrib4fv); 176 fFunctions.fVertexAttribDivisor = bind_to_member(this, &GrGLTestInterface::vertexAttribDivisor); 177 fFunctions.fVertexAttribIPointer = bind_to_member(this, &GrGLTestInterface::vertexAttribIPointer); 178 fFunctions.fVertexAttribPointer = bind_to_member(this, &GrGLTestInterface::vertexAttribPointer); 179 fFunctions.fViewport = bind_to_member(this, &GrGLTestInterface::viewport); 180 fFunctions.fMatrixLoadf = bind_to_member(this, &GrGLTestInterface::matrixLoadf); 181 fFunctions.fMatrixLoadIdentity = bind_to_member(this, &GrGLTestInterface::matrixLoadIdentity); 182 fFunctions.fPathCommands = bind_to_member(this, &GrGLTestInterface::pathCommands); 183 fFunctions.fPathParameteri = bind_to_member(this, &GrGLTestInterface::pathParameteri); 184 fFunctions.fPathParameterf = bind_to_member(this, &GrGLTestInterface::pathParameterf); 185 fFunctions.fGenPaths = bind_to_member(this, &GrGLTestInterface::genPaths); 186 fFunctions.fDeletePaths = bind_to_member(this, &GrGLTestInterface::deletePaths); 187 fFunctions.fIsPath = bind_to_member(this, &GrGLTestInterface::isPath); 188 fFunctions.fPathStencilFunc = bind_to_member(this, &GrGLTestInterface::pathStencilFunc); 189 fFunctions.fStencilFillPath = bind_to_member(this, &GrGLTestInterface::stencilFillPath); 190 fFunctions.fStencilStrokePath = bind_to_member(this, &GrGLTestInterface::stencilStrokePath); 191 fFunctions.fStencilFillPathInstanced = bind_to_member(this, &GrGLTestInterface::stencilFillPathInstanced); 192 fFunctions.fStencilStrokePathInstanced = bind_to_member(this, &GrGLTestInterface::stencilStrokePathInstanced); 193 fFunctions.fCoverFillPath = bind_to_member(this, &GrGLTestInterface::coverFillPath); 194 fFunctions.fCoverStrokePath = bind_to_member(this, &GrGLTestInterface::coverStrokePath); 195 fFunctions.fCoverFillPathInstanced = bind_to_member(this, &GrGLTestInterface::coverFillPathInstanced); 196 fFunctions.fCoverStrokePathInstanced = bind_to_member(this, &GrGLTestInterface::coverStrokePathInstanced); 197 fFunctions.fStencilThenCoverFillPath = bind_to_member(this, &GrGLTestInterface::stencilThenCoverFillPath); 198 fFunctions.fStencilThenCoverStrokePath = bind_to_member(this, &GrGLTestInterface::stencilThenCoverStrokePath); 199 fFunctions.fStencilThenCoverFillPathInstanced = bind_to_member(this, &GrGLTestInterface::stencilThenCoverFillPathInstanced); 200 fFunctions.fStencilThenCoverStrokePathInstanced = bind_to_member(this, &GrGLTestInterface::stencilThenCoverStrokePathInstanced); 201 fFunctions.fProgramPathFragmentInputGen = bind_to_member(this, &GrGLTestInterface::programPathFragmentInputGen); 202 fFunctions.fBindFragmentInputLocation = bind_to_member(this, &GrGLTestInterface::bindFragmentInputLocation); 203 fFunctions.fGetProgramResourceLocation = bind_to_member(this, &GrGLTestInterface::getProgramResourceLocation); 204 fFunctions.fCoverageModulation = bind_to_member(this, &GrGLTestInterface::coverageModulation); 205 fFunctions.fMultiDrawArraysIndirect = bind_to_member(this, &GrGLTestInterface::multiDrawArraysIndirect); 206 fFunctions.fMultiDrawElementsIndirect = bind_to_member(this, &GrGLTestInterface::multiDrawElementsIndirect); 207 fFunctions.fGetTextureHandle = bind_to_member(this, &GrGLTestInterface::getTextureHandle); 208 fFunctions.fGetTextureSamplerHandle = bind_to_member(this, &GrGLTestInterface::getTextureSamplerHandle); 209 fFunctions.fMakeTextureHandleResident = bind_to_member(this, &GrGLTestInterface::makeTextureHandleResident); 210 fFunctions.fMakeTextureHandleNonResident = bind_to_member(this, &GrGLTestInterface::makeTextureHandleNonResident); 211 fFunctions.fGetImageHandle = bind_to_member(this, &GrGLTestInterface::getImageHandle); 212 fFunctions.fMakeImageHandleResident = bind_to_member(this, &GrGLTestInterface::makeImageHandleResident); 213 fFunctions.fMakeImageHandleNonResident = bind_to_member(this, &GrGLTestInterface::makeImageHandleNonResident); 214 fFunctions.fIsTextureHandleResident = bind_to_member(this, &GrGLTestInterface::isTextureHandleResident); 215 fFunctions.fIsImageHandleResident = bind_to_member(this, &GrGLTestInterface::isImageHandleResident); 216 fFunctions.fUniformHandleui64 = bind_to_member(this, &GrGLTestInterface::uniformHandleui64); 217 fFunctions.fUniformHandleui64v = bind_to_member(this, &GrGLTestInterface::uniformHandleui64v); 218 fFunctions.fProgramUniformHandleui64 = bind_to_member(this, &GrGLTestInterface::programUniformHandleui64); 219 fFunctions.fProgramUniformHandleui64v = bind_to_member(this, &GrGLTestInterface::programUniformHandleui64v); 220 fFunctions.fTextureParameteri = bind_to_member(this, &GrGLTestInterface::textureParameteri); 221 fFunctions.fTextureParameteriv = bind_to_member(this, &GrGLTestInterface::textureParameteriv); 222 fFunctions.fTextureParameterf = bind_to_member(this, &GrGLTestInterface::textureParameterf); 223 fFunctions.fTextureParameterfv = bind_to_member(this, &GrGLTestInterface::textureParameterfv); 224 fFunctions.fTextureImage1D = bind_to_member(this, &GrGLTestInterface::textureImage1D); 225 fFunctions.fTextureImage2D = bind_to_member(this, &GrGLTestInterface::textureImage2D); 226 fFunctions.fTextureSubImage1D = bind_to_member(this, &GrGLTestInterface::textureSubImage1D); 227 fFunctions.fTextureSubImage2D = bind_to_member(this, &GrGLTestInterface::textureSubImage2D); 228 fFunctions.fCopyTextureImage1D = bind_to_member(this, &GrGLTestInterface::copyTextureImage1D); 229 fFunctions.fCopyTextureImage2D = bind_to_member(this, &GrGLTestInterface::copyTextureImage2D); 230 fFunctions.fCopyTextureSubImage1D = bind_to_member(this, &GrGLTestInterface::copyTextureSubImage1D); 231 fFunctions.fCopyTextureSubImage2D = bind_to_member(this, &GrGLTestInterface::copyTextureSubImage2D); 232 fFunctions.fGetTextureImage = bind_to_member(this, &GrGLTestInterface::getTextureImage); 233 fFunctions.fGetTextureParameterfv = bind_to_member(this, &GrGLTestInterface::getTextureParameterfv); 234 fFunctions.fGetTextureParameteriv = bind_to_member(this, &GrGLTestInterface::getTextureParameteriv); 235 fFunctions.fGetTextureLevelParameterfv = bind_to_member(this, &GrGLTestInterface::getTextureLevelParameterfv); 236 fFunctions.fGetTextureLevelParameteriv = bind_to_member(this, &GrGLTestInterface::getTextureLevelParameteriv); 237 fFunctions.fTextureImage3D = bind_to_member(this, &GrGLTestInterface::textureImage3D); 238 fFunctions.fTextureSubImage3D = bind_to_member(this, &GrGLTestInterface::textureSubImage3D); 239 fFunctions.fCopyTextureSubImage3D = bind_to_member(this, &GrGLTestInterface::copyTextureSubImage3D); 240 fFunctions.fCompressedTextureImage3D = bind_to_member(this, &GrGLTestInterface::compressedTextureImage3D); 241 fFunctions.fCompressedTextureImage2D = bind_to_member(this, &GrGLTestInterface::compressedTextureImage2D); 242 fFunctions.fCompressedTextureImage1D = bind_to_member(this, &GrGLTestInterface::compressedTextureImage1D); 243 fFunctions.fCompressedTextureSubImage3D = bind_to_member(this, &GrGLTestInterface::compressedTextureSubImage3D); 244 fFunctions.fCompressedTextureSubImage2D = bind_to_member(this, &GrGLTestInterface::compressedTextureSubImage2D); 245 fFunctions.fCompressedTextureSubImage1D = bind_to_member(this, &GrGLTestInterface::compressedTextureSubImage1D); 246 fFunctions.fGetCompressedTextureImage = bind_to_member(this, &GrGLTestInterface::getCompressedTextureImage); 247 fFunctions.fNamedBufferData = bind_to_member(this, &GrGLTestInterface::namedBufferData); 248 fFunctions.fNamedBufferSubData = bind_to_member(this, &GrGLTestInterface::namedBufferSubData); 249 fFunctions.fMapNamedBuffer = bind_to_member(this, &GrGLTestInterface::mapNamedBuffer); 250 fFunctions.fUnmapNamedBuffer = bind_to_member(this, &GrGLTestInterface::unmapNamedBuffer); 251 fFunctions.fGetNamedBufferParameteriv = bind_to_member(this, &GrGLTestInterface::getNamedBufferParameteriv); 252 fFunctions.fGetNamedBufferPointerv = bind_to_member(this, &GrGLTestInterface::getNamedBufferPointerv); 253 fFunctions.fGetNamedBufferSubData = bind_to_member(this, &GrGLTestInterface::getNamedBufferSubData); 254 fFunctions.fProgramUniform1f = bind_to_member(this, &GrGLTestInterface::programUniform1f); 255 fFunctions.fProgramUniform2f = bind_to_member(this, &GrGLTestInterface::programUniform2f); 256 fFunctions.fProgramUniform3f = bind_to_member(this, &GrGLTestInterface::programUniform3f); 257 fFunctions.fProgramUniform4f = bind_to_member(this, &GrGLTestInterface::programUniform4f); 258 fFunctions.fProgramUniform1i = bind_to_member(this, &GrGLTestInterface::programUniform1i); 259 fFunctions.fProgramUniform2i = bind_to_member(this, &GrGLTestInterface::programUniform2i); 260 fFunctions.fProgramUniform3i = bind_to_member(this, &GrGLTestInterface::programUniform3i); 261 fFunctions.fProgramUniform4i = bind_to_member(this, &GrGLTestInterface::programUniform4i); 262 fFunctions.fProgramUniform1fv = bind_to_member(this, &GrGLTestInterface::programUniform1fv); 263 fFunctions.fProgramUniform2fv = bind_to_member(this, &GrGLTestInterface::programUniform2fv); 264 fFunctions.fProgramUniform3fv = bind_to_member(this, &GrGLTestInterface::programUniform3fv); 265 fFunctions.fProgramUniform4fv = bind_to_member(this, &GrGLTestInterface::programUniform4fv); 266 fFunctions.fProgramUniform1iv = bind_to_member(this, &GrGLTestInterface::programUniform1iv); 267 fFunctions.fProgramUniform2iv = bind_to_member(this, &GrGLTestInterface::programUniform2iv); 268 fFunctions.fProgramUniform3iv = bind_to_member(this, &GrGLTestInterface::programUniform3iv); 269 fFunctions.fProgramUniform4iv = bind_to_member(this, &GrGLTestInterface::programUniform4iv); 270 fFunctions.fProgramUniformMatrix2fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix2fv); 271 fFunctions.fProgramUniformMatrix3fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix3fv); 272 fFunctions.fProgramUniformMatrix4fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix4fv); 273 fFunctions.fProgramUniformMatrix2x3fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix2x3fv); 274 fFunctions.fProgramUniformMatrix3x2fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix3x2fv); 275 fFunctions.fProgramUniformMatrix2x4fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix2x4fv); 276 fFunctions.fProgramUniformMatrix4x2fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix4x2fv); 277 fFunctions.fProgramUniformMatrix3x4fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix3x4fv); 278 fFunctions.fProgramUniformMatrix4x3fv = bind_to_member(this, &GrGLTestInterface::programUniformMatrix4x3fv); 279 fFunctions.fNamedRenderbufferStorage = bind_to_member(this, &GrGLTestInterface::namedRenderbufferStorage); 280 fFunctions.fGetNamedRenderbufferParameteriv = bind_to_member(this, &GrGLTestInterface::getNamedRenderbufferParameteriv); 281 fFunctions.fNamedRenderbufferStorageMultisample = bind_to_member(this, &GrGLTestInterface::namedRenderbufferStorageMultisample); 282 fFunctions.fCheckNamedFramebufferStatus = bind_to_member(this, &GrGLTestInterface::checkNamedFramebufferStatus); 283 fFunctions.fNamedFramebufferTexture1D = bind_to_member(this, &GrGLTestInterface::namedFramebufferTexture1D); 284 fFunctions.fNamedFramebufferTexture2D = bind_to_member(this, &GrGLTestInterface::namedFramebufferTexture2D); 285 fFunctions.fNamedFramebufferTexture3D = bind_to_member(this, &GrGLTestInterface::namedFramebufferTexture3D); 286 fFunctions.fNamedFramebufferRenderbuffer = bind_to_member(this, &GrGLTestInterface::namedFramebufferRenderbuffer); 287 fFunctions.fGetNamedFramebufferAttachmentParameteriv = bind_to_member(this, &GrGLTestInterface::getNamedFramebufferAttachmentParameteriv); 288 fFunctions.fGenerateTextureMipmap = bind_to_member(this, &GrGLTestInterface::generateTextureMipmap); 289 fFunctions.fFramebufferDrawBuffer = bind_to_member(this, &GrGLTestInterface::framebufferDrawBuffer); 290 fFunctions.fFramebufferDrawBuffers = bind_to_member(this, &GrGLTestInterface::framebufferDrawBuffers); 291 fFunctions.fFramebufferReadBuffer = bind_to_member(this, &GrGLTestInterface::framebufferReadBuffer); 292 fFunctions.fGetFramebufferParameteriv = bind_to_member(this, &GrGLTestInterface::getFramebufferParameteriv); 293 fFunctions.fNamedCopyBufferSubData = bind_to_member(this, &GrGLTestInterface::namedCopyBufferSubData); 294 fFunctions.fVertexArrayVertexOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayVertexOffset); 295 fFunctions.fVertexArrayColorOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayColorOffset); 296 fFunctions.fVertexArrayEdgeFlagOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayEdgeFlagOffset); 297 fFunctions.fVertexArrayIndexOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayIndexOffset); 298 fFunctions.fVertexArrayNormalOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayNormalOffset); 299 fFunctions.fVertexArrayTexCoordOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayTexCoordOffset); 300 fFunctions.fVertexArrayMultiTexCoordOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayMultiTexCoordOffset); 301 fFunctions.fVertexArrayFogCoordOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayFogCoordOffset); 302 fFunctions.fVertexArraySecondaryColorOffset = bind_to_member(this, &GrGLTestInterface::vertexArraySecondaryColorOffset); 303 fFunctions.fVertexArrayVertexAttribOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayVertexAttribOffset); 304 fFunctions.fVertexArrayVertexAttribIOffset = bind_to_member(this, &GrGLTestInterface::vertexArrayVertexAttribIOffset); 305 fFunctions.fEnableVertexArray = bind_to_member(this, &GrGLTestInterface::enableVertexArray); 306 fFunctions.fDisableVertexArray = bind_to_member(this, &GrGLTestInterface::disableVertexArray); 307 fFunctions.fEnableVertexArrayAttrib = bind_to_member(this, &GrGLTestInterface::enableVertexArrayAttrib); 308 fFunctions.fDisableVertexArrayAttrib = bind_to_member(this, &GrGLTestInterface::disableVertexArrayAttrib); 309 fFunctions.fGetVertexArrayIntegerv = bind_to_member(this, &GrGLTestInterface::getVertexArrayIntegerv); 310 fFunctions.fGetVertexArrayPointerv = bind_to_member(this, &GrGLTestInterface::getVertexArrayPointerv); 311 fFunctions.fGetVertexArrayIntegeri_v = bind_to_member(this, &GrGLTestInterface::getVertexArrayIntegeri_v); 312 fFunctions.fGetVertexArrayPointeri_v = bind_to_member(this, &GrGLTestInterface::getVertexArrayPointeri_v); 313 fFunctions.fMapNamedBufferRange = bind_to_member(this, &GrGLTestInterface::mapNamedBufferRange); 314 fFunctions.fFlushMappedNamedBufferRange = bind_to_member(this, &GrGLTestInterface::flushMappedNamedBufferRange); 315 fFunctions.fTextureBuffer = bind_to_member(this, &GrGLTestInterface::textureBuffer); 316 fFunctions.fFenceSync = bind_to_member(this, &GrGLTestInterface::fenceSync); 317 fFunctions.fIsSync = bind_to_member(this, &GrGLTestInterface::isSync); 318 fFunctions.fClientWaitSync = bind_to_member(this, &GrGLTestInterface::clientWaitSync); 319 fFunctions.fWaitSync = bind_to_member(this, &GrGLTestInterface::waitSync); 320 fFunctions.fDeleteSync = bind_to_member(this, &GrGLTestInterface::deleteSync); 321 fFunctions.fDebugMessageControl = bind_to_member(this, &GrGLTestInterface::debugMessageControl); 322 fFunctions.fDebugMessageInsert = bind_to_member(this, &GrGLTestInterface::debugMessageInsert); 323 fFunctions.fDebugMessageCallback = bind_to_member(this, &GrGLTestInterface::debugMessageCallback); 324 fFunctions.fGetDebugMessageLog = bind_to_member(this, &GrGLTestInterface::getDebugMessageLog); 325 fFunctions.fPushDebugGroup = bind_to_member(this, &GrGLTestInterface::pushDebugGroup); 326 fFunctions.fPopDebugGroup = bind_to_member(this, &GrGLTestInterface::popDebugGroup); 327 fFunctions.fObjectLabel = bind_to_member(this, &GrGLTestInterface::objectLabel); 328 fFunctions.fGetInternalformativ = bind_to_member(this, &GrGLTestInterface::getInternalformativ); 329 fFunctions.fProgramBinary = bind_to_member(this, &GrGLTestInterface::programBinary); 330 fFunctions.fGetProgramBinary = bind_to_member(this, &GrGLTestInterface::getProgramBinary); 331 fFunctions.fProgramParameteri = bind_to_member(this, &GrGLTestInterface::programParameteri); 332 } 333