1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.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 // validationGL4_autogen.h:
9 //   Validation functions for the OpenGL Desktop GL 4.x entry points.
10 
11 #ifndef LIBANGLE_VALIDATION_GL4_AUTOGEN_H_
12 #define LIBANGLE_VALIDATION_GL4_AUTOGEN_H_
13 
14 #include "common/PackedEnums.h"
15 
16 namespace gl
17 {
18 class Context;
19 
20 // GL 4.0
21 bool ValidateBeginQueryIndexed(const Context *context,
22                                GLenum target,
23                                GLuint index,
24                                QueryID idPacked);
25 bool ValidateDrawTransformFeedback(const Context *context,
26                                    GLenum mode,
27                                    TransformFeedbackID idPacked);
28 bool ValidateDrawTransformFeedbackStream(const Context *context,
29                                          GLenum mode,
30                                          TransformFeedbackID idPacked,
31                                          GLuint stream);
32 bool ValidateEndQueryIndexed(const Context *context, GLenum target, GLuint index);
33 bool ValidateGetActiveSubroutineName(const Context *context,
34                                      ShaderProgramID programPacked,
35                                      GLenum shadertype,
36                                      GLuint index,
37                                      GLsizei bufsize,
38                                      const GLsizei *length,
39                                      const GLchar *name);
40 bool ValidateGetActiveSubroutineUniformName(const Context *context,
41                                             ShaderProgramID programPacked,
42                                             GLenum shadertype,
43                                             GLuint index,
44                                             GLsizei bufsize,
45                                             const GLsizei *length,
46                                             const GLchar *name);
47 bool ValidateGetActiveSubroutineUniformiv(const Context *context,
48                                           ShaderProgramID programPacked,
49                                           GLenum shadertype,
50                                           GLuint index,
51                                           GLenum pname,
52                                           const GLint *values);
53 bool ValidateGetProgramStageiv(const Context *context,
54                                ShaderProgramID programPacked,
55                                GLenum shadertype,
56                                GLenum pname,
57                                const GLint *values);
58 bool ValidateGetQueryIndexediv(const Context *context,
59                                GLenum target,
60                                GLuint index,
61                                GLenum pname,
62                                const GLint *params);
63 bool ValidateGetSubroutineIndex(const Context *context,
64                                 ShaderProgramID programPacked,
65                                 GLenum shadertype,
66                                 const GLchar *name);
67 bool ValidateGetSubroutineUniformLocation(const Context *context,
68                                           ShaderProgramID programPacked,
69                                           GLenum shadertype,
70                                           const GLchar *name);
71 bool ValidateGetUniformSubroutineuiv(const Context *context,
72                                      GLenum shadertype,
73                                      GLint location,
74                                      const GLuint *params);
75 bool ValidateGetUniformdv(const Context *context,
76                           ShaderProgramID programPacked,
77                           UniformLocation locationPacked,
78                           const GLdouble *params);
79 bool ValidatePatchParameterfv(const Context *context, GLenum pname, const GLfloat *values);
80 bool ValidateUniform1d(const Context *context, UniformLocation locationPacked, GLdouble x);
81 bool ValidateUniform1dv(const Context *context,
82                         UniformLocation locationPacked,
83                         GLsizei count,
84                         const GLdouble *value);
85 bool ValidateUniform2d(const Context *context,
86                        UniformLocation locationPacked,
87                        GLdouble x,
88                        GLdouble y);
89 bool ValidateUniform2dv(const Context *context,
90                         UniformLocation locationPacked,
91                         GLsizei count,
92                         const GLdouble *value);
93 bool ValidateUniform3d(const Context *context,
94                        UniformLocation locationPacked,
95                        GLdouble x,
96                        GLdouble y,
97                        GLdouble z);
98 bool ValidateUniform3dv(const Context *context,
99                         UniformLocation locationPacked,
100                         GLsizei count,
101                         const GLdouble *value);
102 bool ValidateUniform4d(const Context *context,
103                        UniformLocation locationPacked,
104                        GLdouble x,
105                        GLdouble y,
106                        GLdouble z,
107                        GLdouble w);
108 bool ValidateUniform4dv(const Context *context,
109                         UniformLocation locationPacked,
110                         GLsizei count,
111                         const GLdouble *value);
112 bool ValidateUniformMatrix2dv(const Context *context,
113                               UniformLocation locationPacked,
114                               GLsizei count,
115                               GLboolean transpose,
116                               const GLdouble *value);
117 bool ValidateUniformMatrix2x3dv(const Context *context,
118                                 UniformLocation locationPacked,
119                                 GLsizei count,
120                                 GLboolean transpose,
121                                 const GLdouble *value);
122 bool ValidateUniformMatrix2x4dv(const Context *context,
123                                 UniformLocation locationPacked,
124                                 GLsizei count,
125                                 GLboolean transpose,
126                                 const GLdouble *value);
127 bool ValidateUniformMatrix3dv(const Context *context,
128                               UniformLocation locationPacked,
129                               GLsizei count,
130                               GLboolean transpose,
131                               const GLdouble *value);
132 bool ValidateUniformMatrix3x2dv(const Context *context,
133                                 UniformLocation locationPacked,
134                                 GLsizei count,
135                                 GLboolean transpose,
136                                 const GLdouble *value);
137 bool ValidateUniformMatrix3x4dv(const Context *context,
138                                 UniformLocation locationPacked,
139                                 GLsizei count,
140                                 GLboolean transpose,
141                                 const GLdouble *value);
142 bool ValidateUniformMatrix4dv(const Context *context,
143                               UniformLocation locationPacked,
144                               GLsizei count,
145                               GLboolean transpose,
146                               const GLdouble *value);
147 bool ValidateUniformMatrix4x2dv(const Context *context,
148                                 UniformLocation locationPacked,
149                                 GLsizei count,
150                                 GLboolean transpose,
151                                 const GLdouble *value);
152 bool ValidateUniformMatrix4x3dv(const Context *context,
153                                 UniformLocation locationPacked,
154                                 GLsizei count,
155                                 GLboolean transpose,
156                                 const GLdouble *value);
157 bool ValidateUniformSubroutinesuiv(const Context *context,
158                                    GLenum shadertype,
159                                    GLsizei count,
160                                    const GLuint *indices);
161 
162 // GL 4.1
163 bool ValidateDepthRangeArrayv(const Context *context,
164                               GLuint first,
165                               GLsizei count,
166                               const GLdouble *v);
167 bool ValidateDepthRangeIndexed(const Context *context, GLuint index, GLdouble n, GLdouble f);
168 bool ValidateGetDoublei_v(const Context *context,
169                           GLenum target,
170                           GLuint index,
171                           const GLdouble *data);
172 bool ValidateGetFloati_v(const Context *context, GLenum target, GLuint index, const GLfloat *data);
173 bool ValidateGetVertexAttribLdv(const Context *context,
174                                 GLuint index,
175                                 GLenum pname,
176                                 const GLdouble *params);
177 bool ValidateProgramUniform1d(const Context *context,
178                               ShaderProgramID programPacked,
179                               UniformLocation locationPacked,
180                               GLdouble v0);
181 bool ValidateProgramUniform1dv(const Context *context,
182                                ShaderProgramID programPacked,
183                                UniformLocation locationPacked,
184                                GLsizei count,
185                                const GLdouble *value);
186 bool ValidateProgramUniform2d(const Context *context,
187                               ShaderProgramID programPacked,
188                               UniformLocation locationPacked,
189                               GLdouble v0,
190                               GLdouble v1);
191 bool ValidateProgramUniform2dv(const Context *context,
192                                ShaderProgramID programPacked,
193                                UniformLocation locationPacked,
194                                GLsizei count,
195                                const GLdouble *value);
196 bool ValidateProgramUniform3d(const Context *context,
197                               ShaderProgramID programPacked,
198                               UniformLocation locationPacked,
199                               GLdouble v0,
200                               GLdouble v1,
201                               GLdouble v2);
202 bool ValidateProgramUniform3dv(const Context *context,
203                                ShaderProgramID programPacked,
204                                UniformLocation locationPacked,
205                                GLsizei count,
206                                const GLdouble *value);
207 bool ValidateProgramUniform4d(const Context *context,
208                               ShaderProgramID programPacked,
209                               UniformLocation locationPacked,
210                               GLdouble v0,
211                               GLdouble v1,
212                               GLdouble v2,
213                               GLdouble v3);
214 bool ValidateProgramUniform4dv(const Context *context,
215                                ShaderProgramID programPacked,
216                                UniformLocation locationPacked,
217                                GLsizei count,
218                                const GLdouble *value);
219 bool ValidateProgramUniformMatrix2dv(const Context *context,
220                                      ShaderProgramID programPacked,
221                                      UniformLocation locationPacked,
222                                      GLsizei count,
223                                      GLboolean transpose,
224                                      const GLdouble *value);
225 bool ValidateProgramUniformMatrix2x3dv(const Context *context,
226                                        ShaderProgramID programPacked,
227                                        UniformLocation locationPacked,
228                                        GLsizei count,
229                                        GLboolean transpose,
230                                        const GLdouble *value);
231 bool ValidateProgramUniformMatrix2x4dv(const Context *context,
232                                        ShaderProgramID programPacked,
233                                        UniformLocation locationPacked,
234                                        GLsizei count,
235                                        GLboolean transpose,
236                                        const GLdouble *value);
237 bool ValidateProgramUniformMatrix3dv(const Context *context,
238                                      ShaderProgramID programPacked,
239                                      UniformLocation locationPacked,
240                                      GLsizei count,
241                                      GLboolean transpose,
242                                      const GLdouble *value);
243 bool ValidateProgramUniformMatrix3x2dv(const Context *context,
244                                        ShaderProgramID programPacked,
245                                        UniformLocation locationPacked,
246                                        GLsizei count,
247                                        GLboolean transpose,
248                                        const GLdouble *value);
249 bool ValidateProgramUniformMatrix3x4dv(const Context *context,
250                                        ShaderProgramID programPacked,
251                                        UniformLocation locationPacked,
252                                        GLsizei count,
253                                        GLboolean transpose,
254                                        const GLdouble *value);
255 bool ValidateProgramUniformMatrix4dv(const Context *context,
256                                      ShaderProgramID programPacked,
257                                      UniformLocation locationPacked,
258                                      GLsizei count,
259                                      GLboolean transpose,
260                                      const GLdouble *value);
261 bool ValidateProgramUniformMatrix4x2dv(const Context *context,
262                                        ShaderProgramID programPacked,
263                                        UniformLocation locationPacked,
264                                        GLsizei count,
265                                        GLboolean transpose,
266                                        const GLdouble *value);
267 bool ValidateProgramUniformMatrix4x3dv(const Context *context,
268                                        ShaderProgramID programPacked,
269                                        UniformLocation locationPacked,
270                                        GLsizei count,
271                                        GLboolean transpose,
272                                        const GLdouble *value);
273 bool ValidateScissorArrayv(const Context *context, GLuint first, GLsizei count, const GLint *v);
274 bool ValidateScissorIndexed(const Context *context,
275                             GLuint index,
276                             GLint left,
277                             GLint bottom,
278                             GLsizei width,
279                             GLsizei height);
280 bool ValidateScissorIndexedv(const Context *context, GLuint index, const GLint *v);
281 bool ValidateVertexAttribL1d(const Context *context, GLuint index, GLdouble x);
282 bool ValidateVertexAttribL1dv(const Context *context, GLuint index, const GLdouble *v);
283 bool ValidateVertexAttribL2d(const Context *context, GLuint index, GLdouble x, GLdouble y);
284 bool ValidateVertexAttribL2dv(const Context *context, GLuint index, const GLdouble *v);
285 bool ValidateVertexAttribL3d(const Context *context,
286                              GLuint index,
287                              GLdouble x,
288                              GLdouble y,
289                              GLdouble z);
290 bool ValidateVertexAttribL3dv(const Context *context, GLuint index, const GLdouble *v);
291 bool ValidateVertexAttribL4d(const Context *context,
292                              GLuint index,
293                              GLdouble x,
294                              GLdouble y,
295                              GLdouble z,
296                              GLdouble w);
297 bool ValidateVertexAttribL4dv(const Context *context, GLuint index, const GLdouble *v);
298 bool ValidateVertexAttribLPointer(const Context *context,
299                                   GLuint index,
300                                   GLint size,
301                                   GLenum type,
302                                   GLsizei stride,
303                                   const void *pointer);
304 bool ValidateViewportArrayv(const Context *context, GLuint first, GLsizei count, const GLfloat *v);
305 bool ValidateViewportIndexedf(const Context *context,
306                               GLuint index,
307                               GLfloat x,
308                               GLfloat y,
309                               GLfloat w,
310                               GLfloat h);
311 bool ValidateViewportIndexedfv(const Context *context, GLuint index, const GLfloat *v);
312 
313 // GL 4.2
314 bool ValidateDrawArraysInstancedBaseInstance(const Context *context,
315                                              PrimitiveMode modePacked,
316                                              GLint first,
317                                              GLsizei count,
318                                              GLsizei instancecount,
319                                              GLuint baseinstance);
320 bool ValidateDrawElementsInstancedBaseInstance(const Context *context,
321                                                GLenum mode,
322                                                GLsizei count,
323                                                GLenum type,
324                                                const void *indices,
325                                                GLsizei instancecount,
326                                                GLuint baseinstance);
327 bool ValidateDrawElementsInstancedBaseVertexBaseInstance(const Context *context,
328                                                          PrimitiveMode modePacked,
329                                                          GLsizei count,
330                                                          DrawElementsType typePacked,
331                                                          const void *indices,
332                                                          GLsizei instancecount,
333                                                          GLint basevertex,
334                                                          GLuint baseinstance);
335 bool ValidateDrawTransformFeedbackInstanced(const Context *context,
336                                             GLenum mode,
337                                             TransformFeedbackID idPacked,
338                                             GLsizei instancecount);
339 bool ValidateDrawTransformFeedbackStreamInstanced(const Context *context,
340                                                   GLenum mode,
341                                                   TransformFeedbackID idPacked,
342                                                   GLuint stream,
343                                                   GLsizei instancecount);
344 bool ValidateGetActiveAtomicCounterBufferiv(const Context *context,
345                                             ShaderProgramID programPacked,
346                                             GLuint bufferIndex,
347                                             GLenum pname,
348                                             const GLint *params);
349 bool ValidateTexStorage1D(const Context *context,
350                           GLenum target,
351                           GLsizei levels,
352                           GLenum internalformat,
353                           GLsizei width);
354 
355 // GL 4.3
356 bool ValidateClearBufferData(const Context *context,
357                              GLenum target,
358                              GLenum internalformat,
359                              GLenum format,
360                              GLenum type,
361                              const void *data);
362 bool ValidateClearBufferSubData(const Context *context,
363                                 GLenum target,
364                                 GLenum internalformat,
365                                 GLintptr offset,
366                                 GLsizeiptr size,
367                                 GLenum format,
368                                 GLenum type,
369                                 const void *data);
370 bool ValidateGetInternalformati64v(const Context *context,
371                                    GLenum target,
372                                    GLenum internalformat,
373                                    GLenum pname,
374                                    GLsizei bufSize,
375                                    const GLint64 *params);
376 bool ValidateGetProgramResourceLocationIndex(const Context *context,
377                                              ShaderProgramID programPacked,
378                                              GLenum programInterface,
379                                              const GLchar *name);
380 bool ValidateInvalidateBufferData(const Context *context, BufferID bufferPacked);
381 bool ValidateInvalidateBufferSubData(const Context *context,
382                                      BufferID bufferPacked,
383                                      GLintptr offset,
384                                      GLsizeiptr length);
385 bool ValidateInvalidateTexImage(const Context *context, TextureID texturePacked, GLint level);
386 bool ValidateInvalidateTexSubImage(const Context *context,
387                                    TextureID texturePacked,
388                                    GLint level,
389                                    GLint xoffset,
390                                    GLint yoffset,
391                                    GLint zoffset,
392                                    GLsizei width,
393                                    GLsizei height,
394                                    GLsizei depth);
395 bool ValidateMultiDrawArraysIndirect(const Context *context,
396                                      GLenum mode,
397                                      const void *indirect,
398                                      GLsizei drawcount,
399                                      GLsizei stride);
400 bool ValidateMultiDrawElementsIndirect(const Context *context,
401                                        GLenum mode,
402                                        GLenum type,
403                                        const void *indirect,
404                                        GLsizei drawcount,
405                                        GLsizei stride);
406 bool ValidateShaderStorageBlockBinding(const Context *context,
407                                        ShaderProgramID programPacked,
408                                        GLuint storageBlockIndex,
409                                        GLuint storageBlockBinding);
410 bool ValidateTextureView(const Context *context,
411                          TextureID texturePacked,
412                          GLenum target,
413                          GLuint origtexture,
414                          GLenum internalformat,
415                          GLuint minlevel,
416                          GLuint numlevels,
417                          GLuint minlayer,
418                          GLuint numlayers);
419 bool ValidateVertexAttribLFormat(const Context *context,
420                                  GLuint attribindex,
421                                  GLint size,
422                                  GLenum type,
423                                  GLuint relativeoffset);
424 
425 // GL 4.4
426 bool ValidateBindBuffersBase(const Context *context,
427                              GLenum target,
428                              GLuint first,
429                              GLsizei count,
430                              const BufferID *buffersPacked);
431 bool ValidateBindBuffersRange(const Context *context,
432                               GLenum target,
433                               GLuint first,
434                               GLsizei count,
435                               const BufferID *buffersPacked,
436                               const GLintptr *offsets,
437                               const GLsizeiptr *sizes);
438 bool ValidateBindImageTextures(const Context *context,
439                                GLuint first,
440                                GLsizei count,
441                                const GLuint *textures);
442 bool ValidateBindSamplers(const Context *context,
443                           GLuint first,
444                           GLsizei count,
445                           const GLuint *samplers);
446 bool ValidateBindTextures(const Context *context,
447                           GLuint first,
448                           GLsizei count,
449                           const GLuint *textures);
450 bool ValidateBindVertexBuffers(const Context *context,
451                                GLuint first,
452                                GLsizei count,
453                                const BufferID *buffersPacked,
454                                const GLintptr *offsets,
455                                const GLsizei *strides);
456 bool ValidateBufferStorage(const Context *context,
457                            BufferBinding targetPacked,
458                            GLsizeiptr size,
459                            const void *data,
460                            GLbitfield flags);
461 bool ValidateClearTexImage(const Context *context,
462                            TextureID texturePacked,
463                            GLint level,
464                            GLenum format,
465                            GLenum type,
466                            const void *data);
467 bool ValidateClearTexSubImage(const Context *context,
468                               TextureID texturePacked,
469                               GLint level,
470                               GLint xoffset,
471                               GLint yoffset,
472                               GLint zoffset,
473                               GLsizei width,
474                               GLsizei height,
475                               GLsizei depth,
476                               GLenum format,
477                               GLenum type,
478                               const void *data);
479 
480 // GL 4.5
481 bool ValidateBindTextureUnit(const Context *context, GLuint unit, TextureID texturePacked);
482 bool ValidateBlitNamedFramebuffer(const Context *context,
483                                   GLuint readFramebuffer,
484                                   GLuint drawFramebuffer,
485                                   GLint srcX0,
486                                   GLint srcY0,
487                                   GLint srcX1,
488                                   GLint srcY1,
489                                   GLint dstX0,
490                                   GLint dstY0,
491                                   GLint dstX1,
492                                   GLint dstY1,
493                                   GLbitfield mask,
494                                   GLenum filter);
495 bool ValidateCheckNamedFramebufferStatus(const Context *context,
496                                          FramebufferID framebufferPacked,
497                                          GLenum target);
498 bool ValidateClearNamedBufferData(const Context *context,
499                                   BufferID bufferPacked,
500                                   GLenum internalformat,
501                                   GLenum format,
502                                   GLenum type,
503                                   const void *data);
504 bool ValidateClearNamedBufferSubData(const Context *context,
505                                      BufferID bufferPacked,
506                                      GLenum internalformat,
507                                      GLintptr offset,
508                                      GLsizeiptr size,
509                                      GLenum format,
510                                      GLenum type,
511                                      const void *data);
512 bool ValidateClearNamedFramebufferfi(const Context *context,
513                                      FramebufferID framebufferPacked,
514                                      GLenum buffer,
515                                      GLint drawbuffer,
516                                      GLfloat depth,
517                                      GLint stencil);
518 bool ValidateClearNamedFramebufferfv(const Context *context,
519                                      FramebufferID framebufferPacked,
520                                      GLenum buffer,
521                                      GLint drawbuffer,
522                                      const GLfloat *value);
523 bool ValidateClearNamedFramebufferiv(const Context *context,
524                                      FramebufferID framebufferPacked,
525                                      GLenum buffer,
526                                      GLint drawbuffer,
527                                      const GLint *value);
528 bool ValidateClearNamedFramebufferuiv(const Context *context,
529                                       FramebufferID framebufferPacked,
530                                       GLenum buffer,
531                                       GLint drawbuffer,
532                                       const GLuint *value);
533 bool ValidateClipControl(const Context *context, GLenum origin, GLenum depth);
534 bool ValidateCompressedTextureSubImage1D(const Context *context,
535                                          TextureID texturePacked,
536                                          GLint level,
537                                          GLint xoffset,
538                                          GLsizei width,
539                                          GLenum format,
540                                          GLsizei imageSize,
541                                          const void *data);
542 bool ValidateCompressedTextureSubImage2D(const Context *context,
543                                          TextureID texturePacked,
544                                          GLint level,
545                                          GLint xoffset,
546                                          GLint yoffset,
547                                          GLsizei width,
548                                          GLsizei height,
549                                          GLenum format,
550                                          GLsizei imageSize,
551                                          const void *data);
552 bool ValidateCompressedTextureSubImage3D(const Context *context,
553                                          TextureID texturePacked,
554                                          GLint level,
555                                          GLint xoffset,
556                                          GLint yoffset,
557                                          GLint zoffset,
558                                          GLsizei width,
559                                          GLsizei height,
560                                          GLsizei depth,
561                                          GLenum format,
562                                          GLsizei imageSize,
563                                          const void *data);
564 bool ValidateCopyNamedBufferSubData(const Context *context,
565                                     GLuint readBuffer,
566                                     GLuint writeBuffer,
567                                     GLintptr readOffset,
568                                     GLintptr writeOffset,
569                                     GLsizeiptr size);
570 bool ValidateCopyTextureSubImage1D(const Context *context,
571                                    TextureID texturePacked,
572                                    GLint level,
573                                    GLint xoffset,
574                                    GLint x,
575                                    GLint y,
576                                    GLsizei width);
577 bool ValidateCopyTextureSubImage2D(const Context *context,
578                                    TextureID texturePacked,
579                                    GLint level,
580                                    GLint xoffset,
581                                    GLint yoffset,
582                                    GLint x,
583                                    GLint y,
584                                    GLsizei width,
585                                    GLsizei height);
586 bool ValidateCopyTextureSubImage3D(const Context *context,
587                                    TextureID texturePacked,
588                                    GLint level,
589                                    GLint xoffset,
590                                    GLint yoffset,
591                                    GLint zoffset,
592                                    GLint x,
593                                    GLint y,
594                                    GLsizei width,
595                                    GLsizei height);
596 bool ValidateCreateBuffers(const Context *context, GLsizei n, const BufferID *buffersPacked);
597 bool ValidateCreateFramebuffers(const Context *context, GLsizei n, const GLuint *framebuffers);
598 bool ValidateCreateProgramPipelines(const Context *context, GLsizei n, const GLuint *pipelines);
599 bool ValidateCreateQueries(const Context *context, GLenum target, GLsizei n, const GLuint *ids);
600 bool ValidateCreateRenderbuffers(const Context *context,
601                                  GLsizei n,
602                                  const RenderbufferID *renderbuffersPacked);
603 bool ValidateCreateSamplers(const Context *context, GLsizei n, const GLuint *samplers);
604 bool ValidateCreateTextures(const Context *context,
605                             GLenum target,
606                             GLsizei n,
607                             const GLuint *textures);
608 bool ValidateCreateTransformFeedbacks(const Context *context, GLsizei n, const GLuint *ids);
609 bool ValidateCreateVertexArrays(const Context *context,
610                                 GLsizei n,
611                                 const VertexArrayID *arraysPacked);
612 bool ValidateDisableVertexArrayAttrib(const Context *context,
613                                       VertexArrayID vaobjPacked,
614                                       GLuint index);
615 bool ValidateEnableVertexArrayAttrib(const Context *context,
616                                      VertexArrayID vaobjPacked,
617                                      GLuint index);
618 bool ValidateFlushMappedNamedBufferRange(const Context *context,
619                                          BufferID bufferPacked,
620                                          GLintptr offset,
621                                          GLsizeiptr length);
622 bool ValidateGenerateTextureMipmap(const Context *context, TextureID texturePacked);
623 bool ValidateGetCompressedTextureImage(const Context *context,
624                                        TextureID texturePacked,
625                                        GLint level,
626                                        GLsizei bufSize,
627                                        const void *pixels);
628 bool ValidateGetCompressedTextureSubImage(const Context *context,
629                                           TextureID texturePacked,
630                                           GLint level,
631                                           GLint xoffset,
632                                           GLint yoffset,
633                                           GLint zoffset,
634                                           GLsizei width,
635                                           GLsizei height,
636                                           GLsizei depth,
637                                           GLsizei bufSize,
638                                           const void *pixels);
639 bool ValidateGetNamedBufferParameteri64v(const Context *context,
640                                          BufferID bufferPacked,
641                                          GLenum pname,
642                                          const GLint64 *params);
643 bool ValidateGetNamedBufferParameteriv(const Context *context,
644                                        BufferID bufferPacked,
645                                        GLenum pname,
646                                        const GLint *params);
647 bool ValidateGetNamedBufferPointerv(const Context *context,
648                                     BufferID bufferPacked,
649                                     GLenum pname,
650                                     void *const *params);
651 bool ValidateGetNamedBufferSubData(const Context *context,
652                                    BufferID bufferPacked,
653                                    GLintptr offset,
654                                    GLsizeiptr size,
655                                    const void *data);
656 bool ValidateGetNamedFramebufferAttachmentParameteriv(const Context *context,
657                                                       FramebufferID framebufferPacked,
658                                                       GLenum attachment,
659                                                       GLenum pname,
660                                                       const GLint *params);
661 bool ValidateGetNamedFramebufferParameteriv(const Context *context,
662                                             FramebufferID framebufferPacked,
663                                             GLenum pname,
664                                             const GLint *param);
665 bool ValidateGetNamedRenderbufferParameteriv(const Context *context,
666                                              RenderbufferID renderbufferPacked,
667                                              GLenum pname,
668                                              const GLint *params);
669 bool ValidateGetQueryBufferObjecti64v(const Context *context,
670                                       GLuint id,
671                                       BufferID bufferPacked,
672                                       GLenum pname,
673                                       GLintptr offset);
674 bool ValidateGetQueryBufferObjectiv(const Context *context,
675                                     GLuint id,
676                                     BufferID bufferPacked,
677                                     GLenum pname,
678                                     GLintptr offset);
679 bool ValidateGetQueryBufferObjectui64v(const Context *context,
680                                        GLuint id,
681                                        BufferID bufferPacked,
682                                        GLenum pname,
683                                        GLintptr offset);
684 bool ValidateGetQueryBufferObjectuiv(const Context *context,
685                                      GLuint id,
686                                      BufferID bufferPacked,
687                                      GLenum pname,
688                                      GLintptr offset);
689 bool ValidateGetTextureImage(const Context *context,
690                              TextureID texturePacked,
691                              GLint level,
692                              GLenum format,
693                              GLenum type,
694                              GLsizei bufSize,
695                              const void *pixels);
696 bool ValidateGetTextureLevelParameterfv(const Context *context,
697                                         TextureID texturePacked,
698                                         GLint level,
699                                         GLenum pname,
700                                         const GLfloat *params);
701 bool ValidateGetTextureLevelParameteriv(const Context *context,
702                                         TextureID texturePacked,
703                                         GLint level,
704                                         GLenum pname,
705                                         const GLint *params);
706 bool ValidateGetTextureParameterIiv(const Context *context,
707                                     TextureID texturePacked,
708                                     GLenum pname,
709                                     const GLint *params);
710 bool ValidateGetTextureParameterIuiv(const Context *context,
711                                      TextureID texturePacked,
712                                      GLenum pname,
713                                      const GLuint *params);
714 bool ValidateGetTextureParameterfv(const Context *context,
715                                    TextureID texturePacked,
716                                    GLenum pname,
717                                    const GLfloat *params);
718 bool ValidateGetTextureParameteriv(const Context *context,
719                                    TextureID texturePacked,
720                                    GLenum pname,
721                                    const GLint *params);
722 bool ValidateGetTextureSubImage(const Context *context,
723                                 TextureID texturePacked,
724                                 GLint level,
725                                 GLint xoffset,
726                                 GLint yoffset,
727                                 GLint zoffset,
728                                 GLsizei width,
729                                 GLsizei height,
730                                 GLsizei depth,
731                                 GLenum format,
732                                 GLenum type,
733                                 GLsizei bufSize,
734                                 const void *pixels);
735 bool ValidateGetTransformFeedbacki64_v(const Context *context,
736                                        GLuint xfb,
737                                        GLenum pname,
738                                        GLuint index,
739                                        const GLint64 *param);
740 bool ValidateGetTransformFeedbacki_v(const Context *context,
741                                      GLuint xfb,
742                                      GLenum pname,
743                                      GLuint index,
744                                      const GLint *param);
745 bool ValidateGetTransformFeedbackiv(const Context *context,
746                                     GLuint xfb,
747                                     GLenum pname,
748                                     const GLint *param);
749 bool ValidateGetVertexArrayIndexed64iv(const Context *context,
750                                        VertexArrayID vaobjPacked,
751                                        GLuint index,
752                                        GLenum pname,
753                                        const GLint64 *param);
754 bool ValidateGetVertexArrayIndexediv(const Context *context,
755                                      VertexArrayID vaobjPacked,
756                                      GLuint index,
757                                      GLenum pname,
758                                      const GLint *param);
759 bool ValidateGetVertexArrayiv(const Context *context,
760                               VertexArrayID vaobjPacked,
761                               GLenum pname,
762                               const GLint *param);
763 bool ValidateGetnColorTable(const Context *context,
764                             GLenum target,
765                             GLenum format,
766                             GLenum type,
767                             GLsizei bufSize,
768                             const void *table);
769 bool ValidateGetnCompressedTexImage(const Context *context,
770                                     GLenum target,
771                                     GLint lod,
772                                     GLsizei bufSize,
773                                     const void *pixels);
774 bool ValidateGetnConvolutionFilter(const Context *context,
775                                    GLenum target,
776                                    GLenum format,
777                                    GLenum type,
778                                    GLsizei bufSize,
779                                    const void *image);
780 bool ValidateGetnHistogram(const Context *context,
781                            GLenum target,
782                            GLboolean reset,
783                            GLenum format,
784                            GLenum type,
785                            GLsizei bufSize,
786                            const void *values);
787 bool ValidateGetnMapdv(const Context *context,
788                        GLenum target,
789                        GLenum query,
790                        GLsizei bufSize,
791                        const GLdouble *v);
792 bool ValidateGetnMapfv(const Context *context,
793                        GLenum target,
794                        GLenum query,
795                        GLsizei bufSize,
796                        const GLfloat *v);
797 bool ValidateGetnMapiv(const Context *context,
798                        GLenum target,
799                        GLenum query,
800                        GLsizei bufSize,
801                        const GLint *v);
802 bool ValidateGetnMinmax(const Context *context,
803                         GLenum target,
804                         GLboolean reset,
805                         GLenum format,
806                         GLenum type,
807                         GLsizei bufSize,
808                         const void *values);
809 bool ValidateGetnPixelMapfv(const Context *context,
810                             GLenum map,
811                             GLsizei bufSize,
812                             const GLfloat *values);
813 bool ValidateGetnPixelMapuiv(const Context *context,
814                              GLenum map,
815                              GLsizei bufSize,
816                              const GLuint *values);
817 bool ValidateGetnPixelMapusv(const Context *context,
818                              GLenum map,
819                              GLsizei bufSize,
820                              const GLushort *values);
821 bool ValidateGetnPolygonStipple(const Context *context, GLsizei bufSize, const GLubyte *pattern);
822 bool ValidateGetnSeparableFilter(const Context *context,
823                                  GLenum target,
824                                  GLenum format,
825                                  GLenum type,
826                                  GLsizei rowBufSize,
827                                  const void *row,
828                                  GLsizei columnBufSize,
829                                  const void *column,
830                                  const void *span);
831 bool ValidateGetnTexImage(const Context *context,
832                           GLenum target,
833                           GLint level,
834                           GLenum format,
835                           GLenum type,
836                           GLsizei bufSize,
837                           const void *pixels);
838 bool ValidateGetnUniformdv(const Context *context,
839                            ShaderProgramID programPacked,
840                            UniformLocation locationPacked,
841                            GLsizei bufSize,
842                            const GLdouble *params);
843 bool ValidateInvalidateNamedFramebufferData(const Context *context,
844                                             FramebufferID framebufferPacked,
845                                             GLsizei numAttachments,
846                                             const GLenum *attachments);
847 bool ValidateInvalidateNamedFramebufferSubData(const Context *context,
848                                                FramebufferID framebufferPacked,
849                                                GLsizei numAttachments,
850                                                const GLenum *attachments,
851                                                GLint x,
852                                                GLint y,
853                                                GLsizei width,
854                                                GLsizei height);
855 bool ValidateMapNamedBuffer(const Context *context, BufferID bufferPacked, GLenum access);
856 bool ValidateMapNamedBufferRange(const Context *context,
857                                  BufferID bufferPacked,
858                                  GLintptr offset,
859                                  GLsizeiptr length,
860                                  GLbitfield access);
861 bool ValidateNamedBufferData(const Context *context,
862                              BufferID bufferPacked,
863                              GLsizeiptr size,
864                              const void *data,
865                              GLenum usage);
866 bool ValidateNamedBufferStorage(const Context *context,
867                                 BufferID bufferPacked,
868                                 GLsizeiptr size,
869                                 const void *data,
870                                 GLbitfield flags);
871 bool ValidateNamedBufferSubData(const Context *context,
872                                 BufferID bufferPacked,
873                                 GLintptr offset,
874                                 GLsizeiptr size,
875                                 const void *data);
876 bool ValidateNamedFramebufferDrawBuffer(const Context *context,
877                                         FramebufferID framebufferPacked,
878                                         GLenum buf);
879 bool ValidateNamedFramebufferDrawBuffers(const Context *context,
880                                          FramebufferID framebufferPacked,
881                                          GLsizei n,
882                                          const GLenum *bufs);
883 bool ValidateNamedFramebufferParameteri(const Context *context,
884                                         FramebufferID framebufferPacked,
885                                         GLenum pname,
886                                         GLint param);
887 bool ValidateNamedFramebufferReadBuffer(const Context *context,
888                                         FramebufferID framebufferPacked,
889                                         GLenum src);
890 bool ValidateNamedFramebufferRenderbuffer(const Context *context,
891                                           FramebufferID framebufferPacked,
892                                           GLenum attachment,
893                                           GLenum renderbuffertarget,
894                                           RenderbufferID renderbufferPacked);
895 bool ValidateNamedFramebufferTexture(const Context *context,
896                                      FramebufferID framebufferPacked,
897                                      GLenum attachment,
898                                      TextureID texturePacked,
899                                      GLint level);
900 bool ValidateNamedFramebufferTextureLayer(const Context *context,
901                                           FramebufferID framebufferPacked,
902                                           GLenum attachment,
903                                           TextureID texturePacked,
904                                           GLint level,
905                                           GLint layer);
906 bool ValidateNamedRenderbufferStorage(const Context *context,
907                                       RenderbufferID renderbufferPacked,
908                                       GLenum internalformat,
909                                       GLsizei width,
910                                       GLsizei height);
911 bool ValidateNamedRenderbufferStorageMultisample(const Context *context,
912                                                  RenderbufferID renderbufferPacked,
913                                                  GLsizei samples,
914                                                  GLenum internalformat,
915                                                  GLsizei width,
916                                                  GLsizei height);
917 bool ValidateTextureBarrier(const Context *context);
918 bool ValidateTextureBuffer(const Context *context,
919                            TextureID texturePacked,
920                            GLenum internalformat,
921                            BufferID bufferPacked);
922 bool ValidateTextureBufferRange(const Context *context,
923                                 TextureID texturePacked,
924                                 GLenum internalformat,
925                                 BufferID bufferPacked,
926                                 GLintptr offset,
927                                 GLsizeiptr size);
928 bool ValidateTextureParameterIiv(const Context *context,
929                                  TextureID texturePacked,
930                                  GLenum pname,
931                                  const GLint *params);
932 bool ValidateTextureParameterIuiv(const Context *context,
933                                   TextureID texturePacked,
934                                   GLenum pname,
935                                   const GLuint *params);
936 bool ValidateTextureParameterf(const Context *context,
937                                TextureID texturePacked,
938                                GLenum pname,
939                                GLfloat param);
940 bool ValidateTextureParameterfv(const Context *context,
941                                 TextureID texturePacked,
942                                 GLenum pname,
943                                 const GLfloat *param);
944 bool ValidateTextureParameteri(const Context *context,
945                                TextureID texturePacked,
946                                GLenum pname,
947                                GLint param);
948 bool ValidateTextureParameteriv(const Context *context,
949                                 TextureID texturePacked,
950                                 GLenum pname,
951                                 const GLint *param);
952 bool ValidateTextureStorage1D(const Context *context,
953                               TextureID texturePacked,
954                               GLsizei levels,
955                               GLenum internalformat,
956                               GLsizei width);
957 bool ValidateTextureStorage2D(const Context *context,
958                               TextureID texturePacked,
959                               GLsizei levels,
960                               GLenum internalformat,
961                               GLsizei width,
962                               GLsizei height);
963 bool ValidateTextureStorage2DMultisample(const Context *context,
964                                          TextureID texturePacked,
965                                          GLsizei samples,
966                                          GLenum internalformat,
967                                          GLsizei width,
968                                          GLsizei height,
969                                          GLboolean fixedsamplelocations);
970 bool ValidateTextureStorage3D(const Context *context,
971                               TextureID texturePacked,
972                               GLsizei levels,
973                               GLenum internalformat,
974                               GLsizei width,
975                               GLsizei height,
976                               GLsizei depth);
977 bool ValidateTextureStorage3DMultisample(const Context *context,
978                                          TextureID texturePacked,
979                                          GLsizei samples,
980                                          GLenum internalformat,
981                                          GLsizei width,
982                                          GLsizei height,
983                                          GLsizei depth,
984                                          GLboolean fixedsamplelocations);
985 bool ValidateTextureSubImage1D(const Context *context,
986                                TextureID texturePacked,
987                                GLint level,
988                                GLint xoffset,
989                                GLsizei width,
990                                GLenum format,
991                                GLenum type,
992                                const void *pixels);
993 bool ValidateTextureSubImage2D(const Context *context,
994                                TextureID texturePacked,
995                                GLint level,
996                                GLint xoffset,
997                                GLint yoffset,
998                                GLsizei width,
999                                GLsizei height,
1000                                GLenum format,
1001                                GLenum type,
1002                                const void *pixels);
1003 bool ValidateTextureSubImage3D(const Context *context,
1004                                TextureID texturePacked,
1005                                GLint level,
1006                                GLint xoffset,
1007                                GLint yoffset,
1008                                GLint zoffset,
1009                                GLsizei width,
1010                                GLsizei height,
1011                                GLsizei depth,
1012                                GLenum format,
1013                                GLenum type,
1014                                const void *pixels);
1015 bool ValidateTransformFeedbackBufferBase(const Context *context,
1016                                          GLuint xfb,
1017                                          GLuint index,
1018                                          BufferID bufferPacked);
1019 bool ValidateTransformFeedbackBufferRange(const Context *context,
1020                                           GLuint xfb,
1021                                           GLuint index,
1022                                           BufferID bufferPacked,
1023                                           GLintptr offset,
1024                                           GLsizeiptr size);
1025 bool ValidateUnmapNamedBuffer(const Context *context, BufferID bufferPacked);
1026 bool ValidateVertexArrayAttribBinding(const Context *context,
1027                                       VertexArrayID vaobjPacked,
1028                                       GLuint attribindex,
1029                                       GLuint bindingindex);
1030 bool ValidateVertexArrayAttribFormat(const Context *context,
1031                                      VertexArrayID vaobjPacked,
1032                                      GLuint attribindex,
1033                                      GLint size,
1034                                      GLenum type,
1035                                      GLboolean normalized,
1036                                      GLuint relativeoffset);
1037 bool ValidateVertexArrayAttribIFormat(const Context *context,
1038                                       VertexArrayID vaobjPacked,
1039                                       GLuint attribindex,
1040                                       GLint size,
1041                                       GLenum type,
1042                                       GLuint relativeoffset);
1043 bool ValidateVertexArrayAttribLFormat(const Context *context,
1044                                       VertexArrayID vaobjPacked,
1045                                       GLuint attribindex,
1046                                       GLint size,
1047                                       GLenum type,
1048                                       GLuint relativeoffset);
1049 bool ValidateVertexArrayBindingDivisor(const Context *context,
1050                                        VertexArrayID vaobjPacked,
1051                                        GLuint bindingindex,
1052                                        GLuint divisor);
1053 bool ValidateVertexArrayElementBuffer(const Context *context,
1054                                       VertexArrayID vaobjPacked,
1055                                       BufferID bufferPacked);
1056 bool ValidateVertexArrayVertexBuffer(const Context *context,
1057                                      VertexArrayID vaobjPacked,
1058                                      GLuint bindingindex,
1059                                      BufferID bufferPacked,
1060                                      GLintptr offset,
1061                                      GLsizei stride);
1062 bool ValidateVertexArrayVertexBuffers(const Context *context,
1063                                       VertexArrayID vaobjPacked,
1064                                       GLuint first,
1065                                       GLsizei count,
1066                                       const BufferID *buffersPacked,
1067                                       const GLintptr *offsets,
1068                                       const GLsizei *strides);
1069 
1070 // GL 4.6
1071 bool ValidateMultiDrawArraysIndirectCount(const Context *context,
1072                                           GLenum mode,
1073                                           const void *indirect,
1074                                           GLintptr drawcount,
1075                                           GLsizei maxdrawcount,
1076                                           GLsizei stride);
1077 bool ValidateMultiDrawElementsIndirectCount(const Context *context,
1078                                             GLenum mode,
1079                                             GLenum type,
1080                                             const void *indirect,
1081                                             GLintptr drawcount,
1082                                             GLsizei maxdrawcount,
1083                                             GLsizei stride);
1084 bool ValidatePolygonOffsetClamp(const Context *context,
1085                                 GLfloat factor,
1086                                 GLfloat units,
1087                                 GLfloat clamp);
1088 bool ValidateSpecializeShader(const Context *context,
1089                               GLuint shader,
1090                               const GLchar *pEntryPoint,
1091                               GLuint numSpecializationConstants,
1092                               const GLuint *pConstantIndex,
1093                               const GLuint *pConstantValue);
1094 }  // namespace gl
1095 
1096 #endif  // LIBANGLE_VALIDATION_GL4_AUTOGEN_H_
1097