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