• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // frame_capture_replay_autogen.cpp:
9 //   Util function to dispatch captured GL calls through Context and replay them.
10 
11 #include "angle_gl.h"
12 
13 #include "common/debug.h"
14 #include "libANGLE/Context.h"
15 #include "libANGLE/Context.inl.h"
16 #include "libANGLE/capture/FrameCapture.h"
17 
18 using namespace gl;
19 
20 namespace angle
21 {
22 
ReplayCall(gl::Context * context,ReplayContext * replayContext,const CallCapture & call)23 void FrameCaptureShared::ReplayCall(gl::Context *context,
24                                     ReplayContext *replayContext,
25                                     const CallCapture &call)
26 {
27     const ParamBuffer &params = call.params;
28     switch (call.entryPoint)
29     {
30         case angle::EntryPoint::GLActiveShaderProgram:
31             context->activeShaderProgram(
32                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
33                     .value.ProgramPipelineIDVal,
34                 params.getParam("programPacked", ParamType::TShaderProgramID, 1)
35                     .value.ShaderProgramIDVal);
36             break;
37         case angle::EntryPoint::GLActiveTexture:
38             context->activeTexture(
39                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal);
40             break;
41         case angle::EntryPoint::GLAlphaFunc:
42             context->alphaFunc(
43                 params.getParam("funcPacked", ParamType::TAlphaTestFunc, 0).value.AlphaTestFuncVal,
44                 params.getParam("ref", ParamType::TGLfloat, 1).value.GLfloatVal);
45             break;
46         case angle::EntryPoint::GLAlphaFuncx:
47             context->alphaFuncx(
48                 params.getParam("funcPacked", ParamType::TAlphaTestFunc, 0).value.AlphaTestFuncVal,
49                 params.getParam("ref", ParamType::TGLfixed, 1).value.GLfixedVal);
50             break;
51         case angle::EntryPoint::GLAttachShader:
52             context->attachShader(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
53                                       .value.ShaderProgramIDVal,
54                                   params.getParam("shaderPacked", ParamType::TShaderProgramID, 1)
55                                       .value.ShaderProgramIDVal);
56             break;
57         case angle::EntryPoint::GLBeginQuery:
58             context->beginQuery(
59                 params.getParam("targetPacked", ParamType::TQueryType, 0).value.QueryTypeVal,
60                 params.getParam("idPacked", ParamType::TQueryID, 1).value.QueryIDVal);
61             break;
62         case angle::EntryPoint::GLBeginTransformFeedback:
63             context->beginTransformFeedback(
64                 params.getParam("primitiveModePacked", ParamType::TPrimitiveMode, 0)
65                     .value.PrimitiveModeVal);
66             break;
67         case angle::EntryPoint::GLBindAttribLocation:
68             context->bindAttribLocation(
69                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
70                     .value.ShaderProgramIDVal,
71                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
72                 replayContext->getAsConstPointer<const GLchar *>(
73                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
74             break;
75         case angle::EntryPoint::GLBindBuffer:
76             context->bindBuffer(
77                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
78                     .value.BufferBindingVal,
79                 params.getParam("bufferPacked", ParamType::TBufferID, 1).value.BufferIDVal);
80             break;
81         case angle::EntryPoint::GLBindBufferBase:
82             context->bindBufferBase(
83                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
84                     .value.BufferBindingVal,
85                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
86                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal);
87             break;
88         case angle::EntryPoint::GLBindBufferRange:
89             context->bindBufferRange(
90                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
91                     .value.BufferBindingVal,
92                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
93                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal,
94                 params.getParam("offset", ParamType::TGLintptr, 3).value.GLintptrVal,
95                 params.getParam("size", ParamType::TGLsizeiptr, 4).value.GLsizeiptrVal);
96             break;
97         case angle::EntryPoint::GLBindFragDataLocation:
98             context->bindFragDataLocation(
99                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
100                     .value.ShaderProgramIDVal,
101                 params.getParam("color", ParamType::TGLuint, 1).value.GLuintVal,
102                 replayContext->getAsConstPointer<const GLchar *>(
103                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
104             break;
105         case angle::EntryPoint::GLBindFragDataLocationIndexed:
106             context->bindFragDataLocationIndexed(
107                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
108                     .value.ShaderProgramIDVal,
109                 params.getParam("colorNumber", ParamType::TGLuint, 1).value.GLuintVal,
110                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
111                 replayContext->getAsConstPointer<const GLchar *>(
112                     params.getParam("name", ParamType::TGLcharConstPointer, 3)));
113             break;
114         case angle::EntryPoint::GLBindFramebuffer:
115             context->bindFramebuffer(
116                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
117                 params.getParam("framebufferPacked", ParamType::TFramebufferID, 1)
118                     .value.FramebufferIDVal);
119             break;
120         case angle::EntryPoint::GLBindImageTexture:
121             context->bindImageTexture(
122                 params.getParam("unit", ParamType::TGLuint, 0).value.GLuintVal,
123                 params.getParam("texturePacked", ParamType::TTextureID, 1).value.TextureIDVal,
124                 params.getParam("level", ParamType::TGLint, 2).value.GLintVal,
125                 params.getParam("layered", ParamType::TGLboolean, 3).value.GLbooleanVal,
126                 params.getParam("layer", ParamType::TGLint, 4).value.GLintVal,
127                 params.getParam("access", ParamType::TGLenum, 5).value.GLenumVal,
128                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal);
129             break;
130         case angle::EntryPoint::GLBindProgramPipeline:
131             context->bindProgramPipeline(
132                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
133                     .value.ProgramPipelineIDVal);
134             break;
135         case angle::EntryPoint::GLBindRenderbuffer:
136             context->bindRenderbuffer(
137                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
138                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 1)
139                     .value.RenderbufferIDVal);
140             break;
141         case angle::EntryPoint::GLBindSampler:
142             context->bindSampler(
143                 params.getParam("unit", ParamType::TGLuint, 0).value.GLuintVal,
144                 params.getParam("samplerPacked", ParamType::TSamplerID, 1).value.SamplerIDVal);
145             break;
146         case angle::EntryPoint::GLBindTexture:
147             context->bindTexture(
148                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
149                 params.getParam("texturePacked", ParamType::TTextureID, 1).value.TextureIDVal);
150             break;
151         case angle::EntryPoint::GLBindTransformFeedback:
152             context->bindTransformFeedback(
153                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
154                 params.getParam("idPacked", ParamType::TTransformFeedbackID, 1)
155                     .value.TransformFeedbackIDVal);
156             break;
157         case angle::EntryPoint::GLBindVertexArray:
158             context->bindVertexArray(params.getParam("arrayPacked", ParamType::TVertexArrayID, 0)
159                                          .value.VertexArrayIDVal);
160             break;
161         case angle::EntryPoint::GLBindVertexBuffer:
162             context->bindVertexBuffer(
163                 params.getParam("bindingindex", ParamType::TGLuint, 0).value.GLuintVal,
164                 params.getParam("bufferPacked", ParamType::TBufferID, 1).value.BufferIDVal,
165                 params.getParam("offset", ParamType::TGLintptr, 2).value.GLintptrVal,
166                 params.getParam("stride", ParamType::TGLsizei, 3).value.GLsizeiVal);
167             break;
168         case angle::EntryPoint::GLBlendBarrier:
169             context->blendBarrier();
170             break;
171         case angle::EntryPoint::GLBlendColor:
172             context->blendColor(params.getParam("red", ParamType::TGLfloat, 0).value.GLfloatVal,
173                                 params.getParam("green", ParamType::TGLfloat, 1).value.GLfloatVal,
174                                 params.getParam("blue", ParamType::TGLfloat, 2).value.GLfloatVal,
175                                 params.getParam("alpha", ParamType::TGLfloat, 3).value.GLfloatVal);
176             break;
177         case angle::EntryPoint::GLBlendEquation:
178             context->blendEquation(params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal);
179             break;
180         case angle::EntryPoint::GLBlendEquationSeparate:
181             context->blendEquationSeparate(
182                 params.getParam("modeRGB", ParamType::TGLenum, 0).value.GLenumVal,
183                 params.getParam("modeAlpha", ParamType::TGLenum, 1).value.GLenumVal);
184             break;
185         case angle::EntryPoint::GLBlendEquationSeparatei:
186             context->blendEquationSeparatei(
187                 params.getParam("buf", ParamType::TGLuint, 0).value.GLuintVal,
188                 params.getParam("modeRGB", ParamType::TGLenum, 1).value.GLenumVal,
189                 params.getParam("modeAlpha", ParamType::TGLenum, 2).value.GLenumVal);
190             break;
191         case angle::EntryPoint::GLBlendEquationi:
192             context->blendEquationi(params.getParam("buf", ParamType::TGLuint, 0).value.GLuintVal,
193                                     params.getParam("mode", ParamType::TGLenum, 1).value.GLenumVal);
194             break;
195         case angle::EntryPoint::GLBlendFunc:
196             context->blendFunc(params.getParam("sfactor", ParamType::TGLenum, 0).value.GLenumVal,
197                                params.getParam("dfactor", ParamType::TGLenum, 1).value.GLenumVal);
198             break;
199         case angle::EntryPoint::GLBlendFuncSeparate:
200             context->blendFuncSeparate(
201                 params.getParam("sfactorRGB", ParamType::TGLenum, 0).value.GLenumVal,
202                 params.getParam("dfactorRGB", ParamType::TGLenum, 1).value.GLenumVal,
203                 params.getParam("sfactorAlpha", ParamType::TGLenum, 2).value.GLenumVal,
204                 params.getParam("dfactorAlpha", ParamType::TGLenum, 3).value.GLenumVal);
205             break;
206         case angle::EntryPoint::GLBlendFuncSeparatei:
207             context->blendFuncSeparatei(
208                 params.getParam("buf", ParamType::TGLuint, 0).value.GLuintVal,
209                 params.getParam("srcRGB", ParamType::TGLenum, 1).value.GLenumVal,
210                 params.getParam("dstRGB", ParamType::TGLenum, 2).value.GLenumVal,
211                 params.getParam("srcAlpha", ParamType::TGLenum, 3).value.GLenumVal,
212                 params.getParam("dstAlpha", ParamType::TGLenum, 4).value.GLenumVal);
213             break;
214         case angle::EntryPoint::GLBlendFunci:
215             context->blendFunci(params.getParam("buf", ParamType::TGLuint, 0).value.GLuintVal,
216                                 params.getParam("src", ParamType::TGLenum, 1).value.GLenumVal,
217                                 params.getParam("dst", ParamType::TGLenum, 2).value.GLenumVal);
218             break;
219         case angle::EntryPoint::GLBlitFramebuffer:
220             context->blitFramebuffer(
221                 params.getParam("srcX0", ParamType::TGLint, 0).value.GLintVal,
222                 params.getParam("srcY0", ParamType::TGLint, 1).value.GLintVal,
223                 params.getParam("srcX1", ParamType::TGLint, 2).value.GLintVal,
224                 params.getParam("srcY1", ParamType::TGLint, 3).value.GLintVal,
225                 params.getParam("dstX0", ParamType::TGLint, 4).value.GLintVal,
226                 params.getParam("dstY0", ParamType::TGLint, 5).value.GLintVal,
227                 params.getParam("dstX1", ParamType::TGLint, 6).value.GLintVal,
228                 params.getParam("dstY1", ParamType::TGLint, 7).value.GLintVal,
229                 params.getParam("mask", ParamType::TGLbitfield, 8).value.GLbitfieldVal,
230                 params.getParam("filter", ParamType::TGLenum, 9).value.GLenumVal);
231             break;
232         case angle::EntryPoint::GLBlitFramebufferNV:
233             context->blitFramebufferNV(
234                 params.getParam("srcX0", ParamType::TGLint, 0).value.GLintVal,
235                 params.getParam("srcY0", ParamType::TGLint, 1).value.GLintVal,
236                 params.getParam("srcX1", ParamType::TGLint, 2).value.GLintVal,
237                 params.getParam("srcY1", ParamType::TGLint, 3).value.GLintVal,
238                 params.getParam("dstX0", ParamType::TGLint, 4).value.GLintVal,
239                 params.getParam("dstY0", ParamType::TGLint, 5).value.GLintVal,
240                 params.getParam("dstX1", ParamType::TGLint, 6).value.GLintVal,
241                 params.getParam("dstY1", ParamType::TGLint, 7).value.GLintVal,
242                 params.getParam("mask", ParamType::TGLbitfield, 8).value.GLbitfieldVal,
243                 params.getParam("filter", ParamType::TGLenum, 9).value.GLenumVal);
244             break;
245         case angle::EntryPoint::GLBufferData:
246             context->bufferData(
247                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
248                     .value.BufferBindingVal,
249                 params.getParam("size", ParamType::TGLsizeiptr, 1).value.GLsizeiptrVal,
250                 replayContext->getAsConstPointer<const void *>(
251                     params.getParam("data", ParamType::TvoidConstPointer, 2)),
252                 params.getParam("usagePacked", ParamType::TBufferUsage, 3).value.BufferUsageVal);
253             break;
254         case angle::EntryPoint::GLBufferStorage:
255             context->bufferStorage(
256                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
257                     .value.BufferBindingVal,
258                 params.getParam("size", ParamType::TGLsizeiptr, 1).value.GLsizeiptrVal,
259                 replayContext->getAsConstPointer<const void *>(
260                     params.getParam("data", ParamType::TvoidConstPointer, 2)),
261                 params.getParam("flags", ParamType::TGLbitfield, 3).value.GLbitfieldVal);
262             break;
263         case angle::EntryPoint::GLBufferSubData:
264             context->bufferSubData(
265                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
266                     .value.BufferBindingVal,
267                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
268                 params.getParam("size", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal,
269                 replayContext->getAsConstPointer<const void *>(
270                     params.getParam("data", ParamType::TvoidConstPointer, 3)));
271             break;
272         case angle::EntryPoint::GLCheckFramebufferStatus:
273             context->checkFramebufferStatus(
274                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal);
275             break;
276         case angle::EntryPoint::GLClear:
277             context->clear(params.getParam("mask", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
278             break;
279         case angle::EntryPoint::GLClearBufferfi:
280             context->clearBufferfi(
281                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
282                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
283                 params.getParam("depth", ParamType::TGLfloat, 2).value.GLfloatVal,
284                 params.getParam("stencil", ParamType::TGLint, 3).value.GLintVal);
285             break;
286         case angle::EntryPoint::GLClearBufferfv:
287             context->clearBufferfv(
288                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
289                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
290                 replayContext->getAsConstPointer<const GLfloat *>(
291                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
292             break;
293         case angle::EntryPoint::GLClearBufferiv:
294             context->clearBufferiv(
295                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
296                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
297                 replayContext->getAsConstPointer<const GLint *>(
298                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
299             break;
300         case angle::EntryPoint::GLClearBufferuiv:
301             context->clearBufferuiv(
302                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
303                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
304                 replayContext->getAsConstPointer<const GLuint *>(
305                     params.getParam("value", ParamType::TGLuintConstPointer, 2)));
306             break;
307         case angle::EntryPoint::GLClearColor:
308             context->clearColor(params.getParam("red", ParamType::TGLfloat, 0).value.GLfloatVal,
309                                 params.getParam("green", ParamType::TGLfloat, 1).value.GLfloatVal,
310                                 params.getParam("blue", ParamType::TGLfloat, 2).value.GLfloatVal,
311                                 params.getParam("alpha", ParamType::TGLfloat, 3).value.GLfloatVal);
312             break;
313         case angle::EntryPoint::GLClearColorx:
314             context->clearColorx(params.getParam("red", ParamType::TGLfixed, 0).value.GLfixedVal,
315                                  params.getParam("green", ParamType::TGLfixed, 1).value.GLfixedVal,
316                                  params.getParam("blue", ParamType::TGLfixed, 2).value.GLfixedVal,
317                                  params.getParam("alpha", ParamType::TGLfixed, 3).value.GLfixedVal);
318             break;
319         case angle::EntryPoint::GLClearDepthf:
320             context->clearDepthf(params.getParam("d", ParamType::TGLfloat, 0).value.GLfloatVal);
321             break;
322         case angle::EntryPoint::GLClearDepthx:
323             context->clearDepthx(params.getParam("depth", ParamType::TGLfixed, 0).value.GLfixedVal);
324             break;
325         case angle::EntryPoint::GLClearStencil:
326             context->clearStencil(params.getParam("s", ParamType::TGLint, 0).value.GLintVal);
327             break;
328         case angle::EntryPoint::GLClientActiveTexture:
329             context->clientActiveTexture(
330                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal);
331             break;
332         case angle::EntryPoint::GLClientWaitSync:
333             context->clientWaitSync(
334                 params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
335                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
336                 params.getParam("timeout", ParamType::TGLuint64, 2).value.GLuint64Val);
337             break;
338         case angle::EntryPoint::GLClipControl:
339             context->clipControl(params.getParam("origin", ParamType::TGLenum, 0).value.GLenumVal,
340                                  params.getParam("depth", ParamType::TGLenum, 1).value.GLenumVal);
341             break;
342         case angle::EntryPoint::GLClipPlanef:
343             context->clipPlanef(params.getParam("p", ParamType::TGLenum, 0).value.GLenumVal,
344                                 replayContext->getAsConstPointer<const GLfloat *>(
345                                     params.getParam("eqn", ParamType::TGLfloatConstPointer, 1)));
346             break;
347         case angle::EntryPoint::GLClipPlanex:
348             context->clipPlanex(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
349                                 replayContext->getAsConstPointer<const GLfixed *>(params.getParam(
350                                     "equation", ParamType::TGLfixedConstPointer, 1)));
351             break;
352         case angle::EntryPoint::GLColor4f:
353             context->color4f(params.getParam("red", ParamType::TGLfloat, 0).value.GLfloatVal,
354                              params.getParam("green", ParamType::TGLfloat, 1).value.GLfloatVal,
355                              params.getParam("blue", ParamType::TGLfloat, 2).value.GLfloatVal,
356                              params.getParam("alpha", ParamType::TGLfloat, 3).value.GLfloatVal);
357             break;
358         case angle::EntryPoint::GLColor4ub:
359             context->color4ub(params.getParam("red", ParamType::TGLubyte, 0).value.GLubyteVal,
360                               params.getParam("green", ParamType::TGLubyte, 1).value.GLubyteVal,
361                               params.getParam("blue", ParamType::TGLubyte, 2).value.GLubyteVal,
362                               params.getParam("alpha", ParamType::TGLubyte, 3).value.GLubyteVal);
363             break;
364         case angle::EntryPoint::GLColor4x:
365             context->color4x(params.getParam("red", ParamType::TGLfixed, 0).value.GLfixedVal,
366                              params.getParam("green", ParamType::TGLfixed, 1).value.GLfixedVal,
367                              params.getParam("blue", ParamType::TGLfixed, 2).value.GLfixedVal,
368                              params.getParam("alpha", ParamType::TGLfixed, 3).value.GLfixedVal);
369             break;
370         case angle::EntryPoint::GLColorMask:
371             context->colorMask(
372                 params.getParam("red", ParamType::TGLboolean, 0).value.GLbooleanVal,
373                 params.getParam("green", ParamType::TGLboolean, 1).value.GLbooleanVal,
374                 params.getParam("blue", ParamType::TGLboolean, 2).value.GLbooleanVal,
375                 params.getParam("alpha", ParamType::TGLboolean, 3).value.GLbooleanVal);
376             break;
377         case angle::EntryPoint::GLColorMaski:
378             context->colorMaski(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
379                                 params.getParam("r", ParamType::TGLboolean, 1).value.GLbooleanVal,
380                                 params.getParam("g", ParamType::TGLboolean, 2).value.GLbooleanVal,
381                                 params.getParam("b", ParamType::TGLboolean, 3).value.GLbooleanVal,
382                                 params.getParam("a", ParamType::TGLboolean, 4).value.GLbooleanVal);
383             break;
384         case angle::EntryPoint::GLColorPointer:
385             context->colorPointer(
386                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
387                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
388                     .value.VertexAttribTypeVal,
389                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
390                 replayContext->getAsConstPointer<const void *>(
391                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
392             break;
393         case angle::EntryPoint::GLCompileShader:
394             context->compileShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
395                                        .value.ShaderProgramIDVal);
396             break;
397         case angle::EntryPoint::GLCompressedTexImage2D:
398             context->compressedTexImage2D(
399                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
400                     .value.TextureTargetVal,
401                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
402                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
403                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
404                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
405                 params.getParam("border", ParamType::TGLint, 5).value.GLintVal,
406                 params.getParam("imageSize", ParamType::TGLsizei, 6).value.GLsizeiVal,
407                 replayContext->getAsConstPointer<const void *>(
408                     params.getParam("data", ParamType::TvoidConstPointer, 7)));
409             break;
410         case angle::EntryPoint::GLCompressedTexImage3D:
411             context->compressedTexImage3D(
412                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
413                     .value.TextureTargetVal,
414                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
415                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
416                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
417                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
418                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
419                 params.getParam("border", ParamType::TGLint, 6).value.GLintVal,
420                 params.getParam("imageSize", ParamType::TGLsizei, 7).value.GLsizeiVal,
421                 replayContext->getAsConstPointer<const void *>(
422                     params.getParam("data", ParamType::TvoidConstPointer, 8)));
423             break;
424         case angle::EntryPoint::GLCompressedTexSubImage2D:
425             context->compressedTexSubImage2D(
426                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
427                     .value.TextureTargetVal,
428                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
429                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
430                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
431                 params.getParam("width", ParamType::TGLsizei, 4).value.GLsizeiVal,
432                 params.getParam("height", ParamType::TGLsizei, 5).value.GLsizeiVal,
433                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
434                 params.getParam("imageSize", ParamType::TGLsizei, 7).value.GLsizeiVal,
435                 replayContext->getAsConstPointer<const void *>(
436                     params.getParam("data", ParamType::TvoidConstPointer, 8)));
437             break;
438         case angle::EntryPoint::GLCompressedTexSubImage3D:
439             context->compressedTexSubImage3D(
440                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
441                     .value.TextureTargetVal,
442                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
443                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
444                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
445                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
446                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
447                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
448                 params.getParam("depth", ParamType::TGLsizei, 7).value.GLsizeiVal,
449                 params.getParam("format", ParamType::TGLenum, 8).value.GLenumVal,
450                 params.getParam("imageSize", ParamType::TGLsizei, 9).value.GLsizeiVal,
451                 replayContext->getAsConstPointer<const void *>(
452                     params.getParam("data", ParamType::TvoidConstPointer, 10)));
453             break;
454         case angle::EntryPoint::GLCopyBufferSubData:
455             context->copyBufferSubData(
456                 params.getParam("readTargetPacked", ParamType::TBufferBinding, 0)
457                     .value.BufferBindingVal,
458                 params.getParam("writeTargetPacked", ParamType::TBufferBinding, 1)
459                     .value.BufferBindingVal,
460                 params.getParam("readOffset", ParamType::TGLintptr, 2).value.GLintptrVal,
461                 params.getParam("writeOffset", ParamType::TGLintptr, 3).value.GLintptrVal,
462                 params.getParam("size", ParamType::TGLsizeiptr, 4).value.GLsizeiptrVal);
463             break;
464         case angle::EntryPoint::GLCopyImageSubData:
465             context->copyImageSubData(
466                 params.getParam("srcName", ParamType::TGLuint, 0).value.GLuintVal,
467                 params.getParam("srcTarget", ParamType::TGLenum, 1).value.GLenumVal,
468                 params.getParam("srcLevel", ParamType::TGLint, 2).value.GLintVal,
469                 params.getParam("srcX", ParamType::TGLint, 3).value.GLintVal,
470                 params.getParam("srcY", ParamType::TGLint, 4).value.GLintVal,
471                 params.getParam("srcZ", ParamType::TGLint, 5).value.GLintVal,
472                 params.getParam("dstName", ParamType::TGLuint, 6).value.GLuintVal,
473                 params.getParam("dstTarget", ParamType::TGLenum, 7).value.GLenumVal,
474                 params.getParam("dstLevel", ParamType::TGLint, 8).value.GLintVal,
475                 params.getParam("dstX", ParamType::TGLint, 9).value.GLintVal,
476                 params.getParam("dstY", ParamType::TGLint, 10).value.GLintVal,
477                 params.getParam("dstZ", ParamType::TGLint, 11).value.GLintVal,
478                 params.getParam("srcWidth", ParamType::TGLsizei, 12).value.GLsizeiVal,
479                 params.getParam("srcHeight", ParamType::TGLsizei, 13).value.GLsizeiVal,
480                 params.getParam("srcDepth", ParamType::TGLsizei, 14).value.GLsizeiVal);
481             break;
482         case angle::EntryPoint::GLCopyTexImage2D:
483             context->copyTexImage2D(
484                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
485                     .value.TextureTargetVal,
486                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
487                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
488                 params.getParam("x", ParamType::TGLint, 3).value.GLintVal,
489                 params.getParam("y", ParamType::TGLint, 4).value.GLintVal,
490                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
491                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
492                 params.getParam("border", ParamType::TGLint, 7).value.GLintVal);
493             break;
494         case angle::EntryPoint::GLCopyTexSubImage2D:
495             context->copyTexSubImage2D(
496                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
497                     .value.TextureTargetVal,
498                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
499                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
500                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
501                 params.getParam("x", ParamType::TGLint, 4).value.GLintVal,
502                 params.getParam("y", ParamType::TGLint, 5).value.GLintVal,
503                 params.getParam("width", ParamType::TGLsizei, 6).value.GLsizeiVal,
504                 params.getParam("height", ParamType::TGLsizei, 7).value.GLsizeiVal);
505             break;
506         case angle::EntryPoint::GLCopyTexSubImage3D:
507             context->copyTexSubImage3D(
508                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
509                     .value.TextureTargetVal,
510                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
511                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
512                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
513                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
514                 params.getParam("x", ParamType::TGLint, 5).value.GLintVal,
515                 params.getParam("y", ParamType::TGLint, 6).value.GLintVal,
516                 params.getParam("width", ParamType::TGLsizei, 7).value.GLsizeiVal,
517                 params.getParam("height", ParamType::TGLsizei, 8).value.GLsizeiVal);
518             break;
519         case angle::EntryPoint::GLCreateProgram:
520             context->createProgram();
521             break;
522         case angle::EntryPoint::GLCreateShader:
523             context->createShader(
524                 params.getParam("typePacked", ParamType::TShaderType, 0).value.ShaderTypeVal);
525             break;
526         case angle::EntryPoint::GLCreateShaderProgramv:
527             context->createShaderProgramv(
528                 params.getParam("typePacked", ParamType::TShaderType, 0).value.ShaderTypeVal,
529                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
530                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
531                     params.getParam("strings", ParamType::TGLcharConstPointerPointer, 2)));
532             break;
533         case angle::EntryPoint::GLCullFace:
534             context->cullFace(
535                 params.getParam("modePacked", ParamType::TCullFaceMode, 0).value.CullFaceModeVal);
536             break;
537         case angle::EntryPoint::GLDebugMessageCallback:
538             context->debugMessageCallback(
539                 params.getParam("callback", ParamType::TGLDEBUGPROC, 0).value.GLDEBUGPROCVal,
540                 replayContext->getAsConstPointer<const void *>(
541                     params.getParam("userParam", ParamType::TvoidConstPointer, 1)));
542             break;
543         case angle::EntryPoint::GLDebugMessageControl:
544             context->debugMessageControl(
545                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
546                 params.getParam("type", ParamType::TGLenum, 1).value.GLenumVal,
547                 params.getParam("severity", ParamType::TGLenum, 2).value.GLenumVal,
548                 params.getParam("count", ParamType::TGLsizei, 3).value.GLsizeiVal,
549                 replayContext->getAsConstPointer<const GLuint *>(
550                     params.getParam("ids", ParamType::TGLuintConstPointer, 4)),
551                 params.getParam("enabled", ParamType::TGLboolean, 5).value.GLbooleanVal);
552             break;
553         case angle::EntryPoint::GLDebugMessageInsert:
554             context->debugMessageInsert(
555                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
556                 params.getParam("type", ParamType::TGLenum, 1).value.GLenumVal,
557                 params.getParam("id", ParamType::TGLuint, 2).value.GLuintVal,
558                 params.getParam("severity", ParamType::TGLenum, 3).value.GLenumVal,
559                 params.getParam("length", ParamType::TGLsizei, 4).value.GLsizeiVal,
560                 replayContext->getAsConstPointer<const GLchar *>(
561                     params.getParam("buf", ParamType::TGLcharConstPointer, 5)));
562             break;
563         case angle::EntryPoint::GLDeleteBuffers:
564             context->deleteBuffers(
565                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
566                 replayContext->getAsConstPointer<const BufferID *>(
567                     params.getParam("buffersPacked", ParamType::TBufferIDConstPointer, 1)));
568             break;
569         case angle::EntryPoint::GLDeleteFencesNV:
570             context->deleteFencesNV(
571                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
572                 replayContext->getAsConstPointer<const FenceNVID *>(
573                     params.getParam("fencesPacked", ParamType::TFenceNVIDConstPointer, 1)));
574             break;
575         case angle::EntryPoint::GLDeleteFramebuffers:
576             context->deleteFramebuffers(
577                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
578                 replayContext->getAsConstPointer<const FramebufferID *>(params.getParam(
579                     "framebuffersPacked", ParamType::TFramebufferIDConstPointer, 1)));
580             break;
581         case angle::EntryPoint::GLDeleteProgram:
582             context->deleteProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
583                                        .value.ShaderProgramIDVal);
584             break;
585         case angle::EntryPoint::GLDeleteProgramPipelines:
586             context->deleteProgramPipelines(
587                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
588                 replayContext->getAsConstPointer<const ProgramPipelineID *>(params.getParam(
589                     "pipelinesPacked", ParamType::TProgramPipelineIDConstPointer, 1)));
590             break;
591         case angle::EntryPoint::GLDeleteQueries:
592             context->deleteQueries(
593                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
594                 replayContext->getAsConstPointer<const QueryID *>(
595                     params.getParam("idsPacked", ParamType::TQueryIDConstPointer, 1)));
596             break;
597         case angle::EntryPoint::GLDeleteRenderbuffers:
598             context->deleteRenderbuffers(
599                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
600                 replayContext->getAsConstPointer<const RenderbufferID *>(params.getParam(
601                     "renderbuffersPacked", ParamType::TRenderbufferIDConstPointer, 1)));
602             break;
603         case angle::EntryPoint::GLDeleteSamplers:
604             context->deleteSamplers(
605                 params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
606                 replayContext->getAsConstPointer<const SamplerID *>(
607                     params.getParam("samplersPacked", ParamType::TSamplerIDConstPointer, 1)));
608             break;
609         case angle::EntryPoint::GLDeleteShader:
610             context->deleteShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
611                                       .value.ShaderProgramIDVal);
612             break;
613         case angle::EntryPoint::GLDeleteSync:
614             context->deleteSync(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal);
615             break;
616         case angle::EntryPoint::GLDeleteTextures:
617             context->deleteTextures(
618                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
619                 replayContext->getAsConstPointer<const TextureID *>(
620                     params.getParam("texturesPacked", ParamType::TTextureIDConstPointer, 1)));
621             break;
622         case angle::EntryPoint::GLDeleteTransformFeedbacks:
623             context->deleteTransformFeedbacks(
624                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
625                 replayContext->getAsConstPointer<const TransformFeedbackID *>(
626                     params.getParam("idsPacked", ParamType::TTransformFeedbackIDConstPointer, 1)));
627             break;
628         case angle::EntryPoint::GLDeleteVertexArrays:
629             context->deleteVertexArrays(
630                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
631                 replayContext->getAsConstPointer<const VertexArrayID *>(
632                     params.getParam("arraysPacked", ParamType::TVertexArrayIDConstPointer, 1)));
633             break;
634         case angle::EntryPoint::GLDepthFunc:
635             context->depthFunc(params.getParam("func", ParamType::TGLenum, 0).value.GLenumVal);
636             break;
637         case angle::EntryPoint::GLDepthMask:
638             context->depthMask(
639                 params.getParam("flag", ParamType::TGLboolean, 0).value.GLbooleanVal);
640             break;
641         case angle::EntryPoint::GLDepthRangef:
642             context->depthRangef(params.getParam("n", ParamType::TGLfloat, 0).value.GLfloatVal,
643                                  params.getParam("f", ParamType::TGLfloat, 1).value.GLfloatVal);
644             break;
645         case angle::EntryPoint::GLDepthRangex:
646             context->depthRangex(params.getParam("n", ParamType::TGLfixed, 0).value.GLfixedVal,
647                                  params.getParam("f", ParamType::TGLfixed, 1).value.GLfixedVal);
648             break;
649         case angle::EntryPoint::GLDetachShader:
650             context->detachShader(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
651                                       .value.ShaderProgramIDVal,
652                                   params.getParam("shaderPacked", ParamType::TShaderProgramID, 1)
653                                       .value.ShaderProgramIDVal);
654             break;
655         case angle::EntryPoint::GLDisable:
656             context->disable(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
657             break;
658         case angle::EntryPoint::GLDisableClientState:
659             context->disableClientState(
660                 params.getParam("arrayPacked", ParamType::TClientVertexArrayType, 0)
661                     .value.ClientVertexArrayTypeVal);
662             break;
663         case angle::EntryPoint::GLDisableVertexAttribArray:
664             context->disableVertexAttribArray(
665                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal);
666             break;
667         case angle::EntryPoint::GLDisablei:
668             context->disablei(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
669                               params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
670             break;
671         case angle::EntryPoint::GLDispatchCompute:
672             context->dispatchCompute(
673                 params.getParam("num_groups_x", ParamType::TGLuint, 0).value.GLuintVal,
674                 params.getParam("num_groups_y", ParamType::TGLuint, 1).value.GLuintVal,
675                 params.getParam("num_groups_z", ParamType::TGLuint, 2).value.GLuintVal);
676             break;
677         case angle::EntryPoint::GLDispatchComputeIndirect:
678             context->dispatchComputeIndirect(
679                 params.getParam("indirect", ParamType::TGLintptr, 0).value.GLintptrVal);
680             break;
681         case angle::EntryPoint::GLDrawArrays:
682             context->drawArrays(
683                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
684                 params.getParam("first", ParamType::TGLint, 1).value.GLintVal,
685                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal);
686             break;
687         case angle::EntryPoint::GLDrawArraysIndirect:
688             context->drawArraysIndirect(
689                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
690                 replayContext->getAsConstPointer<const void *>(
691                     params.getParam("indirect", ParamType::TvoidConstPointer, 1)));
692             break;
693         case angle::EntryPoint::GLDrawArraysInstanced:
694             context->drawArraysInstanced(
695                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
696                 params.getParam("first", ParamType::TGLint, 1).value.GLintVal,
697                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
698                 params.getParam("instancecount", ParamType::TGLsizei, 3).value.GLsizeiVal);
699             break;
700         case angle::EntryPoint::GLDrawArraysInstancedBaseInstance:
701             context->drawArraysInstancedBaseInstance(
702                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
703                 params.getParam("first", ParamType::TGLint, 1).value.GLintVal,
704                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
705                 params.getParam("instancecount", ParamType::TGLsizei, 3).value.GLsizeiVal,
706                 params.getParam("baseinstance", ParamType::TGLuint, 4).value.GLuintVal);
707             break;
708         case angle::EntryPoint::GLDrawBuffers:
709             context->drawBuffers(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
710                                  replayContext->getAsConstPointer<const GLenum *>(
711                                      params.getParam("bufs", ParamType::TGLenumConstPointer, 1)));
712             break;
713         case angle::EntryPoint::GLDrawElements:
714             context->drawElements(
715                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
716                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
717                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
718                     .value.DrawElementsTypeVal,
719                 replayContext->getAsConstPointer<const void *>(
720                     params.getParam("indices", ParamType::TvoidConstPointer, 3)));
721             break;
722         case angle::EntryPoint::GLDrawElementsBaseVertex:
723             context->drawElementsBaseVertex(
724                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
725                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
726                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
727                     .value.DrawElementsTypeVal,
728                 replayContext->getAsConstPointer<const void *>(
729                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
730                 params.getParam("basevertex", ParamType::TGLint, 4).value.GLintVal);
731             break;
732         case angle::EntryPoint::GLDrawElementsIndirect:
733             context->drawElementsIndirect(
734                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
735                 params.getParam("typePacked", ParamType::TDrawElementsType, 1)
736                     .value.DrawElementsTypeVal,
737                 replayContext->getAsConstPointer<const void *>(
738                     params.getParam("indirect", ParamType::TvoidConstPointer, 2)));
739             break;
740         case angle::EntryPoint::GLDrawElementsInstanced:
741             context->drawElementsInstanced(
742                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
743                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
744                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
745                     .value.DrawElementsTypeVal,
746                 replayContext->getAsConstPointer<const void *>(
747                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
748                 params.getParam("instancecount", ParamType::TGLsizei, 4).value.GLsizeiVal);
749             break;
750         case angle::EntryPoint::GLDrawElementsInstancedBaseVertex:
751             context->drawElementsInstancedBaseVertex(
752                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
753                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
754                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
755                     .value.DrawElementsTypeVal,
756                 replayContext->getAsConstPointer<const void *>(
757                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
758                 params.getParam("instancecount", ParamType::TGLsizei, 4).value.GLsizeiVal,
759                 params.getParam("basevertex", ParamType::TGLint, 5).value.GLintVal);
760             break;
761         case angle::EntryPoint::GLDrawElementsInstancedBaseVertexBaseInstance:
762             context->drawElementsInstancedBaseVertexBaseInstance(
763                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
764                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
765                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
766                     .value.DrawElementsTypeVal,
767                 replayContext->getAsConstPointer<const void *>(
768                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
769                 params.getParam("instancecount", ParamType::TGLsizei, 4).value.GLsizeiVal,
770                 params.getParam("basevertex", ParamType::TGLint, 5).value.GLintVal,
771                 params.getParam("baseinstance", ParamType::TGLuint, 6).value.GLuintVal);
772             break;
773         case angle::EntryPoint::GLDrawRangeElements:
774             context->drawRangeElements(
775                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
776                 params.getParam("start", ParamType::TGLuint, 1).value.GLuintVal,
777                 params.getParam("end", ParamType::TGLuint, 2).value.GLuintVal,
778                 params.getParam("count", ParamType::TGLsizei, 3).value.GLsizeiVal,
779                 params.getParam("typePacked", ParamType::TDrawElementsType, 4)
780                     .value.DrawElementsTypeVal,
781                 replayContext->getAsConstPointer<const void *>(
782                     params.getParam("indices", ParamType::TvoidConstPointer, 5)));
783             break;
784         case angle::EntryPoint::GLDrawRangeElementsBaseVertex:
785             context->drawRangeElementsBaseVertex(
786                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
787                 params.getParam("start", ParamType::TGLuint, 1).value.GLuintVal,
788                 params.getParam("end", ParamType::TGLuint, 2).value.GLuintVal,
789                 params.getParam("count", ParamType::TGLsizei, 3).value.GLsizeiVal,
790                 params.getParam("typePacked", ParamType::TDrawElementsType, 4)
791                     .value.DrawElementsTypeVal,
792                 replayContext->getAsConstPointer<const void *>(
793                     params.getParam("indices", ParamType::TvoidConstPointer, 5)),
794                 params.getParam("basevertex", ParamType::TGLint, 6).value.GLintVal);
795             break;
796         case angle::EntryPoint::GLEnable:
797             context->enable(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
798             break;
799         case angle::EntryPoint::GLEnableClientState:
800             context->enableClientState(
801                 params.getParam("arrayPacked", ParamType::TClientVertexArrayType, 0)
802                     .value.ClientVertexArrayTypeVal);
803             break;
804         case angle::EntryPoint::GLEnableVertexAttribArray:
805             context->enableVertexAttribArray(
806                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal);
807             break;
808         case angle::EntryPoint::GLEnablei:
809             context->enablei(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
810                              params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
811             break;
812         case angle::EntryPoint::GLEndQuery:
813             context->endQuery(
814                 params.getParam("targetPacked", ParamType::TQueryType, 0).value.QueryTypeVal);
815             break;
816         case angle::EntryPoint::GLEndTransformFeedback:
817             context->endTransformFeedback();
818             break;
819         case angle::EntryPoint::GLFenceSync:
820             context->fenceSync(
821                 params.getParam("condition", ParamType::TGLenum, 0).value.GLenumVal,
822                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal);
823             break;
824         case angle::EntryPoint::GLFinish:
825             context->finish();
826             break;
827         case angle::EntryPoint::GLFinishFenceNV:
828             context->finishFenceNV(
829                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
830             break;
831         case angle::EntryPoint::GLFlush:
832             context->flush();
833             break;
834         case angle::EntryPoint::GLFlushMappedBufferRange:
835             context->flushMappedBufferRange(
836                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
837                     .value.BufferBindingVal,
838                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
839                 params.getParam("length", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal);
840             break;
841         case angle::EntryPoint::GLFogf:
842             context->fogf(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
843                           params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
844             break;
845         case angle::EntryPoint::GLFogfv:
846             context->fogfv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
847                            replayContext->getAsConstPointer<const GLfloat *>(
848                                params.getParam("params", ParamType::TGLfloatConstPointer, 1)));
849             break;
850         case angle::EntryPoint::GLFogx:
851             context->fogx(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
852                           params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
853             break;
854         case angle::EntryPoint::GLFogxv:
855             context->fogxv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
856                            replayContext->getAsConstPointer<const GLfixed *>(
857                                params.getParam("param", ParamType::TGLfixedConstPointer, 1)));
858             break;
859         case angle::EntryPoint::GLFramebufferParameteri:
860             context->framebufferParameteri(
861                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
862                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
863                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
864             break;
865         case angle::EntryPoint::GLFramebufferRenderbuffer:
866             context->framebufferRenderbuffer(
867                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
868                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
869                 params.getParam("renderbuffertarget", ParamType::TGLenum, 2).value.GLenumVal,
870                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 3)
871                     .value.RenderbufferIDVal);
872             break;
873         case angle::EntryPoint::GLFramebufferTexture:
874             context->framebufferTexture(
875                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
876                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
877                 params.getParam("texturePacked", ParamType::TTextureID, 2).value.TextureIDVal,
878                 params.getParam("level", ParamType::TGLint, 3).value.GLintVal);
879             break;
880         case angle::EntryPoint::GLFramebufferTexture2D:
881             context->framebufferTexture2D(
882                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
883                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
884                 params.getParam("textargetPacked", ParamType::TTextureTarget, 2)
885                     .value.TextureTargetVal,
886                 params.getParam("texturePacked", ParamType::TTextureID, 3).value.TextureIDVal,
887                 params.getParam("level", ParamType::TGLint, 4).value.GLintVal);
888             break;
889         case angle::EntryPoint::GLFramebufferTexture3D:
890             context->framebufferTexture3D(
891                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
892                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
893                 params.getParam("textargetPacked", ParamType::TTextureTarget, 2)
894                     .value.TextureTargetVal,
895                 params.getParam("texturePacked", ParamType::TTextureID, 3).value.TextureIDVal,
896                 params.getParam("level", ParamType::TGLint, 4).value.GLintVal,
897                 params.getParam("zoffset", ParamType::TGLint, 5).value.GLintVal);
898             break;
899         case angle::EntryPoint::GLFramebufferTextureLayer:
900             context->framebufferTextureLayer(
901                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
902                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
903                 params.getParam("texturePacked", ParamType::TTextureID, 2).value.TextureIDVal,
904                 params.getParam("level", ParamType::TGLint, 3).value.GLintVal,
905                 params.getParam("layer", ParamType::TGLint, 4).value.GLintVal);
906             break;
907         case angle::EntryPoint::GLFrontFace:
908             context->frontFace(params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal);
909             break;
910         case angle::EntryPoint::GLFrustumf:
911             context->frustumf(params.getParam("l", ParamType::TGLfloat, 0).value.GLfloatVal,
912                               params.getParam("r", ParamType::TGLfloat, 1).value.GLfloatVal,
913                               params.getParam("b", ParamType::TGLfloat, 2).value.GLfloatVal,
914                               params.getParam("t", ParamType::TGLfloat, 3).value.GLfloatVal,
915                               params.getParam("n", ParamType::TGLfloat, 4).value.GLfloatVal,
916                               params.getParam("f", ParamType::TGLfloat, 5).value.GLfloatVal);
917             break;
918         case angle::EntryPoint::GLFrustumx:
919             context->frustumx(params.getParam("l", ParamType::TGLfixed, 0).value.GLfixedVal,
920                               params.getParam("r", ParamType::TGLfixed, 1).value.GLfixedVal,
921                               params.getParam("b", ParamType::TGLfixed, 2).value.GLfixedVal,
922                               params.getParam("t", ParamType::TGLfixed, 3).value.GLfixedVal,
923                               params.getParam("n", ParamType::TGLfixed, 4).value.GLfixedVal,
924                               params.getParam("f", ParamType::TGLfixed, 5).value.GLfixedVal);
925             break;
926         case angle::EntryPoint::GLGenBuffers:
927             context->genBuffers(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
928                                 replayContext->getReadBufferPointer<BufferID *>(params.getParam(
929                                     "buffersPacked", ParamType::TBufferIDPointer, 1)));
930             break;
931         case angle::EntryPoint::GLGenFencesNV:
932             context->genFencesNV(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
933                                  replayContext->getReadBufferPointer<FenceNVID *>(params.getParam(
934                                      "fencesPacked", ParamType::TFenceNVIDPointer, 1)));
935             break;
936         case angle::EntryPoint::GLGenFramebuffers:
937             context->genFramebuffers(
938                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
939                 replayContext->getReadBufferPointer<FramebufferID *>(
940                     params.getParam("framebuffersPacked", ParamType::TFramebufferIDPointer, 1)));
941             break;
942         case angle::EntryPoint::GLGenProgramPipelines:
943             context->genProgramPipelines(
944                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
945                 replayContext->getReadBufferPointer<ProgramPipelineID *>(
946                     params.getParam("pipelinesPacked", ParamType::TProgramPipelineIDPointer, 1)));
947             break;
948         case angle::EntryPoint::GLGenQueries:
949             context->genQueries(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
950                                 replayContext->getReadBufferPointer<QueryID *>(
951                                     params.getParam("idsPacked", ParamType::TQueryIDPointer, 1)));
952             break;
953         case angle::EntryPoint::GLGenRenderbuffers:
954             context->genRenderbuffers(
955                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
956                 replayContext->getReadBufferPointer<RenderbufferID *>(
957                     params.getParam("renderbuffersPacked", ParamType::TRenderbufferIDPointer, 1)));
958             break;
959         case angle::EntryPoint::GLGenSamplers:
960             context->genSamplers(params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
961                                  replayContext->getReadBufferPointer<SamplerID *>(params.getParam(
962                                      "samplersPacked", ParamType::TSamplerIDPointer, 1)));
963             break;
964         case angle::EntryPoint::GLGenTextures:
965             context->genTextures(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
966                                  replayContext->getReadBufferPointer<TextureID *>(params.getParam(
967                                      "texturesPacked", ParamType::TTextureIDPointer, 1)));
968             break;
969         case angle::EntryPoint::GLGenTransformFeedbacks:
970             context->genTransformFeedbacks(
971                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
972                 replayContext->getReadBufferPointer<TransformFeedbackID *>(
973                     params.getParam("idsPacked", ParamType::TTransformFeedbackIDPointer, 1)));
974             break;
975         case angle::EntryPoint::GLGenVertexArrays:
976             context->genVertexArrays(
977                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
978                 replayContext->getReadBufferPointer<VertexArrayID *>(
979                     params.getParam("arraysPacked", ParamType::TVertexArrayIDPointer, 1)));
980             break;
981         case angle::EntryPoint::GLGenerateMipmap:
982             context->generateMipmap(
983                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal);
984             break;
985         case angle::EntryPoint::GLGetActiveAttrib:
986             context->getActiveAttrib(
987                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
988                     .value.ShaderProgramIDVal,
989                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
990                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
991                 replayContext->getReadBufferPointer<GLsizei *>(
992                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
993                 replayContext->getReadBufferPointer<GLint *>(
994                     params.getParam("size", ParamType::TGLintPointer, 4)),
995                 replayContext->getReadBufferPointer<GLenum *>(
996                     params.getParam("type", ParamType::TGLenumPointer, 5)),
997                 replayContext->getReadBufferPointer<GLchar *>(
998                     params.getParam("name", ParamType::TGLcharPointer, 6)));
999             break;
1000         case angle::EntryPoint::GLGetActiveUniform:
1001             context->getActiveUniform(
1002                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1003                     .value.ShaderProgramIDVal,
1004                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1005                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1006                 replayContext->getReadBufferPointer<GLsizei *>(
1007                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1008                 replayContext->getReadBufferPointer<GLint *>(
1009                     params.getParam("size", ParamType::TGLintPointer, 4)),
1010                 replayContext->getReadBufferPointer<GLenum *>(
1011                     params.getParam("type", ParamType::TGLenumPointer, 5)),
1012                 replayContext->getReadBufferPointer<GLchar *>(
1013                     params.getParam("name", ParamType::TGLcharPointer, 6)));
1014             break;
1015         case angle::EntryPoint::GLGetActiveUniformBlockName:
1016             context->getActiveUniformBlockName(
1017                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1018                     .value.ShaderProgramIDVal,
1019                 params.getParam("uniformBlockIndexPacked", ParamType::TUniformBlockIndex, 1)
1020                     .value.UniformBlockIndexVal,
1021                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1022                 replayContext->getReadBufferPointer<GLsizei *>(
1023                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1024                 replayContext->getReadBufferPointer<GLchar *>(
1025                     params.getParam("uniformBlockName", ParamType::TGLcharPointer, 4)));
1026             break;
1027         case angle::EntryPoint::GLGetActiveUniformBlockiv:
1028             context->getActiveUniformBlockiv(
1029                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1030                     .value.ShaderProgramIDVal,
1031                 params.getParam("uniformBlockIndexPacked", ParamType::TUniformBlockIndex, 1)
1032                     .value.UniformBlockIndexVal,
1033                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1034                 replayContext->getReadBufferPointer<GLint *>(
1035                     params.getParam("params", ParamType::TGLintPointer, 3)));
1036             break;
1037         case angle::EntryPoint::GLGetActiveUniformsiv:
1038             context->getActiveUniformsiv(
1039                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1040                     .value.ShaderProgramIDVal,
1041                 params.getParam("uniformCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1042                 replayContext->getAsConstPointer<const GLuint *>(
1043                     params.getParam("uniformIndices", ParamType::TGLuintConstPointer, 2)),
1044                 params.getParam("pname", ParamType::TGLenum, 3).value.GLenumVal,
1045                 replayContext->getReadBufferPointer<GLint *>(
1046                     params.getParam("params", ParamType::TGLintPointer, 4)));
1047             break;
1048         case angle::EntryPoint::GLGetAttachedShaders:
1049             context->getAttachedShaders(
1050                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1051                     .value.ShaderProgramIDVal,
1052                 params.getParam("maxCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1053                 replayContext->getReadBufferPointer<GLsizei *>(
1054                     params.getParam("count", ParamType::TGLsizeiPointer, 2)),
1055                 replayContext->getReadBufferPointer<ShaderProgramID *>(
1056                     params.getParam("shadersPacked", ParamType::TShaderProgramIDPointer, 3)));
1057             break;
1058         case angle::EntryPoint::GLGetAttribLocation:
1059             context->getAttribLocation(
1060                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1061                     .value.ShaderProgramIDVal,
1062                 replayContext->getAsConstPointer<const GLchar *>(
1063                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1064             break;
1065         case angle::EntryPoint::GLGetBooleani_v:
1066             context->getBooleani_v(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1067                                    params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1068                                    replayContext->getReadBufferPointer<GLboolean *>(
1069                                        params.getParam("data", ParamType::TGLbooleanPointer, 2)));
1070             break;
1071         case angle::EntryPoint::GLGetBooleanv:
1072             context->getBooleanv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1073                                  replayContext->getReadBufferPointer<GLboolean *>(
1074                                      params.getParam("data", ParamType::TGLbooleanPointer, 1)));
1075             break;
1076         case angle::EntryPoint::GLGetBufferParameteri64v:
1077             context->getBufferParameteri64v(
1078                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1079                     .value.BufferBindingVal,
1080                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1081                 replayContext->getReadBufferPointer<GLint64 *>(
1082                     params.getParam("params", ParamType::TGLint64Pointer, 2)));
1083             break;
1084         case angle::EntryPoint::GLGetBufferParameteriv:
1085             context->getBufferParameteriv(
1086                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1087                     .value.BufferBindingVal,
1088                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1089                 replayContext->getReadBufferPointer<GLint *>(
1090                     params.getParam("params", ParamType::TGLintPointer, 2)));
1091             break;
1092         case angle::EntryPoint::GLGetBufferPointerv:
1093             context->getBufferPointerv(
1094                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1095                     .value.BufferBindingVal,
1096                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1097                 replayContext->getReadBufferPointer<void **>(
1098                     params.getParam("params", ParamType::TvoidPointerPointer, 2)));
1099             break;
1100         case angle::EntryPoint::GLGetClipPlanef:
1101             context->getClipPlanef(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
1102                                    replayContext->getReadBufferPointer<GLfloat *>(
1103                                        params.getParam("equation", ParamType::TGLfloatPointer, 1)));
1104             break;
1105         case angle::EntryPoint::GLGetClipPlanex:
1106             context->getClipPlanex(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
1107                                    replayContext->getReadBufferPointer<GLfixed *>(
1108                                        params.getParam("equation", ParamType::TGLfixedPointer, 1)));
1109             break;
1110         case angle::EntryPoint::GLGetCompressedTexImage:
1111             context->getCompressedTexImage(
1112                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1113                     .value.TextureTargetVal,
1114                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1115                 replayContext->getReadBufferPointer<void *>(
1116                     params.getParam("img", ParamType::TvoidPointer, 2)));
1117             break;
1118         case angle::EntryPoint::GLGetDebugMessageLog:
1119             context->getDebugMessageLog(
1120                 params.getParam("count", ParamType::TGLuint, 0).value.GLuintVal,
1121                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1122                 replayContext->getReadBufferPointer<GLenum *>(
1123                     params.getParam("sources", ParamType::TGLenumPointer, 2)),
1124                 replayContext->getReadBufferPointer<GLenum *>(
1125                     params.getParam("types", ParamType::TGLenumPointer, 3)),
1126                 replayContext->getReadBufferPointer<GLuint *>(
1127                     params.getParam("ids", ParamType::TGLuintPointer, 4)),
1128                 replayContext->getReadBufferPointer<GLenum *>(
1129                     params.getParam("severities", ParamType::TGLenumPointer, 5)),
1130                 replayContext->getReadBufferPointer<GLsizei *>(
1131                     params.getParam("lengths", ParamType::TGLsizeiPointer, 6)),
1132                 replayContext->getReadBufferPointer<GLchar *>(
1133                     params.getParam("messageLog", ParamType::TGLcharPointer, 7)));
1134             break;
1135         case angle::EntryPoint::GLGetError:
1136             context->getError();
1137             break;
1138         case angle::EntryPoint::GLGetFenceivNV:
1139             context->getFenceivNV(
1140                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal,
1141                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1142                 replayContext->getReadBufferPointer<GLint *>(
1143                     params.getParam("params", ParamType::TGLintPointer, 2)));
1144             break;
1145         case angle::EntryPoint::GLGetFixedv:
1146             context->getFixedv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1147                                replayContext->getReadBufferPointer<GLfixed *>(
1148                                    params.getParam("params", ParamType::TGLfixedPointer, 1)));
1149             break;
1150         case angle::EntryPoint::GLGetFloatv:
1151             context->getFloatv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1152                                replayContext->getReadBufferPointer<GLfloat *>(
1153                                    params.getParam("data", ParamType::TGLfloatPointer, 1)));
1154             break;
1155         case angle::EntryPoint::GLGetFragDataIndex:
1156             context->getFragDataIndex(
1157                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1158                     .value.ShaderProgramIDVal,
1159                 replayContext->getAsConstPointer<const GLchar *>(
1160                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1161             break;
1162         case angle::EntryPoint::GLGetFragDataLocation:
1163             context->getFragDataLocation(
1164                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1165                     .value.ShaderProgramIDVal,
1166                 replayContext->getAsConstPointer<const GLchar *>(
1167                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1168             break;
1169         case angle::EntryPoint::GLGetFramebufferAttachmentParameteriv:
1170             context->getFramebufferAttachmentParameteriv(
1171                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1172                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
1173                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1174                 replayContext->getReadBufferPointer<GLint *>(
1175                     params.getParam("params", ParamType::TGLintPointer, 3)));
1176             break;
1177         case angle::EntryPoint::GLGetFramebufferParameteriv:
1178             context->getFramebufferParameteriv(
1179                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1180                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1181                 replayContext->getReadBufferPointer<GLint *>(
1182                     params.getParam("params", ParamType::TGLintPointer, 2)));
1183             break;
1184         case angle::EntryPoint::GLGetGraphicsResetStatus:
1185             context->getGraphicsResetStatus();
1186             break;
1187         case angle::EntryPoint::GLGetInteger64i_v:
1188             context->getInteger64i_v(
1189                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1190                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1191                 replayContext->getReadBufferPointer<GLint64 *>(
1192                     params.getParam("data", ParamType::TGLint64Pointer, 2)));
1193             break;
1194         case angle::EntryPoint::GLGetInteger64v:
1195             context->getInteger64v(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1196                                    replayContext->getReadBufferPointer<GLint64 *>(
1197                                        params.getParam("data", ParamType::TGLint64Pointer, 1)));
1198             break;
1199         case angle::EntryPoint::GLGetIntegeri_v:
1200             context->getIntegeri_v(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1201                                    params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1202                                    replayContext->getReadBufferPointer<GLint *>(
1203                                        params.getParam("data", ParamType::TGLintPointer, 2)));
1204             break;
1205         case angle::EntryPoint::GLGetIntegerv:
1206             context->getIntegerv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1207                                  replayContext->getReadBufferPointer<GLint *>(
1208                                      params.getParam("data", ParamType::TGLintPointer, 1)));
1209             break;
1210         case angle::EntryPoint::GLGetInternalformativ:
1211             context->getInternalformativ(
1212                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1213                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
1214                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1215                 params.getParam("bufSize", ParamType::TGLsizei, 3).value.GLsizeiVal,
1216                 replayContext->getReadBufferPointer<GLint *>(
1217                     params.getParam("params", ParamType::TGLintPointer, 4)));
1218             break;
1219         case angle::EntryPoint::GLGetLightfv:
1220             context->getLightfv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1221                                 params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1222                                     .value.LightParameterVal,
1223                                 replayContext->getReadBufferPointer<GLfloat *>(
1224                                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1225             break;
1226         case angle::EntryPoint::GLGetLightxv:
1227             context->getLightxv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1228                                 params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1229                                     .value.LightParameterVal,
1230                                 replayContext->getReadBufferPointer<GLfixed *>(
1231                                     params.getParam("params", ParamType::TGLfixedPointer, 2)));
1232             break;
1233         case angle::EntryPoint::GLGetMaterialfv:
1234             context->getMaterialfv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1235                                    params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1236                                        .value.MaterialParameterVal,
1237                                    replayContext->getReadBufferPointer<GLfloat *>(
1238                                        params.getParam("params", ParamType::TGLfloatPointer, 2)));
1239             break;
1240         case angle::EntryPoint::GLGetMaterialxv:
1241             context->getMaterialxv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1242                                    params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1243                                        .value.MaterialParameterVal,
1244                                    replayContext->getReadBufferPointer<GLfixed *>(
1245                                        params.getParam("params", ParamType::TGLfixedPointer, 2)));
1246             break;
1247         case angle::EntryPoint::GLGetMultisamplefv:
1248             context->getMultisamplefv(
1249                 params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1250                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1251                 replayContext->getReadBufferPointer<GLfloat *>(
1252                     params.getParam("val", ParamType::TGLfloatPointer, 2)));
1253             break;
1254         case angle::EntryPoint::GLGetObjectLabel:
1255             context->getObjectLabel(
1256                 params.getParam("identifier", ParamType::TGLenum, 0).value.GLenumVal,
1257                 params.getParam("name", ParamType::TGLuint, 1).value.GLuintVal,
1258                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1259                 replayContext->getReadBufferPointer<GLsizei *>(
1260                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1261                 replayContext->getReadBufferPointer<GLchar *>(
1262                     params.getParam("label", ParamType::TGLcharPointer, 4)));
1263             break;
1264         case angle::EntryPoint::GLGetObjectPtrLabel:
1265             context->getObjectPtrLabel(
1266                 replayContext->getAsConstPointer<const void *>(
1267                     params.getParam("ptr", ParamType::TvoidConstPointer, 0)),
1268                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1269                 replayContext->getReadBufferPointer<GLsizei *>(
1270                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1271                 replayContext->getReadBufferPointer<GLchar *>(
1272                     params.getParam("label", ParamType::TGLcharPointer, 3)));
1273             break;
1274         case angle::EntryPoint::GLGetPointerv:
1275             context->getPointerv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1276                                  replayContext->getReadBufferPointer<void **>(
1277                                      params.getParam("params", ParamType::TvoidPointerPointer, 1)));
1278             break;
1279         case angle::EntryPoint::GLGetProgramBinary:
1280             context->getProgramBinary(
1281                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1282                     .value.ShaderProgramIDVal,
1283                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1284                 replayContext->getReadBufferPointer<GLsizei *>(
1285                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1286                 replayContext->getReadBufferPointer<GLenum *>(
1287                     params.getParam("binaryFormat", ParamType::TGLenumPointer, 3)),
1288                 replayContext->getReadBufferPointer<void *>(
1289                     params.getParam("binary", ParamType::TvoidPointer, 4)));
1290             break;
1291         case angle::EntryPoint::GLGetProgramInfoLog:
1292             context->getProgramInfoLog(
1293                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1294                     .value.ShaderProgramIDVal,
1295                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1296                 replayContext->getReadBufferPointer<GLsizei *>(
1297                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1298                 replayContext->getReadBufferPointer<GLchar *>(
1299                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1300             break;
1301         case angle::EntryPoint::GLGetProgramInterfaceiv:
1302             context->getProgramInterfaceiv(
1303                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1304                     .value.ShaderProgramIDVal,
1305                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1306                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1307                 replayContext->getReadBufferPointer<GLint *>(
1308                     params.getParam("params", ParamType::TGLintPointer, 3)));
1309             break;
1310         case angle::EntryPoint::GLGetProgramPipelineInfoLog:
1311             context->getProgramPipelineInfoLog(
1312                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1313                     .value.ProgramPipelineIDVal,
1314                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1315                 replayContext->getReadBufferPointer<GLsizei *>(
1316                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1317                 replayContext->getReadBufferPointer<GLchar *>(
1318                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1319             break;
1320         case angle::EntryPoint::GLGetProgramPipelineiv:
1321             context->getProgramPipelineiv(
1322                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1323                     .value.ProgramPipelineIDVal,
1324                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1325                 replayContext->getReadBufferPointer<GLint *>(
1326                     params.getParam("params", ParamType::TGLintPointer, 2)));
1327             break;
1328         case angle::EntryPoint::GLGetProgramResourceIndex:
1329             context->getProgramResourceIndex(
1330                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1331                     .value.ShaderProgramIDVal,
1332                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1333                 replayContext->getAsConstPointer<const GLchar *>(
1334                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1335             break;
1336         case angle::EntryPoint::GLGetProgramResourceLocation:
1337             context->getProgramResourceLocation(
1338                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1339                     .value.ShaderProgramIDVal,
1340                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1341                 replayContext->getAsConstPointer<const GLchar *>(
1342                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1343             break;
1344         case angle::EntryPoint::GLGetProgramResourceLocationIndex:
1345             context->getProgramResourceLocationIndex(
1346                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1347                     .value.ShaderProgramIDVal,
1348                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1349                 replayContext->getAsConstPointer<const GLchar *>(
1350                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1351             break;
1352         case angle::EntryPoint::GLGetProgramResourceName:
1353             context->getProgramResourceName(
1354                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1355                     .value.ShaderProgramIDVal,
1356                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1357                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
1358                 params.getParam("bufSize", ParamType::TGLsizei, 3).value.GLsizeiVal,
1359                 replayContext->getReadBufferPointer<GLsizei *>(
1360                     params.getParam("length", ParamType::TGLsizeiPointer, 4)),
1361                 replayContext->getReadBufferPointer<GLchar *>(
1362                     params.getParam("name", ParamType::TGLcharPointer, 5)));
1363             break;
1364         case angle::EntryPoint::GLGetProgramResourceiv:
1365             context->getProgramResourceiv(
1366                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1367                     .value.ShaderProgramIDVal,
1368                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1369                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
1370                 params.getParam("propCount", ParamType::TGLsizei, 3).value.GLsizeiVal,
1371                 replayContext->getAsConstPointer<const GLenum *>(
1372                     params.getParam("props", ParamType::TGLenumConstPointer, 4)),
1373                 params.getParam("bufSize", ParamType::TGLsizei, 5).value.GLsizeiVal,
1374                 replayContext->getReadBufferPointer<GLsizei *>(
1375                     params.getParam("length", ParamType::TGLsizeiPointer, 6)),
1376                 replayContext->getReadBufferPointer<GLint *>(
1377                     params.getParam("params", ParamType::TGLintPointer, 7)));
1378             break;
1379         case angle::EntryPoint::GLGetProgramiv:
1380             context->getProgramiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1381                                       .value.ShaderProgramIDVal,
1382                                   params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1383                                   replayContext->getReadBufferPointer<GLint *>(
1384                                       params.getParam("params", ParamType::TGLintPointer, 2)));
1385             break;
1386         case angle::EntryPoint::GLGetQueryObjecti64v:
1387             context->getQueryObjecti64v(
1388                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1389                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1390                 replayContext->getReadBufferPointer<GLint64 *>(
1391                     params.getParam("params", ParamType::TGLint64Pointer, 2)));
1392             break;
1393         case angle::EntryPoint::GLGetQueryObjectiv:
1394             context->getQueryObjectiv(
1395                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1396                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1397                 replayContext->getReadBufferPointer<GLint *>(
1398                     params.getParam("params", ParamType::TGLintPointer, 2)));
1399             break;
1400         case angle::EntryPoint::GLGetQueryObjectui64v:
1401             context->getQueryObjectui64v(
1402                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1403                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1404                 replayContext->getReadBufferPointer<GLuint64 *>(
1405                     params.getParam("params", ParamType::TGLuint64Pointer, 2)));
1406             break;
1407         case angle::EntryPoint::GLGetQueryObjectuiv:
1408             context->getQueryObjectuiv(
1409                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1410                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1411                 replayContext->getReadBufferPointer<GLuint *>(
1412                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1413             break;
1414         case angle::EntryPoint::GLGetQueryiv:
1415             context->getQueryiv(
1416                 params.getParam("targetPacked", ParamType::TQueryType, 0).value.QueryTypeVal,
1417                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1418                 replayContext->getReadBufferPointer<GLint *>(
1419                     params.getParam("params", ParamType::TGLintPointer, 2)));
1420             break;
1421         case angle::EntryPoint::GLGetRenderbufferParameteriv:
1422             context->getRenderbufferParameteriv(
1423                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1424                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1425                 replayContext->getReadBufferPointer<GLint *>(
1426                     params.getParam("params", ParamType::TGLintPointer, 2)));
1427             break;
1428         case angle::EntryPoint::GLGetSamplerParameterIiv:
1429             context->getSamplerParameterIiv(
1430                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1431                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1432                 replayContext->getReadBufferPointer<GLint *>(
1433                     params.getParam("params", ParamType::TGLintPointer, 2)));
1434             break;
1435         case angle::EntryPoint::GLGetSamplerParameterIuiv:
1436             context->getSamplerParameterIuiv(
1437                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1438                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1439                 replayContext->getReadBufferPointer<GLuint *>(
1440                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1441             break;
1442         case angle::EntryPoint::GLGetSamplerParameterfv:
1443             context->getSamplerParameterfv(
1444                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1445                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1446                 replayContext->getReadBufferPointer<GLfloat *>(
1447                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1448             break;
1449         case angle::EntryPoint::GLGetSamplerParameteriv:
1450             context->getSamplerParameteriv(
1451                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1452                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1453                 replayContext->getReadBufferPointer<GLint *>(
1454                     params.getParam("params", ParamType::TGLintPointer, 2)));
1455             break;
1456         case angle::EntryPoint::GLGetShaderInfoLog:
1457             context->getShaderInfoLog(
1458                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1459                     .value.ShaderProgramIDVal,
1460                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1461                 replayContext->getReadBufferPointer<GLsizei *>(
1462                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1463                 replayContext->getReadBufferPointer<GLchar *>(
1464                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1465             break;
1466         case angle::EntryPoint::GLGetShaderPrecisionFormat:
1467             context->getShaderPrecisionFormat(
1468                 params.getParam("shadertype", ParamType::TGLenum, 0).value.GLenumVal,
1469                 params.getParam("precisiontype", ParamType::TGLenum, 1).value.GLenumVal,
1470                 replayContext->getReadBufferPointer<GLint *>(
1471                     params.getParam("range", ParamType::TGLintPointer, 2)),
1472                 replayContext->getReadBufferPointer<GLint *>(
1473                     params.getParam("precision", ParamType::TGLintPointer, 3)));
1474             break;
1475         case angle::EntryPoint::GLGetShaderSource:
1476             context->getShaderSource(
1477                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1478                     .value.ShaderProgramIDVal,
1479                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1480                 replayContext->getReadBufferPointer<GLsizei *>(
1481                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1482                 replayContext->getReadBufferPointer<GLchar *>(
1483                     params.getParam("source", ParamType::TGLcharPointer, 3)));
1484             break;
1485         case angle::EntryPoint::GLGetShaderiv:
1486             context->getShaderiv(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1487                                      .value.ShaderProgramIDVal,
1488                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1489                                  replayContext->getReadBufferPointer<GLint *>(
1490                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1491             break;
1492         case angle::EntryPoint::GLGetString:
1493             context->getString(params.getParam("name", ParamType::TGLenum, 0).value.GLenumVal);
1494             break;
1495         case angle::EntryPoint::GLGetStringi:
1496             context->getStringi(params.getParam("name", ParamType::TGLenum, 0).value.GLenumVal,
1497                                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
1498             break;
1499         case angle::EntryPoint::GLGetSynciv:
1500             context->getSynciv(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
1501                                params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1502                                params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1503                                replayContext->getReadBufferPointer<GLsizei *>(
1504                                    params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1505                                replayContext->getReadBufferPointer<GLint *>(
1506                                    params.getParam("values", ParamType::TGLintPointer, 4)));
1507             break;
1508         case angle::EntryPoint::GLGetTexEnvfv:
1509             context->getTexEnvfv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1510                                      .value.TextureEnvTargetVal,
1511                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1512                                      .value.TextureEnvParameterVal,
1513                                  replayContext->getReadBufferPointer<GLfloat *>(
1514                                      params.getParam("params", ParamType::TGLfloatPointer, 2)));
1515             break;
1516         case angle::EntryPoint::GLGetTexEnviv:
1517             context->getTexEnviv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1518                                      .value.TextureEnvTargetVal,
1519                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1520                                      .value.TextureEnvParameterVal,
1521                                  replayContext->getReadBufferPointer<GLint *>(
1522                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1523             break;
1524         case angle::EntryPoint::GLGetTexEnvxv:
1525             context->getTexEnvxv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1526                                      .value.TextureEnvTargetVal,
1527                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1528                                      .value.TextureEnvParameterVal,
1529                                  replayContext->getReadBufferPointer<GLfixed *>(
1530                                      params.getParam("params", ParamType::TGLfixedPointer, 2)));
1531             break;
1532         case angle::EntryPoint::GLGetTexGenfv:
1533             context->getTexGenfv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
1534                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1535                                  replayContext->getReadBufferPointer<GLfloat *>(
1536                                      params.getParam("params", ParamType::TGLfloatPointer, 2)));
1537             break;
1538         case angle::EntryPoint::GLGetTexGeniv:
1539             context->getTexGeniv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
1540                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1541                                  replayContext->getReadBufferPointer<GLint *>(
1542                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1543             break;
1544         case angle::EntryPoint::GLGetTexImage:
1545             context->getTexImage(params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1546                                      .value.TextureTargetVal,
1547                                  params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1548                                  params.getParam("format", ParamType::TGLenum, 2).value.GLenumVal,
1549                                  params.getParam("type", ParamType::TGLenum, 3).value.GLenumVal,
1550                                  replayContext->getReadBufferPointer<void *>(
1551                                      params.getParam("pixels", ParamType::TvoidPointer, 4)));
1552             break;
1553         case angle::EntryPoint::GLGetTexLevelParameterfv:
1554             context->getTexLevelParameterfv(
1555                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1556                     .value.TextureTargetVal,
1557                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1558                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1559                 replayContext->getReadBufferPointer<GLfloat *>(
1560                     params.getParam("params", ParamType::TGLfloatPointer, 3)));
1561             break;
1562         case angle::EntryPoint::GLGetTexLevelParameteriv:
1563             context->getTexLevelParameteriv(
1564                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1565                     .value.TextureTargetVal,
1566                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1567                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1568                 replayContext->getReadBufferPointer<GLint *>(
1569                     params.getParam("params", ParamType::TGLintPointer, 3)));
1570             break;
1571         case angle::EntryPoint::GLGetTexParameterIiv:
1572             context->getTexParameterIiv(
1573                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1574                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1575                 replayContext->getReadBufferPointer<GLint *>(
1576                     params.getParam("params", ParamType::TGLintPointer, 2)));
1577             break;
1578         case angle::EntryPoint::GLGetTexParameterIuiv:
1579             context->getTexParameterIuiv(
1580                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1581                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1582                 replayContext->getReadBufferPointer<GLuint *>(
1583                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1584             break;
1585         case angle::EntryPoint::GLGetTexParameterfv:
1586             context->getTexParameterfv(
1587                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1588                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1589                 replayContext->getReadBufferPointer<GLfloat *>(
1590                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1591             break;
1592         case angle::EntryPoint::GLGetTexParameteriv:
1593             context->getTexParameteriv(
1594                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1595                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1596                 replayContext->getReadBufferPointer<GLint *>(
1597                     params.getParam("params", ParamType::TGLintPointer, 2)));
1598             break;
1599         case angle::EntryPoint::GLGetTexParameterxv:
1600             context->getTexParameterxv(
1601                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1602                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1603                 replayContext->getReadBufferPointer<GLfixed *>(
1604                     params.getParam("params", ParamType::TGLfixedPointer, 2)));
1605             break;
1606         case angle::EntryPoint::GLGetTransformFeedbackVarying:
1607             context->getTransformFeedbackVarying(
1608                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1609                     .value.ShaderProgramIDVal,
1610                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1611                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1612                 replayContext->getReadBufferPointer<GLsizei *>(
1613                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1614                 replayContext->getReadBufferPointer<GLsizei *>(
1615                     params.getParam("size", ParamType::TGLsizeiPointer, 4)),
1616                 replayContext->getReadBufferPointer<GLenum *>(
1617                     params.getParam("type", ParamType::TGLenumPointer, 5)),
1618                 replayContext->getReadBufferPointer<GLchar *>(
1619                     params.getParam("name", ParamType::TGLcharPointer, 6)));
1620             break;
1621         case angle::EntryPoint::GLGetUniformBlockIndex:
1622             context->getUniformBlockIndex(
1623                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1624                     .value.ShaderProgramIDVal,
1625                 replayContext->getAsConstPointer<const GLchar *>(
1626                     params.getParam("uniformBlockName", ParamType::TGLcharConstPointer, 1)));
1627             break;
1628         case angle::EntryPoint::GLGetUniformIndices:
1629             context->getUniformIndices(
1630                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1631                     .value.ShaderProgramIDVal,
1632                 params.getParam("uniformCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1633                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
1634                     params.getParam("uniformNames", ParamType::TGLcharConstPointerPointer, 2)),
1635                 replayContext->getReadBufferPointer<GLuint *>(
1636                     params.getParam("uniformIndices", ParamType::TGLuintPointer, 3)));
1637             break;
1638         case angle::EntryPoint::GLGetUniformLocation:
1639             context->getUniformLocation(
1640                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1641                     .value.ShaderProgramIDVal,
1642                 replayContext->getAsConstPointer<const GLchar *>(
1643                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1644             break;
1645         case angle::EntryPoint::GLGetUniformfv:
1646             context->getUniformfv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1647                                       .value.ShaderProgramIDVal,
1648                                   params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1649                                       .value.UniformLocationVal,
1650                                   replayContext->getReadBufferPointer<GLfloat *>(
1651                                       params.getParam("params", ParamType::TGLfloatPointer, 2)));
1652             break;
1653         case angle::EntryPoint::GLGetUniformiv:
1654             context->getUniformiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1655                                       .value.ShaderProgramIDVal,
1656                                   params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1657                                       .value.UniformLocationVal,
1658                                   replayContext->getReadBufferPointer<GLint *>(
1659                                       params.getParam("params", ParamType::TGLintPointer, 2)));
1660             break;
1661         case angle::EntryPoint::GLGetUniformuiv:
1662             context->getUniformuiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1663                                        .value.ShaderProgramIDVal,
1664                                    params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1665                                        .value.UniformLocationVal,
1666                                    replayContext->getReadBufferPointer<GLuint *>(
1667                                        params.getParam("params", ParamType::TGLuintPointer, 2)));
1668             break;
1669         case angle::EntryPoint::GLGetVertexAttribIiv:
1670             context->getVertexAttribIiv(
1671                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1672                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1673                 replayContext->getReadBufferPointer<GLint *>(
1674                     params.getParam("params", ParamType::TGLintPointer, 2)));
1675             break;
1676         case angle::EntryPoint::GLGetVertexAttribIuiv:
1677             context->getVertexAttribIuiv(
1678                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1679                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1680                 replayContext->getReadBufferPointer<GLuint *>(
1681                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1682             break;
1683         case angle::EntryPoint::GLGetVertexAttribPointerv:
1684             context->getVertexAttribPointerv(
1685                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1686                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1687                 replayContext->getReadBufferPointer<void **>(
1688                     params.getParam("pointer", ParamType::TvoidPointerPointer, 2)));
1689             break;
1690         case angle::EntryPoint::GLGetVertexAttribfv:
1691             context->getVertexAttribfv(
1692                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1693                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1694                 replayContext->getReadBufferPointer<GLfloat *>(
1695                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1696             break;
1697         case angle::EntryPoint::GLGetVertexAttribiv:
1698             context->getVertexAttribiv(
1699                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1700                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1701                 replayContext->getReadBufferPointer<GLint *>(
1702                     params.getParam("params", ParamType::TGLintPointer, 2)));
1703             break;
1704         case angle::EntryPoint::GLGetnUniformfv:
1705             context->getnUniformfv(
1706                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1707                     .value.ShaderProgramIDVal,
1708                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1709                     .value.UniformLocationVal,
1710                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1711                 replayContext->getReadBufferPointer<GLfloat *>(
1712                     params.getParam("params", ParamType::TGLfloatPointer, 3)));
1713             break;
1714         case angle::EntryPoint::GLGetnUniformiv:
1715             context->getnUniformiv(
1716                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1717                     .value.ShaderProgramIDVal,
1718                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1719                     .value.UniformLocationVal,
1720                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1721                 replayContext->getReadBufferPointer<GLint *>(
1722                     params.getParam("params", ParamType::TGLintPointer, 3)));
1723             break;
1724         case angle::EntryPoint::GLGetnUniformuiv:
1725             context->getnUniformuiv(
1726                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1727                     .value.ShaderProgramIDVal,
1728                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1729                     .value.UniformLocationVal,
1730                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1731                 replayContext->getReadBufferPointer<GLuint *>(
1732                     params.getParam("params", ParamType::TGLuintPointer, 3)));
1733             break;
1734         case angle::EntryPoint::GLHint:
1735             context->hint(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1736                           params.getParam("mode", ParamType::TGLenum, 1).value.GLenumVal);
1737             break;
1738         case angle::EntryPoint::GLInvalidateFramebuffer:
1739             context->invalidateFramebuffer(
1740                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1741                 params.getParam("numAttachments", ParamType::TGLsizei, 1).value.GLsizeiVal,
1742                 replayContext->getAsConstPointer<const GLenum *>(
1743                     params.getParam("attachments", ParamType::TGLenumConstPointer, 2)));
1744             break;
1745         case angle::EntryPoint::GLInvalidateSubFramebuffer:
1746             context->invalidateSubFramebuffer(
1747                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1748                 params.getParam("numAttachments", ParamType::TGLsizei, 1).value.GLsizeiVal,
1749                 replayContext->getAsConstPointer<const GLenum *>(
1750                     params.getParam("attachments", ParamType::TGLenumConstPointer, 2)),
1751                 params.getParam("x", ParamType::TGLint, 3).value.GLintVal,
1752                 params.getParam("y", ParamType::TGLint, 4).value.GLintVal,
1753                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
1754                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal);
1755             break;
1756         case angle::EntryPoint::GLIsBuffer:
1757             context->isBuffer(
1758                 params.getParam("bufferPacked", ParamType::TBufferID, 0).value.BufferIDVal);
1759             break;
1760         case angle::EntryPoint::GLIsEnabled:
1761             context->isEnabled(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
1762             break;
1763         case angle::EntryPoint::GLIsEnabledi:
1764             context->isEnabledi(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1765                                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
1766             break;
1767         case angle::EntryPoint::GLIsFenceNV:
1768             context->isFenceNV(
1769                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
1770             break;
1771         case angle::EntryPoint::GLIsFramebuffer:
1772             context->isFramebuffer(
1773                 params.getParam("framebufferPacked", ParamType::TFramebufferID, 0)
1774                     .value.FramebufferIDVal);
1775             break;
1776         case angle::EntryPoint::GLIsProgram:
1777             context->isProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1778                                    .value.ShaderProgramIDVal);
1779             break;
1780         case angle::EntryPoint::GLIsProgramPipeline:
1781             context->isProgramPipeline(
1782                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1783                     .value.ProgramPipelineIDVal);
1784             break;
1785         case angle::EntryPoint::GLIsQuery:
1786             context->isQuery(params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal);
1787             break;
1788         case angle::EntryPoint::GLIsRenderbuffer:
1789             context->isRenderbuffer(
1790                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 0)
1791                     .value.RenderbufferIDVal);
1792             break;
1793         case angle::EntryPoint::GLIsSampler:
1794             context->isSampler(
1795                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal);
1796             break;
1797         case angle::EntryPoint::GLIsShader:
1798             context->isShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1799                                   .value.ShaderProgramIDVal);
1800             break;
1801         case angle::EntryPoint::GLIsSync:
1802             context->isSync(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal);
1803             break;
1804         case angle::EntryPoint::GLIsTexture:
1805             context->isTexture(
1806                 params.getParam("texturePacked", ParamType::TTextureID, 0).value.TextureIDVal);
1807             break;
1808         case angle::EntryPoint::GLIsTransformFeedback:
1809             context->isTransformFeedback(
1810                 params.getParam("idPacked", ParamType::TTransformFeedbackID, 0)
1811                     .value.TransformFeedbackIDVal);
1812             break;
1813         case angle::EntryPoint::GLIsVertexArray:
1814             context->isVertexArray(params.getParam("arrayPacked", ParamType::TVertexArrayID, 0)
1815                                        .value.VertexArrayIDVal);
1816             break;
1817         case angle::EntryPoint::GLLightModelf:
1818             context->lightModelf(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1819                                  params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
1820             break;
1821         case angle::EntryPoint::GLLightModelfv:
1822             context->lightModelfv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1823                                   replayContext->getAsConstPointer<const GLfloat *>(params.getParam(
1824                                       "params", ParamType::TGLfloatConstPointer, 1)));
1825             break;
1826         case angle::EntryPoint::GLLightModelx:
1827             context->lightModelx(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1828                                  params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
1829             break;
1830         case angle::EntryPoint::GLLightModelxv:
1831             context->lightModelxv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1832                                   replayContext->getAsConstPointer<const GLfixed *>(params.getParam(
1833                                       "param", ParamType::TGLfixedConstPointer, 1)));
1834             break;
1835         case angle::EntryPoint::GLLightf:
1836             context->lightf(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1837                             params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1838                                 .value.LightParameterVal,
1839                             params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
1840             break;
1841         case angle::EntryPoint::GLLightfv:
1842             context->lightfv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1843                              params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1844                                  .value.LightParameterVal,
1845                              replayContext->getAsConstPointer<const GLfloat *>(
1846                                  params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
1847             break;
1848         case angle::EntryPoint::GLLightx:
1849             context->lightx(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1850                             params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1851                                 .value.LightParameterVal,
1852                             params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
1853             break;
1854         case angle::EntryPoint::GLLightxv:
1855             context->lightxv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1856                              params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1857                                  .value.LightParameterVal,
1858                              replayContext->getAsConstPointer<const GLfixed *>(
1859                                  params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
1860             break;
1861         case angle::EntryPoint::GLLineWidth:
1862             context->lineWidth(params.getParam("width", ParamType::TGLfloat, 0).value.GLfloatVal);
1863             break;
1864         case angle::EntryPoint::GLLineWidthx:
1865             context->lineWidthx(params.getParam("width", ParamType::TGLfixed, 0).value.GLfixedVal);
1866             break;
1867         case angle::EntryPoint::GLLinkProgram:
1868             context->linkProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1869                                      .value.ShaderProgramIDVal);
1870             break;
1871         case angle::EntryPoint::GLLoadIdentity:
1872             context->loadIdentity();
1873             break;
1874         case angle::EntryPoint::GLLoadMatrixf:
1875             context->loadMatrixf(replayContext->getAsConstPointer<const GLfloat *>(
1876                 params.getParam("m", ParamType::TGLfloatConstPointer, 0)));
1877             break;
1878         case angle::EntryPoint::GLLoadMatrixx:
1879             context->loadMatrixx(replayContext->getAsConstPointer<const GLfixed *>(
1880                 params.getParam("m", ParamType::TGLfixedConstPointer, 0)));
1881             break;
1882         case angle::EntryPoint::GLLogicOp:
1883             context->logicOp(params.getParam("opcodePacked", ParamType::TLogicalOperation, 0)
1884                                  .value.LogicalOperationVal);
1885             break;
1886         case angle::EntryPoint::GLMapBuffer:
1887             context->mapBuffer(params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1888                                    .value.BufferBindingVal,
1889                                params.getParam("access", ParamType::TGLenum, 1).value.GLenumVal);
1890             break;
1891         case angle::EntryPoint::GLMapBufferRange:
1892             context->mapBufferRange(
1893                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1894                     .value.BufferBindingVal,
1895                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
1896                 params.getParam("length", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal,
1897                 params.getParam("access", ParamType::TGLbitfield, 3).value.GLbitfieldVal);
1898             break;
1899         case angle::EntryPoint::GLMaterialf:
1900             context->materialf(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1901                                params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1902                                    .value.MaterialParameterVal,
1903                                params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
1904             break;
1905         case angle::EntryPoint::GLMaterialfv:
1906             context->materialfv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1907                                 params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1908                                     .value.MaterialParameterVal,
1909                                 replayContext->getAsConstPointer<const GLfloat *>(
1910                                     params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
1911             break;
1912         case angle::EntryPoint::GLMaterialx:
1913             context->materialx(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1914                                params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1915                                    .value.MaterialParameterVal,
1916                                params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
1917             break;
1918         case angle::EntryPoint::GLMaterialxv:
1919             context->materialxv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1920                                 params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1921                                     .value.MaterialParameterVal,
1922                                 replayContext->getAsConstPointer<const GLfixed *>(
1923                                     params.getParam("param", ParamType::TGLfixedConstPointer, 2)));
1924             break;
1925         case angle::EntryPoint::GLMatrixMode:
1926             context->matrixMode(
1927                 params.getParam("modePacked", ParamType::TMatrixType, 0).value.MatrixTypeVal);
1928             break;
1929         case angle::EntryPoint::GLMemoryBarrier:
1930             context->memoryBarrier(
1931                 params.getParam("barriers", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
1932             break;
1933         case angle::EntryPoint::GLMemoryBarrierByRegion:
1934             context->memoryBarrierByRegion(
1935                 params.getParam("barriers", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
1936             break;
1937         case angle::EntryPoint::GLMinSampleShading:
1938             context->minSampleShading(
1939                 params.getParam("value", ParamType::TGLfloat, 0).value.GLfloatVal);
1940             break;
1941         case angle::EntryPoint::GLMultMatrixf:
1942             context->multMatrixf(replayContext->getAsConstPointer<const GLfloat *>(
1943                 params.getParam("m", ParamType::TGLfloatConstPointer, 0)));
1944             break;
1945         case angle::EntryPoint::GLMultMatrixx:
1946             context->multMatrixx(replayContext->getAsConstPointer<const GLfixed *>(
1947                 params.getParam("m", ParamType::TGLfixedConstPointer, 0)));
1948             break;
1949         case angle::EntryPoint::GLMultiDrawArrays:
1950             context->multiDrawArrays(
1951                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1952                 replayContext->getAsConstPointer<const GLint *>(
1953                     params.getParam("first", ParamType::TGLintConstPointer, 1)),
1954                 replayContext->getAsConstPointer<const GLsizei *>(
1955                     params.getParam("count", ParamType::TGLsizeiConstPointer, 2)),
1956                 params.getParam("drawcount", ParamType::TGLsizei, 3).value.GLsizeiVal);
1957             break;
1958         case angle::EntryPoint::GLMultiDrawArraysIndirect:
1959             context->multiDrawArraysIndirect(
1960                 params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal,
1961                 replayContext->getAsConstPointer<const void *>(
1962                     params.getParam("indirect", ParamType::TvoidConstPointer, 1)),
1963                 params.getParam("drawcount", ParamType::TGLsizei, 2).value.GLsizeiVal,
1964                 params.getParam("stride", ParamType::TGLsizei, 3).value.GLsizeiVal);
1965             break;
1966         case angle::EntryPoint::GLMultiDrawElements:
1967             context->multiDrawElements(
1968                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1969                 replayContext->getAsConstPointer<const GLsizei *>(
1970                     params.getParam("count", ParamType::TGLsizeiConstPointer, 1)),
1971                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
1972                     .value.DrawElementsTypeVal,
1973                 replayContext->getAsPointerConstPointer<const void *const *>(
1974                     params.getParam("indices", ParamType::TvoidConstPointerPointer, 3)),
1975                 params.getParam("drawcount", ParamType::TGLsizei, 4).value.GLsizeiVal);
1976             break;
1977         case angle::EntryPoint::GLMultiDrawElementsBaseVertex:
1978             context->multiDrawElementsBaseVertex(
1979                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1980                 replayContext->getAsConstPointer<const GLsizei *>(
1981                     params.getParam("count", ParamType::TGLsizeiConstPointer, 1)),
1982                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
1983                     .value.DrawElementsTypeVal,
1984                 replayContext->getAsPointerConstPointer<const void *const *>(
1985                     params.getParam("indices", ParamType::TvoidConstPointerPointer, 3)),
1986                 params.getParam("drawcount", ParamType::TGLsizei, 4).value.GLsizeiVal,
1987                 replayContext->getAsConstPointer<const GLint *>(
1988                     params.getParam("basevertex", ParamType::TGLintConstPointer, 5)));
1989             break;
1990         case angle::EntryPoint::GLMultiDrawElementsIndirect:
1991             context->multiDrawElementsIndirect(
1992                 params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal,
1993                 params.getParam("type", ParamType::TGLenum, 1).value.GLenumVal,
1994                 replayContext->getAsConstPointer<const void *>(
1995                     params.getParam("indirect", ParamType::TvoidConstPointer, 2)),
1996                 params.getParam("drawcount", ParamType::TGLsizei, 3).value.GLsizeiVal,
1997                 params.getParam("stride", ParamType::TGLsizei, 4).value.GLsizeiVal);
1998             break;
1999         case angle::EntryPoint::GLMultiTexCoord4f:
2000             context->multiTexCoord4f(
2001                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2002                 params.getParam("s", ParamType::TGLfloat, 1).value.GLfloatVal,
2003                 params.getParam("t", ParamType::TGLfloat, 2).value.GLfloatVal,
2004                 params.getParam("r", ParamType::TGLfloat, 3).value.GLfloatVal,
2005                 params.getParam("q", ParamType::TGLfloat, 4).value.GLfloatVal);
2006             break;
2007         case angle::EntryPoint::GLMultiTexCoord4x:
2008             context->multiTexCoord4x(
2009                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal,
2010                 params.getParam("s", ParamType::TGLfixed, 1).value.GLfixedVal,
2011                 params.getParam("t", ParamType::TGLfixed, 2).value.GLfixedVal,
2012                 params.getParam("r", ParamType::TGLfixed, 3).value.GLfixedVal,
2013                 params.getParam("q", ParamType::TGLfixed, 4).value.GLfixedVal);
2014             break;
2015         case angle::EntryPoint::GLNormal3f:
2016             context->normal3f(params.getParam("nx", ParamType::TGLfloat, 0).value.GLfloatVal,
2017                               params.getParam("ny", ParamType::TGLfloat, 1).value.GLfloatVal,
2018                               params.getParam("nz", ParamType::TGLfloat, 2).value.GLfloatVal);
2019             break;
2020         case angle::EntryPoint::GLNormal3x:
2021             context->normal3x(params.getParam("nx", ParamType::TGLfixed, 0).value.GLfixedVal,
2022                               params.getParam("ny", ParamType::TGLfixed, 1).value.GLfixedVal,
2023                               params.getParam("nz", ParamType::TGLfixed, 2).value.GLfixedVal);
2024             break;
2025         case angle::EntryPoint::GLNormalPointer:
2026             context->normalPointer(
2027                 params.getParam("typePacked", ParamType::TVertexAttribType, 0)
2028                     .value.VertexAttribTypeVal,
2029                 params.getParam("stride", ParamType::TGLsizei, 1).value.GLsizeiVal,
2030                 replayContext->getAsConstPointer<const void *>(
2031                     params.getParam("pointer", ParamType::TvoidConstPointer, 2)));
2032             break;
2033         case angle::EntryPoint::GLObjectLabel:
2034             context->objectLabel(
2035                 params.getParam("identifier", ParamType::TGLenum, 0).value.GLenumVal,
2036                 params.getParam("name", ParamType::TGLuint, 1).value.GLuintVal,
2037                 params.getParam("length", ParamType::TGLsizei, 2).value.GLsizeiVal,
2038                 replayContext->getAsConstPointer<const GLchar *>(
2039                     params.getParam("label", ParamType::TGLcharConstPointer, 3)));
2040             break;
2041         case angle::EntryPoint::GLObjectPtrLabel:
2042             context->objectPtrLabel(
2043                 replayContext->getAsConstPointer<const void *>(
2044                     params.getParam("ptr", ParamType::TvoidConstPointer, 0)),
2045                 params.getParam("length", ParamType::TGLsizei, 1).value.GLsizeiVal,
2046                 replayContext->getAsConstPointer<const GLchar *>(
2047                     params.getParam("label", ParamType::TGLcharConstPointer, 2)));
2048             break;
2049         case angle::EntryPoint::GLOrthof:
2050             context->orthof(params.getParam("l", ParamType::TGLfloat, 0).value.GLfloatVal,
2051                             params.getParam("r", ParamType::TGLfloat, 1).value.GLfloatVal,
2052                             params.getParam("b", ParamType::TGLfloat, 2).value.GLfloatVal,
2053                             params.getParam("t", ParamType::TGLfloat, 3).value.GLfloatVal,
2054                             params.getParam("n", ParamType::TGLfloat, 4).value.GLfloatVal,
2055                             params.getParam("f", ParamType::TGLfloat, 5).value.GLfloatVal);
2056             break;
2057         case angle::EntryPoint::GLOrthox:
2058             context->orthox(params.getParam("l", ParamType::TGLfixed, 0).value.GLfixedVal,
2059                             params.getParam("r", ParamType::TGLfixed, 1).value.GLfixedVal,
2060                             params.getParam("b", ParamType::TGLfixed, 2).value.GLfixedVal,
2061                             params.getParam("t", ParamType::TGLfixed, 3).value.GLfixedVal,
2062                             params.getParam("n", ParamType::TGLfixed, 4).value.GLfixedVal,
2063                             params.getParam("f", ParamType::TGLfixed, 5).value.GLfixedVal);
2064             break;
2065         case angle::EntryPoint::GLPatchParameteri:
2066             context->patchParameteri(
2067                 params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
2068                 params.getParam("value", ParamType::TGLint, 1).value.GLintVal);
2069             break;
2070         case angle::EntryPoint::GLPauseTransformFeedback:
2071             context->pauseTransformFeedback();
2072             break;
2073         case angle::EntryPoint::GLPixelStorei:
2074             context->pixelStorei(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
2075                                  params.getParam("param", ParamType::TGLint, 1).value.GLintVal);
2076             break;
2077         case angle::EntryPoint::GLPointParameterf:
2078             context->pointParameterf(
2079                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2080                     .value.PointParameterVal,
2081                 params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
2082             break;
2083         case angle::EntryPoint::GLPointParameterfv:
2084             context->pointParameterfv(
2085                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2086                     .value.PointParameterVal,
2087                 replayContext->getAsConstPointer<const GLfloat *>(
2088                     params.getParam("params", ParamType::TGLfloatConstPointer, 1)));
2089             break;
2090         case angle::EntryPoint::GLPointParameterx:
2091             context->pointParameterx(
2092                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2093                     .value.PointParameterVal,
2094                 params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
2095             break;
2096         case angle::EntryPoint::GLPointParameterxv:
2097             context->pointParameterxv(
2098                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2099                     .value.PointParameterVal,
2100                 replayContext->getAsConstPointer<const GLfixed *>(
2101                     params.getParam("params", ParamType::TGLfixedConstPointer, 1)));
2102             break;
2103         case angle::EntryPoint::GLPointSize:
2104             context->pointSize(params.getParam("size", ParamType::TGLfloat, 0).value.GLfloatVal);
2105             break;
2106         case angle::EntryPoint::GLPointSizex:
2107             context->pointSizex(params.getParam("size", ParamType::TGLfixed, 0).value.GLfixedVal);
2108             break;
2109         case angle::EntryPoint::GLPolygonOffset:
2110             context->polygonOffset(
2111                 params.getParam("factor", ParamType::TGLfloat, 0).value.GLfloatVal,
2112                 params.getParam("units", ParamType::TGLfloat, 1).value.GLfloatVal);
2113             break;
2114         case angle::EntryPoint::GLPolygonOffsetx:
2115             context->polygonOffsetx(
2116                 params.getParam("factor", ParamType::TGLfixed, 0).value.GLfixedVal,
2117                 params.getParam("units", ParamType::TGLfixed, 1).value.GLfixedVal);
2118             break;
2119         case angle::EntryPoint::GLPopDebugGroup:
2120             context->popDebugGroup();
2121             break;
2122         case angle::EntryPoint::GLPopMatrix:
2123             context->popMatrix();
2124             break;
2125         case angle::EntryPoint::GLPrimitiveBoundingBox:
2126             context->primitiveBoundingBox(
2127                 params.getParam("minX", ParamType::TGLfloat, 0).value.GLfloatVal,
2128                 params.getParam("minY", ParamType::TGLfloat, 1).value.GLfloatVal,
2129                 params.getParam("minZ", ParamType::TGLfloat, 2).value.GLfloatVal,
2130                 params.getParam("minW", ParamType::TGLfloat, 3).value.GLfloatVal,
2131                 params.getParam("maxX", ParamType::TGLfloat, 4).value.GLfloatVal,
2132                 params.getParam("maxY", ParamType::TGLfloat, 5).value.GLfloatVal,
2133                 params.getParam("maxZ", ParamType::TGLfloat, 6).value.GLfloatVal,
2134                 params.getParam("maxW", ParamType::TGLfloat, 7).value.GLfloatVal);
2135             break;
2136         case angle::EntryPoint::GLProgramBinary:
2137             context->programBinary(
2138                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2139                     .value.ShaderProgramIDVal,
2140                 params.getParam("binaryFormat", ParamType::TGLenum, 1).value.GLenumVal,
2141                 replayContext->getAsConstPointer<const void *>(
2142                     params.getParam("binary", ParamType::TvoidConstPointer, 2)),
2143                 params.getParam("length", ParamType::TGLsizei, 3).value.GLsizeiVal);
2144             break;
2145         case angle::EntryPoint::GLProgramParameteri:
2146             context->programParameteri(
2147                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2148                     .value.ShaderProgramIDVal,
2149                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2150                 params.getParam("value", ParamType::TGLint, 2).value.GLintVal);
2151             break;
2152         case angle::EntryPoint::GLProgramUniform1f:
2153             context->programUniform1f(
2154                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2155                     .value.ShaderProgramIDVal,
2156                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2157                     .value.UniformLocationVal,
2158                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal);
2159             break;
2160         case angle::EntryPoint::GLProgramUniform1fv:
2161             context->programUniform1fv(
2162                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2163                     .value.ShaderProgramIDVal,
2164                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2165                     .value.UniformLocationVal,
2166                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2167                 replayContext->getAsConstPointer<const GLfloat *>(
2168                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2169             break;
2170         case angle::EntryPoint::GLProgramUniform1i:
2171             context->programUniform1i(
2172                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2173                     .value.ShaderProgramIDVal,
2174                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2175                     .value.UniformLocationVal,
2176                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal);
2177             break;
2178         case angle::EntryPoint::GLProgramUniform1iv:
2179             context->programUniform1iv(
2180                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2181                     .value.ShaderProgramIDVal,
2182                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2183                     .value.UniformLocationVal,
2184                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2185                 replayContext->getAsConstPointer<const GLint *>(
2186                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2187             break;
2188         case angle::EntryPoint::GLProgramUniform1ui:
2189             context->programUniform1ui(
2190                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2191                     .value.ShaderProgramIDVal,
2192                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2193                     .value.UniformLocationVal,
2194                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal);
2195             break;
2196         case angle::EntryPoint::GLProgramUniform1uiv:
2197             context->programUniform1uiv(
2198                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2199                     .value.ShaderProgramIDVal,
2200                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2201                     .value.UniformLocationVal,
2202                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2203                 replayContext->getAsConstPointer<const GLuint *>(
2204                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2205             break;
2206         case angle::EntryPoint::GLProgramUniform2f:
2207             context->programUniform2f(
2208                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2209                     .value.ShaderProgramIDVal,
2210                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2211                     .value.UniformLocationVal,
2212                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2213                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal);
2214             break;
2215         case angle::EntryPoint::GLProgramUniform2fv:
2216             context->programUniform2fv(
2217                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2218                     .value.ShaderProgramIDVal,
2219                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2220                     .value.UniformLocationVal,
2221                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2222                 replayContext->getAsConstPointer<const GLfloat *>(
2223                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2224             break;
2225         case angle::EntryPoint::GLProgramUniform2i:
2226             context->programUniform2i(
2227                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2228                     .value.ShaderProgramIDVal,
2229                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2230                     .value.UniformLocationVal,
2231                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2232                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal);
2233             break;
2234         case angle::EntryPoint::GLProgramUniform2iv:
2235             context->programUniform2iv(
2236                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2237                     .value.ShaderProgramIDVal,
2238                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2239                     .value.UniformLocationVal,
2240                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2241                 replayContext->getAsConstPointer<const GLint *>(
2242                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2243             break;
2244         case angle::EntryPoint::GLProgramUniform2ui:
2245             context->programUniform2ui(
2246                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2247                     .value.ShaderProgramIDVal,
2248                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2249                     .value.UniformLocationVal,
2250                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2251                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal);
2252             break;
2253         case angle::EntryPoint::GLProgramUniform2uiv:
2254             context->programUniform2uiv(
2255                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2256                     .value.ShaderProgramIDVal,
2257                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2258                     .value.UniformLocationVal,
2259                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2260                 replayContext->getAsConstPointer<const GLuint *>(
2261                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2262             break;
2263         case angle::EntryPoint::GLProgramUniform3f:
2264             context->programUniform3f(
2265                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2266                     .value.ShaderProgramIDVal,
2267                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2268                     .value.UniformLocationVal,
2269                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2270                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal,
2271                 params.getParam("v2", ParamType::TGLfloat, 4).value.GLfloatVal);
2272             break;
2273         case angle::EntryPoint::GLProgramUniform3fv:
2274             context->programUniform3fv(
2275                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2276                     .value.ShaderProgramIDVal,
2277                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2278                     .value.UniformLocationVal,
2279                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2280                 replayContext->getAsConstPointer<const GLfloat *>(
2281                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2282             break;
2283         case angle::EntryPoint::GLProgramUniform3i:
2284             context->programUniform3i(
2285                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2286                     .value.ShaderProgramIDVal,
2287                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2288                     .value.UniformLocationVal,
2289                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2290                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal,
2291                 params.getParam("v2", ParamType::TGLint, 4).value.GLintVal);
2292             break;
2293         case angle::EntryPoint::GLProgramUniform3iv:
2294             context->programUniform3iv(
2295                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2296                     .value.ShaderProgramIDVal,
2297                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2298                     .value.UniformLocationVal,
2299                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2300                 replayContext->getAsConstPointer<const GLint *>(
2301                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2302             break;
2303         case angle::EntryPoint::GLProgramUniform3ui:
2304             context->programUniform3ui(
2305                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2306                     .value.ShaderProgramIDVal,
2307                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2308                     .value.UniformLocationVal,
2309                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2310                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal,
2311                 params.getParam("v2", ParamType::TGLuint, 4).value.GLuintVal);
2312             break;
2313         case angle::EntryPoint::GLProgramUniform3uiv:
2314             context->programUniform3uiv(
2315                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2316                     .value.ShaderProgramIDVal,
2317                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2318                     .value.UniformLocationVal,
2319                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2320                 replayContext->getAsConstPointer<const GLuint *>(
2321                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2322             break;
2323         case angle::EntryPoint::GLProgramUniform4f:
2324             context->programUniform4f(
2325                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2326                     .value.ShaderProgramIDVal,
2327                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2328                     .value.UniformLocationVal,
2329                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2330                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal,
2331                 params.getParam("v2", ParamType::TGLfloat, 4).value.GLfloatVal,
2332                 params.getParam("v3", ParamType::TGLfloat, 5).value.GLfloatVal);
2333             break;
2334         case angle::EntryPoint::GLProgramUniform4fv:
2335             context->programUniform4fv(
2336                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2337                     .value.ShaderProgramIDVal,
2338                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2339                     .value.UniformLocationVal,
2340                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2341                 replayContext->getAsConstPointer<const GLfloat *>(
2342                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2343             break;
2344         case angle::EntryPoint::GLProgramUniform4i:
2345             context->programUniform4i(
2346                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2347                     .value.ShaderProgramIDVal,
2348                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2349                     .value.UniformLocationVal,
2350                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2351                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal,
2352                 params.getParam("v2", ParamType::TGLint, 4).value.GLintVal,
2353                 params.getParam("v3", ParamType::TGLint, 5).value.GLintVal);
2354             break;
2355         case angle::EntryPoint::GLProgramUniform4iv:
2356             context->programUniform4iv(
2357                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2358                     .value.ShaderProgramIDVal,
2359                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2360                     .value.UniformLocationVal,
2361                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2362                 replayContext->getAsConstPointer<const GLint *>(
2363                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2364             break;
2365         case angle::EntryPoint::GLProgramUniform4ui:
2366             context->programUniform4ui(
2367                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2368                     .value.ShaderProgramIDVal,
2369                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2370                     .value.UniformLocationVal,
2371                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2372                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal,
2373                 params.getParam("v2", ParamType::TGLuint, 4).value.GLuintVal,
2374                 params.getParam("v3", ParamType::TGLuint, 5).value.GLuintVal);
2375             break;
2376         case angle::EntryPoint::GLProgramUniform4uiv:
2377             context->programUniform4uiv(
2378                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2379                     .value.ShaderProgramIDVal,
2380                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2381                     .value.UniformLocationVal,
2382                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2383                 replayContext->getAsConstPointer<const GLuint *>(
2384                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2385             break;
2386         case angle::EntryPoint::GLProgramUniformMatrix2fv:
2387             context->programUniformMatrix2fv(
2388                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2389                     .value.ShaderProgramIDVal,
2390                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2391                     .value.UniformLocationVal,
2392                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2393                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2394                 replayContext->getAsConstPointer<const GLfloat *>(
2395                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2396             break;
2397         case angle::EntryPoint::GLProgramUniformMatrix2x3fv:
2398             context->programUniformMatrix2x3fv(
2399                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2400                     .value.ShaderProgramIDVal,
2401                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2402                     .value.UniformLocationVal,
2403                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2404                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2405                 replayContext->getAsConstPointer<const GLfloat *>(
2406                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2407             break;
2408         case angle::EntryPoint::GLProgramUniformMatrix2x4fv:
2409             context->programUniformMatrix2x4fv(
2410                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2411                     .value.ShaderProgramIDVal,
2412                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2413                     .value.UniformLocationVal,
2414                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2415                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2416                 replayContext->getAsConstPointer<const GLfloat *>(
2417                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2418             break;
2419         case angle::EntryPoint::GLProgramUniformMatrix3fv:
2420             context->programUniformMatrix3fv(
2421                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2422                     .value.ShaderProgramIDVal,
2423                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2424                     .value.UniformLocationVal,
2425                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2426                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2427                 replayContext->getAsConstPointer<const GLfloat *>(
2428                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2429             break;
2430         case angle::EntryPoint::GLProgramUniformMatrix3x2fv:
2431             context->programUniformMatrix3x2fv(
2432                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2433                     .value.ShaderProgramIDVal,
2434                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2435                     .value.UniformLocationVal,
2436                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2437                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2438                 replayContext->getAsConstPointer<const GLfloat *>(
2439                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2440             break;
2441         case angle::EntryPoint::GLProgramUniformMatrix3x4fv:
2442             context->programUniformMatrix3x4fv(
2443                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2444                     .value.ShaderProgramIDVal,
2445                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2446                     .value.UniformLocationVal,
2447                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2448                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2449                 replayContext->getAsConstPointer<const GLfloat *>(
2450                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2451             break;
2452         case angle::EntryPoint::GLProgramUniformMatrix4fv:
2453             context->programUniformMatrix4fv(
2454                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2455                     .value.ShaderProgramIDVal,
2456                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2457                     .value.UniformLocationVal,
2458                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2459                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2460                 replayContext->getAsConstPointer<const GLfloat *>(
2461                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2462             break;
2463         case angle::EntryPoint::GLProgramUniformMatrix4x2fv:
2464             context->programUniformMatrix4x2fv(
2465                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2466                     .value.ShaderProgramIDVal,
2467                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2468                     .value.UniformLocationVal,
2469                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2470                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2471                 replayContext->getAsConstPointer<const GLfloat *>(
2472                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2473             break;
2474         case angle::EntryPoint::GLProgramUniformMatrix4x3fv:
2475             context->programUniformMatrix4x3fv(
2476                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2477                     .value.ShaderProgramIDVal,
2478                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2479                     .value.UniformLocationVal,
2480                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2481                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2482                 replayContext->getAsConstPointer<const GLfloat *>(
2483                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2484             break;
2485         case angle::EntryPoint::GLProvokingVertex:
2486             context->provokingVertex(
2487                 params.getParam("modePacked", ParamType::TProvokingVertexConvention, 0)
2488                     .value.ProvokingVertexConventionVal);
2489             break;
2490         case angle::EntryPoint::GLPushDebugGroup:
2491             context->pushDebugGroup(
2492                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
2493                 params.getParam("id", ParamType::TGLuint, 1).value.GLuintVal,
2494                 params.getParam("length", ParamType::TGLsizei, 2).value.GLsizeiVal,
2495                 replayContext->getAsConstPointer<const GLchar *>(
2496                     params.getParam("message", ParamType::TGLcharConstPointer, 3)));
2497             break;
2498         case angle::EntryPoint::GLPushMatrix:
2499             context->pushMatrix();
2500             break;
2501         case angle::EntryPoint::GLQueryCounter:
2502             context->queryCounter(
2503                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
2504                 params.getParam("targetPacked", ParamType::TQueryType, 1).value.QueryTypeVal);
2505             break;
2506         case angle::EntryPoint::GLReadBuffer:
2507             context->readBuffer(params.getParam("src", ParamType::TGLenum, 0).value.GLenumVal);
2508             break;
2509         case angle::EntryPoint::GLReadPixels:
2510             context->readPixels(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2511                                 params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2512                                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2513                                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal,
2514                                 params.getParam("format", ParamType::TGLenum, 4).value.GLenumVal,
2515                                 params.getParam("type", ParamType::TGLenum, 5).value.GLenumVal,
2516                                 replayContext->getReadBufferPointer<void *>(
2517                                     params.getParam("pixels", ParamType::TvoidPointer, 6)));
2518             break;
2519         case angle::EntryPoint::GLReadnPixels:
2520             context->readnPixels(
2521                 params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2522                 params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2523                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2524                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal,
2525                 params.getParam("format", ParamType::TGLenum, 4).value.GLenumVal,
2526                 params.getParam("type", ParamType::TGLenum, 5).value.GLenumVal,
2527                 params.getParam("bufSize", ParamType::TGLsizei, 6).value.GLsizeiVal,
2528                 replayContext->getReadBufferPointer<void *>(
2529                     params.getParam("data", ParamType::TvoidPointer, 7)));
2530             break;
2531         case angle::EntryPoint::GLReleaseShaderCompiler:
2532             context->releaseShaderCompiler();
2533             break;
2534         case angle::EntryPoint::GLRenderbufferStorage:
2535             context->renderbufferStorage(
2536                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2537                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2538                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2539                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
2540             break;
2541         case angle::EntryPoint::GLRenderbufferStorageMultisample:
2542             context->renderbufferStorageMultisample(
2543                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2544                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2545                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2546                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2547                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2548             break;
2549         case angle::EntryPoint::GLRenderbufferStorageMultisampleEXT:
2550             context->renderbufferStorageMultisampleEXT(
2551                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2552                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2553                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2554                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2555                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2556             break;
2557         case angle::EntryPoint::GLResumeTransformFeedback:
2558             context->resumeTransformFeedback();
2559             break;
2560         case angle::EntryPoint::GLRotatef:
2561             context->rotatef(params.getParam("angle", ParamType::TGLfloat, 0).value.GLfloatVal,
2562                              params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
2563                              params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
2564                              params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal);
2565             break;
2566         case angle::EntryPoint::GLRotatex:
2567             context->rotatex(params.getParam("angle", ParamType::TGLfixed, 0).value.GLfixedVal,
2568                              params.getParam("x", ParamType::TGLfixed, 1).value.GLfixedVal,
2569                              params.getParam("y", ParamType::TGLfixed, 2).value.GLfixedVal,
2570                              params.getParam("z", ParamType::TGLfixed, 3).value.GLfixedVal);
2571             break;
2572         case angle::EntryPoint::GLSampleCoverage:
2573             context->sampleCoverage(
2574                 params.getParam("value", ParamType::TGLfloat, 0).value.GLfloatVal,
2575                 params.getParam("invert", ParamType::TGLboolean, 1).value.GLbooleanVal);
2576             break;
2577         case angle::EntryPoint::GLSampleCoveragex:
2578             context->sampleCoveragex(
2579                 params.getParam("value", ParamType::TGLclampx, 0).value.GLclampxVal,
2580                 params.getParam("invert", ParamType::TGLboolean, 1).value.GLbooleanVal);
2581             break;
2582         case angle::EntryPoint::GLSampleMaski:
2583             context->sampleMaski(
2584                 params.getParam("maskNumber", ParamType::TGLuint, 0).value.GLuintVal,
2585                 params.getParam("mask", ParamType::TGLbitfield, 1).value.GLbitfieldVal);
2586             break;
2587         case angle::EntryPoint::GLSamplerParameterIiv:
2588             context->samplerParameterIiv(
2589                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2590                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2591                 replayContext->getAsConstPointer<const GLint *>(
2592                     params.getParam("param", ParamType::TGLintConstPointer, 2)));
2593             break;
2594         case angle::EntryPoint::GLSamplerParameterIuiv:
2595             context->samplerParameterIuiv(
2596                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2597                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2598                 replayContext->getAsConstPointer<const GLuint *>(
2599                     params.getParam("param", ParamType::TGLuintConstPointer, 2)));
2600             break;
2601         case angle::EntryPoint::GLSamplerParameterf:
2602             context->samplerParameterf(
2603                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2604                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2605                 params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2606             break;
2607         case angle::EntryPoint::GLSamplerParameterfv:
2608             context->samplerParameterfv(
2609                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2610                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2611                 replayContext->getAsConstPointer<const GLfloat *>(
2612                     params.getParam("param", ParamType::TGLfloatConstPointer, 2)));
2613             break;
2614         case angle::EntryPoint::GLSamplerParameteri:
2615             context->samplerParameteri(
2616                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2617                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2618                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2619             break;
2620         case angle::EntryPoint::GLSamplerParameteriv:
2621             context->samplerParameteriv(
2622                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2623                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2624                 replayContext->getAsConstPointer<const GLint *>(
2625                     params.getParam("param", ParamType::TGLintConstPointer, 2)));
2626             break;
2627         case angle::EntryPoint::GLScalef:
2628             context->scalef(params.getParam("x", ParamType::TGLfloat, 0).value.GLfloatVal,
2629                             params.getParam("y", ParamType::TGLfloat, 1).value.GLfloatVal,
2630                             params.getParam("z", ParamType::TGLfloat, 2).value.GLfloatVal);
2631             break;
2632         case angle::EntryPoint::GLScalex:
2633             context->scalex(params.getParam("x", ParamType::TGLfixed, 0).value.GLfixedVal,
2634                             params.getParam("y", ParamType::TGLfixed, 1).value.GLfixedVal,
2635                             params.getParam("z", ParamType::TGLfixed, 2).value.GLfixedVal);
2636             break;
2637         case angle::EntryPoint::GLScissor:
2638             context->scissor(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2639                              params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2640                              params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2641                              params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
2642             break;
2643         case angle::EntryPoint::GLSetFenceNV:
2644             context->setFenceNV(
2645                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal,
2646                 params.getParam("condition", ParamType::TGLenum, 1).value.GLenumVal);
2647             break;
2648         case angle::EntryPoint::GLShadeModel:
2649             context->shadeModel(
2650                 params.getParam("modePacked", ParamType::TShadingModel, 0).value.ShadingModelVal);
2651             break;
2652         case angle::EntryPoint::GLShaderBinary:
2653             context->shaderBinary(
2654                 params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
2655                 replayContext->getAsConstPointer<const ShaderProgramID *>(
2656                     params.getParam("shadersPacked", ParamType::TShaderProgramIDConstPointer, 1)),
2657                 params.getParam("binaryformat", ParamType::TGLenum, 2).value.GLenumVal,
2658                 replayContext->getAsConstPointer<const void *>(
2659                     params.getParam("binary", ParamType::TvoidConstPointer, 3)),
2660                 params.getParam("length", ParamType::TGLsizei, 4).value.GLsizeiVal);
2661             break;
2662         case angle::EntryPoint::GLShaderSource:
2663             context->shaderSource(
2664                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
2665                     .value.ShaderProgramIDVal,
2666                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2667                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
2668                     params.getParam("string", ParamType::TGLcharConstPointerPointer, 2)),
2669                 replayContext->getAsConstPointer<const GLint *>(
2670                     params.getParam("length", ParamType::TGLintConstPointer, 3)));
2671             break;
2672         case angle::EntryPoint::GLStencilFunc:
2673             context->stencilFunc(params.getParam("func", ParamType::TGLenum, 0).value.GLenumVal,
2674                                  params.getParam("ref", ParamType::TGLint, 1).value.GLintVal,
2675                                  params.getParam("mask", ParamType::TGLuint, 2).value.GLuintVal);
2676             break;
2677         case angle::EntryPoint::GLStencilFuncSeparate:
2678             context->stencilFuncSeparate(
2679                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2680                 params.getParam("func", ParamType::TGLenum, 1).value.GLenumVal,
2681                 params.getParam("ref", ParamType::TGLint, 2).value.GLintVal,
2682                 params.getParam("mask", ParamType::TGLuint, 3).value.GLuintVal);
2683             break;
2684         case angle::EntryPoint::GLStencilMask:
2685             context->stencilMask(params.getParam("mask", ParamType::TGLuint, 0).value.GLuintVal);
2686             break;
2687         case angle::EntryPoint::GLStencilMaskSeparate:
2688             context->stencilMaskSeparate(
2689                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2690                 params.getParam("mask", ParamType::TGLuint, 1).value.GLuintVal);
2691             break;
2692         case angle::EntryPoint::GLStencilOp:
2693             context->stencilOp(params.getParam("fail", ParamType::TGLenum, 0).value.GLenumVal,
2694                                params.getParam("zfail", ParamType::TGLenum, 1).value.GLenumVal,
2695                                params.getParam("zpass", ParamType::TGLenum, 2).value.GLenumVal);
2696             break;
2697         case angle::EntryPoint::GLStencilOpSeparate:
2698             context->stencilOpSeparate(
2699                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2700                 params.getParam("sfail", ParamType::TGLenum, 1).value.GLenumVal,
2701                 params.getParam("dpfail", ParamType::TGLenum, 2).value.GLenumVal,
2702                 params.getParam("dppass", ParamType::TGLenum, 3).value.GLenumVal);
2703             break;
2704         case angle::EntryPoint::GLTestFenceNV:
2705             context->testFenceNV(
2706                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
2707             break;
2708         case angle::EntryPoint::GLTexBuffer:
2709             context->texBuffer(
2710                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2711                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2712                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal);
2713             break;
2714         case angle::EntryPoint::GLTexBufferRange:
2715             context->texBufferRange(
2716                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2717                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2718                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal,
2719                 params.getParam("offset", ParamType::TGLintptr, 3).value.GLintptrVal,
2720                 params.getParam("size", ParamType::TGLsizeiptr, 4).value.GLsizeiptrVal);
2721             break;
2722         case angle::EntryPoint::GLTexCoordPointer:
2723             context->texCoordPointer(
2724                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
2725                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
2726                     .value.VertexAttribTypeVal,
2727                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
2728                 replayContext->getAsConstPointer<const void *>(
2729                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
2730             break;
2731         case angle::EntryPoint::GLTexEnvf:
2732             context->texEnvf(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2733                                  .value.TextureEnvTargetVal,
2734                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2735                                  .value.TextureEnvParameterVal,
2736                              params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2737             break;
2738         case angle::EntryPoint::GLTexEnvfv:
2739             context->texEnvfv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2740                                   .value.TextureEnvTargetVal,
2741                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2742                                   .value.TextureEnvParameterVal,
2743                               replayContext->getAsConstPointer<const GLfloat *>(
2744                                   params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2745             break;
2746         case angle::EntryPoint::GLTexEnvi:
2747             context->texEnvi(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2748                                  .value.TextureEnvTargetVal,
2749                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2750                                  .value.TextureEnvParameterVal,
2751                              params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2752             break;
2753         case angle::EntryPoint::GLTexEnviv:
2754             context->texEnviv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2755                                   .value.TextureEnvTargetVal,
2756                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2757                                   .value.TextureEnvParameterVal,
2758                               replayContext->getAsConstPointer<const GLint *>(
2759                                   params.getParam("params", ParamType::TGLintConstPointer, 2)));
2760             break;
2761         case angle::EntryPoint::GLTexEnvx:
2762             context->texEnvx(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2763                                  .value.TextureEnvTargetVal,
2764                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2765                                  .value.TextureEnvParameterVal,
2766                              params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
2767             break;
2768         case angle::EntryPoint::GLTexEnvxv:
2769             context->texEnvxv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2770                                   .value.TextureEnvTargetVal,
2771                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2772                                   .value.TextureEnvParameterVal,
2773                               replayContext->getAsConstPointer<const GLfixed *>(
2774                                   params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
2775             break;
2776         case angle::EntryPoint::GLTexGenf:
2777             context->texGenf(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2778                              params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2779                              params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2780             break;
2781         case angle::EntryPoint::GLTexGenfv:
2782             context->texGenfv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2783                               params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2784                               replayContext->getAsConstPointer<const GLfloat *>(
2785                                   params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2786             break;
2787         case angle::EntryPoint::GLTexGeni:
2788             context->texGeni(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2789                              params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2790                              params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2791             break;
2792         case angle::EntryPoint::GLTexGeniv:
2793             context->texGeniv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2794                               params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2795                               replayContext->getAsConstPointer<const GLint *>(
2796                                   params.getParam("params", ParamType::TGLintConstPointer, 2)));
2797             break;
2798         case angle::EntryPoint::GLTexImage2D:
2799             context->texImage2D(
2800                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2801                     .value.TextureTargetVal,
2802                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2803                 params.getParam("internalformat", ParamType::TGLint, 2).value.GLintVal,
2804                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2805                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2806                 params.getParam("border", ParamType::TGLint, 5).value.GLintVal,
2807                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
2808                 params.getParam("type", ParamType::TGLenum, 7).value.GLenumVal,
2809                 replayContext->getAsConstPointer<const void *>(
2810                     params.getParam("pixels", ParamType::TvoidConstPointer, 8)));
2811             break;
2812         case angle::EntryPoint::GLTexImage3D:
2813             context->texImage3D(
2814                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2815                     .value.TextureTargetVal,
2816                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2817                 params.getParam("internalformat", ParamType::TGLint, 2).value.GLintVal,
2818                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2819                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2820                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
2821                 params.getParam("border", ParamType::TGLint, 6).value.GLintVal,
2822                 params.getParam("format", ParamType::TGLenum, 7).value.GLenumVal,
2823                 params.getParam("type", ParamType::TGLenum, 8).value.GLenumVal,
2824                 replayContext->getAsConstPointer<const void *>(
2825                     params.getParam("pixels", ParamType::TvoidConstPointer, 9)));
2826             break;
2827         case angle::EntryPoint::GLTexParameterIiv:
2828             context->texParameterIiv(
2829                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2830                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2831                 replayContext->getAsConstPointer<const GLint *>(
2832                     params.getParam("params", ParamType::TGLintConstPointer, 2)));
2833             break;
2834         case angle::EntryPoint::GLTexParameterIuiv:
2835             context->texParameterIuiv(
2836                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2837                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2838                 replayContext->getAsConstPointer<const GLuint *>(
2839                     params.getParam("params", ParamType::TGLuintConstPointer, 2)));
2840             break;
2841         case angle::EntryPoint::GLTexParameterf:
2842             context->texParameterf(
2843                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2844                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2845                 params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2846             break;
2847         case angle::EntryPoint::GLTexParameterfv:
2848             context->texParameterfv(
2849                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2850                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2851                 replayContext->getAsConstPointer<const GLfloat *>(
2852                     params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2853             break;
2854         case angle::EntryPoint::GLTexParameteri:
2855             context->texParameteri(
2856                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2857                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2858                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2859             break;
2860         case angle::EntryPoint::GLTexParameteriv:
2861             context->texParameteriv(
2862                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2863                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2864                 replayContext->getAsConstPointer<const GLint *>(
2865                     params.getParam("params", ParamType::TGLintConstPointer, 2)));
2866             break;
2867         case angle::EntryPoint::GLTexParameterx:
2868             context->texParameterx(
2869                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2870                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2871                 params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
2872             break;
2873         case angle::EntryPoint::GLTexParameterxv:
2874             context->texParameterxv(
2875                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2876                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2877                 replayContext->getAsConstPointer<const GLfixed *>(
2878                     params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
2879             break;
2880         case angle::EntryPoint::GLTexStorage1D:
2881             context->texStorage1D(
2882                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2883                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2884                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2885                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal);
2886             break;
2887         case angle::EntryPoint::GLTexStorage2D:
2888             context->texStorage2D(
2889                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2890                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2891                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2892                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2893                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2894             break;
2895         case angle::EntryPoint::GLTexStorage2DMultisample:
2896             context->texStorage2DMultisample(
2897                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2898                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2899                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2900                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2901                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2902                 params.getParam("fixedsamplelocations", ParamType::TGLboolean, 5)
2903                     .value.GLbooleanVal);
2904             break;
2905         case angle::EntryPoint::GLTexStorage3D:
2906             context->texStorage3D(
2907                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2908                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2909                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2910                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2911                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2912                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal);
2913             break;
2914         case angle::EntryPoint::GLTexStorage3DMultisample:
2915             context->texStorage3DMultisample(
2916                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2917                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2918                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2919                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2920                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2921                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
2922                 params.getParam("fixedsamplelocations", ParamType::TGLboolean, 6)
2923                     .value.GLbooleanVal);
2924             break;
2925         case angle::EntryPoint::GLTexSubImage2D:
2926             context->texSubImage2D(
2927                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2928                     .value.TextureTargetVal,
2929                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2930                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
2931                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
2932                 params.getParam("width", ParamType::TGLsizei, 4).value.GLsizeiVal,
2933                 params.getParam("height", ParamType::TGLsizei, 5).value.GLsizeiVal,
2934                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
2935                 params.getParam("type", ParamType::TGLenum, 7).value.GLenumVal,
2936                 replayContext->getAsConstPointer<const void *>(
2937                     params.getParam("pixels", ParamType::TvoidConstPointer, 8)));
2938             break;
2939         case angle::EntryPoint::GLTexSubImage3D:
2940             context->texSubImage3D(
2941                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2942                     .value.TextureTargetVal,
2943                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2944                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
2945                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
2946                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
2947                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
2948                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
2949                 params.getParam("depth", ParamType::TGLsizei, 7).value.GLsizeiVal,
2950                 params.getParam("format", ParamType::TGLenum, 8).value.GLenumVal,
2951                 params.getParam("type", ParamType::TGLenum, 9).value.GLenumVal,
2952                 replayContext->getAsConstPointer<const void *>(
2953                     params.getParam("pixels", ParamType::TvoidConstPointer, 10)));
2954             break;
2955         case angle::EntryPoint::GLTransformFeedbackVaryings:
2956             context->transformFeedbackVaryings(
2957                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2958                     .value.ShaderProgramIDVal,
2959                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2960                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
2961                     params.getParam("varyings", ParamType::TGLcharConstPointerPointer, 2)),
2962                 params.getParam("bufferMode", ParamType::TGLenum, 3).value.GLenumVal);
2963             break;
2964         case angle::EntryPoint::GLTranslatef:
2965             context->translatef(params.getParam("x", ParamType::TGLfloat, 0).value.GLfloatVal,
2966                                 params.getParam("y", ParamType::TGLfloat, 1).value.GLfloatVal,
2967                                 params.getParam("z", ParamType::TGLfloat, 2).value.GLfloatVal);
2968             break;
2969         case angle::EntryPoint::GLTranslatex:
2970             context->translatex(params.getParam("x", ParamType::TGLfixed, 0).value.GLfixedVal,
2971                                 params.getParam("y", ParamType::TGLfixed, 1).value.GLfixedVal,
2972                                 params.getParam("z", ParamType::TGLfixed, 2).value.GLfixedVal);
2973             break;
2974         case angle::EntryPoint::GLUniform1f:
2975             context->uniform1f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2976                                    .value.UniformLocationVal,
2977                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal);
2978             break;
2979         case angle::EntryPoint::GLUniform1fv:
2980             context->uniform1fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2981                                     .value.UniformLocationVal,
2982                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2983                                 replayContext->getAsConstPointer<const GLfloat *>(
2984                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
2985             break;
2986         case angle::EntryPoint::GLUniform1i:
2987             context->uniform1i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2988                                    .value.UniformLocationVal,
2989                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal);
2990             break;
2991         case angle::EntryPoint::GLUniform1iv:
2992             context->uniform1iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2993                                     .value.UniformLocationVal,
2994                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2995                                 replayContext->getAsConstPointer<const GLint *>(
2996                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
2997             break;
2998         case angle::EntryPoint::GLUniform1ui:
2999             context->uniform1ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3000                                     .value.UniformLocationVal,
3001                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal);
3002             break;
3003         case angle::EntryPoint::GLUniform1uiv:
3004             context->uniform1uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3005                                      .value.UniformLocationVal,
3006                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3007                                  replayContext->getAsConstPointer<const GLuint *>(
3008                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3009             break;
3010         case angle::EntryPoint::GLUniform2f:
3011             context->uniform2f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3012                                    .value.UniformLocationVal,
3013                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3014                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal);
3015             break;
3016         case angle::EntryPoint::GLUniform2fv:
3017             context->uniform2fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3018                                     .value.UniformLocationVal,
3019                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3020                                 replayContext->getAsConstPointer<const GLfloat *>(
3021                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3022             break;
3023         case angle::EntryPoint::GLUniform2i:
3024             context->uniform2i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3025                                    .value.UniformLocationVal,
3026                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3027                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal);
3028             break;
3029         case angle::EntryPoint::GLUniform2iv:
3030             context->uniform2iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3031                                     .value.UniformLocationVal,
3032                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3033                                 replayContext->getAsConstPointer<const GLint *>(
3034                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3035             break;
3036         case angle::EntryPoint::GLUniform2ui:
3037             context->uniform2ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3038                                     .value.UniformLocationVal,
3039                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3040                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal);
3041             break;
3042         case angle::EntryPoint::GLUniform2uiv:
3043             context->uniform2uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3044                                      .value.UniformLocationVal,
3045                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3046                                  replayContext->getAsConstPointer<const GLuint *>(
3047                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3048             break;
3049         case angle::EntryPoint::GLUniform3f:
3050             context->uniform3f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3051                                    .value.UniformLocationVal,
3052                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3053                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal,
3054                                params.getParam("v2", ParamType::TGLfloat, 3).value.GLfloatVal);
3055             break;
3056         case angle::EntryPoint::GLUniform3fv:
3057             context->uniform3fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3058                                     .value.UniformLocationVal,
3059                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3060                                 replayContext->getAsConstPointer<const GLfloat *>(
3061                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3062             break;
3063         case angle::EntryPoint::GLUniform3i:
3064             context->uniform3i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3065                                    .value.UniformLocationVal,
3066                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3067                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal,
3068                                params.getParam("v2", ParamType::TGLint, 3).value.GLintVal);
3069             break;
3070         case angle::EntryPoint::GLUniform3iv:
3071             context->uniform3iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3072                                     .value.UniformLocationVal,
3073                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3074                                 replayContext->getAsConstPointer<const GLint *>(
3075                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3076             break;
3077         case angle::EntryPoint::GLUniform3ui:
3078             context->uniform3ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3079                                     .value.UniformLocationVal,
3080                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3081                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal,
3082                                 params.getParam("v2", ParamType::TGLuint, 3).value.GLuintVal);
3083             break;
3084         case angle::EntryPoint::GLUniform3uiv:
3085             context->uniform3uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3086                                      .value.UniformLocationVal,
3087                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3088                                  replayContext->getAsConstPointer<const GLuint *>(
3089                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3090             break;
3091         case angle::EntryPoint::GLUniform4f:
3092             context->uniform4f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3093                                    .value.UniformLocationVal,
3094                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3095                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal,
3096                                params.getParam("v2", ParamType::TGLfloat, 3).value.GLfloatVal,
3097                                params.getParam("v3", ParamType::TGLfloat, 4).value.GLfloatVal);
3098             break;
3099         case angle::EntryPoint::GLUniform4fv:
3100             context->uniform4fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3101                                     .value.UniformLocationVal,
3102                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3103                                 replayContext->getAsConstPointer<const GLfloat *>(
3104                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3105             break;
3106         case angle::EntryPoint::GLUniform4i:
3107             context->uniform4i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3108                                    .value.UniformLocationVal,
3109                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3110                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal,
3111                                params.getParam("v2", ParamType::TGLint, 3).value.GLintVal,
3112                                params.getParam("v3", ParamType::TGLint, 4).value.GLintVal);
3113             break;
3114         case angle::EntryPoint::GLUniform4iv:
3115             context->uniform4iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3116                                     .value.UniformLocationVal,
3117                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3118                                 replayContext->getAsConstPointer<const GLint *>(
3119                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3120             break;
3121         case angle::EntryPoint::GLUniform4ui:
3122             context->uniform4ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3123                                     .value.UniformLocationVal,
3124                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3125                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal,
3126                                 params.getParam("v2", ParamType::TGLuint, 3).value.GLuintVal,
3127                                 params.getParam("v3", ParamType::TGLuint, 4).value.GLuintVal);
3128             break;
3129         case angle::EntryPoint::GLUniform4uiv:
3130             context->uniform4uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3131                                      .value.UniformLocationVal,
3132                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3133                                  replayContext->getAsConstPointer<const GLuint *>(
3134                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3135             break;
3136         case angle::EntryPoint::GLUniformBlockBinding:
3137             context->uniformBlockBinding(
3138                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3139                     .value.ShaderProgramIDVal,
3140                 params.getParam("uniformBlockIndexPacked", ParamType::TUniformBlockIndex, 1)
3141                     .value.UniformBlockIndexVal,
3142                 params.getParam("uniformBlockBinding", ParamType::TGLuint, 2).value.GLuintVal);
3143             break;
3144         case angle::EntryPoint::GLUniformMatrix2fv:
3145             context->uniformMatrix2fv(
3146                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3147                     .value.UniformLocationVal,
3148                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3149                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3150                 replayContext->getAsConstPointer<const GLfloat *>(
3151                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3152             break;
3153         case angle::EntryPoint::GLUniformMatrix2x3fv:
3154             context->uniformMatrix2x3fv(
3155                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3156                     .value.UniformLocationVal,
3157                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3158                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3159                 replayContext->getAsConstPointer<const GLfloat *>(
3160                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3161             break;
3162         case angle::EntryPoint::GLUniformMatrix2x4fv:
3163             context->uniformMatrix2x4fv(
3164                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3165                     .value.UniformLocationVal,
3166                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3167                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3168                 replayContext->getAsConstPointer<const GLfloat *>(
3169                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3170             break;
3171         case angle::EntryPoint::GLUniformMatrix3fv:
3172             context->uniformMatrix3fv(
3173                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3174                     .value.UniformLocationVal,
3175                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3176                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3177                 replayContext->getAsConstPointer<const GLfloat *>(
3178                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3179             break;
3180         case angle::EntryPoint::GLUniformMatrix3x2fv:
3181             context->uniformMatrix3x2fv(
3182                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3183                     .value.UniformLocationVal,
3184                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3185                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3186                 replayContext->getAsConstPointer<const GLfloat *>(
3187                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3188             break;
3189         case angle::EntryPoint::GLUniformMatrix3x4fv:
3190             context->uniformMatrix3x4fv(
3191                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3192                     .value.UniformLocationVal,
3193                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3194                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3195                 replayContext->getAsConstPointer<const GLfloat *>(
3196                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3197             break;
3198         case angle::EntryPoint::GLUniformMatrix4fv:
3199             context->uniformMatrix4fv(
3200                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3201                     .value.UniformLocationVal,
3202                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3203                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3204                 replayContext->getAsConstPointer<const GLfloat *>(
3205                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3206             break;
3207         case angle::EntryPoint::GLUniformMatrix4x2fv:
3208             context->uniformMatrix4x2fv(
3209                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3210                     .value.UniformLocationVal,
3211                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3212                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3213                 replayContext->getAsConstPointer<const GLfloat *>(
3214                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3215             break;
3216         case angle::EntryPoint::GLUniformMatrix4x3fv:
3217             context->uniformMatrix4x3fv(
3218                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3219                     .value.UniformLocationVal,
3220                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3221                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3222                 replayContext->getAsConstPointer<const GLfloat *>(
3223                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3224             break;
3225         case angle::EntryPoint::GLUnmapBuffer:
3226             context->unmapBuffer(params.getParam("targetPacked", ParamType::TBufferBinding, 0)
3227                                      .value.BufferBindingVal);
3228             break;
3229         case angle::EntryPoint::GLUseProgram:
3230             context->useProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3231                                     .value.ShaderProgramIDVal);
3232             break;
3233         case angle::EntryPoint::GLUseProgramStages:
3234             context->useProgramStages(
3235                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
3236                     .value.ProgramPipelineIDVal,
3237                 params.getParam("stages", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
3238                 params.getParam("programPacked", ParamType::TShaderProgramID, 2)
3239                     .value.ShaderProgramIDVal);
3240             break;
3241         case angle::EntryPoint::GLValidateProgram:
3242             context->validateProgram(
3243                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3244                     .value.ShaderProgramIDVal);
3245             break;
3246         case angle::EntryPoint::GLValidateProgramPipeline:
3247             context->validateProgramPipeline(
3248                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
3249                     .value.ProgramPipelineIDVal);
3250             break;
3251         case angle::EntryPoint::GLVertexAttrib1f:
3252             context->vertexAttrib1f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3253                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal);
3254             break;
3255         case angle::EntryPoint::GLVertexAttrib1fv:
3256             context->vertexAttrib1fv(
3257                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3258                 replayContext->getAsConstPointer<const GLfloat *>(
3259                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3260             break;
3261         case angle::EntryPoint::GLVertexAttrib2f:
3262             context->vertexAttrib2f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3263                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3264                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal);
3265             break;
3266         case angle::EntryPoint::GLVertexAttrib2fv:
3267             context->vertexAttrib2fv(
3268                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3269                 replayContext->getAsConstPointer<const GLfloat *>(
3270                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3271             break;
3272         case angle::EntryPoint::GLVertexAttrib3f:
3273             context->vertexAttrib3f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3274                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3275                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
3276                                     params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal);
3277             break;
3278         case angle::EntryPoint::GLVertexAttrib3fv:
3279             context->vertexAttrib3fv(
3280                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3281                 replayContext->getAsConstPointer<const GLfloat *>(
3282                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3283             break;
3284         case angle::EntryPoint::GLVertexAttrib4f:
3285             context->vertexAttrib4f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3286                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3287                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
3288                                     params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal,
3289                                     params.getParam("w", ParamType::TGLfloat, 4).value.GLfloatVal);
3290             break;
3291         case angle::EntryPoint::GLVertexAttrib4fv:
3292             context->vertexAttrib4fv(
3293                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3294                 replayContext->getAsConstPointer<const GLfloat *>(
3295                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3296             break;
3297         case angle::EntryPoint::GLVertexAttribBinding:
3298             context->vertexAttribBinding(
3299                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3300                 params.getParam("bindingindex", ParamType::TGLuint, 1).value.GLuintVal);
3301             break;
3302         case angle::EntryPoint::GLVertexAttribDivisor:
3303             context->vertexAttribDivisor(
3304                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3305                 params.getParam("divisor", ParamType::TGLuint, 1).value.GLuintVal);
3306             break;
3307         case angle::EntryPoint::GLVertexAttribFormat:
3308             context->vertexAttribFormat(
3309                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3310                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3311                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3312                     .value.VertexAttribTypeVal,
3313                 params.getParam("normalized", ParamType::TGLboolean, 3).value.GLbooleanVal,
3314                 params.getParam("relativeoffset", ParamType::TGLuint, 4).value.GLuintVal);
3315             break;
3316         case angle::EntryPoint::GLVertexAttribI4i:
3317             context->vertexAttribI4i(
3318                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3319                 params.getParam("x", ParamType::TGLint, 1).value.GLintVal,
3320                 params.getParam("y", ParamType::TGLint, 2).value.GLintVal,
3321                 params.getParam("z", ParamType::TGLint, 3).value.GLintVal,
3322                 params.getParam("w", ParamType::TGLint, 4).value.GLintVal);
3323             break;
3324         case angle::EntryPoint::GLVertexAttribI4iv:
3325             context->vertexAttribI4iv(
3326                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3327                 replayContext->getAsConstPointer<const GLint *>(
3328                     params.getParam("v", ParamType::TGLintConstPointer, 1)));
3329             break;
3330         case angle::EntryPoint::GLVertexAttribI4ui:
3331             context->vertexAttribI4ui(
3332                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3333                 params.getParam("x", ParamType::TGLuint, 1).value.GLuintVal,
3334                 params.getParam("y", ParamType::TGLuint, 2).value.GLuintVal,
3335                 params.getParam("z", ParamType::TGLuint, 3).value.GLuintVal,
3336                 params.getParam("w", ParamType::TGLuint, 4).value.GLuintVal);
3337             break;
3338         case angle::EntryPoint::GLVertexAttribI4uiv:
3339             context->vertexAttribI4uiv(
3340                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3341                 replayContext->getAsConstPointer<const GLuint *>(
3342                     params.getParam("v", ParamType::TGLuintConstPointer, 1)));
3343             break;
3344         case angle::EntryPoint::GLVertexAttribIFormat:
3345             context->vertexAttribIFormat(
3346                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3347                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3348                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3349                     .value.VertexAttribTypeVal,
3350                 params.getParam("relativeoffset", ParamType::TGLuint, 3).value.GLuintVal);
3351             break;
3352         case angle::EntryPoint::GLVertexAttribIPointer:
3353             context->vertexAttribIPointer(
3354                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3355                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3356                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3357                     .value.VertexAttribTypeVal,
3358                 params.getParam("stride", ParamType::TGLsizei, 3).value.GLsizeiVal,
3359                 replayContext->getAsConstPointer<const void *>(
3360                     params.getParam("pointer", ParamType::TvoidConstPointer, 4)));
3361             break;
3362         case angle::EntryPoint::GLVertexAttribPointer:
3363             context->vertexAttribPointer(
3364                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3365                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3366                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3367                     .value.VertexAttribTypeVal,
3368                 params.getParam("normalized", ParamType::TGLboolean, 3).value.GLbooleanVal,
3369                 params.getParam("stride", ParamType::TGLsizei, 4).value.GLsizeiVal,
3370                 replayContext->getAsConstPointer<const void *>(
3371                     params.getParam("pointer", ParamType::TvoidConstPointer, 5)));
3372             break;
3373         case angle::EntryPoint::GLVertexBindingDivisor:
3374             context->vertexBindingDivisor(
3375                 params.getParam("bindingindex", ParamType::TGLuint, 0).value.GLuintVal,
3376                 params.getParam("divisor", ParamType::TGLuint, 1).value.GLuintVal);
3377             break;
3378         case angle::EntryPoint::GLVertexPointer:
3379             context->vertexPointer(
3380                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
3381                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
3382                     .value.VertexAttribTypeVal,
3383                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
3384                 replayContext->getAsConstPointer<const void *>(
3385                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
3386             break;
3387         case angle::EntryPoint::GLViewport:
3388             context->viewport(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
3389                               params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
3390                               params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
3391                               params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
3392             break;
3393         case angle::EntryPoint::GLWaitSync:
3394             context->waitSync(
3395                 params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
3396                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
3397                 params.getParam("timeout", ParamType::TGLuint64, 2).value.GLuint64Val);
3398             break;
3399         default:
3400             UNREACHABLE();
3401     }
3402 }
3403 
3404 }  // namespace angle
3405