• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // frame_capture_replay_autogen.cpp:
9 //   Util function to dispatch captured GL calls through Context and replay them.
10 
11 #include "angle_gl.h"
12 
13 #include "common/debug.h"
14 #include "libANGLE/Context.h"
15 #include "libANGLE/Context.inl.h"
16 #include "libANGLE/FrameCapture.h"
17 
18 using namespace gl;
19 
20 namespace angle
21 {
22 
ReplayCall(gl::Context * context,ReplayContext * replayContext,const CallCapture & call)23 void FrameCapture::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 gl::EntryPoint::ActiveShaderProgram:
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 gl::EntryPoint::ActiveTexture:
38             context->activeTexture(
39                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal);
40             break;
41         case gl::EntryPoint::AlphaFunc:
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 gl::EntryPoint::AlphaFuncx:
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 gl::EntryPoint::AttachShader:
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 gl::EntryPoint::BeginQuery:
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 gl::EntryPoint::BeginTransformFeedback:
63             context->beginTransformFeedback(
64                 params.getParam("primitiveModePacked", ParamType::TPrimitiveMode, 0)
65                     .value.PrimitiveModeVal);
66             break;
67         case gl::EntryPoint::BindAttribLocation:
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 gl::EntryPoint::BindBuffer:
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 gl::EntryPoint::BindBufferBase:
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 gl::EntryPoint::BindBufferRange:
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 gl::EntryPoint::BindFragDataLocation:
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 gl::EntryPoint::BindFragDataLocationIndexed:
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 gl::EntryPoint::BindFramebuffer:
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 gl::EntryPoint::BindImageTexture:
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 gl::EntryPoint::BindProgramPipeline:
131             context->bindProgramPipeline(
132                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
133                     .value.ProgramPipelineIDVal);
134             break;
135         case gl::EntryPoint::BindRenderbuffer:
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 gl::EntryPoint::BindSampler:
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 gl::EntryPoint::BindTexture:
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 gl::EntryPoint::BindTransformFeedback:
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 gl::EntryPoint::BindVertexArray:
158             context->bindVertexArray(params.getParam("arrayPacked", ParamType::TVertexArrayID, 0)
159                                          .value.VertexArrayIDVal);
160             break;
161         case gl::EntryPoint::BindVertexBuffer:
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 gl::EntryPoint::BlendBarrier:
169             context->blendBarrier();
170             break;
171         case gl::EntryPoint::BlendColor:
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 gl::EntryPoint::BlendEquation:
178             context->blendEquation(params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal);
179             break;
180         case gl::EntryPoint::BlendEquationSeparate:
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 gl::EntryPoint::BlendEquationSeparatei:
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 gl::EntryPoint::BlendEquationi:
192             context->blendEquationi(params.getParam("buf", ParamType::TGLuint, 0).value.GLuintVal,
193                                     params.getParam("mode", ParamType::TGLenum, 1).value.GLenumVal);
194             break;
195         case gl::EntryPoint::BlendFunc:
196             context->blendFunc(params.getParam("sfactor", ParamType::TGLenum, 0).value.GLenumVal,
197                                params.getParam("dfactor", ParamType::TGLenum, 1).value.GLenumVal);
198             break;
199         case gl::EntryPoint::BlendFuncSeparate:
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 gl::EntryPoint::BlendFuncSeparatei:
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 gl::EntryPoint::BlendFunci:
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 gl::EntryPoint::BlitFramebuffer:
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 gl::EntryPoint::BufferData:
233             context->bufferData(
234                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
235                     .value.BufferBindingVal,
236                 params.getParam("size", ParamType::TGLsizeiptr, 1).value.GLsizeiptrVal,
237                 replayContext->getAsConstPointer<const void *>(
238                     params.getParam("data", ParamType::TvoidConstPointer, 2)),
239                 params.getParam("usagePacked", ParamType::TBufferUsage, 3).value.BufferUsageVal);
240             break;
241         case gl::EntryPoint::BufferSubData:
242             context->bufferSubData(
243                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
244                     .value.BufferBindingVal,
245                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
246                 params.getParam("size", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal,
247                 replayContext->getAsConstPointer<const void *>(
248                     params.getParam("data", ParamType::TvoidConstPointer, 3)));
249             break;
250         case gl::EntryPoint::CheckFramebufferStatus:
251             context->checkFramebufferStatus(
252                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal);
253             break;
254         case gl::EntryPoint::Clear:
255             context->clear(params.getParam("mask", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
256             break;
257         case gl::EntryPoint::ClearBufferfi:
258             context->clearBufferfi(
259                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
260                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
261                 params.getParam("depth", ParamType::TGLfloat, 2).value.GLfloatVal,
262                 params.getParam("stencil", ParamType::TGLint, 3).value.GLintVal);
263             break;
264         case gl::EntryPoint::ClearBufferfv:
265             context->clearBufferfv(
266                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
267                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
268                 replayContext->getAsConstPointer<const GLfloat *>(
269                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
270             break;
271         case gl::EntryPoint::ClearBufferiv:
272             context->clearBufferiv(
273                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
274                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
275                 replayContext->getAsConstPointer<const GLint *>(
276                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
277             break;
278         case gl::EntryPoint::ClearBufferuiv:
279             context->clearBufferuiv(
280                 params.getParam("buffer", ParamType::TGLenum, 0).value.GLenumVal,
281                 params.getParam("drawbuffer", ParamType::TGLint, 1).value.GLintVal,
282                 replayContext->getAsConstPointer<const GLuint *>(
283                     params.getParam("value", ParamType::TGLuintConstPointer, 2)));
284             break;
285         case gl::EntryPoint::ClearColor:
286             context->clearColor(params.getParam("red", ParamType::TGLfloat, 0).value.GLfloatVal,
287                                 params.getParam("green", ParamType::TGLfloat, 1).value.GLfloatVal,
288                                 params.getParam("blue", ParamType::TGLfloat, 2).value.GLfloatVal,
289                                 params.getParam("alpha", ParamType::TGLfloat, 3).value.GLfloatVal);
290             break;
291         case gl::EntryPoint::ClearColorx:
292             context->clearColorx(params.getParam("red", ParamType::TGLfixed, 0).value.GLfixedVal,
293                                  params.getParam("green", ParamType::TGLfixed, 1).value.GLfixedVal,
294                                  params.getParam("blue", ParamType::TGLfixed, 2).value.GLfixedVal,
295                                  params.getParam("alpha", ParamType::TGLfixed, 3).value.GLfixedVal);
296             break;
297         case gl::EntryPoint::ClearDepthf:
298             context->clearDepthf(params.getParam("d", ParamType::TGLfloat, 0).value.GLfloatVal);
299             break;
300         case gl::EntryPoint::ClearDepthx:
301             context->clearDepthx(params.getParam("depth", ParamType::TGLfixed, 0).value.GLfixedVal);
302             break;
303         case gl::EntryPoint::ClearStencil:
304             context->clearStencil(params.getParam("s", ParamType::TGLint, 0).value.GLintVal);
305             break;
306         case gl::EntryPoint::ClientActiveTexture:
307             context->clientActiveTexture(
308                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal);
309             break;
310         case gl::EntryPoint::ClientWaitSync:
311             context->clientWaitSync(
312                 params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
313                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
314                 params.getParam("timeout", ParamType::TGLuint64, 2).value.GLuint64Val);
315             break;
316         case gl::EntryPoint::ClipPlanef:
317             context->clipPlanef(params.getParam("p", ParamType::TGLenum, 0).value.GLenumVal,
318                                 replayContext->getAsConstPointer<const GLfloat *>(
319                                     params.getParam("eqn", ParamType::TGLfloatConstPointer, 1)));
320             break;
321         case gl::EntryPoint::ClipPlanex:
322             context->clipPlanex(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
323                                 replayContext->getAsConstPointer<const GLfixed *>(params.getParam(
324                                     "equation", ParamType::TGLfixedConstPointer, 1)));
325             break;
326         case gl::EntryPoint::Color4f:
327             context->color4f(params.getParam("red", ParamType::TGLfloat, 0).value.GLfloatVal,
328                              params.getParam("green", ParamType::TGLfloat, 1).value.GLfloatVal,
329                              params.getParam("blue", ParamType::TGLfloat, 2).value.GLfloatVal,
330                              params.getParam("alpha", ParamType::TGLfloat, 3).value.GLfloatVal);
331             break;
332         case gl::EntryPoint::Color4ub:
333             context->color4ub(params.getParam("red", ParamType::TGLubyte, 0).value.GLubyteVal,
334                               params.getParam("green", ParamType::TGLubyte, 1).value.GLubyteVal,
335                               params.getParam("blue", ParamType::TGLubyte, 2).value.GLubyteVal,
336                               params.getParam("alpha", ParamType::TGLubyte, 3).value.GLubyteVal);
337             break;
338         case gl::EntryPoint::Color4x:
339             context->color4x(params.getParam("red", ParamType::TGLfixed, 0).value.GLfixedVal,
340                              params.getParam("green", ParamType::TGLfixed, 1).value.GLfixedVal,
341                              params.getParam("blue", ParamType::TGLfixed, 2).value.GLfixedVal,
342                              params.getParam("alpha", ParamType::TGLfixed, 3).value.GLfixedVal);
343             break;
344         case gl::EntryPoint::ColorMask:
345             context->colorMask(
346                 params.getParam("red", ParamType::TGLboolean, 0).value.GLbooleanVal,
347                 params.getParam("green", ParamType::TGLboolean, 1).value.GLbooleanVal,
348                 params.getParam("blue", ParamType::TGLboolean, 2).value.GLbooleanVal,
349                 params.getParam("alpha", ParamType::TGLboolean, 3).value.GLbooleanVal);
350             break;
351         case gl::EntryPoint::ColorMaski:
352             context->colorMaski(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
353                                 params.getParam("r", ParamType::TGLboolean, 1).value.GLbooleanVal,
354                                 params.getParam("g", ParamType::TGLboolean, 2).value.GLbooleanVal,
355                                 params.getParam("b", ParamType::TGLboolean, 3).value.GLbooleanVal,
356                                 params.getParam("a", ParamType::TGLboolean, 4).value.GLbooleanVal);
357             break;
358         case gl::EntryPoint::ColorPointer:
359             context->colorPointer(
360                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
361                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
362                     .value.VertexAttribTypeVal,
363                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
364                 replayContext->getAsConstPointer<const void *>(
365                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
366             break;
367         case gl::EntryPoint::CompileShader:
368             context->compileShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
369                                        .value.ShaderProgramIDVal);
370             break;
371         case gl::EntryPoint::CompressedTexImage2D:
372             context->compressedTexImage2D(
373                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
374                     .value.TextureTargetVal,
375                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
376                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
377                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
378                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
379                 params.getParam("border", ParamType::TGLint, 5).value.GLintVal,
380                 params.getParam("imageSize", ParamType::TGLsizei, 6).value.GLsizeiVal,
381                 replayContext->getAsConstPointer<const void *>(
382                     params.getParam("data", ParamType::TvoidConstPointer, 7)));
383             break;
384         case gl::EntryPoint::CompressedTexImage3D:
385             context->compressedTexImage3D(
386                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
387                     .value.TextureTargetVal,
388                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
389                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
390                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
391                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
392                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
393                 params.getParam("border", ParamType::TGLint, 6).value.GLintVal,
394                 params.getParam("imageSize", ParamType::TGLsizei, 7).value.GLsizeiVal,
395                 replayContext->getAsConstPointer<const void *>(
396                     params.getParam("data", ParamType::TvoidConstPointer, 8)));
397             break;
398         case gl::EntryPoint::CompressedTexSubImage2D:
399             context->compressedTexSubImage2D(
400                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
401                     .value.TextureTargetVal,
402                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
403                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
404                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
405                 params.getParam("width", ParamType::TGLsizei, 4).value.GLsizeiVal,
406                 params.getParam("height", ParamType::TGLsizei, 5).value.GLsizeiVal,
407                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
408                 params.getParam("imageSize", ParamType::TGLsizei, 7).value.GLsizeiVal,
409                 replayContext->getAsConstPointer<const void *>(
410                     params.getParam("data", ParamType::TvoidConstPointer, 8)));
411             break;
412         case gl::EntryPoint::CompressedTexSubImage3D:
413             context->compressedTexSubImage3D(
414                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
415                     .value.TextureTargetVal,
416                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
417                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
418                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
419                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
420                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
421                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
422                 params.getParam("depth", ParamType::TGLsizei, 7).value.GLsizeiVal,
423                 params.getParam("format", ParamType::TGLenum, 8).value.GLenumVal,
424                 params.getParam("imageSize", ParamType::TGLsizei, 9).value.GLsizeiVal,
425                 replayContext->getAsConstPointer<const void *>(
426                     params.getParam("data", ParamType::TvoidConstPointer, 10)));
427             break;
428         case gl::EntryPoint::CopyBufferSubData:
429             context->copyBufferSubData(
430                 params.getParam("readTargetPacked", ParamType::TBufferBinding, 0)
431                     .value.BufferBindingVal,
432                 params.getParam("writeTargetPacked", ParamType::TBufferBinding, 1)
433                     .value.BufferBindingVal,
434                 params.getParam("readOffset", ParamType::TGLintptr, 2).value.GLintptrVal,
435                 params.getParam("writeOffset", ParamType::TGLintptr, 3).value.GLintptrVal,
436                 params.getParam("size", ParamType::TGLsizeiptr, 4).value.GLsizeiptrVal);
437             break;
438         case gl::EntryPoint::CopyImageSubData:
439             context->copyImageSubData(
440                 params.getParam("srcName", ParamType::TGLuint, 0).value.GLuintVal,
441                 params.getParam("srcTarget", ParamType::TGLenum, 1).value.GLenumVal,
442                 params.getParam("srcLevel", ParamType::TGLint, 2).value.GLintVal,
443                 params.getParam("srcX", ParamType::TGLint, 3).value.GLintVal,
444                 params.getParam("srcY", ParamType::TGLint, 4).value.GLintVal,
445                 params.getParam("srcZ", ParamType::TGLint, 5).value.GLintVal,
446                 params.getParam("dstName", ParamType::TGLuint, 6).value.GLuintVal,
447                 params.getParam("dstTarget", ParamType::TGLenum, 7).value.GLenumVal,
448                 params.getParam("dstLevel", ParamType::TGLint, 8).value.GLintVal,
449                 params.getParam("dstX", ParamType::TGLint, 9).value.GLintVal,
450                 params.getParam("dstY", ParamType::TGLint, 10).value.GLintVal,
451                 params.getParam("dstZ", ParamType::TGLint, 11).value.GLintVal,
452                 params.getParam("srcWidth", ParamType::TGLsizei, 12).value.GLsizeiVal,
453                 params.getParam("srcHeight", ParamType::TGLsizei, 13).value.GLsizeiVal,
454                 params.getParam("srcDepth", ParamType::TGLsizei, 14).value.GLsizeiVal);
455             break;
456         case gl::EntryPoint::CopyTexImage2D:
457             context->copyTexImage2D(
458                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
459                     .value.TextureTargetVal,
460                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
461                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
462                 params.getParam("x", ParamType::TGLint, 3).value.GLintVal,
463                 params.getParam("y", ParamType::TGLint, 4).value.GLintVal,
464                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
465                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
466                 params.getParam("border", ParamType::TGLint, 7).value.GLintVal);
467             break;
468         case gl::EntryPoint::CopyTexSubImage2D:
469             context->copyTexSubImage2D(
470                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
471                     .value.TextureTargetVal,
472                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
473                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
474                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
475                 params.getParam("x", ParamType::TGLint, 4).value.GLintVal,
476                 params.getParam("y", ParamType::TGLint, 5).value.GLintVal,
477                 params.getParam("width", ParamType::TGLsizei, 6).value.GLsizeiVal,
478                 params.getParam("height", ParamType::TGLsizei, 7).value.GLsizeiVal);
479             break;
480         case gl::EntryPoint::CopyTexSubImage3D:
481             context->copyTexSubImage3D(
482                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
483                     .value.TextureTargetVal,
484                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
485                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
486                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
487                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
488                 params.getParam("x", ParamType::TGLint, 5).value.GLintVal,
489                 params.getParam("y", ParamType::TGLint, 6).value.GLintVal,
490                 params.getParam("width", ParamType::TGLsizei, 7).value.GLsizeiVal,
491                 params.getParam("height", ParamType::TGLsizei, 8).value.GLsizeiVal);
492             break;
493         case gl::EntryPoint::CreateProgram:
494             context->createProgram();
495             break;
496         case gl::EntryPoint::CreateShader:
497             context->createShader(
498                 params.getParam("typePacked", ParamType::TShaderType, 0).value.ShaderTypeVal);
499             break;
500         case gl::EntryPoint::CreateShaderProgramv:
501             context->createShaderProgramv(
502                 params.getParam("typePacked", ParamType::TShaderType, 0).value.ShaderTypeVal,
503                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
504                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
505                     params.getParam("strings", ParamType::TGLcharConstPointerPointer, 2)));
506             break;
507         case gl::EntryPoint::CullFace:
508             context->cullFace(
509                 params.getParam("modePacked", ParamType::TCullFaceMode, 0).value.CullFaceModeVal);
510             break;
511         case gl::EntryPoint::DebugMessageCallback:
512             context->debugMessageCallback(
513                 params.getParam("callback", ParamType::TGLDEBUGPROC, 0).value.GLDEBUGPROCVal,
514                 replayContext->getAsConstPointer<const void *>(
515                     params.getParam("userParam", ParamType::TvoidConstPointer, 1)));
516             break;
517         case gl::EntryPoint::DebugMessageControl:
518             context->debugMessageControl(
519                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
520                 params.getParam("type", ParamType::TGLenum, 1).value.GLenumVal,
521                 params.getParam("severity", ParamType::TGLenum, 2).value.GLenumVal,
522                 params.getParam("count", ParamType::TGLsizei, 3).value.GLsizeiVal,
523                 replayContext->getAsConstPointer<const GLuint *>(
524                     params.getParam("ids", ParamType::TGLuintConstPointer, 4)),
525                 params.getParam("enabled", ParamType::TGLboolean, 5).value.GLbooleanVal);
526             break;
527         case gl::EntryPoint::DebugMessageInsert:
528             context->debugMessageInsert(
529                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
530                 params.getParam("type", ParamType::TGLenum, 1).value.GLenumVal,
531                 params.getParam("id", ParamType::TGLuint, 2).value.GLuintVal,
532                 params.getParam("severity", ParamType::TGLenum, 3).value.GLenumVal,
533                 params.getParam("length", ParamType::TGLsizei, 4).value.GLsizeiVal,
534                 replayContext->getAsConstPointer<const GLchar *>(
535                     params.getParam("buf", ParamType::TGLcharConstPointer, 5)));
536             break;
537         case gl::EntryPoint::DeleteBuffers:
538             context->deleteBuffers(
539                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
540                 replayContext->getAsConstPointer<const BufferID *>(
541                     params.getParam("buffersPacked", ParamType::TBufferIDConstPointer, 1)));
542             break;
543         case gl::EntryPoint::DeleteFencesNV:
544             context->deleteFencesNV(
545                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
546                 replayContext->getAsConstPointer<const FenceNVID *>(
547                     params.getParam("fencesPacked", ParamType::TFenceNVIDConstPointer, 1)));
548             break;
549         case gl::EntryPoint::DeleteFramebuffers:
550             context->deleteFramebuffers(
551                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
552                 replayContext->getAsConstPointer<const FramebufferID *>(params.getParam(
553                     "framebuffersPacked", ParamType::TFramebufferIDConstPointer, 1)));
554             break;
555         case gl::EntryPoint::DeleteProgram:
556             context->deleteProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
557                                        .value.ShaderProgramIDVal);
558             break;
559         case gl::EntryPoint::DeleteProgramPipelines:
560             context->deleteProgramPipelines(
561                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
562                 replayContext->getAsConstPointer<const ProgramPipelineID *>(params.getParam(
563                     "pipelinesPacked", ParamType::TProgramPipelineIDConstPointer, 1)));
564             break;
565         case gl::EntryPoint::DeleteQueries:
566             context->deleteQueries(
567                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
568                 replayContext->getAsConstPointer<const QueryID *>(
569                     params.getParam("idsPacked", ParamType::TQueryIDConstPointer, 1)));
570             break;
571         case gl::EntryPoint::DeleteRenderbuffers:
572             context->deleteRenderbuffers(
573                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
574                 replayContext->getAsConstPointer<const RenderbufferID *>(params.getParam(
575                     "renderbuffersPacked", ParamType::TRenderbufferIDConstPointer, 1)));
576             break;
577         case gl::EntryPoint::DeleteSamplers:
578             context->deleteSamplers(
579                 params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
580                 replayContext->getAsConstPointer<const SamplerID *>(
581                     params.getParam("samplersPacked", ParamType::TSamplerIDConstPointer, 1)));
582             break;
583         case gl::EntryPoint::DeleteShader:
584             context->deleteShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
585                                       .value.ShaderProgramIDVal);
586             break;
587         case gl::EntryPoint::DeleteSync:
588             context->deleteSync(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal);
589             break;
590         case gl::EntryPoint::DeleteTextures:
591             context->deleteTextures(
592                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
593                 replayContext->getAsConstPointer<const TextureID *>(
594                     params.getParam("texturesPacked", ParamType::TTextureIDConstPointer, 1)));
595             break;
596         case gl::EntryPoint::DeleteTransformFeedbacks:
597             context->deleteTransformFeedbacks(
598                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
599                 replayContext->getAsConstPointer<const TransformFeedbackID *>(
600                     params.getParam("idsPacked", ParamType::TTransformFeedbackIDConstPointer, 1)));
601             break;
602         case gl::EntryPoint::DeleteVertexArrays:
603             context->deleteVertexArrays(
604                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
605                 replayContext->getAsConstPointer<const VertexArrayID *>(
606                     params.getParam("arraysPacked", ParamType::TVertexArrayIDConstPointer, 1)));
607             break;
608         case gl::EntryPoint::DepthFunc:
609             context->depthFunc(params.getParam("func", ParamType::TGLenum, 0).value.GLenumVal);
610             break;
611         case gl::EntryPoint::DepthMask:
612             context->depthMask(
613                 params.getParam("flag", ParamType::TGLboolean, 0).value.GLbooleanVal);
614             break;
615         case gl::EntryPoint::DepthRangef:
616             context->depthRangef(params.getParam("n", ParamType::TGLfloat, 0).value.GLfloatVal,
617                                  params.getParam("f", ParamType::TGLfloat, 1).value.GLfloatVal);
618             break;
619         case gl::EntryPoint::DepthRangex:
620             context->depthRangex(params.getParam("n", ParamType::TGLfixed, 0).value.GLfixedVal,
621                                  params.getParam("f", ParamType::TGLfixed, 1).value.GLfixedVal);
622             break;
623         case gl::EntryPoint::DetachShader:
624             context->detachShader(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
625                                       .value.ShaderProgramIDVal,
626                                   params.getParam("shaderPacked", ParamType::TShaderProgramID, 1)
627                                       .value.ShaderProgramIDVal);
628             break;
629         case gl::EntryPoint::Disable:
630             context->disable(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
631             break;
632         case gl::EntryPoint::DisableClientState:
633             context->disableClientState(
634                 params.getParam("arrayPacked", ParamType::TClientVertexArrayType, 0)
635                     .value.ClientVertexArrayTypeVal);
636             break;
637         case gl::EntryPoint::DisableVertexAttribArray:
638             context->disableVertexAttribArray(
639                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal);
640             break;
641         case gl::EntryPoint::Disablei:
642             context->disablei(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
643                               params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
644             break;
645         case gl::EntryPoint::DispatchCompute:
646             context->dispatchCompute(
647                 params.getParam("num_groups_x", ParamType::TGLuint, 0).value.GLuintVal,
648                 params.getParam("num_groups_y", ParamType::TGLuint, 1).value.GLuintVal,
649                 params.getParam("num_groups_z", ParamType::TGLuint, 2).value.GLuintVal);
650             break;
651         case gl::EntryPoint::DispatchComputeIndirect:
652             context->dispatchComputeIndirect(
653                 params.getParam("indirect", ParamType::TGLintptr, 0).value.GLintptrVal);
654             break;
655         case gl::EntryPoint::DrawArrays:
656             context->drawArrays(
657                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
658                 params.getParam("first", ParamType::TGLint, 1).value.GLintVal,
659                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal);
660             break;
661         case gl::EntryPoint::DrawArraysIndirect:
662             context->drawArraysIndirect(
663                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
664                 replayContext->getAsConstPointer<const void *>(
665                     params.getParam("indirect", ParamType::TvoidConstPointer, 1)));
666             break;
667         case gl::EntryPoint::DrawArraysInstanced:
668             context->drawArraysInstanced(
669                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
670                 params.getParam("first", ParamType::TGLint, 1).value.GLintVal,
671                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
672                 params.getParam("instancecount", ParamType::TGLsizei, 3).value.GLsizeiVal);
673             break;
674         case gl::EntryPoint::DrawArraysInstancedBaseInstance:
675             context->drawArraysInstancedBaseInstance(
676                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
677                 params.getParam("first", ParamType::TGLint, 1).value.GLintVal,
678                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
679                 params.getParam("instancecount", ParamType::TGLsizei, 3).value.GLsizeiVal,
680                 params.getParam("baseinstance", ParamType::TGLuint, 4).value.GLuintVal);
681             break;
682         case gl::EntryPoint::DrawBuffers:
683             context->drawBuffers(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
684                                  replayContext->getAsConstPointer<const GLenum *>(
685                                      params.getParam("bufs", ParamType::TGLenumConstPointer, 1)));
686             break;
687         case gl::EntryPoint::DrawElements:
688             context->drawElements(
689                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
690                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
691                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
692                     .value.DrawElementsTypeVal,
693                 replayContext->getAsConstPointer<const void *>(
694                     params.getParam("indices", ParamType::TvoidConstPointer, 3)));
695             break;
696         case gl::EntryPoint::DrawElementsBaseVertex:
697             context->drawElementsBaseVertex(
698                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
699                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
700                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
701                     .value.DrawElementsTypeVal,
702                 replayContext->getAsConstPointer<const void *>(
703                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
704                 params.getParam("basevertex", ParamType::TGLint, 4).value.GLintVal);
705             break;
706         case gl::EntryPoint::DrawElementsIndirect:
707             context->drawElementsIndirect(
708                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
709                 params.getParam("typePacked", ParamType::TDrawElementsType, 1)
710                     .value.DrawElementsTypeVal,
711                 replayContext->getAsConstPointer<const void *>(
712                     params.getParam("indirect", ParamType::TvoidConstPointer, 2)));
713             break;
714         case gl::EntryPoint::DrawElementsInstanced:
715             context->drawElementsInstanced(
716                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
717                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
718                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
719                     .value.DrawElementsTypeVal,
720                 replayContext->getAsConstPointer<const void *>(
721                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
722                 params.getParam("instancecount", ParamType::TGLsizei, 4).value.GLsizeiVal);
723             break;
724         case gl::EntryPoint::DrawElementsInstancedBaseVertex:
725             context->drawElementsInstancedBaseVertex(
726                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
727                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
728                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
729                     .value.DrawElementsTypeVal,
730                 replayContext->getAsConstPointer<const void *>(
731                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
732                 params.getParam("instancecount", ParamType::TGLsizei, 4).value.GLsizeiVal,
733                 params.getParam("basevertex", ParamType::TGLint, 5).value.GLintVal);
734             break;
735         case gl::EntryPoint::DrawElementsInstancedBaseVertexBaseInstance:
736             context->drawElementsInstancedBaseVertexBaseInstance(
737                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
738                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
739                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
740                     .value.DrawElementsTypeVal,
741                 replayContext->getAsConstPointer<const void *>(
742                     params.getParam("indices", ParamType::TvoidConstPointer, 3)),
743                 params.getParam("instancecount", ParamType::TGLsizei, 4).value.GLsizeiVal,
744                 params.getParam("basevertex", ParamType::TGLint, 5).value.GLintVal,
745                 params.getParam("baseinstance", ParamType::TGLuint, 6).value.GLuintVal);
746             break;
747         case gl::EntryPoint::DrawRangeElements:
748             context->drawRangeElements(
749                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
750                 params.getParam("start", ParamType::TGLuint, 1).value.GLuintVal,
751                 params.getParam("end", ParamType::TGLuint, 2).value.GLuintVal,
752                 params.getParam("count", ParamType::TGLsizei, 3).value.GLsizeiVal,
753                 params.getParam("typePacked", ParamType::TDrawElementsType, 4)
754                     .value.DrawElementsTypeVal,
755                 replayContext->getAsConstPointer<const void *>(
756                     params.getParam("indices", ParamType::TvoidConstPointer, 5)));
757             break;
758         case gl::EntryPoint::DrawRangeElementsBaseVertex:
759             context->drawRangeElementsBaseVertex(
760                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
761                 params.getParam("start", ParamType::TGLuint, 1).value.GLuintVal,
762                 params.getParam("end", ParamType::TGLuint, 2).value.GLuintVal,
763                 params.getParam("count", ParamType::TGLsizei, 3).value.GLsizeiVal,
764                 params.getParam("typePacked", ParamType::TDrawElementsType, 4)
765                     .value.DrawElementsTypeVal,
766                 replayContext->getAsConstPointer<const void *>(
767                     params.getParam("indices", ParamType::TvoidConstPointer, 5)),
768                 params.getParam("basevertex", ParamType::TGLint, 6).value.GLintVal);
769             break;
770         case gl::EntryPoint::Enable:
771             context->enable(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
772             break;
773         case gl::EntryPoint::EnableClientState:
774             context->enableClientState(
775                 params.getParam("arrayPacked", ParamType::TClientVertexArrayType, 0)
776                     .value.ClientVertexArrayTypeVal);
777             break;
778         case gl::EntryPoint::EnableVertexAttribArray:
779             context->enableVertexAttribArray(
780                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal);
781             break;
782         case gl::EntryPoint::Enablei:
783             context->enablei(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
784                              params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
785             break;
786         case gl::EntryPoint::EndQuery:
787             context->endQuery(
788                 params.getParam("targetPacked", ParamType::TQueryType, 0).value.QueryTypeVal);
789             break;
790         case gl::EntryPoint::EndTransformFeedback:
791             context->endTransformFeedback();
792             break;
793         case gl::EntryPoint::FenceSync:
794             context->fenceSync(
795                 params.getParam("condition", ParamType::TGLenum, 0).value.GLenumVal,
796                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal);
797             break;
798         case gl::EntryPoint::Finish:
799             context->finish();
800             break;
801         case gl::EntryPoint::FinishFenceNV:
802             context->finishFenceNV(
803                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
804             break;
805         case gl::EntryPoint::Flush:
806             context->flush();
807             break;
808         case gl::EntryPoint::FlushMappedBufferRange:
809             context->flushMappedBufferRange(
810                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
811                     .value.BufferBindingVal,
812                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
813                 params.getParam("length", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal);
814             break;
815         case gl::EntryPoint::Fogf:
816             context->fogf(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
817                           params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
818             break;
819         case gl::EntryPoint::Fogfv:
820             context->fogfv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
821                            replayContext->getAsConstPointer<const GLfloat *>(
822                                params.getParam("params", ParamType::TGLfloatConstPointer, 1)));
823             break;
824         case gl::EntryPoint::Fogx:
825             context->fogx(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
826                           params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
827             break;
828         case gl::EntryPoint::Fogxv:
829             context->fogxv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
830                            replayContext->getAsConstPointer<const GLfixed *>(
831                                params.getParam("param", ParamType::TGLfixedConstPointer, 1)));
832             break;
833         case gl::EntryPoint::FramebufferParameteri:
834             context->framebufferParameteri(
835                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
836                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
837                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
838             break;
839         case gl::EntryPoint::FramebufferRenderbuffer:
840             context->framebufferRenderbuffer(
841                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
842                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
843                 params.getParam("renderbuffertarget", ParamType::TGLenum, 2).value.GLenumVal,
844                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 3)
845                     .value.RenderbufferIDVal);
846             break;
847         case gl::EntryPoint::FramebufferTexture:
848             context->framebufferTexture(
849                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
850                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
851                 params.getParam("texturePacked", ParamType::TTextureID, 2).value.TextureIDVal,
852                 params.getParam("level", ParamType::TGLint, 3).value.GLintVal);
853             break;
854         case gl::EntryPoint::FramebufferTexture2D:
855             context->framebufferTexture2D(
856                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
857                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
858                 params.getParam("textargetPacked", ParamType::TTextureTarget, 2)
859                     .value.TextureTargetVal,
860                 params.getParam("texturePacked", ParamType::TTextureID, 3).value.TextureIDVal,
861                 params.getParam("level", ParamType::TGLint, 4).value.GLintVal);
862             break;
863         case gl::EntryPoint::FramebufferTexture3D:
864             context->framebufferTexture3D(
865                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
866                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
867                 params.getParam("textargetPacked", ParamType::TTextureTarget, 2)
868                     .value.TextureTargetVal,
869                 params.getParam("texturePacked", ParamType::TTextureID, 3).value.TextureIDVal,
870                 params.getParam("level", ParamType::TGLint, 4).value.GLintVal,
871                 params.getParam("zoffset", ParamType::TGLint, 5).value.GLintVal);
872             break;
873         case gl::EntryPoint::FramebufferTextureLayer:
874             context->framebufferTextureLayer(
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                 params.getParam("layer", ParamType::TGLint, 4).value.GLintVal);
880             break;
881         case gl::EntryPoint::FrontFace:
882             context->frontFace(params.getParam("mode", ParamType::TGLenum, 0).value.GLenumVal);
883             break;
884         case gl::EntryPoint::Frustumf:
885             context->frustumf(params.getParam("l", ParamType::TGLfloat, 0).value.GLfloatVal,
886                               params.getParam("r", ParamType::TGLfloat, 1).value.GLfloatVal,
887                               params.getParam("b", ParamType::TGLfloat, 2).value.GLfloatVal,
888                               params.getParam("t", ParamType::TGLfloat, 3).value.GLfloatVal,
889                               params.getParam("n", ParamType::TGLfloat, 4).value.GLfloatVal,
890                               params.getParam("f", ParamType::TGLfloat, 5).value.GLfloatVal);
891             break;
892         case gl::EntryPoint::Frustumx:
893             context->frustumx(params.getParam("l", ParamType::TGLfixed, 0).value.GLfixedVal,
894                               params.getParam("r", ParamType::TGLfixed, 1).value.GLfixedVal,
895                               params.getParam("b", ParamType::TGLfixed, 2).value.GLfixedVal,
896                               params.getParam("t", ParamType::TGLfixed, 3).value.GLfixedVal,
897                               params.getParam("n", ParamType::TGLfixed, 4).value.GLfixedVal,
898                               params.getParam("f", ParamType::TGLfixed, 5).value.GLfixedVal);
899             break;
900         case gl::EntryPoint::GenBuffers:
901             context->genBuffers(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
902                                 replayContext->getReadBufferPointer<BufferID *>(params.getParam(
903                                     "buffersPacked", ParamType::TBufferIDPointer, 1)));
904             break;
905         case gl::EntryPoint::GenFencesNV:
906             context->genFencesNV(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
907                                  replayContext->getReadBufferPointer<FenceNVID *>(params.getParam(
908                                      "fencesPacked", ParamType::TFenceNVIDPointer, 1)));
909             break;
910         case gl::EntryPoint::GenFramebuffers:
911             context->genFramebuffers(
912                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
913                 replayContext->getReadBufferPointer<FramebufferID *>(
914                     params.getParam("framebuffersPacked", ParamType::TFramebufferIDPointer, 1)));
915             break;
916         case gl::EntryPoint::GenProgramPipelines:
917             context->genProgramPipelines(
918                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
919                 replayContext->getReadBufferPointer<ProgramPipelineID *>(
920                     params.getParam("pipelinesPacked", ParamType::TProgramPipelineIDPointer, 1)));
921             break;
922         case gl::EntryPoint::GenQueries:
923             context->genQueries(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
924                                 replayContext->getReadBufferPointer<QueryID *>(
925                                     params.getParam("idsPacked", ParamType::TQueryIDPointer, 1)));
926             break;
927         case gl::EntryPoint::GenRenderbuffers:
928             context->genRenderbuffers(
929                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
930                 replayContext->getReadBufferPointer<RenderbufferID *>(
931                     params.getParam("renderbuffersPacked", ParamType::TRenderbufferIDPointer, 1)));
932             break;
933         case gl::EntryPoint::GenSamplers:
934             context->genSamplers(params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
935                                  replayContext->getReadBufferPointer<SamplerID *>(params.getParam(
936                                      "samplersPacked", ParamType::TSamplerIDPointer, 1)));
937             break;
938         case gl::EntryPoint::GenTextures:
939             context->genTextures(params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
940                                  replayContext->getReadBufferPointer<TextureID *>(params.getParam(
941                                      "texturesPacked", ParamType::TTextureIDPointer, 1)));
942             break;
943         case gl::EntryPoint::GenTransformFeedbacks:
944             context->genTransformFeedbacks(
945                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
946                 replayContext->getReadBufferPointer<TransformFeedbackID *>(
947                     params.getParam("idsPacked", ParamType::TTransformFeedbackIDPointer, 1)));
948             break;
949         case gl::EntryPoint::GenVertexArrays:
950             context->genVertexArrays(
951                 params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal,
952                 replayContext->getReadBufferPointer<VertexArrayID *>(
953                     params.getParam("arraysPacked", ParamType::TVertexArrayIDPointer, 1)));
954             break;
955         case gl::EntryPoint::GenerateMipmap:
956             context->generateMipmap(
957                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal);
958             break;
959         case gl::EntryPoint::GetActiveAttrib:
960             context->getActiveAttrib(
961                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
962                     .value.ShaderProgramIDVal,
963                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
964                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
965                 replayContext->getReadBufferPointer<GLsizei *>(
966                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
967                 replayContext->getReadBufferPointer<GLint *>(
968                     params.getParam("size", ParamType::TGLintPointer, 4)),
969                 replayContext->getReadBufferPointer<GLenum *>(
970                     params.getParam("type", ParamType::TGLenumPointer, 5)),
971                 replayContext->getReadBufferPointer<GLchar *>(
972                     params.getParam("name", ParamType::TGLcharPointer, 6)));
973             break;
974         case gl::EntryPoint::GetActiveUniform:
975             context->getActiveUniform(
976                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
977                     .value.ShaderProgramIDVal,
978                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
979                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
980                 replayContext->getReadBufferPointer<GLsizei *>(
981                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
982                 replayContext->getReadBufferPointer<GLint *>(
983                     params.getParam("size", ParamType::TGLintPointer, 4)),
984                 replayContext->getReadBufferPointer<GLenum *>(
985                     params.getParam("type", ParamType::TGLenumPointer, 5)),
986                 replayContext->getReadBufferPointer<GLchar *>(
987                     params.getParam("name", ParamType::TGLcharPointer, 6)));
988             break;
989         case gl::EntryPoint::GetActiveUniformBlockName:
990             context->getActiveUniformBlockName(
991                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
992                     .value.ShaderProgramIDVal,
993                 params.getParam("uniformBlockIndex", ParamType::TGLuint, 1).value.GLuintVal,
994                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
995                 replayContext->getReadBufferPointer<GLsizei *>(
996                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
997                 replayContext->getReadBufferPointer<GLchar *>(
998                     params.getParam("uniformBlockName", ParamType::TGLcharPointer, 4)));
999             break;
1000         case gl::EntryPoint::GetActiveUniformBlockiv:
1001             context->getActiveUniformBlockiv(
1002                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1003                     .value.ShaderProgramIDVal,
1004                 params.getParam("uniformBlockIndex", ParamType::TGLuint, 1).value.GLuintVal,
1005                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1006                 replayContext->getReadBufferPointer<GLint *>(
1007                     params.getParam("params", ParamType::TGLintPointer, 3)));
1008             break;
1009         case gl::EntryPoint::GetActiveUniformsiv:
1010             context->getActiveUniformsiv(
1011                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1012                     .value.ShaderProgramIDVal,
1013                 params.getParam("uniformCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1014                 replayContext->getAsConstPointer<const GLuint *>(
1015                     params.getParam("uniformIndices", ParamType::TGLuintConstPointer, 2)),
1016                 params.getParam("pname", ParamType::TGLenum, 3).value.GLenumVal,
1017                 replayContext->getReadBufferPointer<GLint *>(
1018                     params.getParam("params", ParamType::TGLintPointer, 4)));
1019             break;
1020         case gl::EntryPoint::GetAttachedShaders:
1021             context->getAttachedShaders(
1022                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1023                     .value.ShaderProgramIDVal,
1024                 params.getParam("maxCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1025                 replayContext->getReadBufferPointer<GLsizei *>(
1026                     params.getParam("count", ParamType::TGLsizeiPointer, 2)),
1027                 replayContext->getReadBufferPointer<ShaderProgramID *>(
1028                     params.getParam("shadersPacked", ParamType::TShaderProgramIDPointer, 3)));
1029             break;
1030         case gl::EntryPoint::GetAttribLocation:
1031             context->getAttribLocation(
1032                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1033                     .value.ShaderProgramIDVal,
1034                 replayContext->getAsConstPointer<const GLchar *>(
1035                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1036             break;
1037         case gl::EntryPoint::GetBooleani_v:
1038             context->getBooleani_v(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1039                                    params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1040                                    replayContext->getReadBufferPointer<GLboolean *>(
1041                                        params.getParam("data", ParamType::TGLbooleanPointer, 2)));
1042             break;
1043         case gl::EntryPoint::GetBooleanv:
1044             context->getBooleanv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1045                                  replayContext->getReadBufferPointer<GLboolean *>(
1046                                      params.getParam("data", ParamType::TGLbooleanPointer, 1)));
1047             break;
1048         case gl::EntryPoint::GetBufferParameteri64v:
1049             context->getBufferParameteri64v(
1050                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1051                     .value.BufferBindingVal,
1052                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1053                 replayContext->getReadBufferPointer<GLint64 *>(
1054                     params.getParam("params", ParamType::TGLint64Pointer, 2)));
1055             break;
1056         case gl::EntryPoint::GetBufferParameteriv:
1057             context->getBufferParameteriv(
1058                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1059                     .value.BufferBindingVal,
1060                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1061                 replayContext->getReadBufferPointer<GLint *>(
1062                     params.getParam("params", ParamType::TGLintPointer, 2)));
1063             break;
1064         case gl::EntryPoint::GetBufferPointerv:
1065             context->getBufferPointerv(
1066                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1067                     .value.BufferBindingVal,
1068                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1069                 replayContext->getReadBufferPointer<void **>(
1070                     params.getParam("params", ParamType::TvoidPointerPointer, 2)));
1071             break;
1072         case gl::EntryPoint::GetClipPlanef:
1073             context->getClipPlanef(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
1074                                    replayContext->getReadBufferPointer<GLfloat *>(
1075                                        params.getParam("equation", ParamType::TGLfloatPointer, 1)));
1076             break;
1077         case gl::EntryPoint::GetClipPlanex:
1078             context->getClipPlanex(params.getParam("plane", ParamType::TGLenum, 0).value.GLenumVal,
1079                                    replayContext->getReadBufferPointer<GLfixed *>(
1080                                        params.getParam("equation", ParamType::TGLfixedPointer, 1)));
1081             break;
1082         case gl::EntryPoint::GetDebugMessageLog:
1083             context->getDebugMessageLog(
1084                 params.getParam("count", ParamType::TGLuint, 0).value.GLuintVal,
1085                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1086                 replayContext->getReadBufferPointer<GLenum *>(
1087                     params.getParam("sources", ParamType::TGLenumPointer, 2)),
1088                 replayContext->getReadBufferPointer<GLenum *>(
1089                     params.getParam("types", ParamType::TGLenumPointer, 3)),
1090                 replayContext->getReadBufferPointer<GLuint *>(
1091                     params.getParam("ids", ParamType::TGLuintPointer, 4)),
1092                 replayContext->getReadBufferPointer<GLenum *>(
1093                     params.getParam("severities", ParamType::TGLenumPointer, 5)),
1094                 replayContext->getReadBufferPointer<GLsizei *>(
1095                     params.getParam("lengths", ParamType::TGLsizeiPointer, 6)),
1096                 replayContext->getReadBufferPointer<GLchar *>(
1097                     params.getParam("messageLog", ParamType::TGLcharPointer, 7)));
1098             break;
1099         case gl::EntryPoint::GetError:
1100             context->getError();
1101             break;
1102         case gl::EntryPoint::GetFenceivNV:
1103             context->getFenceivNV(
1104                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal,
1105                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1106                 replayContext->getReadBufferPointer<GLint *>(
1107                     params.getParam("params", ParamType::TGLintPointer, 2)));
1108             break;
1109         case gl::EntryPoint::GetFixedv:
1110             context->getFixedv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1111                                replayContext->getReadBufferPointer<GLfixed *>(
1112                                    params.getParam("params", ParamType::TGLfixedPointer, 1)));
1113             break;
1114         case gl::EntryPoint::GetFloatv:
1115             context->getFloatv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1116                                replayContext->getReadBufferPointer<GLfloat *>(
1117                                    params.getParam("data", ParamType::TGLfloatPointer, 1)));
1118             break;
1119         case gl::EntryPoint::GetFragDataIndex:
1120             context->getFragDataIndex(
1121                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1122                     .value.ShaderProgramIDVal,
1123                 replayContext->getAsConstPointer<const GLchar *>(
1124                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1125             break;
1126         case gl::EntryPoint::GetFragDataLocation:
1127             context->getFragDataLocation(
1128                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1129                     .value.ShaderProgramIDVal,
1130                 replayContext->getAsConstPointer<const GLchar *>(
1131                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1132             break;
1133         case gl::EntryPoint::GetFramebufferAttachmentParameteriv:
1134             context->getFramebufferAttachmentParameteriv(
1135                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1136                 params.getParam("attachment", ParamType::TGLenum, 1).value.GLenumVal,
1137                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1138                 replayContext->getReadBufferPointer<GLint *>(
1139                     params.getParam("params", ParamType::TGLintPointer, 3)));
1140             break;
1141         case gl::EntryPoint::GetFramebufferParameteriv:
1142             context->getFramebufferParameteriv(
1143                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1144                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1145                 replayContext->getReadBufferPointer<GLint *>(
1146                     params.getParam("params", ParamType::TGLintPointer, 2)));
1147             break;
1148         case gl::EntryPoint::GetGraphicsResetStatus:
1149             context->getGraphicsResetStatus();
1150             break;
1151         case gl::EntryPoint::GetInteger64i_v:
1152             context->getInteger64i_v(
1153                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1154                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1155                 replayContext->getReadBufferPointer<GLint64 *>(
1156                     params.getParam("data", ParamType::TGLint64Pointer, 2)));
1157             break;
1158         case gl::EntryPoint::GetInteger64v:
1159             context->getInteger64v(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1160                                    replayContext->getReadBufferPointer<GLint64 *>(
1161                                        params.getParam("data", ParamType::TGLint64Pointer, 1)));
1162             break;
1163         case gl::EntryPoint::GetIntegeri_v:
1164             context->getIntegeri_v(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1165                                    params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1166                                    replayContext->getReadBufferPointer<GLint *>(
1167                                        params.getParam("data", ParamType::TGLintPointer, 2)));
1168             break;
1169         case gl::EntryPoint::GetIntegerv:
1170             context->getIntegerv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1171                                  replayContext->getReadBufferPointer<GLint *>(
1172                                      params.getParam("data", ParamType::TGLintPointer, 1)));
1173             break;
1174         case gl::EntryPoint::GetInternalformativ:
1175             context->getInternalformativ(
1176                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1177                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
1178                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1179                 params.getParam("bufSize", ParamType::TGLsizei, 3).value.GLsizeiVal,
1180                 replayContext->getReadBufferPointer<GLint *>(
1181                     params.getParam("params", ParamType::TGLintPointer, 4)));
1182             break;
1183         case gl::EntryPoint::GetLightfv:
1184             context->getLightfv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1185                                 params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1186                                     .value.LightParameterVal,
1187                                 replayContext->getReadBufferPointer<GLfloat *>(
1188                                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1189             break;
1190         case gl::EntryPoint::GetLightxv:
1191             context->getLightxv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1192                                 params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1193                                     .value.LightParameterVal,
1194                                 replayContext->getReadBufferPointer<GLfixed *>(
1195                                     params.getParam("params", ParamType::TGLfixedPointer, 2)));
1196             break;
1197         case gl::EntryPoint::GetMaterialfv:
1198             context->getMaterialfv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1199                                    params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1200                                        .value.MaterialParameterVal,
1201                                    replayContext->getReadBufferPointer<GLfloat *>(
1202                                        params.getParam("params", ParamType::TGLfloatPointer, 2)));
1203             break;
1204         case gl::EntryPoint::GetMaterialxv:
1205             context->getMaterialxv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1206                                    params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1207                                        .value.MaterialParameterVal,
1208                                    replayContext->getReadBufferPointer<GLfixed *>(
1209                                        params.getParam("params", ParamType::TGLfixedPointer, 2)));
1210             break;
1211         case gl::EntryPoint::GetMultisamplefv:
1212             context->getMultisamplefv(
1213                 params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1214                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1215                 replayContext->getReadBufferPointer<GLfloat *>(
1216                     params.getParam("val", ParamType::TGLfloatPointer, 2)));
1217             break;
1218         case gl::EntryPoint::GetObjectLabel:
1219             context->getObjectLabel(
1220                 params.getParam("identifier", ParamType::TGLenum, 0).value.GLenumVal,
1221                 params.getParam("name", ParamType::TGLuint, 1).value.GLuintVal,
1222                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1223                 replayContext->getReadBufferPointer<GLsizei *>(
1224                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1225                 replayContext->getReadBufferPointer<GLchar *>(
1226                     params.getParam("label", ParamType::TGLcharPointer, 4)));
1227             break;
1228         case gl::EntryPoint::GetObjectPtrLabel:
1229             context->getObjectPtrLabel(
1230                 replayContext->getAsConstPointer<const void *>(
1231                     params.getParam("ptr", ParamType::TvoidConstPointer, 0)),
1232                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1233                 replayContext->getReadBufferPointer<GLsizei *>(
1234                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1235                 replayContext->getReadBufferPointer<GLchar *>(
1236                     params.getParam("label", ParamType::TGLcharPointer, 3)));
1237             break;
1238         case gl::EntryPoint::GetPointerv:
1239             context->getPointerv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1240                                  replayContext->getReadBufferPointer<void **>(
1241                                      params.getParam("params", ParamType::TvoidPointerPointer, 1)));
1242             break;
1243         case gl::EntryPoint::GetProgramBinary:
1244             context->getProgramBinary(
1245                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1246                     .value.ShaderProgramIDVal,
1247                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1248                 replayContext->getReadBufferPointer<GLsizei *>(
1249                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1250                 replayContext->getReadBufferPointer<GLenum *>(
1251                     params.getParam("binaryFormat", ParamType::TGLenumPointer, 3)),
1252                 replayContext->getReadBufferPointer<void *>(
1253                     params.getParam("binary", ParamType::TvoidPointer, 4)));
1254             break;
1255         case gl::EntryPoint::GetProgramInfoLog:
1256             context->getProgramInfoLog(
1257                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1258                     .value.ShaderProgramIDVal,
1259                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1260                 replayContext->getReadBufferPointer<GLsizei *>(
1261                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1262                 replayContext->getReadBufferPointer<GLchar *>(
1263                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1264             break;
1265         case gl::EntryPoint::GetProgramInterfaceiv:
1266             context->getProgramInterfaceiv(
1267                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1268                     .value.ShaderProgramIDVal,
1269                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1270                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1271                 replayContext->getReadBufferPointer<GLint *>(
1272                     params.getParam("params", ParamType::TGLintPointer, 3)));
1273             break;
1274         case gl::EntryPoint::GetProgramPipelineInfoLog:
1275             context->getProgramPipelineInfoLog(
1276                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1277                     .value.ProgramPipelineIDVal,
1278                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1279                 replayContext->getReadBufferPointer<GLsizei *>(
1280                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1281                 replayContext->getReadBufferPointer<GLchar *>(
1282                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1283             break;
1284         case gl::EntryPoint::GetProgramPipelineiv:
1285             context->getProgramPipelineiv(
1286                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1287                     .value.ProgramPipelineIDVal,
1288                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1289                 replayContext->getReadBufferPointer<GLint *>(
1290                     params.getParam("params", ParamType::TGLintPointer, 2)));
1291             break;
1292         case gl::EntryPoint::GetProgramResourceIndex:
1293             context->getProgramResourceIndex(
1294                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1295                     .value.ShaderProgramIDVal,
1296                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1297                 replayContext->getAsConstPointer<const GLchar *>(
1298                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1299             break;
1300         case gl::EntryPoint::GetProgramResourceLocation:
1301             context->getProgramResourceLocation(
1302                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1303                     .value.ShaderProgramIDVal,
1304                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1305                 replayContext->getAsConstPointer<const GLchar *>(
1306                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1307             break;
1308         case gl::EntryPoint::GetProgramResourceLocationIndex:
1309             context->getProgramResourceLocationIndex(
1310                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1311                     .value.ShaderProgramIDVal,
1312                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1313                 replayContext->getAsConstPointer<const GLchar *>(
1314                     params.getParam("name", ParamType::TGLcharConstPointer, 2)));
1315             break;
1316         case gl::EntryPoint::GetProgramResourceName:
1317             context->getProgramResourceName(
1318                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1319                     .value.ShaderProgramIDVal,
1320                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1321                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
1322                 params.getParam("bufSize", ParamType::TGLsizei, 3).value.GLsizeiVal,
1323                 replayContext->getReadBufferPointer<GLsizei *>(
1324                     params.getParam("length", ParamType::TGLsizeiPointer, 4)),
1325                 replayContext->getReadBufferPointer<GLchar *>(
1326                     params.getParam("name", ParamType::TGLcharPointer, 5)));
1327             break;
1328         case gl::EntryPoint::GetProgramResourceiv:
1329             context->getProgramResourceiv(
1330                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1331                     .value.ShaderProgramIDVal,
1332                 params.getParam("programInterface", ParamType::TGLenum, 1).value.GLenumVal,
1333                 params.getParam("index", ParamType::TGLuint, 2).value.GLuintVal,
1334                 params.getParam("propCount", ParamType::TGLsizei, 3).value.GLsizeiVal,
1335                 replayContext->getAsConstPointer<const GLenum *>(
1336                     params.getParam("props", ParamType::TGLenumConstPointer, 4)),
1337                 params.getParam("bufSize", ParamType::TGLsizei, 5).value.GLsizeiVal,
1338                 replayContext->getReadBufferPointer<GLsizei *>(
1339                     params.getParam("length", ParamType::TGLsizeiPointer, 6)),
1340                 replayContext->getReadBufferPointer<GLint *>(
1341                     params.getParam("params", ParamType::TGLintPointer, 7)));
1342             break;
1343         case gl::EntryPoint::GetProgramiv:
1344             context->getProgramiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1345                                       .value.ShaderProgramIDVal,
1346                                   params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1347                                   replayContext->getReadBufferPointer<GLint *>(
1348                                       params.getParam("params", ParamType::TGLintPointer, 2)));
1349             break;
1350         case gl::EntryPoint::GetQueryObjecti64v:
1351             context->getQueryObjecti64v(
1352                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1353                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1354                 replayContext->getReadBufferPointer<GLint64 *>(
1355                     params.getParam("params", ParamType::TGLint64Pointer, 2)));
1356             break;
1357         case gl::EntryPoint::GetQueryObjectiv:
1358             context->getQueryObjectiv(
1359                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1360                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1361                 replayContext->getReadBufferPointer<GLint *>(
1362                     params.getParam("params", ParamType::TGLintPointer, 2)));
1363             break;
1364         case gl::EntryPoint::GetQueryObjectui64v:
1365             context->getQueryObjectui64v(
1366                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1367                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1368                 replayContext->getReadBufferPointer<GLuint64 *>(
1369                     params.getParam("params", ParamType::TGLuint64Pointer, 2)));
1370             break;
1371         case gl::EntryPoint::GetQueryObjectuiv:
1372             context->getQueryObjectuiv(
1373                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
1374                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1375                 replayContext->getReadBufferPointer<GLuint *>(
1376                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1377             break;
1378         case gl::EntryPoint::GetQueryiv:
1379             context->getQueryiv(
1380                 params.getParam("targetPacked", ParamType::TQueryType, 0).value.QueryTypeVal,
1381                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1382                 replayContext->getReadBufferPointer<GLint *>(
1383                     params.getParam("params", ParamType::TGLintPointer, 2)));
1384             break;
1385         case gl::EntryPoint::GetRenderbufferParameteriv:
1386             context->getRenderbufferParameteriv(
1387                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1388                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1389                 replayContext->getReadBufferPointer<GLint *>(
1390                     params.getParam("params", ParamType::TGLintPointer, 2)));
1391             break;
1392         case gl::EntryPoint::GetSamplerParameterIiv:
1393             context->getSamplerParameterIiv(
1394                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1395                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1396                 replayContext->getReadBufferPointer<GLint *>(
1397                     params.getParam("params", ParamType::TGLintPointer, 2)));
1398             break;
1399         case gl::EntryPoint::GetSamplerParameterIuiv:
1400             context->getSamplerParameterIuiv(
1401                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1402                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1403                 replayContext->getReadBufferPointer<GLuint *>(
1404                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1405             break;
1406         case gl::EntryPoint::GetSamplerParameterfv:
1407             context->getSamplerParameterfv(
1408                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1409                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1410                 replayContext->getReadBufferPointer<GLfloat *>(
1411                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1412             break;
1413         case gl::EntryPoint::GetSamplerParameteriv:
1414             context->getSamplerParameteriv(
1415                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
1416                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1417                 replayContext->getReadBufferPointer<GLint *>(
1418                     params.getParam("params", ParamType::TGLintPointer, 2)));
1419             break;
1420         case gl::EntryPoint::GetShaderInfoLog:
1421             context->getShaderInfoLog(
1422                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1423                     .value.ShaderProgramIDVal,
1424                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1425                 replayContext->getReadBufferPointer<GLsizei *>(
1426                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1427                 replayContext->getReadBufferPointer<GLchar *>(
1428                     params.getParam("infoLog", ParamType::TGLcharPointer, 3)));
1429             break;
1430         case gl::EntryPoint::GetShaderPrecisionFormat:
1431             context->getShaderPrecisionFormat(
1432                 params.getParam("shadertype", ParamType::TGLenum, 0).value.GLenumVal,
1433                 params.getParam("precisiontype", ParamType::TGLenum, 1).value.GLenumVal,
1434                 replayContext->getReadBufferPointer<GLint *>(
1435                     params.getParam("range", ParamType::TGLintPointer, 2)),
1436                 replayContext->getReadBufferPointer<GLint *>(
1437                     params.getParam("precision", ParamType::TGLintPointer, 3)));
1438             break;
1439         case gl::EntryPoint::GetShaderSource:
1440             context->getShaderSource(
1441                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1442                     .value.ShaderProgramIDVal,
1443                 params.getParam("bufSize", ParamType::TGLsizei, 1).value.GLsizeiVal,
1444                 replayContext->getReadBufferPointer<GLsizei *>(
1445                     params.getParam("length", ParamType::TGLsizeiPointer, 2)),
1446                 replayContext->getReadBufferPointer<GLchar *>(
1447                     params.getParam("source", ParamType::TGLcharPointer, 3)));
1448             break;
1449         case gl::EntryPoint::GetShaderiv:
1450             context->getShaderiv(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1451                                      .value.ShaderProgramIDVal,
1452                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1453                                  replayContext->getReadBufferPointer<GLint *>(
1454                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1455             break;
1456         case gl::EntryPoint::GetString:
1457             context->getString(params.getParam("name", ParamType::TGLenum, 0).value.GLenumVal);
1458             break;
1459         case gl::EntryPoint::GetStringi:
1460             context->getStringi(params.getParam("name", ParamType::TGLenum, 0).value.GLenumVal,
1461                                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
1462             break;
1463         case gl::EntryPoint::GetSynciv:
1464             context->getSynciv(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
1465                                params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1466                                params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1467                                replayContext->getReadBufferPointer<GLsizei *>(
1468                                    params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1469                                replayContext->getReadBufferPointer<GLint *>(
1470                                    params.getParam("values", ParamType::TGLintPointer, 4)));
1471             break;
1472         case gl::EntryPoint::GetTexEnvfv:
1473             context->getTexEnvfv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1474                                      .value.TextureEnvTargetVal,
1475                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1476                                      .value.TextureEnvParameterVal,
1477                                  replayContext->getReadBufferPointer<GLfloat *>(
1478                                      params.getParam("params", ParamType::TGLfloatPointer, 2)));
1479             break;
1480         case gl::EntryPoint::GetTexEnviv:
1481             context->getTexEnviv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1482                                      .value.TextureEnvTargetVal,
1483                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1484                                      .value.TextureEnvParameterVal,
1485                                  replayContext->getReadBufferPointer<GLint *>(
1486                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1487             break;
1488         case gl::EntryPoint::GetTexEnvxv:
1489             context->getTexEnvxv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
1490                                      .value.TextureEnvTargetVal,
1491                                  params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
1492                                      .value.TextureEnvParameterVal,
1493                                  replayContext->getReadBufferPointer<GLfixed *>(
1494                                      params.getParam("params", ParamType::TGLfixedPointer, 2)));
1495             break;
1496         case gl::EntryPoint::GetTexGenfv:
1497             context->getTexGenfv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
1498                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1499                                  replayContext->getReadBufferPointer<GLfloat *>(
1500                                      params.getParam("params", ParamType::TGLfloatPointer, 2)));
1501             break;
1502         case gl::EntryPoint::GetTexGeniv:
1503             context->getTexGeniv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
1504                                  params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1505                                  replayContext->getReadBufferPointer<GLint *>(
1506                                      params.getParam("params", ParamType::TGLintPointer, 2)));
1507             break;
1508         case gl::EntryPoint::GetTexImage:
1509             context->getTexImage(params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1510                                      .value.TextureTargetVal,
1511                                  params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1512                                  params.getParam("format", ParamType::TGLenum, 2).value.GLenumVal,
1513                                  params.getParam("type", ParamType::TGLenum, 3).value.GLenumVal,
1514                                  replayContext->getReadBufferPointer<void *>(
1515                                      params.getParam("pixels", ParamType::TvoidPointer, 4)));
1516             break;
1517         case gl::EntryPoint::GetTexLevelParameterfv:
1518             context->getTexLevelParameterfv(
1519                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1520                     .value.TextureTargetVal,
1521                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1522                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1523                 replayContext->getReadBufferPointer<GLfloat *>(
1524                     params.getParam("params", ParamType::TGLfloatPointer, 3)));
1525             break;
1526         case gl::EntryPoint::GetTexLevelParameteriv:
1527             context->getTexLevelParameteriv(
1528                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
1529                     .value.TextureTargetVal,
1530                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
1531                 params.getParam("pname", ParamType::TGLenum, 2).value.GLenumVal,
1532                 replayContext->getReadBufferPointer<GLint *>(
1533                     params.getParam("params", ParamType::TGLintPointer, 3)));
1534             break;
1535         case gl::EntryPoint::GetTexParameterIiv:
1536             context->getTexParameterIiv(
1537                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1538                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1539                 replayContext->getReadBufferPointer<GLint *>(
1540                     params.getParam("params", ParamType::TGLintPointer, 2)));
1541             break;
1542         case gl::EntryPoint::GetTexParameterIuiv:
1543             context->getTexParameterIuiv(
1544                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1545                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1546                 replayContext->getReadBufferPointer<GLuint *>(
1547                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1548             break;
1549         case gl::EntryPoint::GetTexParameterfv:
1550             context->getTexParameterfv(
1551                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1552                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1553                 replayContext->getReadBufferPointer<GLfloat *>(
1554                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1555             break;
1556         case gl::EntryPoint::GetTexParameteriv:
1557             context->getTexParameteriv(
1558                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1559                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1560                 replayContext->getReadBufferPointer<GLint *>(
1561                     params.getParam("params", ParamType::TGLintPointer, 2)));
1562             break;
1563         case gl::EntryPoint::GetTexParameterxv:
1564             context->getTexParameterxv(
1565                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
1566                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1567                 replayContext->getReadBufferPointer<GLfixed *>(
1568                     params.getParam("params", ParamType::TGLfixedPointer, 2)));
1569             break;
1570         case gl::EntryPoint::GetTransformFeedbackVarying:
1571             context->getTransformFeedbackVarying(
1572                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1573                     .value.ShaderProgramIDVal,
1574                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal,
1575                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1576                 replayContext->getReadBufferPointer<GLsizei *>(
1577                     params.getParam("length", ParamType::TGLsizeiPointer, 3)),
1578                 replayContext->getReadBufferPointer<GLsizei *>(
1579                     params.getParam("size", ParamType::TGLsizeiPointer, 4)),
1580                 replayContext->getReadBufferPointer<GLenum *>(
1581                     params.getParam("type", ParamType::TGLenumPointer, 5)),
1582                 replayContext->getReadBufferPointer<GLchar *>(
1583                     params.getParam("name", ParamType::TGLcharPointer, 6)));
1584             break;
1585         case gl::EntryPoint::GetUniformBlockIndex:
1586             context->getUniformBlockIndex(
1587                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1588                     .value.ShaderProgramIDVal,
1589                 replayContext->getAsConstPointer<const GLchar *>(
1590                     params.getParam("uniformBlockName", ParamType::TGLcharConstPointer, 1)));
1591             break;
1592         case gl::EntryPoint::GetUniformIndices:
1593             context->getUniformIndices(
1594                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1595                     .value.ShaderProgramIDVal,
1596                 params.getParam("uniformCount", ParamType::TGLsizei, 1).value.GLsizeiVal,
1597                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
1598                     params.getParam("uniformNames", ParamType::TGLcharConstPointerPointer, 2)),
1599                 replayContext->getReadBufferPointer<GLuint *>(
1600                     params.getParam("uniformIndices", ParamType::TGLuintPointer, 3)));
1601             break;
1602         case gl::EntryPoint::GetUniformLocation:
1603             context->getUniformLocation(
1604                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1605                     .value.ShaderProgramIDVal,
1606                 replayContext->getAsConstPointer<const GLchar *>(
1607                     params.getParam("name", ParamType::TGLcharConstPointer, 1)));
1608             break;
1609         case gl::EntryPoint::GetUniformfv:
1610             context->getUniformfv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1611                                       .value.ShaderProgramIDVal,
1612                                   params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1613                                       .value.UniformLocationVal,
1614                                   replayContext->getReadBufferPointer<GLfloat *>(
1615                                       params.getParam("params", ParamType::TGLfloatPointer, 2)));
1616             break;
1617         case gl::EntryPoint::GetUniformiv:
1618             context->getUniformiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1619                                       .value.ShaderProgramIDVal,
1620                                   params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1621                                       .value.UniformLocationVal,
1622                                   replayContext->getReadBufferPointer<GLint *>(
1623                                       params.getParam("params", ParamType::TGLintPointer, 2)));
1624             break;
1625         case gl::EntryPoint::GetUniformuiv:
1626             context->getUniformuiv(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1627                                        .value.ShaderProgramIDVal,
1628                                    params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1629                                        .value.UniformLocationVal,
1630                                    replayContext->getReadBufferPointer<GLuint *>(
1631                                        params.getParam("params", ParamType::TGLuintPointer, 2)));
1632             break;
1633         case gl::EntryPoint::GetVertexAttribIiv:
1634             context->getVertexAttribIiv(
1635                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1636                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1637                 replayContext->getReadBufferPointer<GLint *>(
1638                     params.getParam("params", ParamType::TGLintPointer, 2)));
1639             break;
1640         case gl::EntryPoint::GetVertexAttribIuiv:
1641             context->getVertexAttribIuiv(
1642                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1643                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1644                 replayContext->getReadBufferPointer<GLuint *>(
1645                     params.getParam("params", ParamType::TGLuintPointer, 2)));
1646             break;
1647         case gl::EntryPoint::GetVertexAttribPointerv:
1648             context->getVertexAttribPointerv(
1649                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1650                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1651                 replayContext->getReadBufferPointer<void **>(
1652                     params.getParam("pointer", ParamType::TvoidPointerPointer, 2)));
1653             break;
1654         case gl::EntryPoint::GetVertexAttribfv:
1655             context->getVertexAttribfv(
1656                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
1657                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
1658                 replayContext->getReadBufferPointer<GLfloat *>(
1659                     params.getParam("params", ParamType::TGLfloatPointer, 2)));
1660             break;
1661         case gl::EntryPoint::GetVertexAttribiv:
1662             context->getVertexAttribiv(
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 gl::EntryPoint::GetnUniformfv:
1669             context->getnUniformfv(
1670                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1671                     .value.ShaderProgramIDVal,
1672                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1673                     .value.UniformLocationVal,
1674                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1675                 replayContext->getReadBufferPointer<GLfloat *>(
1676                     params.getParam("params", ParamType::TGLfloatPointer, 3)));
1677             break;
1678         case gl::EntryPoint::GetnUniformiv:
1679             context->getnUniformiv(
1680                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1681                     .value.ShaderProgramIDVal,
1682                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1683                     .value.UniformLocationVal,
1684                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1685                 replayContext->getReadBufferPointer<GLint *>(
1686                     params.getParam("params", ParamType::TGLintPointer, 3)));
1687             break;
1688         case gl::EntryPoint::GetnUniformuiv:
1689             context->getnUniformuiv(
1690                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1691                     .value.ShaderProgramIDVal,
1692                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
1693                     .value.UniformLocationVal,
1694                 params.getParam("bufSize", ParamType::TGLsizei, 2).value.GLsizeiVal,
1695                 replayContext->getReadBufferPointer<GLuint *>(
1696                     params.getParam("params", ParamType::TGLuintPointer, 3)));
1697             break;
1698         case gl::EntryPoint::Hint:
1699             context->hint(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1700                           params.getParam("mode", ParamType::TGLenum, 1).value.GLenumVal);
1701             break;
1702         case gl::EntryPoint::InvalidateFramebuffer:
1703             context->invalidateFramebuffer(
1704                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1705                 params.getParam("numAttachments", ParamType::TGLsizei, 1).value.GLsizeiVal,
1706                 replayContext->getAsConstPointer<const GLenum *>(
1707                     params.getParam("attachments", ParamType::TGLenumConstPointer, 2)));
1708             break;
1709         case gl::EntryPoint::InvalidateSubFramebuffer:
1710             context->invalidateSubFramebuffer(
1711                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1712                 params.getParam("numAttachments", ParamType::TGLsizei, 1).value.GLsizeiVal,
1713                 replayContext->getAsConstPointer<const GLenum *>(
1714                     params.getParam("attachments", ParamType::TGLenumConstPointer, 2)),
1715                 params.getParam("x", ParamType::TGLint, 3).value.GLintVal,
1716                 params.getParam("y", ParamType::TGLint, 4).value.GLintVal,
1717                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
1718                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal);
1719             break;
1720         case gl::EntryPoint::IsBuffer:
1721             context->isBuffer(
1722                 params.getParam("bufferPacked", ParamType::TBufferID, 0).value.BufferIDVal);
1723             break;
1724         case gl::EntryPoint::IsEnabled:
1725             context->isEnabled(params.getParam("cap", ParamType::TGLenum, 0).value.GLenumVal);
1726             break;
1727         case gl::EntryPoint::IsEnabledi:
1728             context->isEnabledi(params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1729                                 params.getParam("index", ParamType::TGLuint, 1).value.GLuintVal);
1730             break;
1731         case gl::EntryPoint::IsFenceNV:
1732             context->isFenceNV(
1733                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
1734             break;
1735         case gl::EntryPoint::IsFramebuffer:
1736             context->isFramebuffer(
1737                 params.getParam("framebufferPacked", ParamType::TFramebufferID, 0)
1738                     .value.FramebufferIDVal);
1739             break;
1740         case gl::EntryPoint::IsProgram:
1741             context->isProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1742                                    .value.ShaderProgramIDVal);
1743             break;
1744         case gl::EntryPoint::IsProgramPipeline:
1745             context->isProgramPipeline(
1746                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
1747                     .value.ProgramPipelineIDVal);
1748             break;
1749         case gl::EntryPoint::IsQuery:
1750             context->isQuery(params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal);
1751             break;
1752         case gl::EntryPoint::IsRenderbuffer:
1753             context->isRenderbuffer(
1754                 params.getParam("renderbufferPacked", ParamType::TRenderbufferID, 0)
1755                     .value.RenderbufferIDVal);
1756             break;
1757         case gl::EntryPoint::IsSampler:
1758             context->isSampler(
1759                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal);
1760             break;
1761         case gl::EntryPoint::IsShader:
1762             context->isShader(params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
1763                                   .value.ShaderProgramIDVal);
1764             break;
1765         case gl::EntryPoint::IsSync:
1766             context->isSync(params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal);
1767             break;
1768         case gl::EntryPoint::IsTexture:
1769             context->isTexture(
1770                 params.getParam("texturePacked", ParamType::TTextureID, 0).value.TextureIDVal);
1771             break;
1772         case gl::EntryPoint::IsTransformFeedback:
1773             context->isTransformFeedback(
1774                 params.getParam("idPacked", ParamType::TTransformFeedbackID, 0)
1775                     .value.TransformFeedbackIDVal);
1776             break;
1777         case gl::EntryPoint::IsVertexArray:
1778             context->isVertexArray(params.getParam("arrayPacked", ParamType::TVertexArrayID, 0)
1779                                        .value.VertexArrayIDVal);
1780             break;
1781         case gl::EntryPoint::LightModelf:
1782             context->lightModelf(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1783                                  params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
1784             break;
1785         case gl::EntryPoint::LightModelfv:
1786             context->lightModelfv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1787                                   replayContext->getAsConstPointer<const GLfloat *>(params.getParam(
1788                                       "params", ParamType::TGLfloatConstPointer, 1)));
1789             break;
1790         case gl::EntryPoint::LightModelx:
1791             context->lightModelx(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1792                                  params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
1793             break;
1794         case gl::EntryPoint::LightModelxv:
1795             context->lightModelxv(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
1796                                   replayContext->getAsConstPointer<const GLfixed *>(params.getParam(
1797                                       "param", ParamType::TGLfixedConstPointer, 1)));
1798             break;
1799         case gl::EntryPoint::Lightf:
1800             context->lightf(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1801                             params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1802                                 .value.LightParameterVal,
1803                             params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
1804             break;
1805         case gl::EntryPoint::Lightfv:
1806             context->lightfv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1807                              params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1808                                  .value.LightParameterVal,
1809                              replayContext->getAsConstPointer<const GLfloat *>(
1810                                  params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
1811             break;
1812         case gl::EntryPoint::Lightx:
1813             context->lightx(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1814                             params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1815                                 .value.LightParameterVal,
1816                             params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
1817             break;
1818         case gl::EntryPoint::Lightxv:
1819             context->lightxv(params.getParam("light", ParamType::TGLenum, 0).value.GLenumVal,
1820                              params.getParam("pnamePacked", ParamType::TLightParameter, 1)
1821                                  .value.LightParameterVal,
1822                              replayContext->getAsConstPointer<const GLfixed *>(
1823                                  params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
1824             break;
1825         case gl::EntryPoint::LineWidth:
1826             context->lineWidth(params.getParam("width", ParamType::TGLfloat, 0).value.GLfloatVal);
1827             break;
1828         case gl::EntryPoint::LineWidthx:
1829             context->lineWidthx(params.getParam("width", ParamType::TGLfixed, 0).value.GLfixedVal);
1830             break;
1831         case gl::EntryPoint::LinkProgram:
1832             context->linkProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
1833                                      .value.ShaderProgramIDVal);
1834             break;
1835         case gl::EntryPoint::LoadIdentity:
1836             context->loadIdentity();
1837             break;
1838         case gl::EntryPoint::LoadMatrixf:
1839             context->loadMatrixf(replayContext->getAsConstPointer<const GLfloat *>(
1840                 params.getParam("m", ParamType::TGLfloatConstPointer, 0)));
1841             break;
1842         case gl::EntryPoint::LoadMatrixx:
1843             context->loadMatrixx(replayContext->getAsConstPointer<const GLfixed *>(
1844                 params.getParam("m", ParamType::TGLfixedConstPointer, 0)));
1845             break;
1846         case gl::EntryPoint::LogicOp:
1847             context->logicOp(params.getParam("opcodePacked", ParamType::TLogicalOperation, 0)
1848                                  .value.LogicalOperationVal);
1849             break;
1850         case gl::EntryPoint::MapBuffer:
1851             context->mapBuffer(params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1852                                    .value.BufferBindingVal,
1853                                params.getParam("access", ParamType::TGLenum, 1).value.GLenumVal);
1854             break;
1855         case gl::EntryPoint::MapBufferRange:
1856             context->mapBufferRange(
1857                 params.getParam("targetPacked", ParamType::TBufferBinding, 0)
1858                     .value.BufferBindingVal,
1859                 params.getParam("offset", ParamType::TGLintptr, 1).value.GLintptrVal,
1860                 params.getParam("length", ParamType::TGLsizeiptr, 2).value.GLsizeiptrVal,
1861                 params.getParam("access", ParamType::TGLbitfield, 3).value.GLbitfieldVal);
1862             break;
1863         case gl::EntryPoint::Materialf:
1864             context->materialf(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1865                                params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1866                                    .value.MaterialParameterVal,
1867                                params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
1868             break;
1869         case gl::EntryPoint::Materialfv:
1870             context->materialfv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1871                                 params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1872                                     .value.MaterialParameterVal,
1873                                 replayContext->getAsConstPointer<const GLfloat *>(
1874                                     params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
1875             break;
1876         case gl::EntryPoint::Materialx:
1877             context->materialx(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1878                                params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1879                                    .value.MaterialParameterVal,
1880                                params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
1881             break;
1882         case gl::EntryPoint::Materialxv:
1883             context->materialxv(params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
1884                                 params.getParam("pnamePacked", ParamType::TMaterialParameter, 1)
1885                                     .value.MaterialParameterVal,
1886                                 replayContext->getAsConstPointer<const GLfixed *>(
1887                                     params.getParam("param", ParamType::TGLfixedConstPointer, 2)));
1888             break;
1889         case gl::EntryPoint::MatrixMode:
1890             context->matrixMode(
1891                 params.getParam("modePacked", ParamType::TMatrixType, 0).value.MatrixTypeVal);
1892             break;
1893         case gl::EntryPoint::MemoryBarrier:
1894             context->memoryBarrier(
1895                 params.getParam("barriers", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
1896             break;
1897         case gl::EntryPoint::MemoryBarrierByRegion:
1898             context->memoryBarrierByRegion(
1899                 params.getParam("barriers", ParamType::TGLbitfield, 0).value.GLbitfieldVal);
1900             break;
1901         case gl::EntryPoint::MinSampleShading:
1902             context->minSampleShading(
1903                 params.getParam("value", ParamType::TGLfloat, 0).value.GLfloatVal);
1904             break;
1905         case gl::EntryPoint::MultMatrixf:
1906             context->multMatrixf(replayContext->getAsConstPointer<const GLfloat *>(
1907                 params.getParam("m", ParamType::TGLfloatConstPointer, 0)));
1908             break;
1909         case gl::EntryPoint::MultMatrixx:
1910             context->multMatrixx(replayContext->getAsConstPointer<const GLfixed *>(
1911                 params.getParam("m", ParamType::TGLfixedConstPointer, 0)));
1912             break;
1913         case gl::EntryPoint::MultiDrawArrays:
1914             context->multiDrawArrays(
1915                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1916                 replayContext->getAsConstPointer<const GLint *>(
1917                     params.getParam("first", ParamType::TGLintConstPointer, 1)),
1918                 replayContext->getAsConstPointer<const GLsizei *>(
1919                     params.getParam("count", ParamType::TGLsizeiConstPointer, 2)),
1920                 params.getParam("drawcount", ParamType::TGLsizei, 3).value.GLsizeiVal);
1921             break;
1922         case gl::EntryPoint::MultiDrawElements:
1923             context->multiDrawElements(
1924                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1925                 replayContext->getAsConstPointer<const GLsizei *>(
1926                     params.getParam("count", ParamType::TGLsizeiConstPointer, 1)),
1927                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
1928                     .value.DrawElementsTypeVal,
1929                 replayContext->getAsPointerConstPointer<const void *const *>(
1930                     params.getParam("indices", ParamType::TvoidConstPointerPointer, 3)),
1931                 params.getParam("drawcount", ParamType::TGLsizei, 4).value.GLsizeiVal);
1932             break;
1933         case gl::EntryPoint::MultiDrawElementsBaseVertex:
1934             context->multiDrawElementsBaseVertex(
1935                 params.getParam("modePacked", ParamType::TPrimitiveMode, 0).value.PrimitiveModeVal,
1936                 replayContext->getAsConstPointer<const GLsizei *>(
1937                     params.getParam("count", ParamType::TGLsizeiConstPointer, 1)),
1938                 params.getParam("typePacked", ParamType::TDrawElementsType, 2)
1939                     .value.DrawElementsTypeVal,
1940                 replayContext->getAsPointerConstPointer<const void *const *>(
1941                     params.getParam("indices", ParamType::TvoidConstPointerPointer, 3)),
1942                 params.getParam("drawcount", ParamType::TGLsizei, 4).value.GLsizeiVal,
1943                 replayContext->getAsConstPointer<const GLint *>(
1944                     params.getParam("basevertex", ParamType::TGLintConstPointer, 5)));
1945             break;
1946         case gl::EntryPoint::MultiTexCoord4f:
1947             context->multiTexCoord4f(
1948                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
1949                 params.getParam("s", ParamType::TGLfloat, 1).value.GLfloatVal,
1950                 params.getParam("t", ParamType::TGLfloat, 2).value.GLfloatVal,
1951                 params.getParam("r", ParamType::TGLfloat, 3).value.GLfloatVal,
1952                 params.getParam("q", ParamType::TGLfloat, 4).value.GLfloatVal);
1953             break;
1954         case gl::EntryPoint::MultiTexCoord4x:
1955             context->multiTexCoord4x(
1956                 params.getParam("texture", ParamType::TGLenum, 0).value.GLenumVal,
1957                 params.getParam("s", ParamType::TGLfixed, 1).value.GLfixedVal,
1958                 params.getParam("t", ParamType::TGLfixed, 2).value.GLfixedVal,
1959                 params.getParam("r", ParamType::TGLfixed, 3).value.GLfixedVal,
1960                 params.getParam("q", ParamType::TGLfixed, 4).value.GLfixedVal);
1961             break;
1962         case gl::EntryPoint::Normal3f:
1963             context->normal3f(params.getParam("nx", ParamType::TGLfloat, 0).value.GLfloatVal,
1964                               params.getParam("ny", ParamType::TGLfloat, 1).value.GLfloatVal,
1965                               params.getParam("nz", ParamType::TGLfloat, 2).value.GLfloatVal);
1966             break;
1967         case gl::EntryPoint::Normal3x:
1968             context->normal3x(params.getParam("nx", ParamType::TGLfixed, 0).value.GLfixedVal,
1969                               params.getParam("ny", ParamType::TGLfixed, 1).value.GLfixedVal,
1970                               params.getParam("nz", ParamType::TGLfixed, 2).value.GLfixedVal);
1971             break;
1972         case gl::EntryPoint::NormalPointer:
1973             context->normalPointer(
1974                 params.getParam("typePacked", ParamType::TVertexAttribType, 0)
1975                     .value.VertexAttribTypeVal,
1976                 params.getParam("stride", ParamType::TGLsizei, 1).value.GLsizeiVal,
1977                 replayContext->getAsConstPointer<const void *>(
1978                     params.getParam("pointer", ParamType::TvoidConstPointer, 2)));
1979             break;
1980         case gl::EntryPoint::ObjectLabel:
1981             context->objectLabel(
1982                 params.getParam("identifier", ParamType::TGLenum, 0).value.GLenumVal,
1983                 params.getParam("name", ParamType::TGLuint, 1).value.GLuintVal,
1984                 params.getParam("length", ParamType::TGLsizei, 2).value.GLsizeiVal,
1985                 replayContext->getAsConstPointer<const GLchar *>(
1986                     params.getParam("label", ParamType::TGLcharConstPointer, 3)));
1987             break;
1988         case gl::EntryPoint::ObjectPtrLabel:
1989             context->objectPtrLabel(
1990                 replayContext->getAsConstPointer<const void *>(
1991                     params.getParam("ptr", ParamType::TvoidConstPointer, 0)),
1992                 params.getParam("length", ParamType::TGLsizei, 1).value.GLsizeiVal,
1993                 replayContext->getAsConstPointer<const GLchar *>(
1994                     params.getParam("label", ParamType::TGLcharConstPointer, 2)));
1995             break;
1996         case gl::EntryPoint::Orthof:
1997             context->orthof(params.getParam("l", ParamType::TGLfloat, 0).value.GLfloatVal,
1998                             params.getParam("r", ParamType::TGLfloat, 1).value.GLfloatVal,
1999                             params.getParam("b", ParamType::TGLfloat, 2).value.GLfloatVal,
2000                             params.getParam("t", ParamType::TGLfloat, 3).value.GLfloatVal,
2001                             params.getParam("n", ParamType::TGLfloat, 4).value.GLfloatVal,
2002                             params.getParam("f", ParamType::TGLfloat, 5).value.GLfloatVal);
2003             break;
2004         case gl::EntryPoint::Orthox:
2005             context->orthox(params.getParam("l", ParamType::TGLfixed, 0).value.GLfixedVal,
2006                             params.getParam("r", ParamType::TGLfixed, 1).value.GLfixedVal,
2007                             params.getParam("b", ParamType::TGLfixed, 2).value.GLfixedVal,
2008                             params.getParam("t", ParamType::TGLfixed, 3).value.GLfixedVal,
2009                             params.getParam("n", ParamType::TGLfixed, 4).value.GLfixedVal,
2010                             params.getParam("f", ParamType::TGLfixed, 5).value.GLfixedVal);
2011             break;
2012         case gl::EntryPoint::PatchParameteri:
2013             context->patchParameteri(
2014                 params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
2015                 params.getParam("value", ParamType::TGLint, 1).value.GLintVal);
2016             break;
2017         case gl::EntryPoint::PauseTransformFeedback:
2018             context->pauseTransformFeedback();
2019             break;
2020         case gl::EntryPoint::PixelStorei:
2021             context->pixelStorei(params.getParam("pname", ParamType::TGLenum, 0).value.GLenumVal,
2022                                  params.getParam("param", ParamType::TGLint, 1).value.GLintVal);
2023             break;
2024         case gl::EntryPoint::PointParameterf:
2025             context->pointParameterf(
2026                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2027                     .value.PointParameterVal,
2028                 params.getParam("param", ParamType::TGLfloat, 1).value.GLfloatVal);
2029             break;
2030         case gl::EntryPoint::PointParameterfv:
2031             context->pointParameterfv(
2032                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2033                     .value.PointParameterVal,
2034                 replayContext->getAsConstPointer<const GLfloat *>(
2035                     params.getParam("params", ParamType::TGLfloatConstPointer, 1)));
2036             break;
2037         case gl::EntryPoint::PointParameterx:
2038             context->pointParameterx(
2039                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2040                     .value.PointParameterVal,
2041                 params.getParam("param", ParamType::TGLfixed, 1).value.GLfixedVal);
2042             break;
2043         case gl::EntryPoint::PointParameterxv:
2044             context->pointParameterxv(
2045                 params.getParam("pnamePacked", ParamType::TPointParameter, 0)
2046                     .value.PointParameterVal,
2047                 replayContext->getAsConstPointer<const GLfixed *>(
2048                     params.getParam("params", ParamType::TGLfixedConstPointer, 1)));
2049             break;
2050         case gl::EntryPoint::PointSize:
2051             context->pointSize(params.getParam("size", ParamType::TGLfloat, 0).value.GLfloatVal);
2052             break;
2053         case gl::EntryPoint::PointSizex:
2054             context->pointSizex(params.getParam("size", ParamType::TGLfixed, 0).value.GLfixedVal);
2055             break;
2056         case gl::EntryPoint::PolygonOffset:
2057             context->polygonOffset(
2058                 params.getParam("factor", ParamType::TGLfloat, 0).value.GLfloatVal,
2059                 params.getParam("units", ParamType::TGLfloat, 1).value.GLfloatVal);
2060             break;
2061         case gl::EntryPoint::PolygonOffsetx:
2062             context->polygonOffsetx(
2063                 params.getParam("factor", ParamType::TGLfixed, 0).value.GLfixedVal,
2064                 params.getParam("units", ParamType::TGLfixed, 1).value.GLfixedVal);
2065             break;
2066         case gl::EntryPoint::PopDebugGroup:
2067             context->popDebugGroup();
2068             break;
2069         case gl::EntryPoint::PopMatrix:
2070             context->popMatrix();
2071             break;
2072         case gl::EntryPoint::PrimitiveBoundingBox:
2073             context->primitiveBoundingBox(
2074                 params.getParam("minX", ParamType::TGLfloat, 0).value.GLfloatVal,
2075                 params.getParam("minY", ParamType::TGLfloat, 1).value.GLfloatVal,
2076                 params.getParam("minZ", ParamType::TGLfloat, 2).value.GLfloatVal,
2077                 params.getParam("minW", ParamType::TGLfloat, 3).value.GLfloatVal,
2078                 params.getParam("maxX", ParamType::TGLfloat, 4).value.GLfloatVal,
2079                 params.getParam("maxY", ParamType::TGLfloat, 5).value.GLfloatVal,
2080                 params.getParam("maxZ", ParamType::TGLfloat, 6).value.GLfloatVal,
2081                 params.getParam("maxW", ParamType::TGLfloat, 7).value.GLfloatVal);
2082             break;
2083         case gl::EntryPoint::ProgramBinary:
2084             context->programBinary(
2085                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2086                     .value.ShaderProgramIDVal,
2087                 params.getParam("binaryFormat", ParamType::TGLenum, 1).value.GLenumVal,
2088                 replayContext->getAsConstPointer<const void *>(
2089                     params.getParam("binary", ParamType::TvoidConstPointer, 2)),
2090                 params.getParam("length", ParamType::TGLsizei, 3).value.GLsizeiVal);
2091             break;
2092         case gl::EntryPoint::ProgramParameteri:
2093             context->programParameteri(
2094                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2095                     .value.ShaderProgramIDVal,
2096                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2097                 params.getParam("value", ParamType::TGLint, 2).value.GLintVal);
2098             break;
2099         case gl::EntryPoint::ProgramUniform1f:
2100             context->programUniform1f(
2101                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2102                     .value.ShaderProgramIDVal,
2103                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2104                     .value.UniformLocationVal,
2105                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal);
2106             break;
2107         case gl::EntryPoint::ProgramUniform1fv:
2108             context->programUniform1fv(
2109                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2110                     .value.ShaderProgramIDVal,
2111                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2112                     .value.UniformLocationVal,
2113                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2114                 replayContext->getAsConstPointer<const GLfloat *>(
2115                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2116             break;
2117         case gl::EntryPoint::ProgramUniform1i:
2118             context->programUniform1i(
2119                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2120                     .value.ShaderProgramIDVal,
2121                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2122                     .value.UniformLocationVal,
2123                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal);
2124             break;
2125         case gl::EntryPoint::ProgramUniform1iv:
2126             context->programUniform1iv(
2127                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2128                     .value.ShaderProgramIDVal,
2129                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2130                     .value.UniformLocationVal,
2131                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2132                 replayContext->getAsConstPointer<const GLint *>(
2133                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2134             break;
2135         case gl::EntryPoint::ProgramUniform1ui:
2136             context->programUniform1ui(
2137                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2138                     .value.ShaderProgramIDVal,
2139                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2140                     .value.UniformLocationVal,
2141                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal);
2142             break;
2143         case gl::EntryPoint::ProgramUniform1uiv:
2144             context->programUniform1uiv(
2145                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2146                     .value.ShaderProgramIDVal,
2147                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2148                     .value.UniformLocationVal,
2149                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2150                 replayContext->getAsConstPointer<const GLuint *>(
2151                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2152             break;
2153         case gl::EntryPoint::ProgramUniform2f:
2154             context->programUniform2f(
2155                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2156                     .value.ShaderProgramIDVal,
2157                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2158                     .value.UniformLocationVal,
2159                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2160                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal);
2161             break;
2162         case gl::EntryPoint::ProgramUniform2fv:
2163             context->programUniform2fv(
2164                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2165                     .value.ShaderProgramIDVal,
2166                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2167                     .value.UniformLocationVal,
2168                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2169                 replayContext->getAsConstPointer<const GLfloat *>(
2170                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2171             break;
2172         case gl::EntryPoint::ProgramUniform2i:
2173             context->programUniform2i(
2174                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2175                     .value.ShaderProgramIDVal,
2176                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2177                     .value.UniformLocationVal,
2178                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2179                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal);
2180             break;
2181         case gl::EntryPoint::ProgramUniform2iv:
2182             context->programUniform2iv(
2183                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2184                     .value.ShaderProgramIDVal,
2185                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2186                     .value.UniformLocationVal,
2187                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2188                 replayContext->getAsConstPointer<const GLint *>(
2189                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2190             break;
2191         case gl::EntryPoint::ProgramUniform2ui:
2192             context->programUniform2ui(
2193                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2194                     .value.ShaderProgramIDVal,
2195                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2196                     .value.UniformLocationVal,
2197                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2198                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal);
2199             break;
2200         case gl::EntryPoint::ProgramUniform2uiv:
2201             context->programUniform2uiv(
2202                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2203                     .value.ShaderProgramIDVal,
2204                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2205                     .value.UniformLocationVal,
2206                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2207                 replayContext->getAsConstPointer<const GLuint *>(
2208                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2209             break;
2210         case gl::EntryPoint::ProgramUniform3f:
2211             context->programUniform3f(
2212                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2213                     .value.ShaderProgramIDVal,
2214                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2215                     .value.UniformLocationVal,
2216                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2217                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal,
2218                 params.getParam("v2", ParamType::TGLfloat, 4).value.GLfloatVal);
2219             break;
2220         case gl::EntryPoint::ProgramUniform3fv:
2221             context->programUniform3fv(
2222                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2223                     .value.ShaderProgramIDVal,
2224                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2225                     .value.UniformLocationVal,
2226                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2227                 replayContext->getAsConstPointer<const GLfloat *>(
2228                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2229             break;
2230         case gl::EntryPoint::ProgramUniform3i:
2231             context->programUniform3i(
2232                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2233                     .value.ShaderProgramIDVal,
2234                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2235                     .value.UniformLocationVal,
2236                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2237                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal,
2238                 params.getParam("v2", ParamType::TGLint, 4).value.GLintVal);
2239             break;
2240         case gl::EntryPoint::ProgramUniform3iv:
2241             context->programUniform3iv(
2242                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2243                     .value.ShaderProgramIDVal,
2244                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2245                     .value.UniformLocationVal,
2246                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2247                 replayContext->getAsConstPointer<const GLint *>(
2248                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2249             break;
2250         case gl::EntryPoint::ProgramUniform3ui:
2251             context->programUniform3ui(
2252                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2253                     .value.ShaderProgramIDVal,
2254                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2255                     .value.UniformLocationVal,
2256                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2257                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal,
2258                 params.getParam("v2", ParamType::TGLuint, 4).value.GLuintVal);
2259             break;
2260         case gl::EntryPoint::ProgramUniform3uiv:
2261             context->programUniform3uiv(
2262                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2263                     .value.ShaderProgramIDVal,
2264                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2265                     .value.UniformLocationVal,
2266                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2267                 replayContext->getAsConstPointer<const GLuint *>(
2268                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2269             break;
2270         case gl::EntryPoint::ProgramUniform4f:
2271             context->programUniform4f(
2272                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2273                     .value.ShaderProgramIDVal,
2274                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2275                     .value.UniformLocationVal,
2276                 params.getParam("v0", ParamType::TGLfloat, 2).value.GLfloatVal,
2277                 params.getParam("v1", ParamType::TGLfloat, 3).value.GLfloatVal,
2278                 params.getParam("v2", ParamType::TGLfloat, 4).value.GLfloatVal,
2279                 params.getParam("v3", ParamType::TGLfloat, 5).value.GLfloatVal);
2280             break;
2281         case gl::EntryPoint::ProgramUniform4fv:
2282             context->programUniform4fv(
2283                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2284                     .value.ShaderProgramIDVal,
2285                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2286                     .value.UniformLocationVal,
2287                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2288                 replayContext->getAsConstPointer<const GLfloat *>(
2289                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
2290             break;
2291         case gl::EntryPoint::ProgramUniform4i:
2292             context->programUniform4i(
2293                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2294                     .value.ShaderProgramIDVal,
2295                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2296                     .value.UniformLocationVal,
2297                 params.getParam("v0", ParamType::TGLint, 2).value.GLintVal,
2298                 params.getParam("v1", ParamType::TGLint, 3).value.GLintVal,
2299                 params.getParam("v2", ParamType::TGLint, 4).value.GLintVal,
2300                 params.getParam("v3", ParamType::TGLint, 5).value.GLintVal);
2301             break;
2302         case gl::EntryPoint::ProgramUniform4iv:
2303             context->programUniform4iv(
2304                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2305                     .value.ShaderProgramIDVal,
2306                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2307                     .value.UniformLocationVal,
2308                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2309                 replayContext->getAsConstPointer<const GLint *>(
2310                     params.getParam("value", ParamType::TGLintConstPointer, 3)));
2311             break;
2312         case gl::EntryPoint::ProgramUniform4ui:
2313             context->programUniform4ui(
2314                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2315                     .value.ShaderProgramIDVal,
2316                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2317                     .value.UniformLocationVal,
2318                 params.getParam("v0", ParamType::TGLuint, 2).value.GLuintVal,
2319                 params.getParam("v1", ParamType::TGLuint, 3).value.GLuintVal,
2320                 params.getParam("v2", ParamType::TGLuint, 4).value.GLuintVal,
2321                 params.getParam("v3", ParamType::TGLuint, 5).value.GLuintVal);
2322             break;
2323         case gl::EntryPoint::ProgramUniform4uiv:
2324             context->programUniform4uiv(
2325                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2326                     .value.ShaderProgramIDVal,
2327                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2328                     .value.UniformLocationVal,
2329                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2330                 replayContext->getAsConstPointer<const GLuint *>(
2331                     params.getParam("value", ParamType::TGLuintConstPointer, 3)));
2332             break;
2333         case gl::EntryPoint::ProgramUniformMatrix2fv:
2334             context->programUniformMatrix2fv(
2335                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2336                     .value.ShaderProgramIDVal,
2337                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2338                     .value.UniformLocationVal,
2339                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2340                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2341                 replayContext->getAsConstPointer<const GLfloat *>(
2342                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2343             break;
2344         case gl::EntryPoint::ProgramUniformMatrix2x3fv:
2345             context->programUniformMatrix2x3fv(
2346                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2347                     .value.ShaderProgramIDVal,
2348                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2349                     .value.UniformLocationVal,
2350                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2351                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2352                 replayContext->getAsConstPointer<const GLfloat *>(
2353                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2354             break;
2355         case gl::EntryPoint::ProgramUniformMatrix2x4fv:
2356             context->programUniformMatrix2x4fv(
2357                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2358                     .value.ShaderProgramIDVal,
2359                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2360                     .value.UniformLocationVal,
2361                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2362                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2363                 replayContext->getAsConstPointer<const GLfloat *>(
2364                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2365             break;
2366         case gl::EntryPoint::ProgramUniformMatrix3fv:
2367             context->programUniformMatrix3fv(
2368                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2369                     .value.ShaderProgramIDVal,
2370                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2371                     .value.UniformLocationVal,
2372                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2373                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2374                 replayContext->getAsConstPointer<const GLfloat *>(
2375                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2376             break;
2377         case gl::EntryPoint::ProgramUniformMatrix3x2fv:
2378             context->programUniformMatrix3x2fv(
2379                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2380                     .value.ShaderProgramIDVal,
2381                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2382                     .value.UniformLocationVal,
2383                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2384                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2385                 replayContext->getAsConstPointer<const GLfloat *>(
2386                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2387             break;
2388         case gl::EntryPoint::ProgramUniformMatrix3x4fv:
2389             context->programUniformMatrix3x4fv(
2390                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2391                     .value.ShaderProgramIDVal,
2392                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2393                     .value.UniformLocationVal,
2394                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2395                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2396                 replayContext->getAsConstPointer<const GLfloat *>(
2397                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2398             break;
2399         case gl::EntryPoint::ProgramUniformMatrix4fv:
2400             context->programUniformMatrix4fv(
2401                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2402                     .value.ShaderProgramIDVal,
2403                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2404                     .value.UniformLocationVal,
2405                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2406                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2407                 replayContext->getAsConstPointer<const GLfloat *>(
2408                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2409             break;
2410         case gl::EntryPoint::ProgramUniformMatrix4x2fv:
2411             context->programUniformMatrix4x2fv(
2412                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2413                     .value.ShaderProgramIDVal,
2414                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2415                     .value.UniformLocationVal,
2416                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2417                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2418                 replayContext->getAsConstPointer<const GLfloat *>(
2419                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2420             break;
2421         case gl::EntryPoint::ProgramUniformMatrix4x3fv:
2422             context->programUniformMatrix4x3fv(
2423                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2424                     .value.ShaderProgramIDVal,
2425                 params.getParam("locationPacked", ParamType::TUniformLocation, 1)
2426                     .value.UniformLocationVal,
2427                 params.getParam("count", ParamType::TGLsizei, 2).value.GLsizeiVal,
2428                 params.getParam("transpose", ParamType::TGLboolean, 3).value.GLbooleanVal,
2429                 replayContext->getAsConstPointer<const GLfloat *>(
2430                     params.getParam("value", ParamType::TGLfloatConstPointer, 4)));
2431             break;
2432         case gl::EntryPoint::ProvokingVertex:
2433             context->provokingVertex(
2434                 params.getParam("modePacked", ParamType::TProvokingVertexConvention, 0)
2435                     .value.ProvokingVertexConventionVal);
2436             break;
2437         case gl::EntryPoint::PushDebugGroup:
2438             context->pushDebugGroup(
2439                 params.getParam("source", ParamType::TGLenum, 0).value.GLenumVal,
2440                 params.getParam("id", ParamType::TGLuint, 1).value.GLuintVal,
2441                 params.getParam("length", ParamType::TGLsizei, 2).value.GLsizeiVal,
2442                 replayContext->getAsConstPointer<const GLchar *>(
2443                     params.getParam("message", ParamType::TGLcharConstPointer, 3)));
2444             break;
2445         case gl::EntryPoint::PushMatrix:
2446             context->pushMatrix();
2447             break;
2448         case gl::EntryPoint::QueryCounter:
2449             context->queryCounter(
2450                 params.getParam("idPacked", ParamType::TQueryID, 0).value.QueryIDVal,
2451                 params.getParam("targetPacked", ParamType::TQueryType, 1).value.QueryTypeVal);
2452             break;
2453         case gl::EntryPoint::ReadBuffer:
2454             context->readBuffer(params.getParam("src", ParamType::TGLenum, 0).value.GLenumVal);
2455             break;
2456         case gl::EntryPoint::ReadPixels:
2457             context->readPixels(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2458                                 params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2459                                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2460                                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal,
2461                                 params.getParam("format", ParamType::TGLenum, 4).value.GLenumVal,
2462                                 params.getParam("type", ParamType::TGLenum, 5).value.GLenumVal,
2463                                 replayContext->getReadBufferPointer<void *>(
2464                                     params.getParam("pixels", ParamType::TvoidPointer, 6)));
2465             break;
2466         case gl::EntryPoint::ReadnPixels:
2467             context->readnPixels(
2468                 params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2469                 params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2470                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2471                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal,
2472                 params.getParam("format", ParamType::TGLenum, 4).value.GLenumVal,
2473                 params.getParam("type", ParamType::TGLenum, 5).value.GLenumVal,
2474                 params.getParam("bufSize", ParamType::TGLsizei, 6).value.GLsizeiVal,
2475                 replayContext->getReadBufferPointer<void *>(
2476                     params.getParam("data", ParamType::TvoidPointer, 7)));
2477             break;
2478         case gl::EntryPoint::ReleaseShaderCompiler:
2479             context->releaseShaderCompiler();
2480             break;
2481         case gl::EntryPoint::RenderbufferStorage:
2482             context->renderbufferStorage(
2483                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2484                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2485                 params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2486                 params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
2487             break;
2488         case gl::EntryPoint::RenderbufferStorageMultisample:
2489             context->renderbufferStorageMultisample(
2490                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2491                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2492                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2493                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2494                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2495             break;
2496         case gl::EntryPoint::ResumeTransformFeedback:
2497             context->resumeTransformFeedback();
2498             break;
2499         case gl::EntryPoint::Rotatef:
2500             context->rotatef(params.getParam("angle", ParamType::TGLfloat, 0).value.GLfloatVal,
2501                              params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
2502                              params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
2503                              params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal);
2504             break;
2505         case gl::EntryPoint::Rotatex:
2506             context->rotatex(params.getParam("angle", ParamType::TGLfixed, 0).value.GLfixedVal,
2507                              params.getParam("x", ParamType::TGLfixed, 1).value.GLfixedVal,
2508                              params.getParam("y", ParamType::TGLfixed, 2).value.GLfixedVal,
2509                              params.getParam("z", ParamType::TGLfixed, 3).value.GLfixedVal);
2510             break;
2511         case gl::EntryPoint::SampleCoverage:
2512             context->sampleCoverage(
2513                 params.getParam("value", ParamType::TGLfloat, 0).value.GLfloatVal,
2514                 params.getParam("invert", ParamType::TGLboolean, 1).value.GLbooleanVal);
2515             break;
2516         case gl::EntryPoint::SampleCoveragex:
2517             context->sampleCoveragex(
2518                 params.getParam("value", ParamType::TGLclampx, 0).value.GLclampxVal,
2519                 params.getParam("invert", ParamType::TGLboolean, 1).value.GLbooleanVal);
2520             break;
2521         case gl::EntryPoint::SampleMaski:
2522             context->sampleMaski(
2523                 params.getParam("maskNumber", ParamType::TGLuint, 0).value.GLuintVal,
2524                 params.getParam("mask", ParamType::TGLbitfield, 1).value.GLbitfieldVal);
2525             break;
2526         case gl::EntryPoint::SamplerParameterIiv:
2527             context->samplerParameterIiv(
2528                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2529                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2530                 replayContext->getAsConstPointer<const GLint *>(
2531                     params.getParam("param", ParamType::TGLintConstPointer, 2)));
2532             break;
2533         case gl::EntryPoint::SamplerParameterIuiv:
2534             context->samplerParameterIuiv(
2535                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2536                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2537                 replayContext->getAsConstPointer<const GLuint *>(
2538                     params.getParam("param", ParamType::TGLuintConstPointer, 2)));
2539             break;
2540         case gl::EntryPoint::SamplerParameterf:
2541             context->samplerParameterf(
2542                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2543                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2544                 params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2545             break;
2546         case gl::EntryPoint::SamplerParameterfv:
2547             context->samplerParameterfv(
2548                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2549                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2550                 replayContext->getAsConstPointer<const GLfloat *>(
2551                     params.getParam("param", ParamType::TGLfloatConstPointer, 2)));
2552             break;
2553         case gl::EntryPoint::SamplerParameteri:
2554             context->samplerParameteri(
2555                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2556                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2557                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2558             break;
2559         case gl::EntryPoint::SamplerParameteriv:
2560             context->samplerParameteriv(
2561                 params.getParam("samplerPacked", ParamType::TSamplerID, 0).value.SamplerIDVal,
2562                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2563                 replayContext->getAsConstPointer<const GLint *>(
2564                     params.getParam("param", ParamType::TGLintConstPointer, 2)));
2565             break;
2566         case gl::EntryPoint::Scalef:
2567             context->scalef(params.getParam("x", ParamType::TGLfloat, 0).value.GLfloatVal,
2568                             params.getParam("y", ParamType::TGLfloat, 1).value.GLfloatVal,
2569                             params.getParam("z", ParamType::TGLfloat, 2).value.GLfloatVal);
2570             break;
2571         case gl::EntryPoint::Scalex:
2572             context->scalex(params.getParam("x", ParamType::TGLfixed, 0).value.GLfixedVal,
2573                             params.getParam("y", ParamType::TGLfixed, 1).value.GLfixedVal,
2574                             params.getParam("z", ParamType::TGLfixed, 2).value.GLfixedVal);
2575             break;
2576         case gl::EntryPoint::Scissor:
2577             context->scissor(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
2578                              params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
2579                              params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
2580                              params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
2581             break;
2582         case gl::EntryPoint::SetFenceNV:
2583             context->setFenceNV(
2584                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal,
2585                 params.getParam("condition", ParamType::TGLenum, 1).value.GLenumVal);
2586             break;
2587         case gl::EntryPoint::ShadeModel:
2588             context->shadeModel(
2589                 params.getParam("modePacked", ParamType::TShadingModel, 0).value.ShadingModelVal);
2590             break;
2591         case gl::EntryPoint::ShaderBinary:
2592             context->shaderBinary(
2593                 params.getParam("count", ParamType::TGLsizei, 0).value.GLsizeiVal,
2594                 replayContext->getAsConstPointer<const ShaderProgramID *>(
2595                     params.getParam("shadersPacked", ParamType::TShaderProgramIDConstPointer, 1)),
2596                 params.getParam("binaryformat", ParamType::TGLenum, 2).value.GLenumVal,
2597                 replayContext->getAsConstPointer<const void *>(
2598                     params.getParam("binary", ParamType::TvoidConstPointer, 3)),
2599                 params.getParam("length", ParamType::TGLsizei, 4).value.GLsizeiVal);
2600             break;
2601         case gl::EntryPoint::ShaderSource:
2602             context->shaderSource(
2603                 params.getParam("shaderPacked", ParamType::TShaderProgramID, 0)
2604                     .value.ShaderProgramIDVal,
2605                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2606                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
2607                     params.getParam("string", ParamType::TGLcharConstPointerPointer, 2)),
2608                 replayContext->getAsConstPointer<const GLint *>(
2609                     params.getParam("length", ParamType::TGLintConstPointer, 3)));
2610             break;
2611         case gl::EntryPoint::StencilFunc:
2612             context->stencilFunc(params.getParam("func", ParamType::TGLenum, 0).value.GLenumVal,
2613                                  params.getParam("ref", ParamType::TGLint, 1).value.GLintVal,
2614                                  params.getParam("mask", ParamType::TGLuint, 2).value.GLuintVal);
2615             break;
2616         case gl::EntryPoint::StencilFuncSeparate:
2617             context->stencilFuncSeparate(
2618                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2619                 params.getParam("func", ParamType::TGLenum, 1).value.GLenumVal,
2620                 params.getParam("ref", ParamType::TGLint, 2).value.GLintVal,
2621                 params.getParam("mask", ParamType::TGLuint, 3).value.GLuintVal);
2622             break;
2623         case gl::EntryPoint::StencilMask:
2624             context->stencilMask(params.getParam("mask", ParamType::TGLuint, 0).value.GLuintVal);
2625             break;
2626         case gl::EntryPoint::StencilMaskSeparate:
2627             context->stencilMaskSeparate(
2628                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2629                 params.getParam("mask", ParamType::TGLuint, 1).value.GLuintVal);
2630             break;
2631         case gl::EntryPoint::StencilOp:
2632             context->stencilOp(params.getParam("fail", ParamType::TGLenum, 0).value.GLenumVal,
2633                                params.getParam("zfail", ParamType::TGLenum, 1).value.GLenumVal,
2634                                params.getParam("zpass", ParamType::TGLenum, 2).value.GLenumVal);
2635             break;
2636         case gl::EntryPoint::StencilOpSeparate:
2637             context->stencilOpSeparate(
2638                 params.getParam("face", ParamType::TGLenum, 0).value.GLenumVal,
2639                 params.getParam("sfail", ParamType::TGLenum, 1).value.GLenumVal,
2640                 params.getParam("dpfail", ParamType::TGLenum, 2).value.GLenumVal,
2641                 params.getParam("dppass", ParamType::TGLenum, 3).value.GLenumVal);
2642             break;
2643         case gl::EntryPoint::TestFenceNV:
2644             context->testFenceNV(
2645                 params.getParam("fencePacked", ParamType::TFenceNVID, 0).value.FenceNVIDVal);
2646             break;
2647         case gl::EntryPoint::TexBuffer:
2648             context->texBuffer(
2649                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2650                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2651                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal);
2652             break;
2653         case gl::EntryPoint::TexBufferRange:
2654             context->texBufferRange(
2655                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2656                 params.getParam("internalformat", ParamType::TGLenum, 1).value.GLenumVal,
2657                 params.getParam("bufferPacked", ParamType::TBufferID, 2).value.BufferIDVal,
2658                 params.getParam("offset", ParamType::TGLintptr, 3).value.GLintptrVal,
2659                 params.getParam("size", ParamType::TGLsizeiptr, 4).value.GLsizeiptrVal);
2660             break;
2661         case gl::EntryPoint::TexCoordPointer:
2662             context->texCoordPointer(
2663                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
2664                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
2665                     .value.VertexAttribTypeVal,
2666                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
2667                 replayContext->getAsConstPointer<const void *>(
2668                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
2669             break;
2670         case gl::EntryPoint::TexEnvf:
2671             context->texEnvf(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2672                                  .value.TextureEnvTargetVal,
2673                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2674                                  .value.TextureEnvParameterVal,
2675                              params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2676             break;
2677         case gl::EntryPoint::TexEnvfv:
2678             context->texEnvfv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2679                                   .value.TextureEnvTargetVal,
2680                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2681                                   .value.TextureEnvParameterVal,
2682                               replayContext->getAsConstPointer<const GLfloat *>(
2683                                   params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2684             break;
2685         case gl::EntryPoint::TexEnvi:
2686             context->texEnvi(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2687                                  .value.TextureEnvTargetVal,
2688                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2689                                  .value.TextureEnvParameterVal,
2690                              params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2691             break;
2692         case gl::EntryPoint::TexEnviv:
2693             context->texEnviv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2694                                   .value.TextureEnvTargetVal,
2695                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2696                                   .value.TextureEnvParameterVal,
2697                               replayContext->getAsConstPointer<const GLint *>(
2698                                   params.getParam("params", ParamType::TGLintConstPointer, 2)));
2699             break;
2700         case gl::EntryPoint::TexEnvx:
2701             context->texEnvx(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2702                                  .value.TextureEnvTargetVal,
2703                              params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2704                                  .value.TextureEnvParameterVal,
2705                              params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
2706             break;
2707         case gl::EntryPoint::TexEnvxv:
2708             context->texEnvxv(params.getParam("targetPacked", ParamType::TTextureEnvTarget, 0)
2709                                   .value.TextureEnvTargetVal,
2710                               params.getParam("pnamePacked", ParamType::TTextureEnvParameter, 1)
2711                                   .value.TextureEnvParameterVal,
2712                               replayContext->getAsConstPointer<const GLfixed *>(
2713                                   params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
2714             break;
2715         case gl::EntryPoint::TexGenf:
2716             context->texGenf(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2717                              params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2718                              params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2719             break;
2720         case gl::EntryPoint::TexGenfv:
2721             context->texGenfv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2722                               params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2723                               replayContext->getAsConstPointer<const GLfloat *>(
2724                                   params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2725             break;
2726         case gl::EntryPoint::TexGeni:
2727             context->texGeni(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2728                              params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2729                              params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2730             break;
2731         case gl::EntryPoint::TexGeniv:
2732             context->texGeniv(params.getParam("coord", ParamType::TGLenum, 0).value.GLenumVal,
2733                               params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2734                               replayContext->getAsConstPointer<const GLint *>(
2735                                   params.getParam("params", ParamType::TGLintConstPointer, 2)));
2736             break;
2737         case gl::EntryPoint::TexImage2D:
2738             context->texImage2D(
2739                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2740                     .value.TextureTargetVal,
2741                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2742                 params.getParam("internalformat", ParamType::TGLint, 2).value.GLintVal,
2743                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2744                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2745                 params.getParam("border", ParamType::TGLint, 5).value.GLintVal,
2746                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
2747                 params.getParam("type", ParamType::TGLenum, 7).value.GLenumVal,
2748                 replayContext->getAsConstPointer<const void *>(
2749                     params.getParam("pixels", ParamType::TvoidConstPointer, 8)));
2750             break;
2751         case gl::EntryPoint::TexImage3D:
2752             context->texImage3D(
2753                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2754                     .value.TextureTargetVal,
2755                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2756                 params.getParam("internalformat", ParamType::TGLint, 2).value.GLintVal,
2757                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2758                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2759                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
2760                 params.getParam("border", ParamType::TGLint, 6).value.GLintVal,
2761                 params.getParam("format", ParamType::TGLenum, 7).value.GLenumVal,
2762                 params.getParam("type", ParamType::TGLenum, 8).value.GLenumVal,
2763                 replayContext->getAsConstPointer<const void *>(
2764                     params.getParam("pixels", ParamType::TvoidConstPointer, 9)));
2765             break;
2766         case gl::EntryPoint::TexParameterIiv:
2767             context->texParameterIiv(
2768                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
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 gl::EntryPoint::TexParameterIuiv:
2774             context->texParameterIuiv(
2775                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2776                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2777                 replayContext->getAsConstPointer<const GLuint *>(
2778                     params.getParam("params", ParamType::TGLuintConstPointer, 2)));
2779             break;
2780         case gl::EntryPoint::TexParameterf:
2781             context->texParameterf(
2782                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2783                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2784                 params.getParam("param", ParamType::TGLfloat, 2).value.GLfloatVal);
2785             break;
2786         case gl::EntryPoint::TexParameterfv:
2787             context->texParameterfv(
2788                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2789                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2790                 replayContext->getAsConstPointer<const GLfloat *>(
2791                     params.getParam("params", ParamType::TGLfloatConstPointer, 2)));
2792             break;
2793         case gl::EntryPoint::TexParameteri:
2794             context->texParameteri(
2795                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2796                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2797                 params.getParam("param", ParamType::TGLint, 2).value.GLintVal);
2798             break;
2799         case gl::EntryPoint::TexParameteriv:
2800             context->texParameteriv(
2801                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2802                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2803                 replayContext->getAsConstPointer<const GLint *>(
2804                     params.getParam("params", ParamType::TGLintConstPointer, 2)));
2805             break;
2806         case gl::EntryPoint::TexParameterx:
2807             context->texParameterx(
2808                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2809                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2810                 params.getParam("param", ParamType::TGLfixed, 2).value.GLfixedVal);
2811             break;
2812         case gl::EntryPoint::TexParameterxv:
2813             context->texParameterxv(
2814                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2815                 params.getParam("pname", ParamType::TGLenum, 1).value.GLenumVal,
2816                 replayContext->getAsConstPointer<const GLfixed *>(
2817                     params.getParam("params", ParamType::TGLfixedConstPointer, 2)));
2818             break;
2819         case gl::EntryPoint::TexStorage1D:
2820             context->texStorage1D(
2821                 params.getParam("target", ParamType::TGLenum, 0).value.GLenumVal,
2822                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2823                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2824                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal);
2825             break;
2826         case gl::EntryPoint::TexStorage2D:
2827             context->texStorage2D(
2828                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2829                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2830                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2831                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2832                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal);
2833             break;
2834         case gl::EntryPoint::TexStorage2DMultisample:
2835             context->texStorage2DMultisample(
2836                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2837                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2838                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2839                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2840                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2841                 params.getParam("fixedsamplelocations", ParamType::TGLboolean, 5)
2842                     .value.GLbooleanVal);
2843             break;
2844         case gl::EntryPoint::TexStorage3D:
2845             context->texStorage3D(
2846                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2847                 params.getParam("levels", ParamType::TGLsizei, 1).value.GLsizeiVal,
2848                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2849                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2850                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2851                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal);
2852             break;
2853         case gl::EntryPoint::TexStorage3DMultisample:
2854             context->texStorage3DMultisample(
2855                 params.getParam("targetPacked", ParamType::TTextureType, 0).value.TextureTypeVal,
2856                 params.getParam("samples", ParamType::TGLsizei, 1).value.GLsizeiVal,
2857                 params.getParam("internalformat", ParamType::TGLenum, 2).value.GLenumVal,
2858                 params.getParam("width", ParamType::TGLsizei, 3).value.GLsizeiVal,
2859                 params.getParam("height", ParamType::TGLsizei, 4).value.GLsizeiVal,
2860                 params.getParam("depth", ParamType::TGLsizei, 5).value.GLsizeiVal,
2861                 params.getParam("fixedsamplelocations", ParamType::TGLboolean, 6)
2862                     .value.GLbooleanVal);
2863             break;
2864         case gl::EntryPoint::TexSubImage2D:
2865             context->texSubImage2D(
2866                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2867                     .value.TextureTargetVal,
2868                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2869                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
2870                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
2871                 params.getParam("width", ParamType::TGLsizei, 4).value.GLsizeiVal,
2872                 params.getParam("height", ParamType::TGLsizei, 5).value.GLsizeiVal,
2873                 params.getParam("format", ParamType::TGLenum, 6).value.GLenumVal,
2874                 params.getParam("type", ParamType::TGLenum, 7).value.GLenumVal,
2875                 replayContext->getAsConstPointer<const void *>(
2876                     params.getParam("pixels", ParamType::TvoidConstPointer, 8)));
2877             break;
2878         case gl::EntryPoint::TexSubImage3D:
2879             context->texSubImage3D(
2880                 params.getParam("targetPacked", ParamType::TTextureTarget, 0)
2881                     .value.TextureTargetVal,
2882                 params.getParam("level", ParamType::TGLint, 1).value.GLintVal,
2883                 params.getParam("xoffset", ParamType::TGLint, 2).value.GLintVal,
2884                 params.getParam("yoffset", ParamType::TGLint, 3).value.GLintVal,
2885                 params.getParam("zoffset", ParamType::TGLint, 4).value.GLintVal,
2886                 params.getParam("width", ParamType::TGLsizei, 5).value.GLsizeiVal,
2887                 params.getParam("height", ParamType::TGLsizei, 6).value.GLsizeiVal,
2888                 params.getParam("depth", ParamType::TGLsizei, 7).value.GLsizeiVal,
2889                 params.getParam("format", ParamType::TGLenum, 8).value.GLenumVal,
2890                 params.getParam("type", ParamType::TGLenum, 9).value.GLenumVal,
2891                 replayContext->getAsConstPointer<const void *>(
2892                     params.getParam("pixels", ParamType::TvoidConstPointer, 10)));
2893             break;
2894         case gl::EntryPoint::TransformFeedbackVaryings:
2895             context->transformFeedbackVaryings(
2896                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
2897                     .value.ShaderProgramIDVal,
2898                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2899                 replayContext->getAsPointerConstPointer<const GLchar *const *>(
2900                     params.getParam("varyings", ParamType::TGLcharConstPointerPointer, 2)),
2901                 params.getParam("bufferMode", ParamType::TGLenum, 3).value.GLenumVal);
2902             break;
2903         case gl::EntryPoint::Translatef:
2904             context->translatef(params.getParam("x", ParamType::TGLfloat, 0).value.GLfloatVal,
2905                                 params.getParam("y", ParamType::TGLfloat, 1).value.GLfloatVal,
2906                                 params.getParam("z", ParamType::TGLfloat, 2).value.GLfloatVal);
2907             break;
2908         case gl::EntryPoint::Translatex:
2909             context->translatex(params.getParam("x", ParamType::TGLfixed, 0).value.GLfixedVal,
2910                                 params.getParam("y", ParamType::TGLfixed, 1).value.GLfixedVal,
2911                                 params.getParam("z", ParamType::TGLfixed, 2).value.GLfixedVal);
2912             break;
2913         case gl::EntryPoint::Uniform1f:
2914             context->uniform1f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2915                                    .value.UniformLocationVal,
2916                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal);
2917             break;
2918         case gl::EntryPoint::Uniform1fv:
2919             context->uniform1fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2920                                     .value.UniformLocationVal,
2921                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2922                                 replayContext->getAsConstPointer<const GLfloat *>(
2923                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
2924             break;
2925         case gl::EntryPoint::Uniform1i:
2926             context->uniform1i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2927                                    .value.UniformLocationVal,
2928                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal);
2929             break;
2930         case gl::EntryPoint::Uniform1iv:
2931             context->uniform1iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2932                                     .value.UniformLocationVal,
2933                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2934                                 replayContext->getAsConstPointer<const GLint *>(
2935                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
2936             break;
2937         case gl::EntryPoint::Uniform1ui:
2938             context->uniform1ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2939                                     .value.UniformLocationVal,
2940                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal);
2941             break;
2942         case gl::EntryPoint::Uniform1uiv:
2943             context->uniform1uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2944                                      .value.UniformLocationVal,
2945                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2946                                  replayContext->getAsConstPointer<const GLuint *>(
2947                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
2948             break;
2949         case gl::EntryPoint::Uniform2f:
2950             context->uniform2f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2951                                    .value.UniformLocationVal,
2952                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
2953                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal);
2954             break;
2955         case gl::EntryPoint::Uniform2fv:
2956             context->uniform2fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2957                                     .value.UniformLocationVal,
2958                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2959                                 replayContext->getAsConstPointer<const GLfloat *>(
2960                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
2961             break;
2962         case gl::EntryPoint::Uniform2i:
2963             context->uniform2i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2964                                    .value.UniformLocationVal,
2965                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
2966                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal);
2967             break;
2968         case gl::EntryPoint::Uniform2iv:
2969             context->uniform2iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2970                                     .value.UniformLocationVal,
2971                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2972                                 replayContext->getAsConstPointer<const GLint *>(
2973                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
2974             break;
2975         case gl::EntryPoint::Uniform2ui:
2976             context->uniform2ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2977                                     .value.UniformLocationVal,
2978                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
2979                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal);
2980             break;
2981         case gl::EntryPoint::Uniform2uiv:
2982             context->uniform2uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2983                                      .value.UniformLocationVal,
2984                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2985                                  replayContext->getAsConstPointer<const GLuint *>(
2986                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
2987             break;
2988         case gl::EntryPoint::Uniform3f:
2989             context->uniform3f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2990                                    .value.UniformLocationVal,
2991                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
2992                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal,
2993                                params.getParam("v2", ParamType::TGLfloat, 3).value.GLfloatVal);
2994             break;
2995         case gl::EntryPoint::Uniform3fv:
2996             context->uniform3fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
2997                                     .value.UniformLocationVal,
2998                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
2999                                 replayContext->getAsConstPointer<const GLfloat *>(
3000                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3001             break;
3002         case gl::EntryPoint::Uniform3i:
3003             context->uniform3i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3004                                    .value.UniformLocationVal,
3005                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3006                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal,
3007                                params.getParam("v2", ParamType::TGLint, 3).value.GLintVal);
3008             break;
3009         case gl::EntryPoint::Uniform3iv:
3010             context->uniform3iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3011                                     .value.UniformLocationVal,
3012                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3013                                 replayContext->getAsConstPointer<const GLint *>(
3014                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3015             break;
3016         case gl::EntryPoint::Uniform3ui:
3017             context->uniform3ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3018                                     .value.UniformLocationVal,
3019                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3020                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal,
3021                                 params.getParam("v2", ParamType::TGLuint, 3).value.GLuintVal);
3022             break;
3023         case gl::EntryPoint::Uniform3uiv:
3024             context->uniform3uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3025                                      .value.UniformLocationVal,
3026                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3027                                  replayContext->getAsConstPointer<const GLuint *>(
3028                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3029             break;
3030         case gl::EntryPoint::Uniform4f:
3031             context->uniform4f(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3032                                    .value.UniformLocationVal,
3033                                params.getParam("v0", ParamType::TGLfloat, 1).value.GLfloatVal,
3034                                params.getParam("v1", ParamType::TGLfloat, 2).value.GLfloatVal,
3035                                params.getParam("v2", ParamType::TGLfloat, 3).value.GLfloatVal,
3036                                params.getParam("v3", ParamType::TGLfloat, 4).value.GLfloatVal);
3037             break;
3038         case gl::EntryPoint::Uniform4fv:
3039             context->uniform4fv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3040                                     .value.UniformLocationVal,
3041                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3042                                 replayContext->getAsConstPointer<const GLfloat *>(
3043                                     params.getParam("value", ParamType::TGLfloatConstPointer, 2)));
3044             break;
3045         case gl::EntryPoint::Uniform4i:
3046             context->uniform4i(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3047                                    .value.UniformLocationVal,
3048                                params.getParam("v0", ParamType::TGLint, 1).value.GLintVal,
3049                                params.getParam("v1", ParamType::TGLint, 2).value.GLintVal,
3050                                params.getParam("v2", ParamType::TGLint, 3).value.GLintVal,
3051                                params.getParam("v3", ParamType::TGLint, 4).value.GLintVal);
3052             break;
3053         case gl::EntryPoint::Uniform4iv:
3054             context->uniform4iv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3055                                     .value.UniformLocationVal,
3056                                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3057                                 replayContext->getAsConstPointer<const GLint *>(
3058                                     params.getParam("value", ParamType::TGLintConstPointer, 2)));
3059             break;
3060         case gl::EntryPoint::Uniform4ui:
3061             context->uniform4ui(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3062                                     .value.UniformLocationVal,
3063                                 params.getParam("v0", ParamType::TGLuint, 1).value.GLuintVal,
3064                                 params.getParam("v1", ParamType::TGLuint, 2).value.GLuintVal,
3065                                 params.getParam("v2", ParamType::TGLuint, 3).value.GLuintVal,
3066                                 params.getParam("v3", ParamType::TGLuint, 4).value.GLuintVal);
3067             break;
3068         case gl::EntryPoint::Uniform4uiv:
3069             context->uniform4uiv(params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3070                                      .value.UniformLocationVal,
3071                                  params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3072                                  replayContext->getAsConstPointer<const GLuint *>(
3073                                      params.getParam("value", ParamType::TGLuintConstPointer, 2)));
3074             break;
3075         case gl::EntryPoint::UniformBlockBinding:
3076             context->uniformBlockBinding(
3077                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3078                     .value.ShaderProgramIDVal,
3079                 params.getParam("uniformBlockIndex", ParamType::TGLuint, 1).value.GLuintVal,
3080                 params.getParam("uniformBlockBinding", ParamType::TGLuint, 2).value.GLuintVal);
3081             break;
3082         case gl::EntryPoint::UniformMatrix2fv:
3083             context->uniformMatrix2fv(
3084                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3085                     .value.UniformLocationVal,
3086                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3087                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3088                 replayContext->getAsConstPointer<const GLfloat *>(
3089                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3090             break;
3091         case gl::EntryPoint::UniformMatrix2x3fv:
3092             context->uniformMatrix2x3fv(
3093                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3094                     .value.UniformLocationVal,
3095                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3096                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3097                 replayContext->getAsConstPointer<const GLfloat *>(
3098                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3099             break;
3100         case gl::EntryPoint::UniformMatrix2x4fv:
3101             context->uniformMatrix2x4fv(
3102                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3103                     .value.UniformLocationVal,
3104                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3105                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3106                 replayContext->getAsConstPointer<const GLfloat *>(
3107                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3108             break;
3109         case gl::EntryPoint::UniformMatrix3fv:
3110             context->uniformMatrix3fv(
3111                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3112                     .value.UniformLocationVal,
3113                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3114                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3115                 replayContext->getAsConstPointer<const GLfloat *>(
3116                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3117             break;
3118         case gl::EntryPoint::UniformMatrix3x2fv:
3119             context->uniformMatrix3x2fv(
3120                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3121                     .value.UniformLocationVal,
3122                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3123                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3124                 replayContext->getAsConstPointer<const GLfloat *>(
3125                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3126             break;
3127         case gl::EntryPoint::UniformMatrix3x4fv:
3128             context->uniformMatrix3x4fv(
3129                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3130                     .value.UniformLocationVal,
3131                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3132                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3133                 replayContext->getAsConstPointer<const GLfloat *>(
3134                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3135             break;
3136         case gl::EntryPoint::UniformMatrix4fv:
3137             context->uniformMatrix4fv(
3138                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3139                     .value.UniformLocationVal,
3140                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3141                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3142                 replayContext->getAsConstPointer<const GLfloat *>(
3143                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3144             break;
3145         case gl::EntryPoint::UniformMatrix4x2fv:
3146             context->uniformMatrix4x2fv(
3147                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3148                     .value.UniformLocationVal,
3149                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3150                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3151                 replayContext->getAsConstPointer<const GLfloat *>(
3152                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3153             break;
3154         case gl::EntryPoint::UniformMatrix4x3fv:
3155             context->uniformMatrix4x3fv(
3156                 params.getParam("locationPacked", ParamType::TUniformLocation, 0)
3157                     .value.UniformLocationVal,
3158                 params.getParam("count", ParamType::TGLsizei, 1).value.GLsizeiVal,
3159                 params.getParam("transpose", ParamType::TGLboolean, 2).value.GLbooleanVal,
3160                 replayContext->getAsConstPointer<const GLfloat *>(
3161                     params.getParam("value", ParamType::TGLfloatConstPointer, 3)));
3162             break;
3163         case gl::EntryPoint::UnmapBuffer:
3164             context->unmapBuffer(params.getParam("targetPacked", ParamType::TBufferBinding, 0)
3165                                      .value.BufferBindingVal);
3166             break;
3167         case gl::EntryPoint::UseProgram:
3168             context->useProgram(params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3169                                     .value.ShaderProgramIDVal);
3170             break;
3171         case gl::EntryPoint::UseProgramStages:
3172             context->useProgramStages(
3173                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
3174                     .value.ProgramPipelineIDVal,
3175                 params.getParam("stages", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
3176                 params.getParam("programPacked", ParamType::TShaderProgramID, 2)
3177                     .value.ShaderProgramIDVal);
3178             break;
3179         case gl::EntryPoint::ValidateProgram:
3180             context->validateProgram(
3181                 params.getParam("programPacked", ParamType::TShaderProgramID, 0)
3182                     .value.ShaderProgramIDVal);
3183             break;
3184         case gl::EntryPoint::ValidateProgramPipeline:
3185             context->validateProgramPipeline(
3186                 params.getParam("pipelinePacked", ParamType::TProgramPipelineID, 0)
3187                     .value.ProgramPipelineIDVal);
3188             break;
3189         case gl::EntryPoint::VertexAttrib1f:
3190             context->vertexAttrib1f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3191                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal);
3192             break;
3193         case gl::EntryPoint::VertexAttrib1fv:
3194             context->vertexAttrib1fv(
3195                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3196                 replayContext->getAsConstPointer<const GLfloat *>(
3197                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3198             break;
3199         case gl::EntryPoint::VertexAttrib2f:
3200             context->vertexAttrib2f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3201                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3202                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal);
3203             break;
3204         case gl::EntryPoint::VertexAttrib2fv:
3205             context->vertexAttrib2fv(
3206                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3207                 replayContext->getAsConstPointer<const GLfloat *>(
3208                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3209             break;
3210         case gl::EntryPoint::VertexAttrib3f:
3211             context->vertexAttrib3f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3212                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3213                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
3214                                     params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal);
3215             break;
3216         case gl::EntryPoint::VertexAttrib3fv:
3217             context->vertexAttrib3fv(
3218                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3219                 replayContext->getAsConstPointer<const GLfloat *>(
3220                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3221             break;
3222         case gl::EntryPoint::VertexAttrib4f:
3223             context->vertexAttrib4f(params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3224                                     params.getParam("x", ParamType::TGLfloat, 1).value.GLfloatVal,
3225                                     params.getParam("y", ParamType::TGLfloat, 2).value.GLfloatVal,
3226                                     params.getParam("z", ParamType::TGLfloat, 3).value.GLfloatVal,
3227                                     params.getParam("w", ParamType::TGLfloat, 4).value.GLfloatVal);
3228             break;
3229         case gl::EntryPoint::VertexAttrib4fv:
3230             context->vertexAttrib4fv(
3231                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3232                 replayContext->getAsConstPointer<const GLfloat *>(
3233                     params.getParam("v", ParamType::TGLfloatConstPointer, 1)));
3234             break;
3235         case gl::EntryPoint::VertexAttribBinding:
3236             context->vertexAttribBinding(
3237                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3238                 params.getParam("bindingindex", ParamType::TGLuint, 1).value.GLuintVal);
3239             break;
3240         case gl::EntryPoint::VertexAttribDivisor:
3241             context->vertexAttribDivisor(
3242                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3243                 params.getParam("divisor", ParamType::TGLuint, 1).value.GLuintVal);
3244             break;
3245         case gl::EntryPoint::VertexAttribFormat:
3246             context->vertexAttribFormat(
3247                 params.getParam("attribindex", ParamType::TGLuint, 0).value.GLuintVal,
3248                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3249                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3250                     .value.VertexAttribTypeVal,
3251                 params.getParam("normalized", ParamType::TGLboolean, 3).value.GLbooleanVal,
3252                 params.getParam("relativeoffset", ParamType::TGLuint, 4).value.GLuintVal);
3253             break;
3254         case gl::EntryPoint::VertexAttribI4i:
3255             context->vertexAttribI4i(
3256                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3257                 params.getParam("x", ParamType::TGLint, 1).value.GLintVal,
3258                 params.getParam("y", ParamType::TGLint, 2).value.GLintVal,
3259                 params.getParam("z", ParamType::TGLint, 3).value.GLintVal,
3260                 params.getParam("w", ParamType::TGLint, 4).value.GLintVal);
3261             break;
3262         case gl::EntryPoint::VertexAttribI4iv:
3263             context->vertexAttribI4iv(
3264                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3265                 replayContext->getAsConstPointer<const GLint *>(
3266                     params.getParam("v", ParamType::TGLintConstPointer, 1)));
3267             break;
3268         case gl::EntryPoint::VertexAttribI4ui:
3269             context->vertexAttribI4ui(
3270                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3271                 params.getParam("x", ParamType::TGLuint, 1).value.GLuintVal,
3272                 params.getParam("y", ParamType::TGLuint, 2).value.GLuintVal,
3273                 params.getParam("z", ParamType::TGLuint, 3).value.GLuintVal,
3274                 params.getParam("w", ParamType::TGLuint, 4).value.GLuintVal);
3275             break;
3276         case gl::EntryPoint::VertexAttribI4uiv:
3277             context->vertexAttribI4uiv(
3278                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3279                 replayContext->getAsConstPointer<const GLuint *>(
3280                     params.getParam("v", ParamType::TGLuintConstPointer, 1)));
3281             break;
3282         case gl::EntryPoint::VertexAttribIFormat:
3283             context->vertexAttribIFormat(
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("relativeoffset", ParamType::TGLuint, 3).value.GLuintVal);
3289             break;
3290         case gl::EntryPoint::VertexAttribIPointer:
3291             context->vertexAttribIPointer(
3292                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3293                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3294                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3295                     .value.VertexAttribTypeVal,
3296                 params.getParam("stride", ParamType::TGLsizei, 3).value.GLsizeiVal,
3297                 replayContext->getAsConstPointer<const void *>(
3298                     params.getParam("pointer", ParamType::TvoidConstPointer, 4)));
3299             break;
3300         case gl::EntryPoint::VertexAttribPointer:
3301             context->vertexAttribPointer(
3302                 params.getParam("index", ParamType::TGLuint, 0).value.GLuintVal,
3303                 params.getParam("size", ParamType::TGLint, 1).value.GLintVal,
3304                 params.getParam("typePacked", ParamType::TVertexAttribType, 2)
3305                     .value.VertexAttribTypeVal,
3306                 params.getParam("normalized", ParamType::TGLboolean, 3).value.GLbooleanVal,
3307                 params.getParam("stride", ParamType::TGLsizei, 4).value.GLsizeiVal,
3308                 replayContext->getAsConstPointer<const void *>(
3309                     params.getParam("pointer", ParamType::TvoidConstPointer, 5)));
3310             break;
3311         case gl::EntryPoint::VertexBindingDivisor:
3312             context->vertexBindingDivisor(
3313                 params.getParam("bindingindex", ParamType::TGLuint, 0).value.GLuintVal,
3314                 params.getParam("divisor", ParamType::TGLuint, 1).value.GLuintVal);
3315             break;
3316         case gl::EntryPoint::VertexPointer:
3317             context->vertexPointer(
3318                 params.getParam("size", ParamType::TGLint, 0).value.GLintVal,
3319                 params.getParam("typePacked", ParamType::TVertexAttribType, 1)
3320                     .value.VertexAttribTypeVal,
3321                 params.getParam("stride", ParamType::TGLsizei, 2).value.GLsizeiVal,
3322                 replayContext->getAsConstPointer<const void *>(
3323                     params.getParam("pointer", ParamType::TvoidConstPointer, 3)));
3324             break;
3325         case gl::EntryPoint::Viewport:
3326             context->viewport(params.getParam("x", ParamType::TGLint, 0).value.GLintVal,
3327                               params.getParam("y", ParamType::TGLint, 1).value.GLintVal,
3328                               params.getParam("width", ParamType::TGLsizei, 2).value.GLsizeiVal,
3329                               params.getParam("height", ParamType::TGLsizei, 3).value.GLsizeiVal);
3330             break;
3331         case gl::EntryPoint::WaitSync:
3332             context->waitSync(
3333                 params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal,
3334                 params.getParam("flags", ParamType::TGLbitfield, 1).value.GLbitfieldVal,
3335                 params.getParam("timeout", ParamType::TGLuint64, 2).value.GLuint64Val);
3336             break;
3337         default:
3338             UNREACHABLE();
3339     }
3340 }
3341 
3342 }  // namespace angle
3343