• 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::GLFramebufferParameteriMESA:
866             context->framebufferParameteriMESA(
867                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
868                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
869                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
870             break;
871         case angle::EntryPoint::GLFramebufferRenderbuffer:
872             context->framebufferRenderbuffer(
873                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
874                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
875                 params.getParam("renderbuffertarget", ParamType::TGLenum, 2).value.GLenumVal,
876                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 3)
877                     .value.RenderbufferIDVal);
878             break;
879         case angle::EntryPoint::GLFramebufferTexture:
880             context->framebufferTexture(
881                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
882                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
883                 params.getParam("texturePacked", ParamType::TTextureID, 2).value.TextureIDVal,
884                 params.getParam("level", ParamType::TGLint, 3).value.GLintVal);
885             break;
886         case angle::EntryPoint::GLFramebufferTexture2D:
887             context->framebufferTexture2D(
888                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
889                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
890                 params.getParam("textargetPacked", ParamType::TTextureTarget, 2)
891                     .value.TextureTargetVal,
892                 params.getParam("texturePacked", ParamType::TTextureID, 3).value.TextureIDVal,
893                 params.getParam("level", ParamType::TGLint, 4).value.GLintVal);
894             break;
895         case angle::EntryPoint::GLFramebufferTexture3D:
896             context->framebufferTexture3D(
897                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
898                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
899                 params.getParam("textargetPacked", ParamType::TTextureTarget, 2)
900                     .value.TextureTargetVal,
901                 params.getParam("texturePacked", ParamType::TTextureID, 3).value.TextureIDVal,
902                 params.getParam("level", ParamType::TGLint, 4).value.GLintVal,
903                 params.getParam("zoffset", ParamType::TGLint, 5).value.GLintVal);
904             break;
905         case angle::EntryPoint::GLFramebufferTextureLayer:
906             context->framebufferTextureLayer(
907                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
908                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
909                 params.getParam("texturePacked", ParamType::TTextureID, 2).value.TextureIDVal,
910                 params.getParam("level", ParamType::TGLint, 3).value.GLintVal,
911                 params.getParam("layer", ParamType::TGLint, 4).value.GLintVal);
912             break;
913         case angle::EntryPoint::GLFrontFace:
914             context->frontFace(params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal);
915             break;
916         case angle::EntryPoint::GLFrustumf:
917             context->frustumf(params.getParam("l", ParamType::TGLfloat, 0).value.GLfloatVal,
918                               params.getParam("r", ParamType::TGLfloat, 1).value.GLfloatVal,
919                               params.getParam("b", ParamType::TGLfloat, 2).value.GLfloatVal,
920                               params.getParam("t", ParamType::TGLfloat, 3).value.GLfloatVal,
921                               params.getParam("n", ParamType::TGLfloat, 4).value.GLfloatVal,
922                               params.getParam("f", ParamType::TGLfloat, 5).value.GLfloatVal);
923             break;
924         case angle::EntryPoint::GLFrustumx:
925             context->frustumx(params.getParam("l", ParamType::TGLfixed, 0).value.GLfixedVal,
926                               params.getParam("r", ParamType::TGLfixed, 1).value.GLfixedVal,
927                               params.getParam("b", ParamType::TGLfixed, 2).value.GLfixedVal,
928                               params.getParam("t", ParamType::TGLfixed, 3).value.GLfixedVal,
929                               params.getParam("n", ParamType::TGLfixed, 4).value.GLfixedVal,
930                               params.getParam("f", ParamType::TGLfixed, 5).value.GLfixedVal);
931             break;
932         case angle::EntryPoint::GLGenBuffers:
933             context->genBuffers(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
934                                 replayContext->getReadBufferPointer<BufferID *>(params.getParam(
935                                     "buffersPacked", ParamType::TBufferIDPointer, 1)));
936             break;
937         case angle::EntryPoint::GLGenFencesNV:
938             context->genFencesNV(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
939                                  replayContext->getReadBufferPointer<FenceNVID *>(params.getParam(
940                                      "fencesPacked", ParamType::TFenceNVIDPointer, 1)));
941             break;
942         case angle::EntryPoint::GLGenFramebuffers:
943             context->genFramebuffers(
944                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
945                 replayContext->getReadBufferPointer<FramebufferID *>(
946                     params.getParam("framebuffersPacked", ParamType::TFramebufferIDPointer, 1)));
947             break;
948         case angle::EntryPoint::GLGenProgramPipelines:
949             context->genProgramPipelines(
950                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
951                 replayContext->getReadBufferPointer<ProgramPipelineID *>(
952                     params.getParam("pipelinesPacked", ParamType::TProgramPipelineIDPointer, 1)));
953             break;
954         case angle::EntryPoint::GLGenQueries:
955             context->genQueries(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
956                                 replayContext->getReadBufferPointer<QueryID *>(
957                                     params.getParam("idsPacked", ParamType::TQueryIDPointer, 1)));
958             break;
959         case angle::EntryPoint::GLGenRenderbuffers:
960             context->genRenderbuffers(
961                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
962                 replayContext->getReadBufferPointer<RenderbufferID *>(
963                     params.getParam("renderbuffersPacked", ParamType::TRenderbufferIDPointer, 1)));
964             break;
965         case angle::EntryPoint::GLGenSamplers:
966             context->genSamplers(params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
967                                  replayContext->getReadBufferPointer<SamplerID *>(params.getParam(
968                                      "samplersPacked", ParamType::TSamplerIDPointer, 1)));
969             break;
970         case angle::EntryPoint::GLGenTextures:
971             context->genTextures(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
972                                  replayContext->getReadBufferPointer<TextureID *>(params.getParam(
973                                      "texturesPacked", ParamType::TTextureIDPointer, 1)));
974             break;
975         case angle::EntryPoint::GLGenTransformFeedbacks:
976             context->genTransformFeedbacks(
977                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
978                 replayContext->getReadBufferPointer<TransformFeedbackID *>(
979                     params.getParam("idsPacked", ParamType::TTransformFeedbackIDPointer, 1)));
980             break;
981         case angle::EntryPoint::GLGenVertexArrays:
982             context->genVertexArrays(
983                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
984                 replayContext->getReadBufferPointer<VertexArrayID *>(
985                     params.getParam("arraysPacked", ParamType::TVertexArrayIDPointer, 1)));
986             break;
987         case angle::EntryPoint::GLGenerateMipmap:
988             context->generateMipmap(
989                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal);
990             break;
991         case angle::EntryPoint::GLGetActiveAttrib:
992             context->getActiveAttrib(
993                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
994                     .value.ShaderProgramIDVal,
995                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
996                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
997                 replayContext->getReadBufferPointer<GLsizei *>(
998                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
999                 replayContext->getReadBufferPointer<GLint *>(
1000                     params.getParam("size", ParamType::TGLintPointer, 4)),
1001                 replayContext->getReadBufferPointer<GLenum *>(
1002                     params.getParam("type", ParamType::TGLenumPointer, 5)),
1003                 replayContext->getReadBufferPointer<GLchar *>(
1004                     params.getParam("name", ParamType::TGLcharPointer, 6)));
1005             break;
1006         case angle::EntryPoint::GLGetActiveUniform:
1007             context->getActiveUniform(
1008                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1009                     .value.ShaderProgramIDVal,
1010                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1011                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1012                 replayContext->getReadBufferPointer<GLsizei *>(
1013                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1014                 replayContext->getReadBufferPointer<GLint *>(
1015                     params.getParam("size", ParamType::TGLintPointer, 4)),
1016                 replayContext->getReadBufferPointer<GLenum *>(
1017                     params.getParam("type", ParamType::TGLenumPointer, 5)),
1018                 replayContext->getReadBufferPointer<GLchar *>(
1019                     params.getParam("name", ParamType::TGLcharPointer, 6)));
1020             break;
1021         case angle::EntryPoint::GLGetActiveUniformBlockName:
1022             context->getActiveUniformBlockName(
1023                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1024                     .value.ShaderProgramIDVal,
1025                 params.getParam("uniformBlockIndexPacked", ParamType::TUniformBlockIndex, 1)
1026                     .value.UniformBlockIndexVal,
1027                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1028                 replayContext->getReadBufferPointer<GLsizei *>(
1029                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1030                 replayContext->getReadBufferPointer<GLchar *>(
1031                     params.getParam("uniformBlockName", ParamType::TGLcharPointer, 4)));
1032             break;
1033         case angle::EntryPoint::GLGetActiveUniformBlockiv:
1034             context->getActiveUniformBlockiv(
1035                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1036                     .value.ShaderProgramIDVal,
1037                 params.getParam("uniformBlockIndexPacked", ParamType::TUniformBlockIndex, 1)
1038                     .value.UniformBlockIndexVal,
1039                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1040                 replayContext->getReadBufferPointer<GLint *>(
1041                     params.getParam("params", ParamType::TGLintPointer, 3)));
1042             break;
1043         case angle::EntryPoint::GLGetActiveUniformsiv:
1044             context->getActiveUniformsiv(
1045                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1046                     .value.ShaderProgramIDVal,
1047                 params.getParam("uniformCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1048                 replayContext->getAsConstPointer<const GLuint *>(
1049                     params.getParam("uniformIndices", ParamType::TGLuintConstPointer, 2)),
1050                 params.getParam("pname", ParamType::TGLenum, 3).value.GLenumVal,
1051                 replayContext->getReadBufferPointer<GLint *>(
1052                     params.getParam("params", ParamType::TGLintPointer, 4)));
1053             break;
1054         case angle::EntryPoint::GLGetAttachedShaders:
1055             context->getAttachedShaders(
1056                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1057                     .value.ShaderProgramIDVal,
1058                 params.getParam("maxCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1059                 replayContext->getReadBufferPointer<GLsizei *>(
1060                     params.getParam("count", ParamType::TGLsizeiPointer, 2)),
1061                 replayContext->getReadBufferPointer<ShaderProgramID *>(
1062                     params.getParam("shadersPacked", ParamType::TShaderProgramIDPointer, 3)));
1063             break;
1064         case angle::EntryPoint::GLGetAttribLocation:
1065             context->getAttribLocation(
1066                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1067                     .value.ShaderProgramIDVal,
1068                 replayContext->getAsConstPointer<const GLchar *>(
1069                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1070             break;
1071         case angle::EntryPoint::GLGetBooleani_v:
1072             context->getBooleani_v(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1073                                    params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1074                                    replayContext->getReadBufferPointer<GLboolean *>(
1075                                        params.getParam("data", ParamType::TGLbooleanPointer, 2)));
1076             break;
1077         case angle::EntryPoint::GLGetBooleanv:
1078             context->getBooleanv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1079                                  replayContext->getReadBufferPointer<GLboolean *>(
1080                                      params.getParam("data", ParamType::TGLbooleanPointer, 1)));
1081             break;
1082         case angle::EntryPoint::GLGetBufferParameteri64v:
1083             context->getBufferParameteri64v(
1084                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1085                     .value.BufferBindingVal,
1086                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1087                 replayContext->getReadBufferPointer<GLint64 *>(
1088                     params.getParam("params", ParamType::TGLint64Pointer, 2)));
1089             break;
1090         case angle::EntryPoint::GLGetBufferParameteriv:
1091             context->getBufferParameteriv(
1092                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1093                     .value.BufferBindingVal,
1094                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1095                 replayContext->getReadBufferPointer<GLint *>(
1096                     params.getParam("params", ParamType::TGLintPointer, 2)));
1097             break;
1098         case angle::EntryPoint::GLGetBufferPointerv:
1099             context->getBufferPointerv(
1100                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1101                     .value.BufferBindingVal,
1102                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1103                 replayContext->getReadBufferPointer<void **>(
1104                     params.getParam("params", ParamType::TvoidPointerPointer, 2)));
1105             break;
1106         case angle::EntryPoint::GLGetClipPlanef:
1107             context->getClipPlanef(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
1108                                    replayContext->getReadBufferPointer<GLfloat *>(
1109                                        params.getParam("equation", ParamType::TGLfloatPointer, 1)));
1110             break;
1111         case angle::EntryPoint::GLGetClipPlanex:
1112             context->getClipPlanex(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
1113                                    replayContext->getReadBufferPointer<GLfixed *>(
1114                                        params.getParam("equation", ParamType::TGLfixedPointer, 1)));
1115             break;
1116         case angle::EntryPoint::GLGetCompressedTexImage:
1117             context->getCompressedTexImage(
1118                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1119                     .value.TextureTargetVal,
1120                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1121                 replayContext->getReadBufferPointer<void *>(
1122                     params.getParam("img", ParamType::TvoidPointer, 2)));
1123             break;
1124         case angle::EntryPoint::GLGetDebugMessageLog:
1125             context->getDebugMessageLog(
1126                 params.getParam("count", ParamType::TGLuint, 0).value.GLuintVal,
1127                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1128                 replayContext->getReadBufferPointer<GLenum *>(
1129                     params.getParam("sources", ParamType::TGLenumPointer, 2)),
1130                 replayContext->getReadBufferPointer<GLenum *>(
1131                     params.getParam("types", ParamType::TGLenumPointer, 3)),
1132                 replayContext->getReadBufferPointer<GLuint *>(
1133                     params.getParam("ids", ParamType::TGLuintPointer, 4)),
1134                 replayContext->getReadBufferPointer<GLenum *>(
1135                     params.getParam("severities", ParamType::TGLenumPointer, 5)),
1136                 replayContext->getReadBufferPointer<GLsizei *>(
1137                     params.getParam("lengths", ParamType::TGLsizeiPointer, 6)),
1138                 replayContext->getReadBufferPointer<GLchar *>(
1139                     params.getParam("messageLog", ParamType::TGLcharPointer, 7)));
1140             break;
1141         case angle::EntryPoint::GLGetError:
1142             context->getError();
1143             break;
1144         case angle::EntryPoint::GLGetFenceivNV:
1145             context->getFenceivNV(
1146                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal,
1147                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1148                 replayContext->getReadBufferPointer<GLint *>(
1149                     params.getParam("params", ParamType::TGLintPointer, 2)));
1150             break;
1151         case angle::EntryPoint::GLGetFixedv:
1152             context->getFixedv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1153                                replayContext->getReadBufferPointer<GLfixed *>(
1154                                    params.getParam("params", ParamType::TGLfixedPointer, 1)));
1155             break;
1156         case angle::EntryPoint::GLGetFloatv:
1157             context->getFloatv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1158                                replayContext->getReadBufferPointer<GLfloat *>(
1159                                    params.getParam("data", ParamType::TGLfloatPointer, 1)));
1160             break;
1161         case angle::EntryPoint::GLGetFragDataIndex:
1162             context->getFragDataIndex(
1163                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1164                     .value.ShaderProgramIDVal,
1165                 replayContext->getAsConstPointer<const GLchar *>(
1166                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1167             break;
1168         case angle::EntryPoint::GLGetFragDataLocation:
1169             context->getFragDataLocation(
1170                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1171                     .value.ShaderProgramIDVal,
1172                 replayContext->getAsConstPointer<const GLchar *>(
1173                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1174             break;
1175         case angle::EntryPoint::GLGetFramebufferAttachmentParameteriv:
1176             context->getFramebufferAttachmentParameteriv(
1177                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1178                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
1179                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1180                 replayContext->getReadBufferPointer<GLint *>(
1181                     params.getParam("params", ParamType::TGLintPointer, 3)));
1182             break;
1183         case angle::EntryPoint::GLGetFramebufferParameteriv:
1184             context->getFramebufferParameteriv(
1185                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1186                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1187                 replayContext->getReadBufferPointer<GLint *>(
1188                     params.getParam("params", ParamType::TGLintPointer, 2)));
1189             break;
1190         case angle::EntryPoint::GLGetFramebufferParameterivMESA:
1191             context->getFramebufferParameterivMESA(
1192                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1193                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1194                 replayContext->getReadBufferPointer<GLint *>(
1195                     params.getParam("params", ParamType::TGLintPointer, 2)));
1196             break;
1197         case angle::EntryPoint::GLGetGraphicsResetStatus:
1198             context->getGraphicsResetStatus();
1199             break;
1200         case angle::EntryPoint::GLGetInteger64i_v:
1201             context->getInteger64i_v(
1202                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1203                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1204                 replayContext->getReadBufferPointer<GLint64 *>(
1205                     params.getParam("data", ParamType::TGLint64Pointer, 2)));
1206             break;
1207         case angle::EntryPoint::GLGetInteger64v:
1208             context->getInteger64v(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1209                                    replayContext->getReadBufferPointer<GLint64 *>(
1210                                        params.getParam("data", ParamType::TGLint64Pointer, 1)));
1211             break;
1212         case angle::EntryPoint::GLGetIntegeri_v:
1213             context->getIntegeri_v(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1214                                    params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1215                                    replayContext->getReadBufferPointer<GLint *>(
1216                                        params.getParam("data", ParamType::TGLintPointer, 2)));
1217             break;
1218         case angle::EntryPoint::GLGetIntegerv:
1219             context->getIntegerv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1220                                  replayContext->getReadBufferPointer<GLint *>(
1221                                      params.getParam("data", ParamType::TGLintPointer, 1)));
1222             break;
1223         case angle::EntryPoint::GLGetInternalformativ:
1224             context->getInternalformativ(
1225                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1226                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
1227                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1228                 params.getParam("bufSize", ParamType::TGLsizei, 3).value.GLsizeiVal,
1229                 replayContext->getReadBufferPointer<GLint *>(
1230                     params.getParam("params", ParamType::TGLintPointer, 4)));
1231             break;
1232         case angle::EntryPoint::GLGetLightfv:
1233             context->getLightfv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1234                                 params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1235                                     .value.LightParameterVal,
1236                                 replayContext->getReadBufferPointer<GLfloat *>(
1237                                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1238             break;
1239         case angle::EntryPoint::GLGetLightxv:
1240             context->getLightxv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1241                                 params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1242                                     .value.LightParameterVal,
1243                                 replayContext->getReadBufferPointer<GLfixed *>(
1244                                     params.getParam("params", ParamType::TGLfixedPointer, 2)));
1245             break;
1246         case angle::EntryPoint::GLGetMaterialfv:
1247             context->getMaterialfv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1248                                    params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1249                                        .value.MaterialParameterVal,
1250                                    replayContext->getReadBufferPointer<GLfloat *>(
1251                                        params.getParam("params", ParamType::TGLfloatPointer, 2)));
1252             break;
1253         case angle::EntryPoint::GLGetMaterialxv:
1254             context->getMaterialxv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1255                                    params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1256                                        .value.MaterialParameterVal,
1257                                    replayContext->getReadBufferPointer<GLfixed *>(
1258                                        params.getParam("params", ParamType::TGLfixedPointer, 2)));
1259             break;
1260         case angle::EntryPoint::GLGetMultisamplefv:
1261             context->getMultisamplefv(
1262                 params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1263                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1264                 replayContext->getReadBufferPointer<GLfloat *>(
1265                     params.getParam("val", ParamType::TGLfloatPointer, 2)));
1266             break;
1267         case angle::EntryPoint::GLGetObjectLabel:
1268             context->getObjectLabel(
1269                 params.getParam("identifier", ParamType::TGLenum, 0).value.GLenumVal,
1270                 params.getParam("name", ParamType::TGLuint, 1).value.GLuintVal,
1271                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1272                 replayContext->getReadBufferPointer<GLsizei *>(
1273                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1274                 replayContext->getReadBufferPointer<GLchar *>(
1275                     params.getParam("label", ParamType::TGLcharPointer, 4)));
1276             break;
1277         case angle::EntryPoint::GLGetObjectPtrLabel:
1278             context->getObjectPtrLabel(
1279                 replayContext->getAsConstPointer<const void *>(
1280                     params.getParam("ptr", ParamType::TvoidConstPointer, 0)),
1281                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1282                 replayContext->getReadBufferPointer<GLsizei *>(
1283                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1284                 replayContext->getReadBufferPointer<GLchar *>(
1285                     params.getParam("label", ParamType::TGLcharPointer, 3)));
1286             break;
1287         case angle::EntryPoint::GLGetPointerv:
1288             context->getPointerv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1289                                  replayContext->getReadBufferPointer<void **>(
1290                                      params.getParam("params", ParamType::TvoidPointerPointer, 1)));
1291             break;
1292         case angle::EntryPoint::GLGetProgramBinary:
1293             context->getProgramBinary(
1294                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1295                     .value.ShaderProgramIDVal,
1296                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1297                 replayContext->getReadBufferPointer<GLsizei *>(
1298                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1299                 replayContext->getReadBufferPointer<GLenum *>(
1300                     params.getParam("binaryFormat", ParamType::TGLenumPointer, 3)),
1301                 replayContext->getReadBufferPointer<void *>(
1302                     params.getParam("binary", ParamType::TvoidPointer, 4)));
1303             break;
1304         case angle::EntryPoint::GLGetProgramInfoLog:
1305             context->getProgramInfoLog(
1306                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1307                     .value.ShaderProgramIDVal,
1308                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1309                 replayContext->getReadBufferPointer<GLsizei *>(
1310                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1311                 replayContext->getReadBufferPointer<GLchar *>(
1312                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1313             break;
1314         case angle::EntryPoint::GLGetProgramInterfaceiv:
1315             context->getProgramInterfaceiv(
1316                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1317                     .value.ShaderProgramIDVal,
1318                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1319                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1320                 replayContext->getReadBufferPointer<GLint *>(
1321                     params.getParam("params", ParamType::TGLintPointer, 3)));
1322             break;
1323         case angle::EntryPoint::GLGetProgramPipelineInfoLog:
1324             context->getProgramPipelineInfoLog(
1325                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1326                     .value.ProgramPipelineIDVal,
1327                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1328                 replayContext->getReadBufferPointer<GLsizei *>(
1329                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1330                 replayContext->getReadBufferPointer<GLchar *>(
1331                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1332             break;
1333         case angle::EntryPoint::GLGetProgramPipelineiv:
1334             context->getProgramPipelineiv(
1335                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1336                     .value.ProgramPipelineIDVal,
1337                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1338                 replayContext->getReadBufferPointer<GLint *>(
1339                     params.getParam("params", ParamType::TGLintPointer, 2)));
1340             break;
1341         case angle::EntryPoint::GLGetProgramResourceIndex:
1342             context->getProgramResourceIndex(
1343                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1344                     .value.ShaderProgramIDVal,
1345                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1346                 replayContext->getAsConstPointer<const GLchar *>(
1347                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1348             break;
1349         case angle::EntryPoint::GLGetProgramResourceLocation:
1350             context->getProgramResourceLocation(
1351                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1352                     .value.ShaderProgramIDVal,
1353                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1354                 replayContext->getAsConstPointer<const GLchar *>(
1355                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1356             break;
1357         case angle::EntryPoint::GLGetProgramResourceLocationIndex:
1358             context->getProgramResourceLocationIndex(
1359                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1360                     .value.ShaderProgramIDVal,
1361                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1362                 replayContext->getAsConstPointer<const GLchar *>(
1363                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1364             break;
1365         case angle::EntryPoint::GLGetProgramResourceName:
1366             context->getProgramResourceName(
1367                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1368                     .value.ShaderProgramIDVal,
1369                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1370                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
1371                 params.getParam("bufSize", ParamType::TGLsizei, 3).value.GLsizeiVal,
1372                 replayContext->getReadBufferPointer<GLsizei *>(
1373                     params.getParam("length", ParamType::TGLsizeiPointer, 4)),
1374                 replayContext->getReadBufferPointer<GLchar *>(
1375                     params.getParam("name", ParamType::TGLcharPointer, 5)));
1376             break;
1377         case angle::EntryPoint::GLGetProgramResourceiv:
1378             context->getProgramResourceiv(
1379                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1380                     .value.ShaderProgramIDVal,
1381                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1382                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
1383                 params.getParam("propCount", ParamType::TGLsizei, 3).value.GLsizeiVal,
1384                 replayContext->getAsConstPointer<const GLenum *>(
1385                     params.getParam("props", ParamType::TGLenumConstPointer, 4)),
1386                 params.getParam("bufSize", ParamType::TGLsizei, 5).value.GLsizeiVal,
1387                 replayContext->getReadBufferPointer<GLsizei *>(
1388                     params.getParam("length", ParamType::TGLsizeiPointer, 6)),
1389                 replayContext->getReadBufferPointer<GLint *>(
1390                     params.getParam("params", ParamType::TGLintPointer, 7)));
1391             break;
1392         case angle::EntryPoint::GLGetProgramiv:
1393             context->getProgramiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1394                                       .value.ShaderProgramIDVal,
1395                                   params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1396                                   replayContext->getReadBufferPointer<GLint *>(
1397                                       params.getParam("params", ParamType::TGLintPointer, 2)));
1398             break;
1399         case angle::EntryPoint::GLGetQueryObjecti64v:
1400             context->getQueryObjecti64v(
1401                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1402                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1403                 replayContext->getReadBufferPointer<GLint64 *>(
1404                     params.getParam("params", ParamType::TGLint64Pointer, 2)));
1405             break;
1406         case angle::EntryPoint::GLGetQueryObjectiv:
1407             context->getQueryObjectiv(
1408                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1409                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1410                 replayContext->getReadBufferPointer<GLint *>(
1411                     params.getParam("params", ParamType::TGLintPointer, 2)));
1412             break;
1413         case angle::EntryPoint::GLGetQueryObjectui64v:
1414             context->getQueryObjectui64v(
1415                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1416                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1417                 replayContext->getReadBufferPointer<GLuint64 *>(
1418                     params.getParam("params", ParamType::TGLuint64Pointer, 2)));
1419             break;
1420         case angle::EntryPoint::GLGetQueryObjectuiv:
1421             context->getQueryObjectuiv(
1422                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1423                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1424                 replayContext->getReadBufferPointer<GLuint *>(
1425                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1426             break;
1427         case angle::EntryPoint::GLGetQueryiv:
1428             context->getQueryiv(
1429                 params.getParam("targetPacked", ParamType::TQueryType, 0).value.QueryTypeVal,
1430                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1431                 replayContext->getReadBufferPointer<GLint *>(
1432                     params.getParam("params", ParamType::TGLintPointer, 2)));
1433             break;
1434         case angle::EntryPoint::GLGetRenderbufferParameteriv:
1435             context->getRenderbufferParameteriv(
1436                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1437                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1438                 replayContext->getReadBufferPointer<GLint *>(
1439                     params.getParam("params", ParamType::TGLintPointer, 2)));
1440             break;
1441         case angle::EntryPoint::GLGetSamplerParameterIiv:
1442             context->getSamplerParameterIiv(
1443                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1444                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1445                 replayContext->getReadBufferPointer<GLint *>(
1446                     params.getParam("params", ParamType::TGLintPointer, 2)));
1447             break;
1448         case angle::EntryPoint::GLGetSamplerParameterIuiv:
1449             context->getSamplerParameterIuiv(
1450                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1451                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1452                 replayContext->getReadBufferPointer<GLuint *>(
1453                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1454             break;
1455         case angle::EntryPoint::GLGetSamplerParameterfv:
1456             context->getSamplerParameterfv(
1457                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1458                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1459                 replayContext->getReadBufferPointer<GLfloat *>(
1460                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1461             break;
1462         case angle::EntryPoint::GLGetSamplerParameteriv:
1463             context->getSamplerParameteriv(
1464                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1465                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1466                 replayContext->getReadBufferPointer<GLint *>(
1467                     params.getParam("params", ParamType::TGLintPointer, 2)));
1468             break;
1469         case angle::EntryPoint::GLGetShaderInfoLog:
1470             context->getShaderInfoLog(
1471                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1472                     .value.ShaderProgramIDVal,
1473                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1474                 replayContext->getReadBufferPointer<GLsizei *>(
1475                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1476                 replayContext->getReadBufferPointer<GLchar *>(
1477                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1478             break;
1479         case angle::EntryPoint::GLGetShaderPrecisionFormat:
1480             context->getShaderPrecisionFormat(
1481                 params.getParam("shadertype", ParamType::TGLenum, 0).value.GLenumVal,
1482                 params.getParam("precisiontype", ParamType::TGLenum, 1).value.GLenumVal,
1483                 replayContext->getReadBufferPointer<GLint *>(
1484                     params.getParam("range", ParamType::TGLintPointer, 2)),
1485                 replayContext->getReadBufferPointer<GLint *>(
1486                     params.getParam("precision", ParamType::TGLintPointer, 3)));
1487             break;
1488         case angle::EntryPoint::GLGetShaderSource:
1489             context->getShaderSource(
1490                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1491                     .value.ShaderProgramIDVal,
1492                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1493                 replayContext->getReadBufferPointer<GLsizei *>(
1494                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1495                 replayContext->getReadBufferPointer<GLchar *>(
1496                     params.getParam("source", ParamType::TGLcharPointer, 3)));
1497             break;
1498         case angle::EntryPoint::GLGetShaderiv:
1499             context->getShaderiv(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1500                                      .value.ShaderProgramIDVal,
1501                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1502                                  replayContext->getReadBufferPointer<GLint *>(
1503                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1504             break;
1505         case angle::EntryPoint::GLGetString:
1506             context->getString(params.getParam("name", ParamType::TGLenum, 0).value.GLenumVal);
1507             break;
1508         case angle::EntryPoint::GLGetStringi:
1509             context->getStringi(params.getParam("name", ParamType::TGLenum, 0).value.GLenumVal,
1510                                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
1511             break;
1512         case angle::EntryPoint::GLGetSynciv:
1513             context->getSynciv(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
1514                                params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1515                                params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1516                                replayContext->getReadBufferPointer<GLsizei *>(
1517                                    params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1518                                replayContext->getReadBufferPointer<GLint *>(
1519                                    params.getParam("values", ParamType::TGLintPointer, 4)));
1520             break;
1521         case angle::EntryPoint::GLGetTexEnvfv:
1522             context->getTexEnvfv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1523                                      .value.TextureEnvTargetVal,
1524                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1525                                      .value.TextureEnvParameterVal,
1526                                  replayContext->getReadBufferPointer<GLfloat *>(
1527                                      params.getParam("params", ParamType::TGLfloatPointer, 2)));
1528             break;
1529         case angle::EntryPoint::GLGetTexEnviv:
1530             context->getTexEnviv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1531                                      .value.TextureEnvTargetVal,
1532                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1533                                      .value.TextureEnvParameterVal,
1534                                  replayContext->getReadBufferPointer<GLint *>(
1535                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1536             break;
1537         case angle::EntryPoint::GLGetTexEnvxv:
1538             context->getTexEnvxv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1539                                      .value.TextureEnvTargetVal,
1540                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1541                                      .value.TextureEnvParameterVal,
1542                                  replayContext->getReadBufferPointer<GLfixed *>(
1543                                      params.getParam("params", ParamType::TGLfixedPointer, 2)));
1544             break;
1545         case angle::EntryPoint::GLGetTexGenfv:
1546             context->getTexGenfv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
1547                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1548                                  replayContext->getReadBufferPointer<GLfloat *>(
1549                                      params.getParam("params", ParamType::TGLfloatPointer, 2)));
1550             break;
1551         case angle::EntryPoint::GLGetTexGeniv:
1552             context->getTexGeniv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
1553                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1554                                  replayContext->getReadBufferPointer<GLint *>(
1555                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1556             break;
1557         case angle::EntryPoint::GLGetTexImage:
1558             context->getTexImage(params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1559                                      .value.TextureTargetVal,
1560                                  params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1561                                  params.getParam("format", ParamType::TGLenum, 2).value.GLenumVal,
1562                                  params.getParam("type", ParamType::TGLenum, 3).value.GLenumVal,
1563                                  replayContext->getReadBufferPointer<void *>(
1564                                      params.getParam("pixels", ParamType::TvoidPointer, 4)));
1565             break;
1566         case angle::EntryPoint::GLGetTexLevelParameterfv:
1567             context->getTexLevelParameterfv(
1568                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1569                     .value.TextureTargetVal,
1570                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1571                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1572                 replayContext->getReadBufferPointer<GLfloat *>(
1573                     params.getParam("params", ParamType::TGLfloatPointer, 3)));
1574             break;
1575         case angle::EntryPoint::GLGetTexLevelParameteriv:
1576             context->getTexLevelParameteriv(
1577                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1578                     .value.TextureTargetVal,
1579                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1580                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1581                 replayContext->getReadBufferPointer<GLint *>(
1582                     params.getParam("params", ParamType::TGLintPointer, 3)));
1583             break;
1584         case angle::EntryPoint::GLGetTexParameterIiv:
1585             context->getTexParameterIiv(
1586                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1587                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1588                 replayContext->getReadBufferPointer<GLint *>(
1589                     params.getParam("params", ParamType::TGLintPointer, 2)));
1590             break;
1591         case angle::EntryPoint::GLGetTexParameterIuiv:
1592             context->getTexParameterIuiv(
1593                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1594                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1595                 replayContext->getReadBufferPointer<GLuint *>(
1596                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1597             break;
1598         case angle::EntryPoint::GLGetTexParameterfv:
1599             context->getTexParameterfv(
1600                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1601                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1602                 replayContext->getReadBufferPointer<GLfloat *>(
1603                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1604             break;
1605         case angle::EntryPoint::GLGetTexParameteriv:
1606             context->getTexParameteriv(
1607                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1608                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1609                 replayContext->getReadBufferPointer<GLint *>(
1610                     params.getParam("params", ParamType::TGLintPointer, 2)));
1611             break;
1612         case angle::EntryPoint::GLGetTexParameterxv:
1613             context->getTexParameterxv(
1614                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1615                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1616                 replayContext->getReadBufferPointer<GLfixed *>(
1617                     params.getParam("params", ParamType::TGLfixedPointer, 2)));
1618             break;
1619         case angle::EntryPoint::GLGetTransformFeedbackVarying:
1620             context->getTransformFeedbackVarying(
1621                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1622                     .value.ShaderProgramIDVal,
1623                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1624                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1625                 replayContext->getReadBufferPointer<GLsizei *>(
1626                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1627                 replayContext->getReadBufferPointer<GLsizei *>(
1628                     params.getParam("size", ParamType::TGLsizeiPointer, 4)),
1629                 replayContext->getReadBufferPointer<GLenum *>(
1630                     params.getParam("type", ParamType::TGLenumPointer, 5)),
1631                 replayContext->getReadBufferPointer<GLchar *>(
1632                     params.getParam("name", ParamType::TGLcharPointer, 6)));
1633             break;
1634         case angle::EntryPoint::GLGetUniformBlockIndex:
1635             context->getUniformBlockIndex(
1636                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1637                     .value.ShaderProgramIDVal,
1638                 replayContext->getAsConstPointer<const GLchar *>(
1639                     params.getParam("uniformBlockName", ParamType::TGLcharConstPointer, 1)));
1640             break;
1641         case angle::EntryPoint::GLGetUniformIndices:
1642             context->getUniformIndices(
1643                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1644                     .value.ShaderProgramIDVal,
1645                 params.getParam("uniformCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1646                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
1647                     params.getParam("uniformNames", ParamType::TGLcharConstPointerPointer, 2)),
1648                 replayContext->getReadBufferPointer<GLuint *>(
1649                     params.getParam("uniformIndices", ParamType::TGLuintPointer, 3)));
1650             break;
1651         case angle::EntryPoint::GLGetUniformLocation:
1652             context->getUniformLocation(
1653                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1654                     .value.ShaderProgramIDVal,
1655                 replayContext->getAsConstPointer<const GLchar *>(
1656                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1657             break;
1658         case angle::EntryPoint::GLGetUniformfv:
1659             context->getUniformfv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1660                                       .value.ShaderProgramIDVal,
1661                                   params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1662                                       .value.UniformLocationVal,
1663                                   replayContext->getReadBufferPointer<GLfloat *>(
1664                                       params.getParam("params", ParamType::TGLfloatPointer, 2)));
1665             break;
1666         case angle::EntryPoint::GLGetUniformiv:
1667             context->getUniformiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1668                                       .value.ShaderProgramIDVal,
1669                                   params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1670                                       .value.UniformLocationVal,
1671                                   replayContext->getReadBufferPointer<GLint *>(
1672                                       params.getParam("params", ParamType::TGLintPointer, 2)));
1673             break;
1674         case angle::EntryPoint::GLGetUniformuiv:
1675             context->getUniformuiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1676                                        .value.ShaderProgramIDVal,
1677                                    params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1678                                        .value.UniformLocationVal,
1679                                    replayContext->getReadBufferPointer<GLuint *>(
1680                                        params.getParam("params", ParamType::TGLuintPointer, 2)));
1681             break;
1682         case angle::EntryPoint::GLGetVertexAttribIiv:
1683             context->getVertexAttribIiv(
1684                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1685                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1686                 replayContext->getReadBufferPointer<GLint *>(
1687                     params.getParam("params", ParamType::TGLintPointer, 2)));
1688             break;
1689         case angle::EntryPoint::GLGetVertexAttribIuiv:
1690             context->getVertexAttribIuiv(
1691                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1692                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1693                 replayContext->getReadBufferPointer<GLuint *>(
1694                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1695             break;
1696         case angle::EntryPoint::GLGetVertexAttribPointerv:
1697             context->getVertexAttribPointerv(
1698                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1699                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1700                 replayContext->getReadBufferPointer<void **>(
1701                     params.getParam("pointer", ParamType::TvoidPointerPointer, 2)));
1702             break;
1703         case angle::EntryPoint::GLGetVertexAttribfv:
1704             context->getVertexAttribfv(
1705                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1706                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1707                 replayContext->getReadBufferPointer<GLfloat *>(
1708                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1709             break;
1710         case angle::EntryPoint::GLGetVertexAttribiv:
1711             context->getVertexAttribiv(
1712                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1713                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1714                 replayContext->getReadBufferPointer<GLint *>(
1715                     params.getParam("params", ParamType::TGLintPointer, 2)));
1716             break;
1717         case angle::EntryPoint::GLGetnUniformfv:
1718             context->getnUniformfv(
1719                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1720                     .value.ShaderProgramIDVal,
1721                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1722                     .value.UniformLocationVal,
1723                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1724                 replayContext->getReadBufferPointer<GLfloat *>(
1725                     params.getParam("params", ParamType::TGLfloatPointer, 3)));
1726             break;
1727         case angle::EntryPoint::GLGetnUniformiv:
1728             context->getnUniformiv(
1729                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1730                     .value.ShaderProgramIDVal,
1731                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1732                     .value.UniformLocationVal,
1733                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1734                 replayContext->getReadBufferPointer<GLint *>(
1735                     params.getParam("params", ParamType::TGLintPointer, 3)));
1736             break;
1737         case angle::EntryPoint::GLGetnUniformuiv:
1738             context->getnUniformuiv(
1739                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1740                     .value.ShaderProgramIDVal,
1741                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1742                     .value.UniformLocationVal,
1743                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1744                 replayContext->getReadBufferPointer<GLuint *>(
1745                     params.getParam("params", ParamType::TGLuintPointer, 3)));
1746             break;
1747         case angle::EntryPoint::GLHint:
1748             context->hint(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1749                           params.getParam("mode", ParamType::TGLenum, 1).value.GLenumVal);
1750             break;
1751         case angle::EntryPoint::GLInvalidateFramebuffer:
1752             context->invalidateFramebuffer(
1753                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1754                 params.getParam("numAttachments", ParamType::TGLsizei, 1).value.GLsizeiVal,
1755                 replayContext->getAsConstPointer<const GLenum *>(
1756                     params.getParam("attachments", ParamType::TGLenumConstPointer, 2)));
1757             break;
1758         case angle::EntryPoint::GLInvalidateSubFramebuffer:
1759             context->invalidateSubFramebuffer(
1760                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1761                 params.getParam("numAttachments", ParamType::TGLsizei, 1).value.GLsizeiVal,
1762                 replayContext->getAsConstPointer<const GLenum *>(
1763                     params.getParam("attachments", ParamType::TGLenumConstPointer, 2)),
1764                 params.getParam("x", ParamType::TGLint, 3).value.GLintVal,
1765                 params.getParam("y", ParamType::TGLint, 4).value.GLintVal,
1766                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
1767                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal);
1768             break;
1769         case angle::EntryPoint::GLIsBuffer:
1770             context->isBuffer(
1771                 params.getParam("bufferPacked", ParamType::TBufferID, 0).value.BufferIDVal);
1772             break;
1773         case angle::EntryPoint::GLIsEnabled:
1774             context->isEnabled(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
1775             break;
1776         case angle::EntryPoint::GLIsEnabledi:
1777             context->isEnabledi(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1778                                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
1779             break;
1780         case angle::EntryPoint::GLIsFenceNV:
1781             context->isFenceNV(
1782                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
1783             break;
1784         case angle::EntryPoint::GLIsFramebuffer:
1785             context->isFramebuffer(
1786                 params.getParam("framebufferPacked", ParamType::TFramebufferID, 0)
1787                     .value.FramebufferIDVal);
1788             break;
1789         case angle::EntryPoint::GLIsProgram:
1790             context->isProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1791                                    .value.ShaderProgramIDVal);
1792             break;
1793         case angle::EntryPoint::GLIsProgramPipeline:
1794             context->isProgramPipeline(
1795                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1796                     .value.ProgramPipelineIDVal);
1797             break;
1798         case angle::EntryPoint::GLIsQuery:
1799             context->isQuery(params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal);
1800             break;
1801         case angle::EntryPoint::GLIsRenderbuffer:
1802             context->isRenderbuffer(
1803                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 0)
1804                     .value.RenderbufferIDVal);
1805             break;
1806         case angle::EntryPoint::GLIsSampler:
1807             context->isSampler(
1808                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal);
1809             break;
1810         case angle::EntryPoint::GLIsShader:
1811             context->isShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1812                                   .value.ShaderProgramIDVal);
1813             break;
1814         case angle::EntryPoint::GLIsSync:
1815             context->isSync(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal);
1816             break;
1817         case angle::EntryPoint::GLIsTexture:
1818             context->isTexture(
1819                 params.getParam("texturePacked", ParamType::TTextureID, 0).value.TextureIDVal);
1820             break;
1821         case angle::EntryPoint::GLIsTransformFeedback:
1822             context->isTransformFeedback(
1823                 params.getParam("idPacked", ParamType::TTransformFeedbackID, 0)
1824                     .value.TransformFeedbackIDVal);
1825             break;
1826         case angle::EntryPoint::GLIsVertexArray:
1827             context->isVertexArray(params.getParam("arrayPacked", ParamType::TVertexArrayID, 0)
1828                                        .value.VertexArrayIDVal);
1829             break;
1830         case angle::EntryPoint::GLLightModelf:
1831             context->lightModelf(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1832                                  params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
1833             break;
1834         case angle::EntryPoint::GLLightModelfv:
1835             context->lightModelfv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1836                                   replayContext->getAsConstPointer<const GLfloat *>(params.getParam(
1837                                       "params", ParamType::TGLfloatConstPointer, 1)));
1838             break;
1839         case angle::EntryPoint::GLLightModelx:
1840             context->lightModelx(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1841                                  params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
1842             break;
1843         case angle::EntryPoint::GLLightModelxv:
1844             context->lightModelxv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1845                                   replayContext->getAsConstPointer<const GLfixed *>(params.getParam(
1846                                       "param", ParamType::TGLfixedConstPointer, 1)));
1847             break;
1848         case angle::EntryPoint::GLLightf:
1849             context->lightf(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1850                             params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1851                                 .value.LightParameterVal,
1852                             params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
1853             break;
1854         case angle::EntryPoint::GLLightfv:
1855             context->lightfv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1856                              params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1857                                  .value.LightParameterVal,
1858                              replayContext->getAsConstPointer<const GLfloat *>(
1859                                  params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
1860             break;
1861         case angle::EntryPoint::GLLightx:
1862             context->lightx(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1863                             params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1864                                 .value.LightParameterVal,
1865                             params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
1866             break;
1867         case angle::EntryPoint::GLLightxv:
1868             context->lightxv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1869                              params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1870                                  .value.LightParameterVal,
1871                              replayContext->getAsConstPointer<const GLfixed *>(
1872                                  params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
1873             break;
1874         case angle::EntryPoint::GLLineWidth:
1875             context->lineWidth(params.getParam("width", ParamType::TGLfloat, 0).value.GLfloatVal);
1876             break;
1877         case angle::EntryPoint::GLLineWidthx:
1878             context->lineWidthx(params.getParam("width", ParamType::TGLfixed, 0).value.GLfixedVal);
1879             break;
1880         case angle::EntryPoint::GLLinkProgram:
1881             context->linkProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1882                                      .value.ShaderProgramIDVal);
1883             break;
1884         case angle::EntryPoint::GLLoadIdentity:
1885             context->loadIdentity();
1886             break;
1887         case angle::EntryPoint::GLLoadMatrixf:
1888             context->loadMatrixf(replayContext->getAsConstPointer<const GLfloat *>(
1889                 params.getParam("m", ParamType::TGLfloatConstPointer, 0)));
1890             break;
1891         case angle::EntryPoint::GLLoadMatrixx:
1892             context->loadMatrixx(replayContext->getAsConstPointer<const GLfixed *>(
1893                 params.getParam("m", ParamType::TGLfixedConstPointer, 0)));
1894             break;
1895         case angle::EntryPoint::GLLogicOp:
1896             context->logicOp(params.getParam("opcodePacked", ParamType::TLogicalOperation, 0)
1897                                  .value.LogicalOperationVal);
1898             break;
1899         case angle::EntryPoint::GLMapBuffer:
1900             context->mapBuffer(params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1901                                    .value.BufferBindingVal,
1902                                params.getParam("access", ParamType::TGLenum, 1).value.GLenumVal);
1903             break;
1904         case angle::EntryPoint::GLMapBufferRange:
1905             context->mapBufferRange(
1906                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1907                     .value.BufferBindingVal,
1908                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
1909                 params.getParam("length", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal,
1910                 params.getParam("access", ParamType::TGLbitfield, 3).value.GLbitfieldVal);
1911             break;
1912         case angle::EntryPoint::GLMaterialf:
1913             context->materialf(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1914                                params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1915                                    .value.MaterialParameterVal,
1916                                params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
1917             break;
1918         case angle::EntryPoint::GLMaterialfv:
1919             context->materialfv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1920                                 params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1921                                     .value.MaterialParameterVal,
1922                                 replayContext->getAsConstPointer<const GLfloat *>(
1923                                     params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
1924             break;
1925         case angle::EntryPoint::GLMaterialx:
1926             context->materialx(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1927                                params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1928                                    .value.MaterialParameterVal,
1929                                params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
1930             break;
1931         case angle::EntryPoint::GLMaterialxv:
1932             context->materialxv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1933                                 params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1934                                     .value.MaterialParameterVal,
1935                                 replayContext->getAsConstPointer<const GLfixed *>(
1936                                     params.getParam("param", ParamType::TGLfixedConstPointer, 2)));
1937             break;
1938         case angle::EntryPoint::GLMatrixMode:
1939             context->matrixMode(
1940                 params.getParam("modePacked", ParamType::TMatrixType, 0).value.MatrixTypeVal);
1941             break;
1942         case angle::EntryPoint::GLMemoryBarrier:
1943             context->memoryBarrier(
1944                 params.getParam("barriers", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
1945             break;
1946         case angle::EntryPoint::GLMemoryBarrierByRegion:
1947             context->memoryBarrierByRegion(
1948                 params.getParam("barriers", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
1949             break;
1950         case angle::EntryPoint::GLMinSampleShading:
1951             context->minSampleShading(
1952                 params.getParam("value", ParamType::TGLfloat, 0).value.GLfloatVal);
1953             break;
1954         case angle::EntryPoint::GLMultMatrixf:
1955             context->multMatrixf(replayContext->getAsConstPointer<const GLfloat *>(
1956                 params.getParam("m", ParamType::TGLfloatConstPointer, 0)));
1957             break;
1958         case angle::EntryPoint::GLMultMatrixx:
1959             context->multMatrixx(replayContext->getAsConstPointer<const GLfixed *>(
1960                 params.getParam("m", ParamType::TGLfixedConstPointer, 0)));
1961             break;
1962         case angle::EntryPoint::GLMultiDrawArrays:
1963             context->multiDrawArrays(
1964                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1965                 replayContext->getAsConstPointer<const GLint *>(
1966                     params.getParam("first", ParamType::TGLintConstPointer, 1)),
1967                 replayContext->getAsConstPointer<const GLsizei *>(
1968                     params.getParam("count", ParamType::TGLsizeiConstPointer, 2)),
1969                 params.getParam("drawcount", ParamType::TGLsizei, 3).value.GLsizeiVal);
1970             break;
1971         case angle::EntryPoint::GLMultiDrawArraysIndirect:
1972             context->multiDrawArraysIndirect(
1973                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1974                 replayContext->getAsConstPointer<const void *>(
1975                     params.getParam("indirect", ParamType::TvoidConstPointer, 1)),
1976                 params.getParam("drawcount", ParamType::TGLsizei, 2).value.GLsizeiVal,
1977                 params.getParam("stride", ParamType::TGLsizei, 3).value.GLsizeiVal);
1978             break;
1979         case angle::EntryPoint::GLMultiDrawElements:
1980             context->multiDrawElements(
1981                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1982                 replayContext->getAsConstPointer<const GLsizei *>(
1983                     params.getParam("count", ParamType::TGLsizeiConstPointer, 1)),
1984                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
1985                     .value.DrawElementsTypeVal,
1986                 replayContext->getAsPointerConstPointer<const void *const *>(
1987                     params.getParam("indices", ParamType::TvoidConstPointerPointer, 3)),
1988                 params.getParam("drawcount", ParamType::TGLsizei, 4).value.GLsizeiVal);
1989             break;
1990         case angle::EntryPoint::GLMultiDrawElementsBaseVertex:
1991             context->multiDrawElementsBaseVertex(
1992                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1993                 replayContext->getAsConstPointer<const GLsizei *>(
1994                     params.getParam("count", ParamType::TGLsizeiConstPointer, 1)),
1995                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
1996                     .value.DrawElementsTypeVal,
1997                 replayContext->getAsPointerConstPointer<const void *const *>(
1998                     params.getParam("indices", ParamType::TvoidConstPointerPointer, 3)),
1999                 params.getParam("drawcount", ParamType::TGLsizei, 4).value.GLsizeiVal,
2000                 replayContext->getAsConstPointer<const GLint *>(
2001                     params.getParam("basevertex", ParamType::TGLintConstPointer, 5)));
2002             break;
2003         case angle::EntryPoint::GLMultiDrawElementsIndirect:
2004             context->multiDrawElementsIndirect(
2005                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
2006                 params.getParam("typePacked", ParamType::TDrawElementsType, 1)
2007                     .value.DrawElementsTypeVal,
2008                 replayContext->getAsConstPointer<const void *>(
2009                     params.getParam("indirect", ParamType::TvoidConstPointer, 2)),
2010                 params.getParam("drawcount", ParamType::TGLsizei, 3).value.GLsizeiVal,
2011                 params.getParam("stride", ParamType::TGLsizei, 4).value.GLsizeiVal);
2012             break;
2013         case angle::EntryPoint::GLMultiTexCoord4f:
2014             context->multiTexCoord4f(
2015                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2016                 params.getParam("s", ParamType::TGLfloat, 1).value.GLfloatVal,
2017                 params.getParam("t", ParamType::TGLfloat, 2).value.GLfloatVal,
2018                 params.getParam("r", ParamType::TGLfloat, 3).value.GLfloatVal,
2019                 params.getParam("q", ParamType::TGLfloat, 4).value.GLfloatVal);
2020             break;
2021         case angle::EntryPoint::GLMultiTexCoord4x:
2022             context->multiTexCoord4x(
2023                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal,
2024                 params.getParam("s", ParamType::TGLfixed, 1).value.GLfixedVal,
2025                 params.getParam("t", ParamType::TGLfixed, 2).value.GLfixedVal,
2026                 params.getParam("r", ParamType::TGLfixed, 3).value.GLfixedVal,
2027                 params.getParam("q", ParamType::TGLfixed, 4).value.GLfixedVal);
2028             break;
2029         case angle::EntryPoint::GLNormal3f:
2030             context->normal3f(params.getParam("nx", ParamType::TGLfloat, 0).value.GLfloatVal,
2031                               params.getParam("ny", ParamType::TGLfloat, 1).value.GLfloatVal,
2032                               params.getParam("nz", ParamType::TGLfloat, 2).value.GLfloatVal);
2033             break;
2034         case angle::EntryPoint::GLNormal3x:
2035             context->normal3x(params.getParam("nx", ParamType::TGLfixed, 0).value.GLfixedVal,
2036                               params.getParam("ny", ParamType::TGLfixed, 1).value.GLfixedVal,
2037                               params.getParam("nz", ParamType::TGLfixed, 2).value.GLfixedVal);
2038             break;
2039         case angle::EntryPoint::GLNormalPointer:
2040             context->normalPointer(
2041                 params.getParam("typePacked", ParamType::TVertexAttribType, 0)
2042                     .value.VertexAttribTypeVal,
2043                 params.getParam("stride", ParamType::TGLsizei, 1).value.GLsizeiVal,
2044                 replayContext->getAsConstPointer<const void *>(
2045                     params.getParam("pointer", ParamType::TvoidConstPointer, 2)));
2046             break;
2047         case angle::EntryPoint::GLObjectLabel:
2048             context->objectLabel(
2049                 params.getParam("identifier", ParamType::TGLenum, 0).value.GLenumVal,
2050                 params.getParam("name", ParamType::TGLuint, 1).value.GLuintVal,
2051                 params.getParam("length", ParamType::TGLsizei, 2).value.GLsizeiVal,
2052                 replayContext->getAsConstPointer<const GLchar *>(
2053                     params.getParam("label", ParamType::TGLcharConstPointer, 3)));
2054             break;
2055         case angle::EntryPoint::GLObjectPtrLabel:
2056             context->objectPtrLabel(
2057                 replayContext->getAsConstPointer<const void *>(
2058                     params.getParam("ptr", ParamType::TvoidConstPointer, 0)),
2059                 params.getParam("length", ParamType::TGLsizei, 1).value.GLsizeiVal,
2060                 replayContext->getAsConstPointer<const GLchar *>(
2061                     params.getParam("label", ParamType::TGLcharConstPointer, 2)));
2062             break;
2063         case angle::EntryPoint::GLOrthof:
2064             context->orthof(params.getParam("l", ParamType::TGLfloat, 0).value.GLfloatVal,
2065                             params.getParam("r", ParamType::TGLfloat, 1).value.GLfloatVal,
2066                             params.getParam("b", ParamType::TGLfloat, 2).value.GLfloatVal,
2067                             params.getParam("t", ParamType::TGLfloat, 3).value.GLfloatVal,
2068                             params.getParam("n", ParamType::TGLfloat, 4).value.GLfloatVal,
2069                             params.getParam("f", ParamType::TGLfloat, 5).value.GLfloatVal);
2070             break;
2071         case angle::EntryPoint::GLOrthox:
2072             context->orthox(params.getParam("l", ParamType::TGLfixed, 0).value.GLfixedVal,
2073                             params.getParam("r", ParamType::TGLfixed, 1).value.GLfixedVal,
2074                             params.getParam("b", ParamType::TGLfixed, 2).value.GLfixedVal,
2075                             params.getParam("t", ParamType::TGLfixed, 3).value.GLfixedVal,
2076                             params.getParam("n", ParamType::TGLfixed, 4).value.GLfixedVal,
2077                             params.getParam("f", ParamType::TGLfixed, 5).value.GLfixedVal);
2078             break;
2079         case angle::EntryPoint::GLPatchParameteri:
2080             context->patchParameteri(
2081                 params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
2082                 params.getParam("value", ParamType::TGLint, 1).value.GLintVal);
2083             break;
2084         case angle::EntryPoint::GLPauseTransformFeedback:
2085             context->pauseTransformFeedback();
2086             break;
2087         case angle::EntryPoint::GLPixelStorei:
2088             context->pixelStorei(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
2089                                  params.getParam("param", ParamType::TGLint, 1).value.GLintVal);
2090             break;
2091         case angle::EntryPoint::GLPointParameterf:
2092             context->pointParameterf(
2093                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2094                     .value.PointParameterVal,
2095                 params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
2096             break;
2097         case angle::EntryPoint::GLPointParameterfv:
2098             context->pointParameterfv(
2099                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2100                     .value.PointParameterVal,
2101                 replayContext->getAsConstPointer<const GLfloat *>(
2102                     params.getParam("params", ParamType::TGLfloatConstPointer, 1)));
2103             break;
2104         case angle::EntryPoint::GLPointParameterx:
2105             context->pointParameterx(
2106                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2107                     .value.PointParameterVal,
2108                 params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
2109             break;
2110         case angle::EntryPoint::GLPointParameterxv:
2111             context->pointParameterxv(
2112                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2113                     .value.PointParameterVal,
2114                 replayContext->getAsConstPointer<const GLfixed *>(
2115                     params.getParam("params", ParamType::TGLfixedConstPointer, 1)));
2116             break;
2117         case angle::EntryPoint::GLPointSize:
2118             context->pointSize(params.getParam("size", ParamType::TGLfloat, 0).value.GLfloatVal);
2119             break;
2120         case angle::EntryPoint::GLPointSizex:
2121             context->pointSizex(params.getParam("size", ParamType::TGLfixed, 0).value.GLfixedVal);
2122             break;
2123         case angle::EntryPoint::GLPolygonOffset:
2124             context->polygonOffset(
2125                 params.getParam("factor", ParamType::TGLfloat, 0).value.GLfloatVal,
2126                 params.getParam("units", ParamType::TGLfloat, 1).value.GLfloatVal);
2127             break;
2128         case angle::EntryPoint::GLPolygonOffsetx:
2129             context->polygonOffsetx(
2130                 params.getParam("factor", ParamType::TGLfixed, 0).value.GLfixedVal,
2131                 params.getParam("units", ParamType::TGLfixed, 1).value.GLfixedVal);
2132             break;
2133         case angle::EntryPoint::GLPopDebugGroup:
2134             context->popDebugGroup();
2135             break;
2136         case angle::EntryPoint::GLPopMatrix:
2137             context->popMatrix();
2138             break;
2139         case angle::EntryPoint::GLPrimitiveBoundingBox:
2140             context->primitiveBoundingBox(
2141                 params.getParam("minX", ParamType::TGLfloat, 0).value.GLfloatVal,
2142                 params.getParam("minY", ParamType::TGLfloat, 1).value.GLfloatVal,
2143                 params.getParam("minZ", ParamType::TGLfloat, 2).value.GLfloatVal,
2144                 params.getParam("minW", ParamType::TGLfloat, 3).value.GLfloatVal,
2145                 params.getParam("maxX", ParamType::TGLfloat, 4).value.GLfloatVal,
2146                 params.getParam("maxY", ParamType::TGLfloat, 5).value.GLfloatVal,
2147                 params.getParam("maxZ", ParamType::TGLfloat, 6).value.GLfloatVal,
2148                 params.getParam("maxW", ParamType::TGLfloat, 7).value.GLfloatVal);
2149             break;
2150         case angle::EntryPoint::GLProgramBinary:
2151             context->programBinary(
2152                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2153                     .value.ShaderProgramIDVal,
2154                 params.getParam("binaryFormat", ParamType::TGLenum, 1).value.GLenumVal,
2155                 replayContext->getAsConstPointer<const void *>(
2156                     params.getParam("binary", ParamType::TvoidConstPointer, 2)),
2157                 params.getParam("length", ParamType::TGLsizei, 3).value.GLsizeiVal);
2158             break;
2159         case angle::EntryPoint::GLProgramParameteri:
2160             context->programParameteri(
2161                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2162                     .value.ShaderProgramIDVal,
2163                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2164                 params.getParam("value", ParamType::TGLint, 2).value.GLintVal);
2165             break;
2166         case angle::EntryPoint::GLProgramUniform1f:
2167             context->programUniform1f(
2168                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2169                     .value.ShaderProgramIDVal,
2170                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2171                     .value.UniformLocationVal,
2172                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal);
2173             break;
2174         case angle::EntryPoint::GLProgramUniform1fv:
2175             context->programUniform1fv(
2176                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2177                     .value.ShaderProgramIDVal,
2178                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2179                     .value.UniformLocationVal,
2180                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2181                 replayContext->getAsConstPointer<const GLfloat *>(
2182                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2183             break;
2184         case angle::EntryPoint::GLProgramUniform1i:
2185             context->programUniform1i(
2186                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2187                     .value.ShaderProgramIDVal,
2188                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2189                     .value.UniformLocationVal,
2190                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal);
2191             break;
2192         case angle::EntryPoint::GLProgramUniform1iv:
2193             context->programUniform1iv(
2194                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2195                     .value.ShaderProgramIDVal,
2196                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2197                     .value.UniformLocationVal,
2198                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2199                 replayContext->getAsConstPointer<const GLint *>(
2200                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2201             break;
2202         case angle::EntryPoint::GLProgramUniform1ui:
2203             context->programUniform1ui(
2204                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2205                     .value.ShaderProgramIDVal,
2206                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2207                     .value.UniformLocationVal,
2208                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal);
2209             break;
2210         case angle::EntryPoint::GLProgramUniform1uiv:
2211             context->programUniform1uiv(
2212                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2213                     .value.ShaderProgramIDVal,
2214                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2215                     .value.UniformLocationVal,
2216                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2217                 replayContext->getAsConstPointer<const GLuint *>(
2218                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2219             break;
2220         case angle::EntryPoint::GLProgramUniform2f:
2221             context->programUniform2f(
2222                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2223                     .value.ShaderProgramIDVal,
2224                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2225                     .value.UniformLocationVal,
2226                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2227                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal);
2228             break;
2229         case angle::EntryPoint::GLProgramUniform2fv:
2230             context->programUniform2fv(
2231                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2232                     .value.ShaderProgramIDVal,
2233                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2234                     .value.UniformLocationVal,
2235                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2236                 replayContext->getAsConstPointer<const GLfloat *>(
2237                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2238             break;
2239         case angle::EntryPoint::GLProgramUniform2i:
2240             context->programUniform2i(
2241                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2242                     .value.ShaderProgramIDVal,
2243                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2244                     .value.UniformLocationVal,
2245                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2246                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal);
2247             break;
2248         case angle::EntryPoint::GLProgramUniform2iv:
2249             context->programUniform2iv(
2250                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2251                     .value.ShaderProgramIDVal,
2252                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2253                     .value.UniformLocationVal,
2254                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2255                 replayContext->getAsConstPointer<const GLint *>(
2256                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2257             break;
2258         case angle::EntryPoint::GLProgramUniform2ui:
2259             context->programUniform2ui(
2260                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2261                     .value.ShaderProgramIDVal,
2262                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2263                     .value.UniformLocationVal,
2264                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2265                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal);
2266             break;
2267         case angle::EntryPoint::GLProgramUniform2uiv:
2268             context->programUniform2uiv(
2269                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2270                     .value.ShaderProgramIDVal,
2271                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2272                     .value.UniformLocationVal,
2273                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2274                 replayContext->getAsConstPointer<const GLuint *>(
2275                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2276             break;
2277         case angle::EntryPoint::GLProgramUniform3f:
2278             context->programUniform3f(
2279                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2280                     .value.ShaderProgramIDVal,
2281                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2282                     .value.UniformLocationVal,
2283                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2284                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal,
2285                 params.getParam("v2", ParamType::TGLfloat, 4).value.GLfloatVal);
2286             break;
2287         case angle::EntryPoint::GLProgramUniform3fv:
2288             context->programUniform3fv(
2289                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2290                     .value.ShaderProgramIDVal,
2291                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2292                     .value.UniformLocationVal,
2293                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2294                 replayContext->getAsConstPointer<const GLfloat *>(
2295                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2296             break;
2297         case angle::EntryPoint::GLProgramUniform3i:
2298             context->programUniform3i(
2299                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2300                     .value.ShaderProgramIDVal,
2301                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2302                     .value.UniformLocationVal,
2303                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2304                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal,
2305                 params.getParam("v2", ParamType::TGLint, 4).value.GLintVal);
2306             break;
2307         case angle::EntryPoint::GLProgramUniform3iv:
2308             context->programUniform3iv(
2309                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2310                     .value.ShaderProgramIDVal,
2311                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2312                     .value.UniformLocationVal,
2313                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2314                 replayContext->getAsConstPointer<const GLint *>(
2315                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2316             break;
2317         case angle::EntryPoint::GLProgramUniform3ui:
2318             context->programUniform3ui(
2319                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2320                     .value.ShaderProgramIDVal,
2321                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2322                     .value.UniformLocationVal,
2323                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2324                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal,
2325                 params.getParam("v2", ParamType::TGLuint, 4).value.GLuintVal);
2326             break;
2327         case angle::EntryPoint::GLProgramUniform3uiv:
2328             context->programUniform3uiv(
2329                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2330                     .value.ShaderProgramIDVal,
2331                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2332                     .value.UniformLocationVal,
2333                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2334                 replayContext->getAsConstPointer<const GLuint *>(
2335                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2336             break;
2337         case angle::EntryPoint::GLProgramUniform4f:
2338             context->programUniform4f(
2339                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2340                     .value.ShaderProgramIDVal,
2341                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2342                     .value.UniformLocationVal,
2343                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2344                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal,
2345                 params.getParam("v2", ParamType::TGLfloat, 4).value.GLfloatVal,
2346                 params.getParam("v3", ParamType::TGLfloat, 5).value.GLfloatVal);
2347             break;
2348         case angle::EntryPoint::GLProgramUniform4fv:
2349             context->programUniform4fv(
2350                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2351                     .value.ShaderProgramIDVal,
2352                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2353                     .value.UniformLocationVal,
2354                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2355                 replayContext->getAsConstPointer<const GLfloat *>(
2356                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2357             break;
2358         case angle::EntryPoint::GLProgramUniform4i:
2359             context->programUniform4i(
2360                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2361                     .value.ShaderProgramIDVal,
2362                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2363                     .value.UniformLocationVal,
2364                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2365                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal,
2366                 params.getParam("v2", ParamType::TGLint, 4).value.GLintVal,
2367                 params.getParam("v3", ParamType::TGLint, 5).value.GLintVal);
2368             break;
2369         case angle::EntryPoint::GLProgramUniform4iv:
2370             context->programUniform4iv(
2371                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2372                     .value.ShaderProgramIDVal,
2373                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2374                     .value.UniformLocationVal,
2375                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2376                 replayContext->getAsConstPointer<const GLint *>(
2377                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2378             break;
2379         case angle::EntryPoint::GLProgramUniform4ui:
2380             context->programUniform4ui(
2381                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2382                     .value.ShaderProgramIDVal,
2383                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2384                     .value.UniformLocationVal,
2385                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2386                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal,
2387                 params.getParam("v2", ParamType::TGLuint, 4).value.GLuintVal,
2388                 params.getParam("v3", ParamType::TGLuint, 5).value.GLuintVal);
2389             break;
2390         case angle::EntryPoint::GLProgramUniform4uiv:
2391             context->programUniform4uiv(
2392                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2393                     .value.ShaderProgramIDVal,
2394                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2395                     .value.UniformLocationVal,
2396                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2397                 replayContext->getAsConstPointer<const GLuint *>(
2398                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2399             break;
2400         case angle::EntryPoint::GLProgramUniformMatrix2fv:
2401             context->programUniformMatrix2fv(
2402                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2403                     .value.ShaderProgramIDVal,
2404                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2405                     .value.UniformLocationVal,
2406                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2407                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2408                 replayContext->getAsConstPointer<const GLfloat *>(
2409                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2410             break;
2411         case angle::EntryPoint::GLProgramUniformMatrix2x3fv:
2412             context->programUniformMatrix2x3fv(
2413                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2414                     .value.ShaderProgramIDVal,
2415                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2416                     .value.UniformLocationVal,
2417                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2418                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2419                 replayContext->getAsConstPointer<const GLfloat *>(
2420                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2421             break;
2422         case angle::EntryPoint::GLProgramUniformMatrix2x4fv:
2423             context->programUniformMatrix2x4fv(
2424                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2425                     .value.ShaderProgramIDVal,
2426                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2427                     .value.UniformLocationVal,
2428                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2429                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2430                 replayContext->getAsConstPointer<const GLfloat *>(
2431                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2432             break;
2433         case angle::EntryPoint::GLProgramUniformMatrix3fv:
2434             context->programUniformMatrix3fv(
2435                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2436                     .value.ShaderProgramIDVal,
2437                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2438                     .value.UniformLocationVal,
2439                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2440                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2441                 replayContext->getAsConstPointer<const GLfloat *>(
2442                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2443             break;
2444         case angle::EntryPoint::GLProgramUniformMatrix3x2fv:
2445             context->programUniformMatrix3x2fv(
2446                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2447                     .value.ShaderProgramIDVal,
2448                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2449                     .value.UniformLocationVal,
2450                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2451                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2452                 replayContext->getAsConstPointer<const GLfloat *>(
2453                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2454             break;
2455         case angle::EntryPoint::GLProgramUniformMatrix3x4fv:
2456             context->programUniformMatrix3x4fv(
2457                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2458                     .value.ShaderProgramIDVal,
2459                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2460                     .value.UniformLocationVal,
2461                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2462                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2463                 replayContext->getAsConstPointer<const GLfloat *>(
2464                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2465             break;
2466         case angle::EntryPoint::GLProgramUniformMatrix4fv:
2467             context->programUniformMatrix4fv(
2468                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2469                     .value.ShaderProgramIDVal,
2470                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2471                     .value.UniformLocationVal,
2472                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2473                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2474                 replayContext->getAsConstPointer<const GLfloat *>(
2475                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2476             break;
2477         case angle::EntryPoint::GLProgramUniformMatrix4x2fv:
2478             context->programUniformMatrix4x2fv(
2479                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2480                     .value.ShaderProgramIDVal,
2481                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2482                     .value.UniformLocationVal,
2483                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2484                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2485                 replayContext->getAsConstPointer<const GLfloat *>(
2486                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2487             break;
2488         case angle::EntryPoint::GLProgramUniformMatrix4x3fv:
2489             context->programUniformMatrix4x3fv(
2490                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2491                     .value.ShaderProgramIDVal,
2492                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2493                     .value.UniformLocationVal,
2494                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2495                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2496                 replayContext->getAsConstPointer<const GLfloat *>(
2497                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2498             break;
2499         case angle::EntryPoint::GLProvokingVertex:
2500             context->provokingVertex(
2501                 params.getParam("modePacked", ParamType::TProvokingVertexConvention, 0)
2502                     .value.ProvokingVertexConventionVal);
2503             break;
2504         case angle::EntryPoint::GLPushDebugGroup:
2505             context->pushDebugGroup(
2506                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
2507                 params.getParam("id", ParamType::TGLuint, 1).value.GLuintVal,
2508                 params.getParam("length", ParamType::TGLsizei, 2).value.GLsizeiVal,
2509                 replayContext->getAsConstPointer<const GLchar *>(
2510                     params.getParam("message", ParamType::TGLcharConstPointer, 3)));
2511             break;
2512         case angle::EntryPoint::GLPushMatrix:
2513             context->pushMatrix();
2514             break;
2515         case angle::EntryPoint::GLQueryCounter:
2516             context->queryCounter(
2517                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
2518                 params.getParam("targetPacked", ParamType::TQueryType, 1).value.QueryTypeVal);
2519             break;
2520         case angle::EntryPoint::GLReadBuffer:
2521             context->readBuffer(params.getParam("src", ParamType::TGLenum, 0).value.GLenumVal);
2522             break;
2523         case angle::EntryPoint::GLReadPixels:
2524             context->readPixels(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2525                                 params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2526                                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2527                                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal,
2528                                 params.getParam("format", ParamType::TGLenum, 4).value.GLenumVal,
2529                                 params.getParam("type", ParamType::TGLenum, 5).value.GLenumVal,
2530                                 replayContext->getReadBufferPointer<void *>(
2531                                     params.getParam("pixels", ParamType::TvoidPointer, 6)));
2532             break;
2533         case angle::EntryPoint::GLReadnPixels:
2534             context->readnPixels(
2535                 params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2536                 params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2537                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2538                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal,
2539                 params.getParam("format", ParamType::TGLenum, 4).value.GLenumVal,
2540                 params.getParam("type", ParamType::TGLenum, 5).value.GLenumVal,
2541                 params.getParam("bufSize", ParamType::TGLsizei, 6).value.GLsizeiVal,
2542                 replayContext->getReadBufferPointer<void *>(
2543                     params.getParam("data", ParamType::TvoidPointer, 7)));
2544             break;
2545         case angle::EntryPoint::GLReleaseShaderCompiler:
2546             context->releaseShaderCompiler();
2547             break;
2548         case angle::EntryPoint::GLRenderbufferStorage:
2549             context->renderbufferStorage(
2550                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2551                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2552                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2553                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
2554             break;
2555         case angle::EntryPoint::GLRenderbufferStorageMultisample:
2556             context->renderbufferStorageMultisample(
2557                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2558                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2559                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2560                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2561                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2562             break;
2563         case angle::EntryPoint::GLRenderbufferStorageMultisampleEXT:
2564             context->renderbufferStorageMultisampleEXT(
2565                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2566                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2567                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2568                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2569                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2570             break;
2571         case angle::EntryPoint::GLResumeTransformFeedback:
2572             context->resumeTransformFeedback();
2573             break;
2574         case angle::EntryPoint::GLRotatef:
2575             context->rotatef(params.getParam("angle", ParamType::TGLfloat, 0).value.GLfloatVal,
2576                              params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
2577                              params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
2578                              params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal);
2579             break;
2580         case angle::EntryPoint::GLRotatex:
2581             context->rotatex(params.getParam("angle", ParamType::TGLfixed, 0).value.GLfixedVal,
2582                              params.getParam("x", ParamType::TGLfixed, 1).value.GLfixedVal,
2583                              params.getParam("y", ParamType::TGLfixed, 2).value.GLfixedVal,
2584                              params.getParam("z", ParamType::TGLfixed, 3).value.GLfixedVal);
2585             break;
2586         case angle::EntryPoint::GLSampleCoverage:
2587             context->sampleCoverage(
2588                 params.getParam("value", ParamType::TGLfloat, 0).value.GLfloatVal,
2589                 params.getParam("invert", ParamType::TGLboolean, 1).value.GLbooleanVal);
2590             break;
2591         case angle::EntryPoint::GLSampleCoveragex:
2592             context->sampleCoveragex(
2593                 params.getParam("value", ParamType::TGLclampx, 0).value.GLclampxVal,
2594                 params.getParam("invert", ParamType::TGLboolean, 1).value.GLbooleanVal);
2595             break;
2596         case angle::EntryPoint::GLSampleMaski:
2597             context->sampleMaski(
2598                 params.getParam("maskNumber", ParamType::TGLuint, 0).value.GLuintVal,
2599                 params.getParam("mask", ParamType::TGLbitfield, 1).value.GLbitfieldVal);
2600             break;
2601         case angle::EntryPoint::GLSamplerParameterIiv:
2602             context->samplerParameterIiv(
2603                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2604                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2605                 replayContext->getAsConstPointer<const GLint *>(
2606                     params.getParam("param", ParamType::TGLintConstPointer, 2)));
2607             break;
2608         case angle::EntryPoint::GLSamplerParameterIuiv:
2609             context->samplerParameterIuiv(
2610                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2611                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2612                 replayContext->getAsConstPointer<const GLuint *>(
2613                     params.getParam("param", ParamType::TGLuintConstPointer, 2)));
2614             break;
2615         case angle::EntryPoint::GLSamplerParameterf:
2616             context->samplerParameterf(
2617                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2618                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2619                 params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2620             break;
2621         case angle::EntryPoint::GLSamplerParameterfv:
2622             context->samplerParameterfv(
2623                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2624                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2625                 replayContext->getAsConstPointer<const GLfloat *>(
2626                     params.getParam("param", ParamType::TGLfloatConstPointer, 2)));
2627             break;
2628         case angle::EntryPoint::GLSamplerParameteri:
2629             context->samplerParameteri(
2630                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2631                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2632                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2633             break;
2634         case angle::EntryPoint::GLSamplerParameteriv:
2635             context->samplerParameteriv(
2636                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2637                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2638                 replayContext->getAsConstPointer<const GLint *>(
2639                     params.getParam("param", ParamType::TGLintConstPointer, 2)));
2640             break;
2641         case angle::EntryPoint::GLScalef:
2642             context->scalef(params.getParam("x", ParamType::TGLfloat, 0).value.GLfloatVal,
2643                             params.getParam("y", ParamType::TGLfloat, 1).value.GLfloatVal,
2644                             params.getParam("z", ParamType::TGLfloat, 2).value.GLfloatVal);
2645             break;
2646         case angle::EntryPoint::GLScalex:
2647             context->scalex(params.getParam("x", ParamType::TGLfixed, 0).value.GLfixedVal,
2648                             params.getParam("y", ParamType::TGLfixed, 1).value.GLfixedVal,
2649                             params.getParam("z", ParamType::TGLfixed, 2).value.GLfixedVal);
2650             break;
2651         case angle::EntryPoint::GLScissor:
2652             context->scissor(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2653                              params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2654                              params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2655                              params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
2656             break;
2657         case angle::EntryPoint::GLSetFenceNV:
2658             context->setFenceNV(
2659                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal,
2660                 params.getParam("condition", ParamType::TGLenum, 1).value.GLenumVal);
2661             break;
2662         case angle::EntryPoint::GLShadeModel:
2663             context->shadeModel(
2664                 params.getParam("modePacked", ParamType::TShadingModel, 0).value.ShadingModelVal);
2665             break;
2666         case angle::EntryPoint::GLShaderBinary:
2667             context->shaderBinary(
2668                 params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
2669                 replayContext->getAsConstPointer<const ShaderProgramID *>(
2670                     params.getParam("shadersPacked", ParamType::TShaderProgramIDConstPointer, 1)),
2671                 params.getParam("binaryformat", ParamType::TGLenum, 2).value.GLenumVal,
2672                 replayContext->getAsConstPointer<const void *>(
2673                     params.getParam("binary", ParamType::TvoidConstPointer, 3)),
2674                 params.getParam("length", ParamType::TGLsizei, 4).value.GLsizeiVal);
2675             break;
2676         case angle::EntryPoint::GLShaderSource:
2677             context->shaderSource(
2678                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
2679                     .value.ShaderProgramIDVal,
2680                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2681                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
2682                     params.getParam("string", ParamType::TGLcharConstPointerPointer, 2)),
2683                 replayContext->getAsConstPointer<const GLint *>(
2684                     params.getParam("length", ParamType::TGLintConstPointer, 3)));
2685             break;
2686         case angle::EntryPoint::GLStencilFunc:
2687             context->stencilFunc(params.getParam("func", ParamType::TGLenum, 0).value.GLenumVal,
2688                                  params.getParam("ref", ParamType::TGLint, 1).value.GLintVal,
2689                                  params.getParam("mask", ParamType::TGLuint, 2).value.GLuintVal);
2690             break;
2691         case angle::EntryPoint::GLStencilFuncSeparate:
2692             context->stencilFuncSeparate(
2693                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2694                 params.getParam("func", ParamType::TGLenum, 1).value.GLenumVal,
2695                 params.getParam("ref", ParamType::TGLint, 2).value.GLintVal,
2696                 params.getParam("mask", ParamType::TGLuint, 3).value.GLuintVal);
2697             break;
2698         case angle::EntryPoint::GLStencilMask:
2699             context->stencilMask(params.getParam("mask", ParamType::TGLuint, 0).value.GLuintVal);
2700             break;
2701         case angle::EntryPoint::GLStencilMaskSeparate:
2702             context->stencilMaskSeparate(
2703                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2704                 params.getParam("mask", ParamType::TGLuint, 1).value.GLuintVal);
2705             break;
2706         case angle::EntryPoint::GLStencilOp:
2707             context->stencilOp(params.getParam("fail", ParamType::TGLenum, 0).value.GLenumVal,
2708                                params.getParam("zfail", ParamType::TGLenum, 1).value.GLenumVal,
2709                                params.getParam("zpass", ParamType::TGLenum, 2).value.GLenumVal);
2710             break;
2711         case angle::EntryPoint::GLStencilOpSeparate:
2712             context->stencilOpSeparate(
2713                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2714                 params.getParam("sfail", ParamType::TGLenum, 1).value.GLenumVal,
2715                 params.getParam("dpfail", ParamType::TGLenum, 2).value.GLenumVal,
2716                 params.getParam("dppass", ParamType::TGLenum, 3).value.GLenumVal);
2717             break;
2718         case angle::EntryPoint::GLTestFenceNV:
2719             context->testFenceNV(
2720                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
2721             break;
2722         case angle::EntryPoint::GLTexBuffer:
2723             context->texBuffer(
2724                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2725                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2726                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal);
2727             break;
2728         case angle::EntryPoint::GLTexBufferRange:
2729             context->texBufferRange(
2730                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2731                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2732                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal,
2733                 params.getParam("offset", ParamType::TGLintptr, 3).value.GLintptrVal,
2734                 params.getParam("size", ParamType::TGLsizeiptr, 4).value.GLsizeiptrVal);
2735             break;
2736         case angle::EntryPoint::GLTexCoordPointer:
2737             context->texCoordPointer(
2738                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
2739                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
2740                     .value.VertexAttribTypeVal,
2741                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
2742                 replayContext->getAsConstPointer<const void *>(
2743                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
2744             break;
2745         case angle::EntryPoint::GLTexEnvf:
2746             context->texEnvf(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2747                                  .value.TextureEnvTargetVal,
2748                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2749                                  .value.TextureEnvParameterVal,
2750                              params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2751             break;
2752         case angle::EntryPoint::GLTexEnvfv:
2753             context->texEnvfv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2754                                   .value.TextureEnvTargetVal,
2755                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2756                                   .value.TextureEnvParameterVal,
2757                               replayContext->getAsConstPointer<const GLfloat *>(
2758                                   params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2759             break;
2760         case angle::EntryPoint::GLTexEnvi:
2761             context->texEnvi(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2762                                  .value.TextureEnvTargetVal,
2763                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2764                                  .value.TextureEnvParameterVal,
2765                              params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2766             break;
2767         case angle::EntryPoint::GLTexEnviv:
2768             context->texEnviv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2769                                   .value.TextureEnvTargetVal,
2770                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2771                                   .value.TextureEnvParameterVal,
2772                               replayContext->getAsConstPointer<const GLint *>(
2773                                   params.getParam("params", ParamType::TGLintConstPointer, 2)));
2774             break;
2775         case angle::EntryPoint::GLTexEnvx:
2776             context->texEnvx(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2777                                  .value.TextureEnvTargetVal,
2778                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2779                                  .value.TextureEnvParameterVal,
2780                              params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
2781             break;
2782         case angle::EntryPoint::GLTexEnvxv:
2783             context->texEnvxv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2784                                   .value.TextureEnvTargetVal,
2785                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2786                                   .value.TextureEnvParameterVal,
2787                               replayContext->getAsConstPointer<const GLfixed *>(
2788                                   params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
2789             break;
2790         case angle::EntryPoint::GLTexGenf:
2791             context->texGenf(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2792                              params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2793                              params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2794             break;
2795         case angle::EntryPoint::GLTexGenfv:
2796             context->texGenfv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2797                               params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2798                               replayContext->getAsConstPointer<const GLfloat *>(
2799                                   params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2800             break;
2801         case angle::EntryPoint::GLTexGeni:
2802             context->texGeni(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2803                              params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2804                              params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2805             break;
2806         case angle::EntryPoint::GLTexGeniv:
2807             context->texGeniv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2808                               params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2809                               replayContext->getAsConstPointer<const GLint *>(
2810                                   params.getParam("params", ParamType::TGLintConstPointer, 2)));
2811             break;
2812         case angle::EntryPoint::GLTexImage2D:
2813             context->texImage2D(
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("border", ParamType::TGLint, 5).value.GLintVal,
2821                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
2822                 params.getParam("type", ParamType::TGLenum, 7).value.GLenumVal,
2823                 replayContext->getAsConstPointer<const void *>(
2824                     params.getParam("pixels", ParamType::TvoidConstPointer, 8)));
2825             break;
2826         case angle::EntryPoint::GLTexImage3D:
2827             context->texImage3D(
2828                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2829                     .value.TextureTargetVal,
2830                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2831                 params.getParam("internalformat", ParamType::TGLint, 2).value.GLintVal,
2832                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2833                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2834                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
2835                 params.getParam("border", ParamType::TGLint, 6).value.GLintVal,
2836                 params.getParam("format", ParamType::TGLenum, 7).value.GLenumVal,
2837                 params.getParam("type", ParamType::TGLenum, 8).value.GLenumVal,
2838                 replayContext->getAsConstPointer<const void *>(
2839                     params.getParam("pixels", ParamType::TvoidConstPointer, 9)));
2840             break;
2841         case angle::EntryPoint::GLTexParameterIiv:
2842             context->texParameterIiv(
2843                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2844                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2845                 replayContext->getAsConstPointer<const GLint *>(
2846                     params.getParam("params", ParamType::TGLintConstPointer, 2)));
2847             break;
2848         case angle::EntryPoint::GLTexParameterIuiv:
2849             context->texParameterIuiv(
2850                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2851                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2852                 replayContext->getAsConstPointer<const GLuint *>(
2853                     params.getParam("params", ParamType::TGLuintConstPointer, 2)));
2854             break;
2855         case angle::EntryPoint::GLTexParameterf:
2856             context->texParameterf(
2857                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2858                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2859                 params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2860             break;
2861         case angle::EntryPoint::GLTexParameterfv:
2862             context->texParameterfv(
2863                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2864                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2865                 replayContext->getAsConstPointer<const GLfloat *>(
2866                     params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2867             break;
2868         case angle::EntryPoint::GLTexParameteri:
2869             context->texParameteri(
2870                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2871                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2872                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2873             break;
2874         case angle::EntryPoint::GLTexParameteriv:
2875             context->texParameteriv(
2876                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2877                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2878                 replayContext->getAsConstPointer<const GLint *>(
2879                     params.getParam("params", ParamType::TGLintConstPointer, 2)));
2880             break;
2881         case angle::EntryPoint::GLTexParameterx:
2882             context->texParameterx(
2883                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2884                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2885                 params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
2886             break;
2887         case angle::EntryPoint::GLTexParameterxv:
2888             context->texParameterxv(
2889                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2890                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2891                 replayContext->getAsConstPointer<const GLfixed *>(
2892                     params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
2893             break;
2894         case angle::EntryPoint::GLTexStorage1D:
2895             context->texStorage1D(
2896                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2897                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2898                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2899                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal);
2900             break;
2901         case angle::EntryPoint::GLTexStorage2D:
2902             context->texStorage2D(
2903                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2904                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2905                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2906                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2907                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2908             break;
2909         case angle::EntryPoint::GLTexStorage2DMultisample:
2910             context->texStorage2DMultisample(
2911                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2912                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2913                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2914                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2915                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2916                 params.getParam("fixedsamplelocations", ParamType::TGLboolean, 5)
2917                     .value.GLbooleanVal);
2918             break;
2919         case angle::EntryPoint::GLTexStorage3D:
2920             context->texStorage3D(
2921                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2922                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2923                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2924                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2925                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2926                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal);
2927             break;
2928         case angle::EntryPoint::GLTexStorage3DMultisample:
2929             context->texStorage3DMultisample(
2930                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2931                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2932                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2933                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2934                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2935                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
2936                 params.getParam("fixedsamplelocations", ParamType::TGLboolean, 6)
2937                     .value.GLbooleanVal);
2938             break;
2939         case angle::EntryPoint::GLTexSubImage2D:
2940             context->texSubImage2D(
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("width", ParamType::TGLsizei, 4).value.GLsizeiVal,
2947                 params.getParam("height", ParamType::TGLsizei, 5).value.GLsizeiVal,
2948                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
2949                 params.getParam("type", ParamType::TGLenum, 7).value.GLenumVal,
2950                 replayContext->getAsConstPointer<const void *>(
2951                     params.getParam("pixels", ParamType::TvoidConstPointer, 8)));
2952             break;
2953         case angle::EntryPoint::GLTexSubImage3D:
2954             context->texSubImage3D(
2955                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2956                     .value.TextureTargetVal,
2957                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2958                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
2959                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
2960                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
2961                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
2962                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
2963                 params.getParam("depth", ParamType::TGLsizei, 7).value.GLsizeiVal,
2964                 params.getParam("format", ParamType::TGLenum, 8).value.GLenumVal,
2965                 params.getParam("type", ParamType::TGLenum, 9).value.GLenumVal,
2966                 replayContext->getAsConstPointer<const void *>(
2967                     params.getParam("pixels", ParamType::TvoidConstPointer, 10)));
2968             break;
2969         case angle::EntryPoint::GLTransformFeedbackVaryings:
2970             context->transformFeedbackVaryings(
2971                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2972                     .value.ShaderProgramIDVal,
2973                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2974                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
2975                     params.getParam("varyings", ParamType::TGLcharConstPointerPointer, 2)),
2976                 params.getParam("bufferMode", ParamType::TGLenum, 3).value.GLenumVal);
2977             break;
2978         case angle::EntryPoint::GLTranslatef:
2979             context->translatef(params.getParam("x", ParamType::TGLfloat, 0).value.GLfloatVal,
2980                                 params.getParam("y", ParamType::TGLfloat, 1).value.GLfloatVal,
2981                                 params.getParam("z", ParamType::TGLfloat, 2).value.GLfloatVal);
2982             break;
2983         case angle::EntryPoint::GLTranslatex:
2984             context->translatex(params.getParam("x", ParamType::TGLfixed, 0).value.GLfixedVal,
2985                                 params.getParam("y", ParamType::TGLfixed, 1).value.GLfixedVal,
2986                                 params.getParam("z", ParamType::TGLfixed, 2).value.GLfixedVal);
2987             break;
2988         case angle::EntryPoint::GLUniform1f:
2989             context->uniform1f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2990                                    .value.UniformLocationVal,
2991                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal);
2992             break;
2993         case angle::EntryPoint::GLUniform1fv:
2994             context->uniform1fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2995                                     .value.UniformLocationVal,
2996                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2997                                 replayContext->getAsConstPointer<const GLfloat *>(
2998                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
2999             break;
3000         case angle::EntryPoint::GLUniform1i:
3001             context->uniform1i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3002                                    .value.UniformLocationVal,
3003                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal);
3004             break;
3005         case angle::EntryPoint::GLUniform1iv:
3006             context->uniform1iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3007                                     .value.UniformLocationVal,
3008                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3009                                 replayContext->getAsConstPointer<const GLint *>(
3010                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3011             break;
3012         case angle::EntryPoint::GLUniform1ui:
3013             context->uniform1ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3014                                     .value.UniformLocationVal,
3015                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal);
3016             break;
3017         case angle::EntryPoint::GLUniform1uiv:
3018             context->uniform1uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3019                                      .value.UniformLocationVal,
3020                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3021                                  replayContext->getAsConstPointer<const GLuint *>(
3022                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3023             break;
3024         case angle::EntryPoint::GLUniform2f:
3025             context->uniform2f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3026                                    .value.UniformLocationVal,
3027                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3028                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal);
3029             break;
3030         case angle::EntryPoint::GLUniform2fv:
3031             context->uniform2fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3032                                     .value.UniformLocationVal,
3033                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3034                                 replayContext->getAsConstPointer<const GLfloat *>(
3035                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3036             break;
3037         case angle::EntryPoint::GLUniform2i:
3038             context->uniform2i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3039                                    .value.UniformLocationVal,
3040                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3041                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal);
3042             break;
3043         case angle::EntryPoint::GLUniform2iv:
3044             context->uniform2iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3045                                     .value.UniformLocationVal,
3046                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3047                                 replayContext->getAsConstPointer<const GLint *>(
3048                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3049             break;
3050         case angle::EntryPoint::GLUniform2ui:
3051             context->uniform2ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3052                                     .value.UniformLocationVal,
3053                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3054                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal);
3055             break;
3056         case angle::EntryPoint::GLUniform2uiv:
3057             context->uniform2uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3058                                      .value.UniformLocationVal,
3059                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3060                                  replayContext->getAsConstPointer<const GLuint *>(
3061                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3062             break;
3063         case angle::EntryPoint::GLUniform3f:
3064             context->uniform3f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3065                                    .value.UniformLocationVal,
3066                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3067                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal,
3068                                params.getParam("v2", ParamType::TGLfloat, 3).value.GLfloatVal);
3069             break;
3070         case angle::EntryPoint::GLUniform3fv:
3071             context->uniform3fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3072                                     .value.UniformLocationVal,
3073                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3074                                 replayContext->getAsConstPointer<const GLfloat *>(
3075                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3076             break;
3077         case angle::EntryPoint::GLUniform3i:
3078             context->uniform3i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3079                                    .value.UniformLocationVal,
3080                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3081                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal,
3082                                params.getParam("v2", ParamType::TGLint, 3).value.GLintVal);
3083             break;
3084         case angle::EntryPoint::GLUniform3iv:
3085             context->uniform3iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3086                                     .value.UniformLocationVal,
3087                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3088                                 replayContext->getAsConstPointer<const GLint *>(
3089                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3090             break;
3091         case angle::EntryPoint::GLUniform3ui:
3092             context->uniform3ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3093                                     .value.UniformLocationVal,
3094                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3095                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal,
3096                                 params.getParam("v2", ParamType::TGLuint, 3).value.GLuintVal);
3097             break;
3098         case angle::EntryPoint::GLUniform3uiv:
3099             context->uniform3uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3100                                      .value.UniformLocationVal,
3101                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3102                                  replayContext->getAsConstPointer<const GLuint *>(
3103                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3104             break;
3105         case angle::EntryPoint::GLUniform4f:
3106             context->uniform4f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3107                                    .value.UniformLocationVal,
3108                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3109                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal,
3110                                params.getParam("v2", ParamType::TGLfloat, 3).value.GLfloatVal,
3111                                params.getParam("v3", ParamType::TGLfloat, 4).value.GLfloatVal);
3112             break;
3113         case angle::EntryPoint::GLUniform4fv:
3114             context->uniform4fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3115                                     .value.UniformLocationVal,
3116                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3117                                 replayContext->getAsConstPointer<const GLfloat *>(
3118                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3119             break;
3120         case angle::EntryPoint::GLUniform4i:
3121             context->uniform4i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3122                                    .value.UniformLocationVal,
3123                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3124                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal,
3125                                params.getParam("v2", ParamType::TGLint, 3).value.GLintVal,
3126                                params.getParam("v3", ParamType::TGLint, 4).value.GLintVal);
3127             break;
3128         case angle::EntryPoint::GLUniform4iv:
3129             context->uniform4iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3130                                     .value.UniformLocationVal,
3131                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3132                                 replayContext->getAsConstPointer<const GLint *>(
3133                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3134             break;
3135         case angle::EntryPoint::GLUniform4ui:
3136             context->uniform4ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3137                                     .value.UniformLocationVal,
3138                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3139                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal,
3140                                 params.getParam("v2", ParamType::TGLuint, 3).value.GLuintVal,
3141                                 params.getParam("v3", ParamType::TGLuint, 4).value.GLuintVal);
3142             break;
3143         case angle::EntryPoint::GLUniform4uiv:
3144             context->uniform4uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3145                                      .value.UniformLocationVal,
3146                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3147                                  replayContext->getAsConstPointer<const GLuint *>(
3148                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3149             break;
3150         case angle::EntryPoint::GLUniformBlockBinding:
3151             context->uniformBlockBinding(
3152                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3153                     .value.ShaderProgramIDVal,
3154                 params.getParam("uniformBlockIndexPacked", ParamType::TUniformBlockIndex, 1)
3155                     .value.UniformBlockIndexVal,
3156                 params.getParam("uniformBlockBinding", ParamType::TGLuint, 2).value.GLuintVal);
3157             break;
3158         case angle::EntryPoint::GLUniformMatrix2fv:
3159             context->uniformMatrix2fv(
3160                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3161                     .value.UniformLocationVal,
3162                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3163                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3164                 replayContext->getAsConstPointer<const GLfloat *>(
3165                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3166             break;
3167         case angle::EntryPoint::GLUniformMatrix2x3fv:
3168             context->uniformMatrix2x3fv(
3169                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3170                     .value.UniformLocationVal,
3171                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3172                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3173                 replayContext->getAsConstPointer<const GLfloat *>(
3174                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3175             break;
3176         case angle::EntryPoint::GLUniformMatrix2x4fv:
3177             context->uniformMatrix2x4fv(
3178                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3179                     .value.UniformLocationVal,
3180                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3181                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3182                 replayContext->getAsConstPointer<const GLfloat *>(
3183                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3184             break;
3185         case angle::EntryPoint::GLUniformMatrix3fv:
3186             context->uniformMatrix3fv(
3187                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3188                     .value.UniformLocationVal,
3189                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3190                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3191                 replayContext->getAsConstPointer<const GLfloat *>(
3192                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3193             break;
3194         case angle::EntryPoint::GLUniformMatrix3x2fv:
3195             context->uniformMatrix3x2fv(
3196                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3197                     .value.UniformLocationVal,
3198                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3199                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3200                 replayContext->getAsConstPointer<const GLfloat *>(
3201                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3202             break;
3203         case angle::EntryPoint::GLUniformMatrix3x4fv:
3204             context->uniformMatrix3x4fv(
3205                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3206                     .value.UniformLocationVal,
3207                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3208                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3209                 replayContext->getAsConstPointer<const GLfloat *>(
3210                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3211             break;
3212         case angle::EntryPoint::GLUniformMatrix4fv:
3213             context->uniformMatrix4fv(
3214                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3215                     .value.UniformLocationVal,
3216                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3217                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3218                 replayContext->getAsConstPointer<const GLfloat *>(
3219                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3220             break;
3221         case angle::EntryPoint::GLUniformMatrix4x2fv:
3222             context->uniformMatrix4x2fv(
3223                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3224                     .value.UniformLocationVal,
3225                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3226                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3227                 replayContext->getAsConstPointer<const GLfloat *>(
3228                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3229             break;
3230         case angle::EntryPoint::GLUniformMatrix4x3fv:
3231             context->uniformMatrix4x3fv(
3232                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3233                     .value.UniformLocationVal,
3234                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3235                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3236                 replayContext->getAsConstPointer<const GLfloat *>(
3237                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3238             break;
3239         case angle::EntryPoint::GLUnmapBuffer:
3240             context->unmapBuffer(params.getParam("targetPacked", ParamType::TBufferBinding, 0)
3241                                      .value.BufferBindingVal);
3242             break;
3243         case angle::EntryPoint::GLUseProgram:
3244             context->useProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3245                                     .value.ShaderProgramIDVal);
3246             break;
3247         case angle::EntryPoint::GLUseProgramStages:
3248             context->useProgramStages(
3249                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
3250                     .value.ProgramPipelineIDVal,
3251                 params.getParam("stages", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
3252                 params.getParam("programPacked", ParamType::TShaderProgramID, 2)
3253                     .value.ShaderProgramIDVal);
3254             break;
3255         case angle::EntryPoint::GLValidateProgram:
3256             context->validateProgram(
3257                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3258                     .value.ShaderProgramIDVal);
3259             break;
3260         case angle::EntryPoint::GLValidateProgramPipeline:
3261             context->validateProgramPipeline(
3262                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
3263                     .value.ProgramPipelineIDVal);
3264             break;
3265         case angle::EntryPoint::GLVertexAttrib1f:
3266             context->vertexAttrib1f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3267                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal);
3268             break;
3269         case angle::EntryPoint::GLVertexAttrib1fv:
3270             context->vertexAttrib1fv(
3271                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3272                 replayContext->getAsConstPointer<const GLfloat *>(
3273                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3274             break;
3275         case angle::EntryPoint::GLVertexAttrib2f:
3276             context->vertexAttrib2f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3277                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3278                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal);
3279             break;
3280         case angle::EntryPoint::GLVertexAttrib2fv:
3281             context->vertexAttrib2fv(
3282                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3283                 replayContext->getAsConstPointer<const GLfloat *>(
3284                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3285             break;
3286         case angle::EntryPoint::GLVertexAttrib3f:
3287             context->vertexAttrib3f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3288                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3289                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
3290                                     params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal);
3291             break;
3292         case angle::EntryPoint::GLVertexAttrib3fv:
3293             context->vertexAttrib3fv(
3294                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3295                 replayContext->getAsConstPointer<const GLfloat *>(
3296                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3297             break;
3298         case angle::EntryPoint::GLVertexAttrib4f:
3299             context->vertexAttrib4f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3300                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3301                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
3302                                     params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal,
3303                                     params.getParam("w", ParamType::TGLfloat, 4).value.GLfloatVal);
3304             break;
3305         case angle::EntryPoint::GLVertexAttrib4fv:
3306             context->vertexAttrib4fv(
3307                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3308                 replayContext->getAsConstPointer<const GLfloat *>(
3309                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3310             break;
3311         case angle::EntryPoint::GLVertexAttribBinding:
3312             context->vertexAttribBinding(
3313                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3314                 params.getParam("bindingindex", ParamType::TGLuint, 1).value.GLuintVal);
3315             break;
3316         case angle::EntryPoint::GLVertexAttribDivisor:
3317             context->vertexAttribDivisor(
3318                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3319                 params.getParam("divisor", ParamType::TGLuint, 1).value.GLuintVal);
3320             break;
3321         case angle::EntryPoint::GLVertexAttribFormat:
3322             context->vertexAttribFormat(
3323                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3324                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3325                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3326                     .value.VertexAttribTypeVal,
3327                 params.getParam("normalized", ParamType::TGLboolean, 3).value.GLbooleanVal,
3328                 params.getParam("relativeoffset", ParamType::TGLuint, 4).value.GLuintVal);
3329             break;
3330         case angle::EntryPoint::GLVertexAttribI4i:
3331             context->vertexAttribI4i(
3332                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3333                 params.getParam("x", ParamType::TGLint, 1).value.GLintVal,
3334                 params.getParam("y", ParamType::TGLint, 2).value.GLintVal,
3335                 params.getParam("z", ParamType::TGLint, 3).value.GLintVal,
3336                 params.getParam("w", ParamType::TGLint, 4).value.GLintVal);
3337             break;
3338         case angle::EntryPoint::GLVertexAttribI4iv:
3339             context->vertexAttribI4iv(
3340                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3341                 replayContext->getAsConstPointer<const GLint *>(
3342                     params.getParam("v", ParamType::TGLintConstPointer, 1)));
3343             break;
3344         case angle::EntryPoint::GLVertexAttribI4ui:
3345             context->vertexAttribI4ui(
3346                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3347                 params.getParam("x", ParamType::TGLuint, 1).value.GLuintVal,
3348                 params.getParam("y", ParamType::TGLuint, 2).value.GLuintVal,
3349                 params.getParam("z", ParamType::TGLuint, 3).value.GLuintVal,
3350                 params.getParam("w", ParamType::TGLuint, 4).value.GLuintVal);
3351             break;
3352         case angle::EntryPoint::GLVertexAttribI4uiv:
3353             context->vertexAttribI4uiv(
3354                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3355                 replayContext->getAsConstPointer<const GLuint *>(
3356                     params.getParam("v", ParamType::TGLuintConstPointer, 1)));
3357             break;
3358         case angle::EntryPoint::GLVertexAttribIFormat:
3359             context->vertexAttribIFormat(
3360                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3361                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3362                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3363                     .value.VertexAttribTypeVal,
3364                 params.getParam("relativeoffset", ParamType::TGLuint, 3).value.GLuintVal);
3365             break;
3366         case angle::EntryPoint::GLVertexAttribIPointer:
3367             context->vertexAttribIPointer(
3368                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3369                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3370                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3371                     .value.VertexAttribTypeVal,
3372                 params.getParam("stride", ParamType::TGLsizei, 3).value.GLsizeiVal,
3373                 replayContext->getAsConstPointer<const void *>(
3374                     params.getParam("pointer", ParamType::TvoidConstPointer, 4)));
3375             break;
3376         case angle::EntryPoint::GLVertexAttribPointer:
3377             context->vertexAttribPointer(
3378                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3379                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3380                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3381                     .value.VertexAttribTypeVal,
3382                 params.getParam("normalized", ParamType::TGLboolean, 3).value.GLbooleanVal,
3383                 params.getParam("stride", ParamType::TGLsizei, 4).value.GLsizeiVal,
3384                 replayContext->getAsConstPointer<const void *>(
3385                     params.getParam("pointer", ParamType::TvoidConstPointer, 5)));
3386             break;
3387         case angle::EntryPoint::GLVertexBindingDivisor:
3388             context->vertexBindingDivisor(
3389                 params.getParam("bindingindex", ParamType::TGLuint, 0).value.GLuintVal,
3390                 params.getParam("divisor", ParamType::TGLuint, 1).value.GLuintVal);
3391             break;
3392         case angle::EntryPoint::GLVertexPointer:
3393             context->vertexPointer(
3394                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
3395                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
3396                     .value.VertexAttribTypeVal,
3397                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
3398                 replayContext->getAsConstPointer<const void *>(
3399                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
3400             break;
3401         case angle::EntryPoint::GLViewport:
3402             context->viewport(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
3403                               params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
3404                               params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
3405                               params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
3406             break;
3407         case angle::EntryPoint::GLWaitSync:
3408             context->waitSync(
3409                 params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
3410                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
3411                 params.getParam("timeout", ParamType::TGLuint64, 2).value.GLuint64Val);
3412             break;
3413         default:
3414             UNREACHABLE();
3415     }
3416 }
3417 
3418 }  // namespace angle
3419