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 <functional>
9 #include "GrGLTestInterface.h"
10
11 namespace {
12 template<typename R, typename... A>
bind_to_member(GrGLTestInterface * interface,R (GrGLTestInterface::* member)(A...))13 std::function<R(A...)> bind_to_member(GrGLTestInterface* interface, R (GrGLTestInterface::*member)(A...)) {
14 return [interface, member] (A... a) -> R { return (interface->*member)(a...); };
15 }
16 } // anonymous namespace
17
GrGLTestInterface()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.fClientWaitSync = bind_to_member(this, &GrGLTestInterface::clientWaitSync);
318 fFunctions.fWaitSync = bind_to_member(this, &GrGLTestInterface::waitSync);
319 fFunctions.fDeleteSync = bind_to_member(this, &GrGLTestInterface::deleteSync);
320 fFunctions.fDebugMessageControl = bind_to_member(this, &GrGLTestInterface::debugMessageControl);
321 fFunctions.fDebugMessageInsert = bind_to_member(this, &GrGLTestInterface::debugMessageInsert);
322 fFunctions.fDebugMessageCallback = bind_to_member(this, &GrGLTestInterface::debugMessageCallback);
323 fFunctions.fGetDebugMessageLog = bind_to_member(this, &GrGLTestInterface::getDebugMessageLog);
324 fFunctions.fPushDebugGroup = bind_to_member(this, &GrGLTestInterface::pushDebugGroup);
325 fFunctions.fPopDebugGroup = bind_to_member(this, &GrGLTestInterface::popDebugGroup);
326 fFunctions.fObjectLabel = bind_to_member(this, &GrGLTestInterface::objectLabel);
327 fFunctions.fGetInternalformativ = bind_to_member(this, &GrGLTestInterface::getInternalformativ);
328 }
329