Branch :
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml.
//
// Copyright 2019 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.
//
// entry_points_gl_3_1_autogen.cpp:
// Defines the GL 3.1 entry points.
#include "libGL/entry_points_gl_3_1_autogen.h"
#include "libANGLE/Context.h"
#include "libANGLE/Context.inl.h"
#include "libANGLE/entry_points_utils.h"
#include "libANGLE/gl_enum_utils_autogen.h"
#include "libANGLE/validationEGL.h"
#include "libANGLE/validationES.h"
#include "libANGLE/validationES1.h"
#include "libANGLE/validationES2.h"
#include "libANGLE/validationES3.h"
#include "libANGLE/validationES31.h"
#include "libANGLE/validationESEXT.h"
#include "libANGLE/validationGL31_autogen.h"
#include "libGLESv2/global_state.h"
namespace gl
{
void GL_APIENTRY CopyBufferSubData(GLenum readTarget,
GLenum writeTarget,
GLintptr readOffset,
GLintptr writeOffset,
GLsizeiptr size)
{
EVENT(
"(GLenum readTarget = %s, GLenum writeTarget = %s, GLintptr readOffset = %llu, GLintptr "
"writeOffset = %llu, GLsizeiptr size = %llu)",
GLenumToString(GLenumGroup::CopyBufferSubDataTarget, readTarget),
GLenumToString(GLenumGroup::CopyBufferSubDataTarget, writeTarget),
static_cast<unsigned long long>(readOffset), static_cast<unsigned long long>(writeOffset),
static_cast<unsigned long long>(size));
Context *context = GetValidGlobalContext();
if (context)
{
BufferBinding readTargetPacked = FromGL<BufferBinding>(readTarget);
BufferBinding writeTargetPacked = FromGL<BufferBinding>(writeTarget);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateCopyBufferSubData(context, readTargetPacked, writeTargetPacked,
readOffset, writeOffset, size));
if (isCallValid)
{
context->copyBufferSubData(readTargetPacked, writeTargetPacked, readOffset, writeOffset,
size);
}
ANGLE_CAPTURE(CopyBufferSubData, isCallValid, context, readTargetPacked, writeTargetPacked,
readOffset, writeOffset, size);
}
}
void GL_APIENTRY DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
{
EVENT("(GLenum mode = %s, GLint first = %d, GLsizei count = %d, GLsizei instancecount = %d)",
GLenumToString(GLenumGroup::PrimitiveType, mode), first, count, instancecount);
Context *context = GetValidGlobalContext();
if (context)
{
PrimitiveMode modePacked = FromGL<PrimitiveMode>(mode);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid =
(context->skipValidation() ||
ValidateDrawArraysInstanced(context, modePacked, first, count, instancecount));
if (isCallValid)
{
context->drawArraysInstanced(modePacked, first, count, instancecount);
}
ANGLE_CAPTURE(DrawArraysInstanced, isCallValid, context, modePacked, first, count,
instancecount);
}
}
void GL_APIENTRY DrawElementsInstanced(GLenum mode,
GLsizei count,
GLenum type,
const void *indices,
GLsizei instancecount)
{
EVENT(
"(GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void *indices = "
"0x%016" PRIxPTR ", GLsizei instancecount = %d)",
GLenumToString(GLenumGroup::PrimitiveType, mode), count,
GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount);
Context *context = GetValidGlobalContext();
if (context)
{
PrimitiveMode modePacked = FromGL<PrimitiveMode>(mode);
DrawElementsType typePacked = FromGL<DrawElementsType>(type);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateDrawElementsInstanced(context, modePacked, count, typePacked,
indices, instancecount));
if (isCallValid)
{
context->drawElementsInstanced(modePacked, count, typePacked, indices, instancecount);
}
ANGLE_CAPTURE(DrawElementsInstanced, isCallValid, context, modePacked, count, typePacked,
indices, instancecount);
}
}
void GL_APIENTRY GetActiveUniformBlockName(GLuint program,
GLuint uniformBlockIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformBlockName)
{
EVENT(
"(GLuint program = %u, GLuint uniformBlockIndex = %u, GLsizei bufSize = %d, GLsizei "
"*length = 0x%016" PRIxPTR ", GLchar *uniformBlockName = 0x%016" PRIxPTR ")",
program, uniformBlockIndex, bufSize, (uintptr_t)length, (uintptr_t)uniformBlockName);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetActiveUniformBlockName(context, program, uniformBlockIndex,
bufSize, length, uniformBlockName));
if (isCallValid)
{
context->getActiveUniformBlockName(program, uniformBlockIndex, bufSize, length,
uniformBlockName);
}
ANGLE_CAPTURE(GetActiveUniformBlockName, isCallValid, context, program, uniformBlockIndex,
bufSize, length, uniformBlockName);
}
}
void GL_APIENTRY GetActiveUniformBlockiv(GLuint program,
GLuint uniformBlockIndex,
GLenum pname,
GLint *params)
{
EVENT(
"(GLuint program = %u, GLuint uniformBlockIndex = %u, GLenum pname = %s, GLint *params = "
"0x%016" PRIxPTR ")",
program, uniformBlockIndex, GLenumToString(GLenumGroup::UniformBlockPName, pname),
(uintptr_t)params);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid =
(context->skipValidation() ||
ValidateGetActiveUniformBlockiv(context, program, uniformBlockIndex, pname, params));
if (isCallValid)
{
context->getActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
}
ANGLE_CAPTURE(GetActiveUniformBlockiv, isCallValid, context, program, uniformBlockIndex,
pname, params);
}
}
void GL_APIENTRY GetActiveUniformName(GLuint program,
GLuint uniformIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformName)
{
EVENT(
"(GLuint program = %u, GLuint uniformIndex = %u, GLsizei bufSize = %d, GLsizei *length = "
"0x%016" PRIxPTR ", GLchar *uniformName = 0x%016" PRIxPTR ")",
program, uniformIndex, bufSize, (uintptr_t)length, (uintptr_t)uniformName);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetActiveUniformName(context, program, uniformIndex, bufSize,
length, uniformName));
if (isCallValid)
{
context->getActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
}
ANGLE_CAPTURE(GetActiveUniformName, isCallValid, context, program, uniformIndex, bufSize,
length, uniformName);
}
}
void GL_APIENTRY GetActiveUniformsiv(GLuint program,
GLsizei uniformCount,
const GLuint *uniformIndices,
GLenum pname,
GLint *params)
{
EVENT(
"(GLuint program = %u, GLsizei uniformCount = %d, const GLuint *uniformIndices = "
"0x%016" PRIxPTR ", GLenum pname = %s, GLint *params = 0x%016" PRIxPTR ")",
program, uniformCount, (uintptr_t)uniformIndices,
GLenumToString(GLenumGroup::UniformPName, pname), (uintptr_t)params);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetActiveUniformsiv(context, program, uniformCount,
uniformIndices, pname, params));
if (isCallValid)
{
context->getActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
}
ANGLE_CAPTURE(GetActiveUniformsiv, isCallValid, context, program, uniformCount,
uniformIndices, pname, params);
}
}
GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)
{
EVENT("(GLuint program = %u, const GLchar *uniformBlockName = 0x%016" PRIxPTR ")", program,
(uintptr_t)uniformBlockName);
Context *context = GetValidGlobalContext();
GLuint returnValue;
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetUniformBlockIndex(context, program, uniformBlockName));
if (isCallValid)
{
returnValue = context->getUniformBlockIndex(program, uniformBlockName);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
}
ANGLE_CAPTURE(GetUniformBlockIndex, isCallValid, context, program, uniformBlockName,
returnValue);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
}
return returnValue;
}
void GL_APIENTRY GetUniformIndices(GLuint program,
GLsizei uniformCount,
const GLchar *const *uniformNames,
GLuint *uniformIndices)
{
EVENT(
"(GLuint program = %u, GLsizei uniformCount = %d, const GLchar *const*uniformNames = "
"0x%016" PRIxPTR ", GLuint *uniformIndices = 0x%016" PRIxPTR ")",
program, uniformCount, (uintptr_t)uniformNames, (uintptr_t)uniformIndices);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid =
(context->skipValidation() || ValidateGetUniformIndices(context, program, uniformCount,
uniformNames, uniformIndices));
if (isCallValid)
{
context->getUniformIndices(program, uniformCount, uniformNames, uniformIndices);
}
ANGLE_CAPTURE(GetUniformIndices, isCallValid, context, program, uniformCount, uniformNames,
uniformIndices);
}
}
void GL_APIENTRY PrimitiveRestartIndex(GLuint index)
{
EVENT("(GLuint index = %u)", index);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid =
(context->skipValidation() || ValidatePrimitiveRestartIndex(context, index));
if (isCallValid)
{
context->primitiveRestartIndex(index);
}
ANGLE_CAPTURE(PrimitiveRestartIndex, isCallValid, context, index);
}
}
void GL_APIENTRY TexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
{
EVENT("(GLenum target = %s, GLenum internalformat = %s, GLuint buffer = %u)",
GLenumToString(GLenumGroup::TextureTarget, target),
GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer);
Context *context = GetValidGlobalContext();
if (context)
{
BufferID bufferPacked = FromGL<BufferID>(buffer);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateTexBuffer(context, target, internalformat, bufferPacked));
if (isCallValid)
{
context->texBuffer(target, internalformat, bufferPacked);
}
ANGLE_CAPTURE(TexBuffer, isCallValid, context, target, internalformat, bufferPacked);
}
}
void GL_APIENTRY UniformBlockBinding(GLuint program,
GLuint uniformBlockIndex,
GLuint uniformBlockBinding)
{
EVENT("(GLuint program = %u, GLuint uniformBlockIndex = %u, GLuint uniformBlockBinding = %u)",
program, uniformBlockIndex, uniformBlockBinding);
Context *context = GetValidGlobalContext();
if (context)
{
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid =
(context->skipValidation() ||
ValidateUniformBlockBinding(context, program, uniformBlockIndex, uniformBlockBinding));
if (isCallValid)
{
context->uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
}
ANGLE_CAPTURE(UniformBlockBinding, isCallValid, context, program, uniformBlockIndex,
uniformBlockBinding);
}
}
} // namespace gl