webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
validationES3.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2013 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 
7 // validationES3.h: Validation functions for OpenGL ES 3.0 entry point parameters
8 
9 #ifndef LIBANGLE_VALIDATION_ES3_H_
10 #define LIBANGLE_VALIDATION_ES3_H_
11 
12 #include <GLES3/gl3.h>
13 
14 namespace gl
15 {
16 class Context;
17 struct IndexRange;
18 class ValidationContext;
19 
20 bool ValidateES3TexImageParametersBase(ValidationContext *context,
21  GLenum target,
22  GLint level,
24  bool isCompressed,
25  bool isSubImage,
26  GLint xoffset,
27  GLint yoffset,
28  GLint zoffset,
29  GLsizei width,
31  GLsizei depth,
32  GLint border,
33  GLenum format,
34  GLenum type,
36  const GLvoid *pixels);
37 
39  GLenum target,
42  GLsizei width,
44  GLsizei depth);
45 
47  GLenum target,
48  GLint level,
50  bool isCompressed,
51  bool isSubImage,
52  GLint xoffset,
53  GLint yoffset,
54  GLint zoffset,
55  GLsizei width,
57  GLsizei depth,
58  GLint border,
59  GLenum format,
60  GLenum type,
62  const GLvoid *pixels);
63 
65  GLenum target,
66  GLint level,
68  bool isCompressed,
69  bool isSubImage,
70  GLint xoffset,
71  GLint yoffset,
72  GLint zoffset,
73  GLsizei width,
75  GLsizei depth,
76  GLint border,
77  GLenum format,
78  GLenum type,
80  const GLvoid *pixels);
81 
82 bool ValidateES3CopyTexImageParametersBase(ValidationContext *context,
83  GLenum target,
84  GLint level,
86  bool isSubImage,
87  GLint xoffset,
88  GLint yoffset,
89  GLint zoffset,
90  GLint x,
91  GLint y,
92  GLsizei width,
94  GLint border);
95 
96 bool ValidateES3CopyTexImage2DParameters(ValidationContext *context,
97  GLenum target,
98  GLint level,
100  bool isSubImage,
101  GLint xoffset,
102  GLint yoffset,
103  GLint zoffset,
104  GLint x,
105  GLint y,
106  GLsizei width,
107  GLsizei height,
108  GLint border);
109 
110 bool ValidateES3CopyTexImage3DParameters(ValidationContext *context,
111  GLenum target,
112  GLint level,
114  bool isSubImage,
115  GLint xoffset,
116  GLint yoffset,
117  GLint zoffset,
118  GLint x,
119  GLint y,
120  GLsizei width,
121  GLsizei height,
122  GLint border);
123 
125  GLenum target,
126  GLsizei levels,
128  GLsizei width,
129  GLsizei height,
130  GLsizei depth);
131 
133  GLenum target,
134  GLsizei levels,
136  GLsizei width,
137  GLsizei height,
138  GLsizei depth);
139 
141  GLenum target,
142  GLsizei levels,
144  GLsizei width,
145  GLsizei height,
146  GLsizei depth);
147 
149 
151 
153 
155 
158 
161 
163  const GLenum *attachments);
164 
165 bool ValidateClearBuffer(ValidationContext *context);
166 
168  GLenum mode,
169  GLuint start,
170  GLuint end,
171  GLsizei count,
172  GLenum type,
173  const GLvoid *indices,
174  IndexRange *indexRange);
175 
177 
179 
181  GLenum target,
182  GLint level,
184  GLsizei width,
185  GLsizei height,
186  GLsizei depth,
187  GLint border,
189  const GLvoid *data);
190 
193 
195  GLuint program,
197  const void *binary,
198  GLint length);
200  GLuint program,
202  GLsizei *length,
204  void *binary);
207  GLint srcX0,
208  GLint srcY0,
209  GLint srcX1,
210  GLint srcY1,
211  GLint dstX0,
212  GLint dstY0,
213  GLint dstX1,
214  GLint dstY1,
216  GLenum filter);
217 bool ValidateClearBufferiv(ValidationContext *context,
218  GLenum buffer,
220  const GLint *value);
221 bool ValidateClearBufferuiv(ValidationContext *context,
222  GLenum buffer,
224  const GLuint *value);
225 bool ValidateClearBufferfv(ValidationContext *context,
226  GLenum buffer,
228  const GLfloat *value);
229 bool ValidateClearBufferfi(ValidationContext *context,
230  GLenum buffer,
232  GLfloat depth,
233  GLint stencil);
234 bool ValidateDrawBuffers(ValidationContext *context, GLsizei n, const GLenum *bufs);
236  GLenum target,
237  GLint level,
238  GLint xoffset,
239  GLint yoffset,
240  GLint zoffset,
241  GLint x,
242  GLint y,
243  GLsizei width,
244  GLsizei height);
246  GLenum target,
247  GLint level,
249  GLsizei width,
250  GLsizei height,
251  GLsizei depth,
252  GLint border,
253  GLenum format,
254  GLenum type,
255  const GLvoid *pixels);
257  GLenum target,
258  GLint level,
260  GLsizei width,
261  GLsizei height,
262  GLsizei depth,
263  GLint border,
264  GLenum format,
265  GLenum type,
267  const GLvoid *pixels);
269  GLenum target,
270  GLint level,
271  GLint xoffset,
272  GLint yoffset,
273  GLint zoffset,
274  GLsizei width,
275  GLsizei height,
276  GLsizei depth,
277  GLenum format,
278  GLenum type,
279  const GLvoid *pixels);
281  GLenum target,
282  GLint level,
283  GLint xoffset,
284  GLint yoffset,
285  GLint zoffset,
286  GLsizei width,
287  GLsizei height,
288  GLsizei depth,
289  GLenum format,
290  GLenum type,
292  const GLvoid *pixels);
294  GLenum target,
295  GLint level,
296  GLint xoffset,
297  GLint yoffset,
298  GLint zoffset,
299  GLsizei width,
300  GLsizei height,
301  GLsizei depth,
302  GLenum format,
304  const GLvoid *data);
305 
314 
317 
319 
322  GLenum target,
323  GLenum pname,
325  GLsizei *length,
326  GLvoid **params);
329  GLenum target,
334  GLenum target,
337 
338 bool ValidateIndexedStateQuery(ValidationContext *context,
339  GLenum pname,
340  GLuint index,
341  GLsizei *length);
342 bool ValidateGetIntegeri_v(ValidationContext *context, GLenum target, GLuint index, GLint *data);
343 bool ValidateGetIntegeri_vRobustANGLE(ValidationContext *context,
344  GLenum target,
345  GLuint index,
347  GLsizei *length,
348  GLint *data);
349 bool ValidateGetInteger64i_v(ValidationContext *context,
350  GLenum target,
351  GLuint index,
352  GLint64 *data);
353 bool ValidateGetInteger64i_vRobustANGLE(ValidationContext *context,
354  GLenum target,
355  GLuint index,
357  GLsizei *length,
358  GLint64 *data);
359 } // namespace gl
360 
361 #endif // LIBANGLE_VALIDATION_ES3_H_
bool ValidateUnmapBuffer(Context *context, GLenum target)
Definition: validationES3.cpp:1825
int GLint
Definition: gl2.h:76
bool ValidateES3CopyTexImage3DParameters(ValidationContext *context, GLenum target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
Definition: validationES3.cpp:746
bool ValidateProgramParameteri(Context *context, GLuint program, GLenum pname, GLint value)
Definition: validationES3.cpp:1338
bool ValidateGenOrDeleteCountES3(Context *context, GLint count)
Definition: validationES3.cpp:1750
GLint GLsizei count
Definition: gl2.h:421
bool ValidateDeleteTransformFeedbacks(Context *context, GLint n, const GLuint *ids)
Definition: validationES3.cpp:1710
bool ValidateGenVertexArrays(Context *context, GLint n, GLuint *)
Definition: validationES3.cpp:1730
bool ValidateGenSamplers(Context *context, GLint count, GLuint *)
Definition: validationES3.cpp:1695
bool ValidateES3TexStorage2DParameters(Context *context, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
Definition: validationES3.cpp:886
bool ValidateGenOrDeleteES3(Context *context, GLint n)
Definition: validationES3.cpp:1740
GLint GLint GLint GLint GLint GLint dstX1
Definition: gl2ext.h:818
EGLSurface EGLint EGLint EGLint EGLint height
Definition: eglext.h:950
bool ValidateDrawRangeElements(Context *context, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, IndexRange *indexRange)
Definition: validationES3.cpp:1118
GLint GLint GLint GLsizei GLsizei GLenum format
Definition: gl2.h:403
bool ValidateES3TexImage2DParameters(Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei imageSize, const GLvoid *pixels)
Definition: validationES3.cpp:287
GLuint GLuint end
Definition: gl2ext.h:323
GLuint GLsizei bufSize
Definition: gl2.h:435
GLint GLint GLint GLint GLint dstY0
Definition: gl2ext.h:818
bool ValidateCopyTexSubImage3D(Context *context, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: validationES3.cpp:1515
khronos_intptr_t GLintptr
Definition: gl2.h:74
bool ValidateDrawBuffers(ValidationContext *context, GLsizei n, const GLenum *bufs)
Definition: validationES3.cpp:1504
GLsizei numAttachments
Definition: gl2ext.h:1461
bool ValidateES3TexStorage3DParameters(Context *context, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
Definition: validationES3.cpp:904
EGLSurface EGLint EGLint EGLint width
Definition: eglext.h:950
bool ValidateGetProgramBinary(Context *context, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)
Definition: validationES3.cpp:1322
EGLContext EGLenum target
Definition: eglext.h:192
void * Context
Definition: platform_glx.h:177
bool ValidateGetUniformuiv(Context *context, GLuint program, GLint location, GLuint *params)
Definition: validationES3.cpp:1154
EGLOutputLayerEXT layer
Definition: eglext.h:695
EGLStreamKHR void * texture
Definition: eglext.h:568
bool ValidateTexImage3D(Context *context, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
Definition: validationES3.cpp:1536
unsigned int GLenum
Definition: gl2.h:69
bool ValidateDeleteSamplers(Context *context, GLint count, const GLuint *)
Definition: validationES3.cpp:1700
GLenum pname
Definition: gl2.h:440
CFArrayRef array
Definition: AVFoundationCFSoftLinking.h:129
bool ValidateClearBufferuiv(ValidationContext *context, GLenum buffer, GLint drawbuffer, const GLuint *value)
Definition: validationES3.cpp:1424
GLint srcY0
Definition: gl2ext.h:818
GLsizei levels
Definition: gl2ext.h:2167
bool ValidateGenQueries(Context *context, GLint n, GLuint *)
Definition: validationES3.cpp:1685
bool ValidateBindVertexArray(Context *context, GLuint array)
Definition: validationES3.cpp:1285
GLenum mode
Definition: gl2.h:461
bool ValidateBeginQuery(gl::Context *context, GLenum target, GLuint id)
Definition: validationES3.cpp:922
bool ValidateGetInteger64i_vRobustANGLE(ValidationContext *context, GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data)
Definition: validationES3.cpp:1977
GLsizei const GLenum * attachments
Definition: gl2ext.h:1461
GLint GLfloat GLint stencil
Definition: gl3.h:1052
bool ValidateGetQueryiv(Context *context, GLenum target, GLenum pname, GLint *params)
Definition: validationES3.cpp:944
GLint location
Definition: gl2.h:455
GLuint start
Definition: gl2ext.h:323
GLint GLsizei GLsizei GLenum GLenum void * pixels
Definition: gl2.h:473
GLint level
Definition: gl2.h:402
EGLStreamKHR EGLint n
Definition: eglext.h:984
khronos_float_t GLfloat
Definition: gl2.h:72
GLint GLuint mask
Definition: gl2.h:480
bool ValidateES3TexImage3DParameters(Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const GLvoid *pixels)
Definition: validationES3.cpp:316
EGLStreamKHR EGLint EGLint offset
Definition: eglext.h:984
bool ValidateClearBufferfi(ValidationContext *context, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
Definition: validationES3.cpp:1480
bool ValidateCompressedTexImage3D(Context *context, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)
Definition: validationES3.cpp:1216
bool ValidateInvalidateFramebuffer(Context *context, GLenum target, GLsizei numAttachments, const GLenum *attachments)
Definition: validationES3.cpp:1071
bool ValidateGetBufferPointerv(Context *context, GLenum target, GLenum pname, GLvoid **params)
Definition: validationES3.cpp:1795
GLsizei GLsizei GLenum * binaryFormat
Definition: gl2ext.h:396
EGLSurface EGLint x
Definition: eglext.h:950
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: gl2ext.h:818
GLint GLenum GLsizei GLsizei GLint GLsizei imageSize
Definition: gl2.h:402
bool ValidateES3CopyTexImageParametersBase(ValidationContext *context, GLenum target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
Definition: validationES3.cpp:655
GLint GLint GLint GLint dstX0
Definition: gl2ext.h:818
GLuint index
Definition: gl2.h:383
EGLAttrib * value
Definition: eglext.h:120
unsigned int GLuint
Definition: gl2.h:70
bool ValidateTexSubImage3DRobustANGLE(Context *context, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const GLvoid *pixels)
Definition: validationES3.cpp:1612
GLenum GLenum GLsizei const GLuint * ids
Definition: gl2ext.h:133
bool ValidateEndQuery(gl::Context *context, GLenum target)
Definition: validationES3.cpp:933
GLint drawbuffer
Definition: gl3.h:1049
const GLuint * arrays
Definition: gl2ext.h:730
bool ValidateBeginTransformFeedback(Context *context, GLenum primitiveMode)
Definition: validationES3.cpp:1765
EGLSurface EGLint EGLint y
Definition: eglext.h:950
bool ValidateGetIntegeri_v(ValidationContext *context, GLenum target, GLuint index, GLint *data)
Definition: validationES3.cpp:1926
GLint GLenum GLsizei GLsizei GLsizei depth
Definition: gl2ext.h:572
bool ValidateDeleteQueries(Context *context, GLint n, const GLuint *)
Definition: validationES3.cpp:1690
bool ValidateClearBufferiv(ValidationContext *context, GLenum buffer, GLint drawbuffer, const GLint *value)
Definition: validationES3.cpp:1392
GLint GLint GLint GLint GLint GLint GLint dstY1
Definition: gl2ext.h:818
GLint GLenum internalformat
Definition: gl2.h:402
khronos_ssize_t GLsizeiptr
Definition: gl2.h:73
bool ValidateGetBufferPointervRobustANGLE(Context *context, GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLvoid **params)
Definition: validationES3.cpp:1800
GLint GLint GLint GLint zoffset
Definition: gl2ext.h:573
bool ValidateES3TexStorageParametersBase(Context *context, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
Definition: validationES3.cpp:771
const GLuint GLenum const void * binary
Definition: gl2.h:478
EGLenum type
Definition: eglext.h:63
EGLStreamKHR EGLint EGLint EGLint const void * data
Definition: eglext.h:984
GLint GLint GLint srcY1
Definition: gl2ext.h:818
GLenum attachment
Definition: gl2.h:427
bool ValidateES3TexImageParametersBase(Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei imageSize, const GLvoid *pixels)
Definition: validationES3.cpp:57
bool ValidateBlitFramebuffer(Context *context, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
Definition: validationES3.cpp:1370
bool ValidateGetIntegeri_vRobustANGLE(ValidationContext *context, GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data)
Definition: validationES3.cpp:1936
GLsizei samples
Definition: gl2ext.h:707
bool ValidateES3CopyTexImage2DParameters(ValidationContext *context, GLenum target, GLint level, GLenum internalformat, bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
Definition: validationES3.cpp:721
khronos_int64_t GLint64
Definition: gl2.h:67
bool ValidateClearBuffer(ValidationContext *context)
Definition: validationES3.cpp:1100
bool ValidateCompressedTexSubImage3D(Context *context, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data)
Definition: validationES3.cpp:1642
bool ValidateDeleteVertexArrays(Context *context, GLint n, const GLuint *)
Definition: validationES3.cpp:1735
bool ValidateClearBufferfv(ValidationContext *context, GLenum buffer, GLint drawbuffer, const GLfloat *value)
Definition: validationES3.cpp:1448
bool ValidateReadBuffer(Context *context, GLenum src)
Definition: validationES3.cpp:1165
void GLvoid
Definition: gl2.h:65
bool ValidateGetInteger64i_v(ValidationContext *context, GLenum target, GLuint index, GLint64 *data)
Definition: validationES3.cpp:1967
GLuint program
Definition: gl2ext.h:1826
bool ValidateIsVertexArray(Context *context)
Definition: validationES3.cpp:1296
GLint GLint srcX1
Definition: gl2ext.h:818
int GLsizei
Definition: gl2.h:78
bool ValidateFlushMappedBufferRange(Context *context, GLenum target, GLintptr offset, GLsizeiptr length)
Definition: validationES3.cpp:1851
GLuint * samplers
Definition: gl3.h:1072
bool ValidateProgramBinary(Context *context, GLuint program, GLenum binaryFormat, const void *binary, GLint length)
Definition: validationES3.cpp:1307
GLint GLint xoffset
Definition: gl2.h:403
bool ValidateIndexedStateQuery(ValidationContext *context, GLenum pname, GLuint index, GLsizei *length)
Definition: validationES3.cpp:1865
bool ValidateFramebufferTextureLayer(Context *context, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
Definition: validationES3.cpp:966
unsigned int GLbitfield
Definition: gl2.h:75
EGLContext EGLenum EGLClientBuffer buffer
Definition: eglext.h:192
bool ValidateGetQueryObjectuiv(Context *context, GLuint id, GLenum pname, GLuint *params)
Definition: validationES3.cpp:955
bool ValidateMapBufferRange(Context *context, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
Definition: validationES3.cpp:1836
bool ValidateTexImage3DRobustANGLE(Context *context, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const GLvoid *pixels)
Definition: validationES3.cpp:1559
bool ValidateES3RenderbufferStorageParameters(gl::Context *context, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
Definition: validationES3.cpp:1042
GLenum GLint * params
Definition: gl2.h:440
bool ValidateES3TexStorageParameters(Context *context, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
Definition: entry_points_gles_2_0.h:15
GLenum access
Definition: gl2ext.h:2317
U_CDECL_BEGIN typedef void * context
Definition: ustring.h:1023
GLuint GLsizei GLsizei * length
Definition: gl2.h:435
bool ValidateTexSubImage3D(Context *context, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
Definition: validationES3.cpp:1588
GLsizei GLenum const void * indices
Definition: gl2.h:422
GLint GLint GLint yoffset
Definition: gl2.h:403
bool ValidateGenTransformFeedbacks(Context *context, GLint n, GLuint *)
Definition: validationES3.cpp:1705
GLint GLenum GLsizei GLsizei GLint border
Definition: gl2.h:402
const GLenum * bufs
Definition: gl2ext.h:1538