• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2019 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // capture_gles31_params.cpp:
7 //   Pointer parameter capture functions for the OpenGL ES 3.1 entry points.
8 
9 #include "libANGLE/capture/capture_gles_3_1_autogen.h"
10 
11 using namespace angle;
12 
13 namespace gl
14 {
15 
CaptureCreateShaderProgramv_strings(const State & glState,bool isCallValid,ShaderType typePacked,GLsizei count,const GLchar * const * strings,ParamCapture * paramCapture)16 void CaptureCreateShaderProgramv_strings(const State &glState,
17                                          bool isCallValid,
18                                          ShaderType typePacked,
19                                          GLsizei count,
20                                          const GLchar *const *strings,
21                                          ParamCapture *paramCapture)
22 {
23     CaptureShaderStrings(count, strings, nullptr, paramCapture);
24 }
25 
CaptureDeleteProgramPipelines_pipelinesPacked(const State & glState,bool isCallValid,GLsizei n,const ProgramPipelineID * pipelines,ParamCapture * paramCapture)26 void CaptureDeleteProgramPipelines_pipelinesPacked(const State &glState,
27                                                    bool isCallValid,
28                                                    GLsizei n,
29                                                    const ProgramPipelineID *pipelines,
30                                                    ParamCapture *paramCapture)
31 {
32     CaptureArray(pipelines, n, paramCapture);
33 }
34 
CaptureDrawArraysIndirect_indirect(const State & glState,bool isCallValid,PrimitiveMode modePacked,const void * indirect,ParamCapture * paramCapture)35 void CaptureDrawArraysIndirect_indirect(const State &glState,
36                                         bool isCallValid,
37                                         PrimitiveMode modePacked,
38                                         const void *indirect,
39                                         ParamCapture *paramCapture)
40 {
41     // DrawArraysIndirect requires that all data sourced for the command,
42     // including the DrawArraysIndirectCommand structure, be in buffer objects,
43     // and may not be called when the default vertex array object is bound.
44     // Indirect pointer is automatically captured in capture_gles_3_1_autogen.cpp
45     assert(!isCallValid || glState.getTargetBuffer(gl::BufferBinding::DrawIndirect));
46 }
47 
CaptureDrawElementsIndirect_indirect(const State & glState,bool isCallValid,PrimitiveMode modePacked,DrawElementsType typePacked,const void * indirect,ParamCapture * paramCapture)48 void CaptureDrawElementsIndirect_indirect(const State &glState,
49                                           bool isCallValid,
50                                           PrimitiveMode modePacked,
51                                           DrawElementsType typePacked,
52                                           const void *indirect,
53                                           ParamCapture *paramCapture)
54 {
55     // DrawElementsIndirect requires that all data sourced for the command,
56     // including the DrawElementsIndirectCommand structure, be in buffer objects,
57     // and may not be called when the default vertex array object is bound
58     // Indirect pointer is automatically captured in capture_gles_3_1_autogen.cpp
59     assert(!isCallValid || glState.getTargetBuffer(gl::BufferBinding::DrawIndirect));
60 }
61 
CaptureGenProgramPipelines_pipelinesPacked(const State & glState,bool isCallValid,GLsizei n,ProgramPipelineID * pipelines,ParamCapture * paramCapture)62 void CaptureGenProgramPipelines_pipelinesPacked(const State &glState,
63                                                 bool isCallValid,
64                                                 GLsizei n,
65                                                 ProgramPipelineID *pipelines,
66                                                 ParamCapture *paramCapture)
67 {
68     CaptureGenHandles(n, pipelines, paramCapture);
69 }
70 
CaptureGetBooleani_v_data(const State & glState,bool isCallValid,GLenum target,GLuint index,GLboolean * data,ParamCapture * paramCapture)71 void CaptureGetBooleani_v_data(const State &glState,
72                                bool isCallValid,
73                                GLenum target,
74                                GLuint index,
75                                GLboolean *data,
76                                ParamCapture *paramCapture)
77 {
78     CaptureMemory(data, sizeof(GLboolean), paramCapture);
79 }
80 
CaptureGetFramebufferParameteriv_params(const State & glState,bool isCallValid,GLenum target,GLenum pname,GLint * params,ParamCapture * paramCapture)81 void CaptureGetFramebufferParameteriv_params(const State &glState,
82                                              bool isCallValid,
83                                              GLenum target,
84                                              GLenum pname,
85                                              GLint *params,
86                                              ParamCapture *paramCapture)
87 {
88     UNIMPLEMENTED();
89 }
90 
CaptureGetMultisamplefv_val(const State & glState,bool isCallValid,GLenum pname,GLuint index,GLfloat * val,ParamCapture * paramCapture)91 void CaptureGetMultisamplefv_val(const State &glState,
92                                  bool isCallValid,
93                                  GLenum pname,
94                                  GLuint index,
95                                  GLfloat *val,
96                                  ParamCapture *paramCapture)
97 {
98     UNIMPLEMENTED();
99 }
100 
CaptureGetProgramInterfaceiv_params(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLenum pname,GLint * params,ParamCapture * paramCapture)101 void CaptureGetProgramInterfaceiv_params(const State &glState,
102                                          bool isCallValid,
103                                          ShaderProgramID program,
104                                          GLenum programInterface,
105                                          GLenum pname,
106                                          GLint *params,
107                                          ParamCapture *paramCapture)
108 {
109     CaptureMemory(params, sizeof(GLint), paramCapture);
110 }
111 
CaptureGetProgramPipelineInfoLog_length(const State & glState,bool isCallValid,ProgramPipelineID pipeline,GLsizei bufSize,GLsizei * length,GLchar * infoLog,ParamCapture * paramCapture)112 void CaptureGetProgramPipelineInfoLog_length(const State &glState,
113                                              bool isCallValid,
114                                              ProgramPipelineID pipeline,
115                                              GLsizei bufSize,
116                                              GLsizei *length,
117                                              GLchar *infoLog,
118                                              ParamCapture *paramCapture)
119 {
120     if (length)
121     {
122         CaptureMemory(length, sizeof(GLsizei), paramCapture);
123     }
124 }
125 
CaptureGetProgramPipelineInfoLog_infoLog(const State & glState,bool isCallValid,ProgramPipelineID pipeline,GLsizei bufSize,GLsizei * length,GLchar * infoLog,ParamCapture * paramCapture)126 void CaptureGetProgramPipelineInfoLog_infoLog(const State &glState,
127                                               bool isCallValid,
128                                               ProgramPipelineID pipeline,
129                                               GLsizei bufSize,
130                                               GLsizei *length,
131                                               GLchar *infoLog,
132                                               ParamCapture *paramCapture)
133 {
134     if (bufSize > 0)
135     {
136         ASSERT(infoLog);
137         if (length)
138         {
139             CaptureArray(infoLog, *length, paramCapture);
140         }
141         else
142         {
143             CaptureString(infoLog, paramCapture);
144         }
145     }
146 }
147 
CaptureGetProgramPipelineiv_params(const State & glState,bool isCallValid,ProgramPipelineID pipeline,GLenum pname,GLint * params,ParamCapture * paramCapture)148 void CaptureGetProgramPipelineiv_params(const State &glState,
149                                         bool isCallValid,
150                                         ProgramPipelineID pipeline,
151                                         GLenum pname,
152                                         GLint *params,
153                                         ParamCapture *paramCapture)
154 {
155     CaptureMemory(params, sizeof(GLint), paramCapture);
156 }
157 
CaptureGetProgramResourceIndex_name(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,const GLchar * name,ParamCapture * paramCapture)158 void CaptureGetProgramResourceIndex_name(const State &glState,
159                                          bool isCallValid,
160                                          ShaderProgramID program,
161                                          GLenum programInterface,
162                                          const GLchar *name,
163                                          ParamCapture *paramCapture)
164 {
165     CaptureString(name, paramCapture);
166 }
167 
CaptureGetProgramResourceLocation_name(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,const GLchar * name,ParamCapture * paramCapture)168 void CaptureGetProgramResourceLocation_name(const State &glState,
169                                             bool isCallValid,
170                                             ShaderProgramID program,
171                                             GLenum programInterface,
172                                             const GLchar *name,
173                                             ParamCapture *paramCapture)
174 {
175     CaptureString(name, paramCapture);
176 }
177 
CaptureGetProgramResourceName_length(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei bufSize,GLsizei * length,GLchar * name,ParamCapture * paramCapture)178 void CaptureGetProgramResourceName_length(const State &glState,
179                                           bool isCallValid,
180                                           ShaderProgramID program,
181                                           GLenum programInterface,
182                                           GLuint index,
183                                           GLsizei bufSize,
184                                           GLsizei *length,
185                                           GLchar *name,
186                                           ParamCapture *paramCapture)
187 {
188     paramCapture->readBufferSizeBytes = sizeof(GLsizei);
189 }
190 
CaptureGetProgramResourceName_name(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei bufSize,GLsizei * length,GLchar * name,ParamCapture * paramCapture)191 void CaptureGetProgramResourceName_name(const State &glState,
192                                         bool isCallValid,
193                                         ShaderProgramID program,
194                                         GLenum programInterface,
195                                         GLuint index,
196                                         GLsizei bufSize,
197                                         GLsizei *length,
198                                         GLchar *name,
199                                         ParamCapture *paramCapture)
200 {
201     CaptureString(name, paramCapture);
202 }
203 
CaptureGetProgramResourceiv_props(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei propCount,const GLenum * props,GLsizei bufSize,GLsizei * length,GLint * params,ParamCapture * paramCapture)204 void CaptureGetProgramResourceiv_props(const State &glState,
205                                        bool isCallValid,
206                                        ShaderProgramID program,
207                                        GLenum programInterface,
208                                        GLuint index,
209                                        GLsizei propCount,
210                                        const GLenum *props,
211                                        GLsizei bufSize,
212                                        GLsizei *length,
213                                        GLint *params,
214                                        ParamCapture *paramCapture)
215 {
216     CaptureMemory(props, sizeof(GLenum) * propCount, paramCapture);
217 }
218 
CaptureGetProgramResourceiv_length(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei propCount,const GLenum * props,GLsizei bufSize,GLsizei * length,GLint * params,ParamCapture * paramCapture)219 void CaptureGetProgramResourceiv_length(const State &glState,
220                                         bool isCallValid,
221                                         ShaderProgramID program,
222                                         GLenum programInterface,
223                                         GLuint index,
224                                         GLsizei propCount,
225                                         const GLenum *props,
226                                         GLsizei bufSize,
227                                         GLsizei *length,
228                                         GLint *params,
229                                         ParamCapture *paramCapture)
230 {
231     paramCapture->readBufferSizeBytes = sizeof(GLsizei);
232 }
233 
CaptureGetProgramResourceiv_params(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei propCount,const GLenum * props,GLsizei bufSize,GLsizei * length,GLint * params,ParamCapture * paramCapture)234 void CaptureGetProgramResourceiv_params(const State &glState,
235                                         bool isCallValid,
236                                         ShaderProgramID program,
237                                         GLenum programInterface,
238                                         GLuint index,
239                                         GLsizei propCount,
240                                         const GLenum *props,
241                                         GLsizei bufSize,
242                                         GLsizei *length,
243                                         GLint *params,
244                                         ParamCapture *paramCapture)
245 {
246     // Prefer to only capture as many parameters as are returned,
247     // but if this is not known, then capture the whole buffer
248     int paramLength = length != nullptr ? *length : bufSize;
249     CaptureMemory(params, sizeof(GLint) * paramLength, paramCapture);
250 }
251 
CaptureGetTexLevelParameterfv_params(const State & glState,bool isCallValid,TextureTarget targetPacked,GLint level,GLenum pname,GLfloat * params,ParamCapture * paramCapture)252 void CaptureGetTexLevelParameterfv_params(const State &glState,
253                                           bool isCallValid,
254                                           TextureTarget targetPacked,
255                                           GLint level,
256                                           GLenum pname,
257                                           GLfloat *params,
258                                           ParamCapture *paramCapture)
259 {
260     CaptureMemory(params, sizeof(GLfloat), paramCapture);
261 }
262 
CaptureGetTexLevelParameteriv_params(const State & glState,bool isCallValid,TextureTarget targetPacked,GLint level,GLenum pname,GLint * params,ParamCapture * paramCapture)263 void CaptureGetTexLevelParameteriv_params(const State &glState,
264                                           bool isCallValid,
265                                           TextureTarget targetPacked,
266                                           GLint level,
267                                           GLenum pname,
268                                           GLint *params,
269                                           ParamCapture *paramCapture)
270 {
271     CaptureMemory(params, sizeof(GLint), paramCapture);
272 }
273 
CaptureProgramUniform1fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)274 void CaptureProgramUniform1fv_value(const State &glState,
275                                     bool isCallValid,
276                                     ShaderProgramID program,
277                                     UniformLocation location,
278                                     GLsizei count,
279                                     const GLfloat *value,
280                                     ParamCapture *paramCapture)
281 {
282     CaptureMemory(value, sizeof(GLfloat) * count, paramCapture);
283 }
284 
CaptureProgramUniform1iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)285 void CaptureProgramUniform1iv_value(const State &glState,
286                                     bool isCallValid,
287                                     ShaderProgramID program,
288                                     UniformLocation location,
289                                     GLsizei count,
290                                     const GLint *value,
291                                     ParamCapture *paramCapture)
292 {
293     CaptureMemory(value, sizeof(GLint) * count, paramCapture);
294 }
295 
CaptureProgramUniform1uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)296 void CaptureProgramUniform1uiv_value(const State &glState,
297                                      bool isCallValid,
298                                      ShaderProgramID program,
299                                      UniformLocation location,
300                                      GLsizei count,
301                                      const GLuint *value,
302                                      ParamCapture *paramCapture)
303 {
304     CaptureMemory(value, sizeof(GLuint) * count, paramCapture);
305 }
306 
CaptureProgramUniform2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)307 void CaptureProgramUniform2fv_value(const State &glState,
308                                     bool isCallValid,
309                                     ShaderProgramID program,
310                                     UniformLocation location,
311                                     GLsizei count,
312                                     const GLfloat *value,
313                                     ParamCapture *paramCapture)
314 {
315     CaptureMemory(value, sizeof(GLfloat) * 2 * count, paramCapture);
316 }
317 
CaptureProgramUniform2iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)318 void CaptureProgramUniform2iv_value(const State &glState,
319                                     bool isCallValid,
320                                     ShaderProgramID program,
321                                     UniformLocation location,
322                                     GLsizei count,
323                                     const GLint *value,
324                                     ParamCapture *paramCapture)
325 {
326     CaptureMemory(value, sizeof(GLint) * 2 * count, paramCapture);
327 }
328 
CaptureProgramUniform2uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)329 void CaptureProgramUniform2uiv_value(const State &glState,
330                                      bool isCallValid,
331                                      ShaderProgramID program,
332                                      UniformLocation location,
333                                      GLsizei count,
334                                      const GLuint *value,
335                                      ParamCapture *paramCapture)
336 {
337     CaptureMemory(value, sizeof(GLuint) * 2 * count, paramCapture);
338 }
339 
CaptureProgramUniform3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)340 void CaptureProgramUniform3fv_value(const State &glState,
341                                     bool isCallValid,
342                                     ShaderProgramID program,
343                                     UniformLocation location,
344                                     GLsizei count,
345                                     const GLfloat *value,
346                                     ParamCapture *paramCapture)
347 {
348     CaptureMemory(value, sizeof(GLfloat) * 3 * count, paramCapture);
349 }
350 
CaptureProgramUniform3iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)351 void CaptureProgramUniform3iv_value(const State &glState,
352                                     bool isCallValid,
353                                     ShaderProgramID program,
354                                     UniformLocation location,
355                                     GLsizei count,
356                                     const GLint *value,
357                                     ParamCapture *paramCapture)
358 {
359     CaptureMemory(value, sizeof(GLint) * 3 * count, paramCapture);
360 }
361 
CaptureProgramUniform3uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)362 void CaptureProgramUniform3uiv_value(const State &glState,
363                                      bool isCallValid,
364                                      ShaderProgramID program,
365                                      UniformLocation location,
366                                      GLsizei count,
367                                      const GLuint *value,
368                                      ParamCapture *paramCapture)
369 {
370     CaptureMemory(value, sizeof(GLuint) * 3 * count, paramCapture);
371 }
372 
CaptureProgramUniform4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)373 void CaptureProgramUniform4fv_value(const State &glState,
374                                     bool isCallValid,
375                                     ShaderProgramID program,
376                                     UniformLocation location,
377                                     GLsizei count,
378                                     const GLfloat *value,
379                                     ParamCapture *paramCapture)
380 {
381     CaptureMemory(value, sizeof(GLfloat) * 4 * count, paramCapture);
382 }
383 
CaptureProgramUniform4iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)384 void CaptureProgramUniform4iv_value(const State &glState,
385                                     bool isCallValid,
386                                     ShaderProgramID program,
387                                     UniformLocation location,
388                                     GLsizei count,
389                                     const GLint *value,
390                                     ParamCapture *paramCapture)
391 {
392     CaptureMemory(value, sizeof(GLint) * 4 * count, paramCapture);
393 }
394 
CaptureProgramUniform4uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)395 void CaptureProgramUniform4uiv_value(const State &glState,
396                                      bool isCallValid,
397                                      ShaderProgramID program,
398                                      UniformLocation location,
399                                      GLsizei count,
400                                      const GLuint *value,
401                                      ParamCapture *paramCapture)
402 {
403     CaptureMemory(value, sizeof(GLuint) * 4 * count, paramCapture);
404 }
405 
CaptureProgramUniformMatrix2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)406 void CaptureProgramUniformMatrix2fv_value(const State &glState,
407                                           bool isCallValid,
408                                           ShaderProgramID program,
409                                           UniformLocation location,
410                                           GLsizei count,
411                                           GLboolean transpose,
412                                           const GLfloat *value,
413                                           ParamCapture *paramCapture)
414 {
415     CaptureMemory(value, sizeof(GLfloat) * 2 * 2 * count, paramCapture);
416 }
417 
CaptureProgramUniformMatrix2x3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)418 void CaptureProgramUniformMatrix2x3fv_value(const State &glState,
419                                             bool isCallValid,
420                                             ShaderProgramID program,
421                                             UniformLocation location,
422                                             GLsizei count,
423                                             GLboolean transpose,
424                                             const GLfloat *value,
425                                             ParamCapture *paramCapture)
426 {
427     CaptureMemory(value, sizeof(GLfloat) * 2 * 3 * count, paramCapture);
428 }
429 
CaptureProgramUniformMatrix2x4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)430 void CaptureProgramUniformMatrix2x4fv_value(const State &glState,
431                                             bool isCallValid,
432                                             ShaderProgramID program,
433                                             UniformLocation location,
434                                             GLsizei count,
435                                             GLboolean transpose,
436                                             const GLfloat *value,
437                                             ParamCapture *paramCapture)
438 {
439     CaptureMemory(value, sizeof(GLfloat) * 2 * 4 * count, paramCapture);
440 }
441 
CaptureProgramUniformMatrix3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)442 void CaptureProgramUniformMatrix3fv_value(const State &glState,
443                                           bool isCallValid,
444                                           ShaderProgramID program,
445                                           UniformLocation location,
446                                           GLsizei count,
447                                           GLboolean transpose,
448                                           const GLfloat *value,
449                                           ParamCapture *paramCapture)
450 {
451     CaptureMemory(value, sizeof(GLfloat) * 3 * 3 * count, paramCapture);
452 }
453 
CaptureProgramUniformMatrix3x2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)454 void CaptureProgramUniformMatrix3x2fv_value(const State &glState,
455                                             bool isCallValid,
456                                             ShaderProgramID program,
457                                             UniformLocation location,
458                                             GLsizei count,
459                                             GLboolean transpose,
460                                             const GLfloat *value,
461                                             ParamCapture *paramCapture)
462 {
463     CaptureMemory(value, sizeof(GLfloat) * 3 * 2 * count, paramCapture);
464 }
465 
CaptureProgramUniformMatrix3x4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)466 void CaptureProgramUniformMatrix3x4fv_value(const State &glState,
467                                             bool isCallValid,
468                                             ShaderProgramID program,
469                                             UniformLocation location,
470                                             GLsizei count,
471                                             GLboolean transpose,
472                                             const GLfloat *value,
473                                             ParamCapture *paramCapture)
474 {
475     CaptureMemory(value, sizeof(GLfloat) * 3 * 4 * count, paramCapture);
476 }
477 
CaptureProgramUniformMatrix4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)478 void CaptureProgramUniformMatrix4fv_value(const State &glState,
479                                           bool isCallValid,
480                                           ShaderProgramID program,
481                                           UniformLocation location,
482                                           GLsizei count,
483                                           GLboolean transpose,
484                                           const GLfloat *value,
485                                           ParamCapture *paramCapture)
486 {
487     CaptureMemory(value, sizeof(GLfloat) * 4 * 4 * count, paramCapture);
488 }
489 
CaptureProgramUniformMatrix4x2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)490 void CaptureProgramUniformMatrix4x2fv_value(const State &glState,
491                                             bool isCallValid,
492                                             ShaderProgramID program,
493                                             UniformLocation location,
494                                             GLsizei count,
495                                             GLboolean transpose,
496                                             const GLfloat *value,
497                                             ParamCapture *paramCapture)
498 {
499     CaptureMemory(value, sizeof(GLfloat) * 4 * 2 * count, paramCapture);
500 }
501 
CaptureProgramUniformMatrix4x3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)502 void CaptureProgramUniformMatrix4x3fv_value(const State &glState,
503                                             bool isCallValid,
504                                             ShaderProgramID program,
505                                             UniformLocation location,
506                                             GLsizei count,
507                                             GLboolean transpose,
508                                             const GLfloat *value,
509                                             ParamCapture *paramCapture)
510 {
511     CaptureMemory(value, sizeof(GLfloat) * 4 * 3 * count, paramCapture);
512 }
513 
514 }  // namespace gl
515