blob: 3cee03dc56afb2e004f86060cc8e0c8f350fc328 [file] [log] [blame]
// 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.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/validationES32.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)
{
Context *context = GetValidGlobalContext();
EVENT("glCopyBufferSubData",
"context = %d, GLenum readTarget = %s, GLenum writeTarget = %s, GLintptr readOffset = "
"%llu, GLintptr writeOffset = %llu, GLsizeiptr size = %llu",
CID(context), 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));
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)
{
Context *context = GetValidGlobalContext();
EVENT("glDrawArraysInstanced",
"context = %d, GLenum mode = %s, GLint first = %d, GLsizei count = %d, GLsizei "
"instancecount = %d",
CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), first, count,
instancecount);
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)
{
Context *context = GetValidGlobalContext();
EVENT("glDrawElementsInstanced",
"context = %d, GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void "
"*indices = 0x%016" PRIxPTR ", GLsizei instancecount = %d",
CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,
GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount);
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)
{
Context *context = GetValidGlobalContext();
EVENT("glGetActiveUniformBlockName",
"context = %d, GLuint program = %u, GLuint uniformBlockIndex = %u, GLsizei bufSize = %d, "
"GLsizei *length = 0x%016" PRIxPTR ", GLchar *uniformBlockName = 0x%016" PRIxPTR "",
CID(context), program, uniformBlockIndex, bufSize, (uintptr_t)length,
(uintptr_t)uniformBlockName);
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid =
(context->skipValidation() ||
ValidateGetActiveUniformBlockName(context, programPacked, uniformBlockIndex, bufSize,
length, uniformBlockName));
if (isCallValid)
{
context->getActiveUniformBlockName(programPacked, uniformBlockIndex, bufSize, length,
uniformBlockName);
}
ANGLE_CAPTURE(GetActiveUniformBlockName, isCallValid, context, programPacked,
uniformBlockIndex, bufSize, length, uniformBlockName);
}
}
void GL_APIENTRY GetActiveUniformBlockiv(GLuint program,
GLuint uniformBlockIndex,
GLenum pname,
GLint *params)
{
Context *context = GetValidGlobalContext();
EVENT("glGetActiveUniformBlockiv",
"context = %d, GLuint program = %u, GLuint uniformBlockIndex = %u, GLenum pname = %s, "
"GLint *params = 0x%016" PRIxPTR "",
CID(context), program, uniformBlockIndex,
GLenumToString(GLenumGroup::UniformBlockPName, pname), (uintptr_t)params);
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetActiveUniformBlockiv(context, programPacked,
uniformBlockIndex, pname, params));
if (isCallValid)
{
context->getActiveUniformBlockiv(programPacked, uniformBlockIndex, pname, params);
}
ANGLE_CAPTURE(GetActiveUniformBlockiv, isCallValid, context, programPacked,
uniformBlockIndex, pname, params);
}
}
void GL_APIENTRY GetActiveUniformName(GLuint program,
GLuint uniformIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformName)
{
Context *context = GetValidGlobalContext();
EVENT("glGetActiveUniformName",
"context = %d, GLuint program = %u, GLuint uniformIndex = %u, GLsizei bufSize = %d, "
"GLsizei *length = 0x%016" PRIxPTR ", GLchar *uniformName = 0x%016" PRIxPTR "",
CID(context), program, uniformIndex, bufSize, (uintptr_t)length, (uintptr_t)uniformName);
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetActiveUniformName(context, programPacked, uniformIndex,
bufSize, length, uniformName));
if (isCallValid)
{
context->getActiveUniformName(programPacked, uniformIndex, bufSize, length,
uniformName);
}
ANGLE_CAPTURE(GetActiveUniformName, isCallValid, context, programPacked, uniformIndex,
bufSize, length, uniformName);
}
}
void GL_APIENTRY GetActiveUniformsiv(GLuint program,
GLsizei uniformCount,
const GLuint *uniformIndices,
GLenum pname,
GLint *params)
{
Context *context = GetValidGlobalContext();
EVENT("glGetActiveUniformsiv",
"context = %d, GLuint program = %u, GLsizei uniformCount = %d, const GLuint "
"*uniformIndices = 0x%016" PRIxPTR ", GLenum pname = %s, GLint *params = 0x%016" PRIxPTR
"",
CID(context), program, uniformCount, (uintptr_t)uniformIndices,
GLenumToString(GLenumGroup::UniformPName, pname), (uintptr_t)params);
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetActiveUniformsiv(context, programPacked, uniformCount,
uniformIndices, pname, params));
if (isCallValid)
{
context->getActiveUniformsiv(programPacked, uniformCount, uniformIndices, pname,
params);
}
ANGLE_CAPTURE(GetActiveUniformsiv, isCallValid, context, programPacked, uniformCount,
uniformIndices, pname, params);
}
}
GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)
{
Context *context = GetValidGlobalContext();
EVENT("glGetUniformBlockIndex",
"context = %d, GLuint program = %u, const GLchar *uniformBlockName = 0x%016" PRIxPTR "",
CID(context), program, (uintptr_t)uniformBlockName);
GLuint returnValue;
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetUniformBlockIndex(context, programPacked, uniformBlockName));
if (isCallValid)
{
returnValue = context->getUniformBlockIndex(programPacked, uniformBlockName);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
}
ANGLE_CAPTURE(GetUniformBlockIndex, isCallValid, context, programPacked, uniformBlockName,
returnValue);
}
else
{
returnValue = GetDefaultReturnValue<EntryPoint::GetUniformBlockIndex, GLuint>();
}
return returnValue;
}
void GL_APIENTRY GetUniformIndices(GLuint program,
GLsizei uniformCount,
const GLchar *const *uniformNames,
GLuint *uniformIndices)
{
Context *context = GetValidGlobalContext();
EVENT("glGetUniformIndices",
"context = %d, GLuint program = %u, GLsizei uniformCount = %d, const GLchar "
"*const*uniformNames = 0x%016" PRIxPTR ", GLuint *uniformIndices = 0x%016" PRIxPTR "",
CID(context), program, uniformCount, (uintptr_t)uniformNames, (uintptr_t)uniformIndices);
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateGetUniformIndices(context, programPacked, uniformCount,
uniformNames, uniformIndices));
if (isCallValid)
{
context->getUniformIndices(programPacked, uniformCount, uniformNames, uniformIndices);
}
ANGLE_CAPTURE(GetUniformIndices, isCallValid, context, programPacked, uniformCount,
uniformNames, uniformIndices);
}
}
void GL_APIENTRY PrimitiveRestartIndex(GLuint index)
{
Context *context = GetValidGlobalContext();
EVENT("glPrimitiveRestartIndex", "context = %d, GLuint index = %u", CID(context), index);
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)
{
Context *context = GetValidGlobalContext();
EVENT("glTexBuffer",
"context = %d, GLenum target = %s, GLenum internalformat = %s, GLuint buffer = %u",
CID(context), GLenumToString(GLenumGroup::TextureTarget, target),
GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer);
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)
{
Context *context = GetValidGlobalContext();
EVENT("glUniformBlockBinding",
"context = %d, GLuint program = %u, GLuint uniformBlockIndex = %u, GLuint "
"uniformBlockBinding = %u",
CID(context), program, uniformBlockIndex, uniformBlockBinding);
if (context)
{
ShaderProgramID programPacked = FromGL<ShaderProgramID>(program);
std::unique_lock<std::mutex> shareContextLock = GetShareGroupLock(context);
bool isCallValid = (context->skipValidation() ||
ValidateUniformBlockBinding(context, programPacked, uniformBlockIndex,
uniformBlockBinding));
if (isCallValid)
{
context->uniformBlockBinding(programPacked, uniformBlockIndex, uniformBlockBinding);
}
ANGLE_CAPTURE(UniformBlockBinding, isCallValid, context, programPacked, uniformBlockIndex,
uniformBlockBinding);
}
}
} // namespace gl