blob: a0b76a5bcb16d0af0e612fc6cdc921f45784382a [file] [log] [blame]
//
// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// validationES31.h: Validation functions for OpenGL ES 3.1 entry point parameters
#ifndef LIBANGLE_VALIDATION_ES31_H_
#define LIBANGLE_VALIDATION_ES31_H_
#include <GLES3/gl31.h>
namespace gl
{
class Context;
class ValidationContext;
bool ValidateGetBooleani_v(Context *context, GLenum target, GLuint index, GLboolean *data);
bool ValidateGetBooleani_vRobustANGLE(Context *context,
GLenum target,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLboolean *data);
bool ValidateGetTexLevelParameterfv(Context *context,
GLenum target,
GLint level,
GLenum pname,
GLfloat *params);
bool ValidateGetTexLevelParameteriv(Context *context,
GLenum target,
GLint level,
GLenum pname,
GLint *param);
bool ValidateTexStorage2DMultisample(Context *context,
GLenum target,
GLsizei samples,
GLint internalFormat,
GLsizei width,
GLsizei height,
GLboolean fixedSampleLocations);
bool ValidateGetMultisamplefv(Context *context, GLenum pname, GLuint index, GLfloat *val);
bool ValidateDrawIndirectBase(Context *context, GLenum mode, const void *indirect);
bool ValidateDrawArraysIndirect(Context *context, GLenum mode, const void *indirect);
bool ValidateDrawElementsIndirect(Context *context, GLenum mode, GLenum type, const void *indirect);
bool ValidateProgramUniform1i(Context *context, GLuint program, GLint location, GLint v0);
bool ValidateProgramUniform2i(Context *context, GLuint program, GLint location, GLint v0, GLint v1);
bool ValidateProgramUniform3i(Context *context,
GLuint program,
GLint location,
GLint v0,
GLint v1,
GLint v2);
bool ValidateProgramUniform4i(Context *context,
GLuint program,
GLint location,
GLint v0,
GLint v1,
GLint v2,
GLint v3);
bool ValidateProgramUniform1ui(Context *context, GLuint program, GLint location, GLuint v0);
bool ValidateProgramUniform2ui(Context *context,
GLuint program,
GLint location,
GLuint v0,
GLuint v1);
bool ValidateProgramUniform3ui(Context *context,
GLuint program,
GLint location,
GLuint v0,
GLuint v1,
GLuint v2);
bool ValidateProgramUniform4ui(Context *context,
GLuint program,
GLint location,
GLuint v0,
GLuint v1,
GLuint v2,
GLuint v3);
bool ValidateProgramUniform1f(Context *context, GLuint program, GLint location, GLfloat v0);
bool ValidateProgramUniform2f(Context *context,
GLuint program,
GLint location,
GLfloat v0,
GLfloat v1);
bool ValidateProgramUniform3f(Context *context,
GLuint program,
GLint location,
GLfloat v0,
GLfloat v1,
GLfloat v2);
bool ValidateProgramUniform4f(Context *context,
GLuint program,
GLint location,
GLfloat v0,
GLfloat v1,
GLfloat v2,
GLfloat v3);
bool ValidateProgramUniform1iv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLint *value);
bool ValidateProgramUniform2iv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLint *value);
bool ValidateProgramUniform3iv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLint *value);
bool ValidateProgramUniform4iv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLint *value);
bool ValidateProgramUniform1uiv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLuint *value);
bool ValidateProgramUniform2uiv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLuint *value);
bool ValidateProgramUniform3uiv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLuint *value);
bool ValidateProgramUniform4uiv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLuint *value);
bool ValidateProgramUniform1fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLfloat *value);
bool ValidateProgramUniform2fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLfloat *value);
bool ValidateProgramUniform3fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLfloat *value);
bool ValidateProgramUniform4fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
const GLfloat *value);
bool ValidateProgramUniformMatrix2fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix2fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix3fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix4fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix2x3fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix3x2fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix2x4fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix4x2fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix3x4fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateProgramUniformMatrix4x3fv(Context *context,
GLuint program,
GLint location,
GLsizei count,
GLboolean transpose,
const GLfloat *value);
bool ValidateFramebufferParameteri(Context *context, GLenum target, GLenum pname, GLint param);
bool ValidateGetFramebufferParameteriv(Context *context,
GLenum target,
GLenum pname,
GLint *params);
bool ValidateGetProgramResourceIndex(Context *context,
GLuint program,
GLenum programInterface,
const GLchar *name);
bool ValidateGetProgramResourceName(Context *context,
GLuint program,
GLenum programInterface,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLchar *name);
bool ValidateGetProgramResourceLocation(Context *context,
GLuint program,
GLenum programInterface,
const GLchar *name);
bool ValidateGetProgramResourceiv(Context *context,
GLuint program,
GLenum programInterface,
GLuint index,
GLsizei propCount,
const GLenum *props,
GLsizei bufSize,
GLsizei *length,
GLint *params);
bool ValidateGetProgramInterfaceiv(Context *context,
GLuint program,
GLenum programInterface,
GLenum pname,
GLint *params);
bool ValidateBindVertexBuffer(ValidationContext *context,
GLuint bindingIndex,
GLuint buffer,
GLintptr offset,
GLsizei stride);
bool ValidateVertexAttribFormat(ValidationContext *context,
GLuint attribindex,
GLint size,
GLenum type,
GLboolean normalized,
GLuint relativeoffset);
bool ValidateVertexAttribIFormat(ValidationContext *context,
GLuint attribindex,
GLint size,
GLenum type,
GLuint relativeoffset);
bool ValidateVertexAttribBinding(ValidationContext *context,
GLuint attribIndex,
GLuint bindingIndex);
bool ValidateVertexBindingDivisor(ValidationContext *context, GLuint bindingIndex, GLuint divisor);
bool ValidateDispatchCompute(Context *context,
GLuint numGroupsX,
GLuint numGroupsY,
GLuint numGroupsZ);
bool ValidateDispatchComputeIndirect(Context *context, GLintptr indirect);
bool ValidateBindImageTexture(Context *context,
GLuint unit,
GLuint texture,
GLint level,
GLboolean layered,
GLint layer,
GLenum access,
GLenum format);
bool ValidateGenProgramPipelines(Context *context, GLint n, GLuint *pipelines);
bool ValidateDeleteProgramPipelines(Context *context, GLint n, const GLuint *pipelines);
bool ValidateBindProgramPipeline(Context *context, GLuint pipeline);
bool ValidateIsProgramPipeline(Context *context, GLuint pipeline);
bool ValidateUseProgramStages(Context *context, GLuint pipeline, GLbitfield stages, GLuint program);
bool ValidateActiveShaderProgram(Context *context, GLuint pipeline, GLuint program);
bool ValidateCreateShaderProgramv(Context *context,
GLenum type,
GLsizei count,
const GLchar *const *strings);
bool ValidateGetProgramPipelineiv(Context *context, GLuint pipeline, GLenum pname, GLint *params);
bool ValidateValidateProgramPipeline(Context *context, GLuint pipeline);
bool ValidateGetProgramPipelineInfoLog(Context *context,
GLuint pipeline,
GLsizei bufSize,
GLsizei *length,
GLchar *infoLog);
bool ValidateMemoryBarrier(Context *context, GLbitfield barriers);
bool ValidateMemoryBarrierByRegion(Context *context, GLbitfield barriers);
bool ValidateSampleMaski(Context *context, GLuint maskNumber, GLbitfield mask);
} // namespace gl
#endif // LIBANGLE_VALIDATION_ES31_H_