1e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang//
2e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
3e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang// Use of this source code is governed by a BSD-style license that can be
4e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang// found in the LICENSE file.
5e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang//
6e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
7e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang// validationES.h: Validation functions for generic OpenGL ES entry point parameters
8e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
9e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang#ifndef LIBGLESV2_VALIDATION_ES_H
10e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang#define LIBGLESV2_VALIDATION_ES_H
11e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
12e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Langnamespace gl
13e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang{
14e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
15e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Langclass Context;
16e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
170550d0389a59a50a1df0df3484ecefc864715e26Geoff Langbool ValidCap(const Context *context, GLenum cap);
181fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madillbool ValidTextureTarget(const Context *context, GLenum target);
194dfed837cbbdf55d82b2a602d9f5806201f80fa7Shannon Woodsbool ValidTexture2DDestinationTarget(const Context *context, GLenum target);
201fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madillbool ValidFramebufferTarget(GLenum target);
218c96d58af5a5994c81b81032f775dc7d24cb5661Jamie Madillbool ValidBufferTarget(const Context *context, GLenum target);
2270656a64851b8014a325dd711297054032e466c1Jamie Madillbool ValidBufferParameter(const Context *context, GLenum pname);
231fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madillbool ValidMipLevel(const Context *context, GLenum target, GLint level);
24ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Langbool ValidImageSize(const gl::Context *context, GLenum target, GLint level, GLsizei width, GLsizei height, GLsizei depth);
25005df41f8900641ed1df60700c8e2eca659a33cbGeoff Langbool ValidCompressedImageSize(const gl::Context *context, GLenum internalFormat, GLsizei width, GLsizei height);
2637dde6929d79c9a523bd6c786d2b6c6544be8c9dGeoff Langbool ValidQueryType(const gl::Context *context, GLenum queryType);
2748dcae7b217420a7387c84a76651989e6f5f3576Geoff Langbool ValidProgram(const gl::Context *context, GLuint id);
28ce6356958ba86c2b09e62e1250cabd6bab16a082Geoff Lang
2934dbb6f5ed0ca2cc55a3f1faaa7d6ce2f95d0c18Geoff Langbool ValidateRenderbufferStorageParameters(const gl::Context *context, GLenum target, GLsizei samples,
30e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang                                           GLenum internalformat, GLsizei width, GLsizei height,
31e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang                                           bool angleExtension);
321fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madillbool ValidateFramebufferRenderbufferParameters(gl::Context *context, GLenum target, GLenum attachment,
331fc7e2c5961207aa2bd1a99978d661b4cbcbf144Jamie Madill                                               GLenum renderbuffertarget, GLuint renderbuffer);
34e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
3534dbb6f5ed0ca2cc55a3f1faaa7d6ce2f95d0c18Geoff Langbool ValidateBlitFramebufferParameters(gl::Context *context, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
36e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang                                       GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
37e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang                                       GLenum filter, bool fromAngleExtension);
38e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
3934dbb6f5ed0ca2cc55a3f1faaa7d6ce2f95d0c18Geoff Langbool ValidateGetVertexAttribParameters(GLenum pname, int clientVersion);
40e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
4134dbb6f5ed0ca2cc55a3f1faaa7d6ce2f95d0c18Geoff Langbool ValidateTexParamParameters(gl::Context *context, GLenum pname, GLint param);
42e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
4334dbb6f5ed0ca2cc55a3f1faaa7d6ce2f95d0c18Geoff Langbool ValidateSamplerObjectParameter(GLenum pname);
44e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
4526e9195fdcf536f07e4760656b063262bda9b60dJamie Madillbool ValidateReadPixelsParameters(gl::Context *context, GLint x, GLint y, GLsizei width, GLsizei height,
4626e9195fdcf536f07e4760656b063262bda9b60dJamie Madill                                  GLenum format, GLenum type, GLsizei *bufSize, GLvoid *pixels);
4726e9195fdcf536f07e4760656b063262bda9b60dJamie Madill
48db2f14c0b1133507215dd3b7a30155b70885973aJamie Madillbool ValidateBeginQuery(gl::Context *context, GLenum target, GLuint id);
4945c785d35c270ca1d1168b6ca5517cb3a5a285ccJamie Madillbool ValidateEndQuery(gl::Context *context, GLenum target);
50db2f14c0b1133507215dd3b7a30155b70885973aJamie Madill
51aa981bd714bc3c091d74e8a2893edfca6c5b7bb4Jamie Madillbool ValidateUniform(gl::Context *context, GLenum uniformType, GLint location, GLsizei count);
52d7c7bb276e532e2e55963cdb07b8091d01fb018dJamie Madillbool ValidateUniformMatrix(gl::Context *context, GLenum matrixType, GLint location, GLsizei count,
53d7c7bb276e532e2e55963cdb07b8091d01fb018dJamie Madill                           GLboolean transpose);
54d7c7bb276e532e2e55963cdb07b8091d01fb018dJamie Madill
55893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madillbool ValidateStateQuery(gl::Context *context, GLenum pname, GLenum *nativeType, unsigned int *numParams);
56893ab0878d3358c45ced6a6fb048ea048e1faa97Jamie Madill
57560a8d889b6866d7d29da968971818437e9cde36Jamie Madillbool ValidateCopyTexImageParametersBase(gl::Context* context, GLenum target, GLint level, GLenum internalformat, bool isSubImage,
58560a8d889b6866d7d29da968971818437e9cde36Jamie Madill                                        GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height,
59560a8d889b6866d7d29da968971818437e9cde36Jamie Madill                                        GLint border, GLenum *textureInternalFormatOut);
60560a8d889b6866d7d29da968971818437e9cde36Jamie Madill
61e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang}
62e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang
63e8ebe7f6ec21c3e624998d6fc1d10d1dbf6103c9Geoff Lang#endif // LIBGLESV2_VALIDATION_ES_H
64