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.
6
// capture_gles3_params.cpp:
7
// Pointer parameter capture functions for the OpenGL ES 3.0 entry points.
9
#include "libANGLE/capture_gles_2_0_autogen.h"
10
#include "libANGLE/capture_gles_3_0_autogen.h"
12
using namespace angle;
16
void CaptureClearBufferfv_value(const State &glState,
21
ParamCapture *paramCapture)
26
void CaptureClearBufferiv_value(const State &glState,
31
ParamCapture *paramCapture)
36
void CaptureClearBufferuiv_value(const State &glState,
41
ParamCapture *paramCapture)
46
void CaptureCompressedTexImage3D_data(const State &glState,
48
TextureTarget targetPacked,
50
GLenum internalformat,
57
ParamCapture *paramCapture)
59
if (glState.getTargetBuffer(gl::BufferBinding::PixelUnpack))
69
CaptureMemory(data, imageSize, paramCapture);
72
void CaptureCompressedTexSubImage3D_data(const State &glState,
74
TextureTarget targetPacked,
85
ParamCapture *paramCapture)
87
CaptureCompressedTexImage3D_data(glState, isCallValid, targetPacked, level, 0, width, height,
88
depth, 0, imageSize, data, paramCapture);
91
void CaptureDeleteQueries_idsPacked(const State &glState,
95
ParamCapture *paramCapture)
97
CaptureMemory(ids, sizeof(QueryID) * n, paramCapture);
100
void CaptureDeleteSamplers_samplersPacked(const State &glState,
103
const SamplerID *samplers,
104
ParamCapture *paramCapture)
106
CaptureMemory(samplers, sizeof(SamplerID) * count, paramCapture);
109
void CaptureDeleteTransformFeedbacks_idsPacked(const State &glState,
112
const TransformFeedbackID *ids,
113
ParamCapture *paramCapture)
115
CaptureMemory(ids, sizeof(TransformFeedbackID) * n, paramCapture);
118
void CaptureDeleteVertexArrays_arraysPacked(const State &glState,
121
const VertexArrayID *arrays,
122
ParamCapture *paramCapture)
124
CaptureMemory(arrays, sizeof(VertexArrayID) * n, paramCapture);
127
void CaptureDrawBuffers_bufs(const State &glState,
131
ParamCapture *paramCapture)
133
CaptureMemory(bufs, sizeof(GLenum) * n, paramCapture);
136
void CaptureDrawElementsInstanced_indices(const State &glState,
138
PrimitiveMode modePacked,
140
DrawElementsType typePacked,
142
GLsizei instancecount,
143
ParamCapture *paramCapture)
145
CaptureDrawElements_indices(glState, isCallValid, modePacked, count, typePacked, indices,
149
void CaptureDrawRangeElements_indices(const State &glState,
151
PrimitiveMode modePacked,
155
DrawElementsType typePacked,
157
ParamCapture *paramCapture)
162
void CaptureGenQueries_idsPacked(const State &glState,
166
ParamCapture *paramCapture)
168
CaptureGenHandles(n, ids, paramCapture);
171
void CaptureGenSamplers_samplersPacked(const State &glState,
175
ParamCapture *paramCapture)
177
CaptureGenHandles(count, samplers, paramCapture);
180
void CaptureGenTransformFeedbacks_idsPacked(const State &glState,
183
TransformFeedbackID *ids,
184
ParamCapture *paramCapture)
186
CaptureGenHandles(n, ids, paramCapture);
189
void CaptureGenVertexArrays_arraysPacked(const State &glState,
192
VertexArrayID *arrays,
193
ParamCapture *paramCapture)
195
CaptureGenHandles(n, arrays, paramCapture);
198
void CaptureGetActiveUniformBlockName_length(const State &glState,
200
ShaderProgramID program,
201
GLuint uniformBlockIndex,
204
GLchar *uniformBlockName,
205
ParamCapture *paramCapture)
210
void CaptureGetActiveUniformBlockName_uniformBlockName(const State &glState,
212
ShaderProgramID program,
213
GLuint uniformBlockIndex,
216
GLchar *uniformBlockName,
217
ParamCapture *paramCapture)
222
void CaptureGetActiveUniformBlockiv_params(const State &glState,
224
ShaderProgramID program,
225
GLuint uniformBlockIndex,
228
ParamCapture *paramCapture)
233
void CaptureGetActiveUniformsiv_uniformIndices(const State &glState,
235
ShaderProgramID program,
236
GLsizei uniformCount,
237
const GLuint *uniformIndices,
240
ParamCapture *paramCapture)
245
void CaptureGetActiveUniformsiv_params(const State &glState,
247
ShaderProgramID program,
248
GLsizei uniformCount,
249
const GLuint *uniformIndices,
252
ParamCapture *paramCapture)
257
void CaptureGetBufferParameteri64v_params(const State &glState,
259
BufferBinding targetPacked,
262
ParamCapture *paramCapture)
267
void CaptureGetBufferPointerv_params(const State &glState,
269
BufferBinding targetPacked,
272
ParamCapture *paramCapture)
277
void CaptureGetFragDataLocation_name(const State &glState,
279
ShaderProgramID program,
281
ParamCapture *paramCapture)
286
void CaptureGetInteger64i_v_data(const State &glState,
291
ParamCapture *paramCapture)
296
void CaptureGetInteger64v_data(const State &glState,
300
ParamCapture *paramCapture)
305
void CaptureGetIntegeri_v_data(const State &glState,
310
ParamCapture *paramCapture)
315
void CaptureGetInternalformativ_params(const State &glState,
318
GLenum internalformat,
322
ParamCapture *paramCapture)
327
void CaptureGetProgramBinary_length(const State &glState,
329
ShaderProgramID program,
332
GLenum *binaryFormat,
334
ParamCapture *paramCapture)
339
void CaptureGetProgramBinary_binaryFormat(const State &glState,
341
ShaderProgramID program,
344
GLenum *binaryFormat,
346
ParamCapture *paramCapture)
351
void CaptureGetProgramBinary_binary(const State &glState,
353
ShaderProgramID program,
356
GLenum *binaryFormat,
358
ParamCapture *paramCapture)
363
void CaptureGetQueryObjectuiv_params(const State &glState,
368
ParamCapture *paramCapture)
370
// This only returns one value
371
paramCapture->readBufferSizeBytes = sizeof(GLint);
374
void CaptureGetQueryiv_params(const State &glState,
376
QueryType targetPacked,
379
ParamCapture *paramCapture)
384
void CaptureGetSamplerParameterfv_params(const State &glState,
389
ParamCapture *paramCapture)
394
void CaptureGetSamplerParameteriv_params(const State &glState,
399
ParamCapture *paramCapture)
404
void CaptureGetSynciv_length(const State &glState,
411
ParamCapture *paramCapture)
416
void CaptureGetSynciv_values(const State &glState,
423
ParamCapture *paramCapture)
428
void CaptureGetTransformFeedbackVarying_length(const State &glState,
430
ShaderProgramID program,
437
ParamCapture *paramCapture)
442
void CaptureGetTransformFeedbackVarying_size(const State &glState,
444
ShaderProgramID program,
451
ParamCapture *paramCapture)
456
void CaptureGetTransformFeedbackVarying_type(const State &glState,
458
ShaderProgramID program,
465
ParamCapture *paramCapture)
470
void CaptureGetTransformFeedbackVarying_name(const State &glState,
472
ShaderProgramID program,
479
ParamCapture *paramCapture)
484
void CaptureGetUniformBlockIndex_uniformBlockName(const State &glState,
486
ShaderProgramID program,
487
const GLchar *uniformBlockName,
488
ParamCapture *paramCapture)
490
CaptureString(uniformBlockName, paramCapture);
493
void CaptureGetUniformIndices_uniformNames(const State &glState,
495
ShaderProgramID program,
496
GLsizei uniformCount,
497
const GLchar *const *uniformNames,
498
GLuint *uniformIndices,
499
ParamCapture *paramCapture)
504
void CaptureGetUniformIndices_uniformIndices(const State &glState,
506
ShaderProgramID program,
507
GLsizei uniformCount,
508
const GLchar *const *uniformNames,
509
GLuint *uniformIndices,
510
ParamCapture *paramCapture)
515
void CaptureGetUniformuiv_params(const State &glState,
517
ShaderProgramID program,
520
ParamCapture *paramCapture)
525
void CaptureGetVertexAttribIiv_params(const State &glState,
530
ParamCapture *paramCapture)
535
void CaptureGetVertexAttribIuiv_params(const State &glState,
540
ParamCapture *paramCapture)
545
void CaptureInvalidateFramebuffer_attachments(const State &glState,
548
GLsizei numAttachments,
549
const GLenum *attachments,
550
ParamCapture *paramCapture)
555
void CaptureInvalidateSubFramebuffer_attachments(const State &glState,
558
GLsizei numAttachments,
559
const GLenum *attachments,
564
ParamCapture *paramCapture)
569
void CaptureProgramBinary_binary(const State &glState,
571
ShaderProgramID program,
575
ParamCapture *paramCapture)
580
void CaptureSamplerParameterfv_param(const State &glState,
584
const GLfloat *param,
585
ParamCapture *paramCapture)
590
void CaptureSamplerParameteriv_param(const State &glState,
595
ParamCapture *paramCapture)
600
void CaptureTexImage3D_pixels(const State &glState,
602
TextureTarget targetPacked,
604
GLint internalformat,
612
ParamCapture *paramCapture)
614
if (glState.getTargetBuffer(gl::BufferBinding::PixelUnpack))
624
const gl::InternalFormat &internalFormatInfo = gl::GetInternalFormatInfo(format, type);
625
const gl::PixelUnpackState &unpack = glState.getUnpackState();
627
const Extents size(width, height, depth);
631
internalFormatInfo.computePackUnpackEndByte(type, size, unpack, true, &endByte);
634
CaptureMemory(pixels, static_cast<size_t>(endByte), paramCapture);
637
void CaptureTexSubImage3D_pixels(const State &glState,
639
TextureTarget targetPacked,
650
ParamCapture *paramCapture)
652
CaptureTexImage3D_pixels(glState, isCallValid, targetPacked, level, 0, width, height, depth, 0,
653
format, type, pixels, paramCapture);
656
void CaptureTransformFeedbackVaryings_varyings(const State &glState,
658
ShaderProgramID program,
660
const GLchar *const *varyings,
662
ParamCapture *paramCapture)
664
for (GLsizei index = 0; index < count; ++index)
666
CaptureString(varyings[index], paramCapture);
670
void CaptureUniform1uiv_value(const State &glState,
675
ParamCapture *paramCapture)
680
void CaptureUniform2uiv_value(const State &glState,
685
ParamCapture *paramCapture)
690
void CaptureUniform3uiv_value(const State &glState,
695
ParamCapture *paramCapture)
700
void CaptureUniform4uiv_value(const State &glState,
705
ParamCapture *paramCapture)
710
void CaptureUniformMatrix2x3fv_value(const State &glState,
715
const GLfloat *value,
716
ParamCapture *paramCapture)
721
void CaptureUniformMatrix2x4fv_value(const State &glState,
726
const GLfloat *value,
727
ParamCapture *paramCapture)
732
void CaptureUniformMatrix3x2fv_value(const State &glState,
737
const GLfloat *value,
738
ParamCapture *paramCapture)
743
void CaptureUniformMatrix3x4fv_value(const State &glState,
748
const GLfloat *value,
749
ParamCapture *paramCapture)
754
void CaptureUniformMatrix4x2fv_value(const State &glState,
759
const GLfloat *value,
760
ParamCapture *paramCapture)
765
void CaptureUniformMatrix4x3fv_value(const State &glState,
770
const GLfloat *value,
771
ParamCapture *paramCapture)
776
void CaptureVertexAttribI4iv_v(const State &glState,
780
ParamCapture *paramCapture)
785
void CaptureVertexAttribI4uiv_v(const State &glState,
789
ParamCapture *paramCapture)
794
void CaptureVertexAttribIPointer_pointer(const State &glState,
798
VertexAttribType typePacked,
801
ParamCapture *paramCapture)