| // |
| // 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.cpp: Validation functions for OpenGL ES 3.1 entry point parameters |
| |
| #include "libANGLE/validationES31.h" |
| |
| #include "libANGLE/Context.h" |
| #include "libANGLE/validationES.h" |
| #include "libANGLE/validationES3.h" |
| |
| using namespace angle; |
| |
| namespace gl |
| { |
| |
| bool ValidateGetBooleani_v(Context *context, GLenum target, GLuint index, GLboolean *data) |
| { |
| if (context->getClientVersion() < ES_3_1) |
| { |
| context->handleError(Error(GL_INVALID_OPERATION, "Context does not support GLES3.1")); |
| return false; |
| } |
| |
| if (!ValidateIndexedStateQuery(context, target, index, nullptr)) |
| { |
| return false; |
| } |
| |
| return true; |
| } |
| |
| bool ValidateGetBooleani_vRobustANGLE(Context *context, |
| GLenum target, |
| GLuint index, |
| GLsizei bufSize, |
| GLsizei *length, |
| GLboolean *data) |
| { |
| if (context->getClientVersion() < ES_3_1) |
| { |
| context->handleError(Error(GL_INVALID_OPERATION, "Context does not support GLES3.1")); |
| return false; |
| } |
| |
| if (!ValidateRobustEntryPoint(context, bufSize)) |
| { |
| return false; |
| } |
| |
| if (!ValidateIndexedStateQuery(context, target, index, length)) |
| { |
| return false; |
| } |
| |
| if (!ValidateRobustBufferSize(context, bufSize, *length)) |
| { |
| return false; |
| } |
| |
| return true; |
| } |
| |
| } // namespace gl |