Path: blob/main_old/src/libGLESv2/entry_points_gles_3_2_autogen.cpp
1693 views
// GENERATED FILE - DO NOT EDIT.1// Generated by generate_entry_points.py using data from gl.xml.2//3// Copyright 2020 The ANGLE Project Authors. All rights reserved.4// Use of this source code is governed by a BSD-style license that can be5// found in the LICENSE file.6//7// entry_points_gles_3_2_autogen.cpp:8// Defines the GLES 3.2 entry points.910#include "libGLESv2/entry_points_gles_3_2_autogen.h"1112#include "common/entry_points_enum_autogen.h"13#include "libANGLE/Context.h"14#include "libANGLE/Context.inl.h"15#include "libANGLE/capture/capture_gles_3_2_autogen.h"16#include "libANGLE/capture/gl_enum_utils.h"17#include "libANGLE/entry_points_utils.h"18#include "libANGLE/validationES32.h"19#include "libGLESv2/global_state.h"2021using namespace gl;2223extern "C" {24void GL_APIENTRY GL_BlendBarrier()25{26Context *context = GetValidGlobalContext();27EVENT(context, GLBlendBarrier, "context = %d", CID(context));2829if (context)30{31std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);32bool isCallValid = (context->skipValidation() || ValidateBlendBarrier(context));33if (isCallValid)34{35context->blendBarrier();36}37ANGLE_CAPTURE(BlendBarrier, isCallValid, context);38}39else40{41GenerateContextLostErrorOnCurrentGlobalContext();42}43}4445void GL_APIENTRY GL_BlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha)46{47Context *context = GetValidGlobalContext();48EVENT(context, GLBlendEquationSeparatei, "context = %d, buf = %u, modeRGB = %s, modeAlpha = %s",49CID(context), buf, GLenumToString(GLenumGroup::BlendEquationModeEXT, modeRGB),50GLenumToString(GLenumGroup::BlendEquationModeEXT, modeAlpha));5152if (context)53{54std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);55bool isCallValid = (context->skipValidation() ||56ValidateBlendEquationSeparatei(context, buf, modeRGB, modeAlpha));57if (isCallValid)58{59context->blendEquationSeparatei(buf, modeRGB, modeAlpha);60}61ANGLE_CAPTURE(BlendEquationSeparatei, isCallValid, context, buf, modeRGB, modeAlpha);62}63else64{65GenerateContextLostErrorOnCurrentGlobalContext();66}67}6869void GL_APIENTRY GL_BlendEquationi(GLuint buf, GLenum mode)70{71Context *context = GetValidGlobalContext();72EVENT(context, GLBlendEquationi, "context = %d, buf = %u, mode = %s", CID(context), buf,73GLenumToString(GLenumGroup::BlendEquationModeEXT, mode));7475if (context)76{77std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);78bool isCallValid =79(context->skipValidation() || ValidateBlendEquationi(context, buf, mode));80if (isCallValid)81{82context->blendEquationi(buf, mode);83}84ANGLE_CAPTURE(BlendEquationi, isCallValid, context, buf, mode);85}86else87{88GenerateContextLostErrorOnCurrentGlobalContext();89}90}9192void GL_APIENTRY93GL_BlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)94{95Context *context = GetValidGlobalContext();96EVENT(context, GLBlendFuncSeparatei,97"context = %d, buf = %u, srcRGB = %s, dstRGB = %s, srcAlpha = %s, dstAlpha = %s",98CID(context), buf, GLenumToString(GLenumGroup::BlendingFactor, srcRGB),99GLenumToString(GLenumGroup::BlendingFactor, dstRGB),100GLenumToString(GLenumGroup::BlendingFactor, srcAlpha),101GLenumToString(GLenumGroup::BlendingFactor, dstAlpha));102103if (context)104{105std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);106bool isCallValid =107(context->skipValidation() ||108ValidateBlendFuncSeparatei(context, buf, srcRGB, dstRGB, srcAlpha, dstAlpha));109if (isCallValid)110{111context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);112}113ANGLE_CAPTURE(BlendFuncSeparatei, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha,114dstAlpha);115}116else117{118GenerateContextLostErrorOnCurrentGlobalContext();119}120}121122void GL_APIENTRY GL_BlendFunci(GLuint buf, GLenum src, GLenum dst)123{124Context *context = GetValidGlobalContext();125EVENT(context, GLBlendFunci, "context = %d, buf = %u, src = %s, dst = %s", CID(context), buf,126GLenumToString(GLenumGroup::BlendingFactor, src),127GLenumToString(GLenumGroup::BlendingFactor, dst));128129if (context)130{131std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);132bool isCallValid =133(context->skipValidation() || ValidateBlendFunci(context, buf, src, dst));134if (isCallValid)135{136context->blendFunci(buf, src, dst);137}138ANGLE_CAPTURE(BlendFunci, isCallValid, context, buf, src, dst);139}140else141{142GenerateContextLostErrorOnCurrentGlobalContext();143}144}145146void GL_APIENTRY GL_ColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)147{148Context *context = GetValidGlobalContext();149EVENT(context, GLColorMaski, "context = %d, index = %u, r = %s, g = %s, b = %s, a = %s",150CID(context), index, GLbooleanToString(r), GLbooleanToString(g), GLbooleanToString(b),151GLbooleanToString(a));152153if (context)154{155std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);156bool isCallValid =157(context->skipValidation() || ValidateColorMaski(context, index, r, g, b, a));158if (isCallValid)159{160context->colorMaski(index, r, g, b, a);161}162ANGLE_CAPTURE(ColorMaski, isCallValid, context, index, r, g, b, a);163}164else165{166GenerateContextLostErrorOnCurrentGlobalContext();167}168}169170void GL_APIENTRY GL_CopyImageSubData(GLuint srcName,171GLenum srcTarget,172GLint srcLevel,173GLint srcX,174GLint srcY,175GLint srcZ,176GLuint dstName,177GLenum dstTarget,178GLint dstLevel,179GLint dstX,180GLint dstY,181GLint dstZ,182GLsizei srcWidth,183GLsizei srcHeight,184GLsizei srcDepth)185{186Context *context = GetValidGlobalContext();187EVENT(context, GLCopyImageSubData,188"context = %d, srcName = %u, srcTarget = %s, srcLevel = %d, srcX = %d, srcY = %d, srcZ = "189"%d, dstName = %u, dstTarget = %s, dstLevel = %d, dstX = %d, dstY = %d, dstZ = %d, "190"srcWidth = %d, srcHeight = %d, srcDepth = %d",191CID(context), srcName, GLenumToString(GLenumGroup::CopyBufferSubDataTarget, srcTarget),192srcLevel, srcX, srcY, srcZ, dstName,193GLenumToString(GLenumGroup::CopyBufferSubDataTarget, dstTarget), dstLevel, dstX, dstY,194dstZ, srcWidth, srcHeight, srcDepth);195196if (context)197{198std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);199bool isCallValid = (context->skipValidation() ||200ValidateCopyImageSubData(context, srcName, srcTarget, srcLevel, srcX,201srcY, srcZ, dstName, dstTarget, dstLevel, dstX,202dstY, dstZ, srcWidth, srcHeight, srcDepth));203if (isCallValid)204{205context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName,206dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight,207srcDepth);208}209ANGLE_CAPTURE(CopyImageSubData, isCallValid, context, srcName, srcTarget, srcLevel, srcX,210srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth,211srcHeight, srcDepth);212}213else214{215GenerateContextLostErrorOnCurrentGlobalContext();216}217}218219void GL_APIENTRY GL_DebugMessageCallback(GLDEBUGPROC callback, const void *userParam)220{221Context *context = GetValidGlobalContext();222EVENT(context, GLDebugMessageCallback,223"context = %d, callback = 0x%016" PRIxPTR ", userParam = 0x%016" PRIxPTR "", CID(context),224(uintptr_t)callback, (uintptr_t)userParam);225226if (context)227{228std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);229bool isCallValid = (context->skipValidation() ||230ValidateDebugMessageCallback(context, callback, userParam));231if (isCallValid)232{233context->debugMessageCallback(callback, userParam);234}235ANGLE_CAPTURE(DebugMessageCallback, isCallValid, context, callback, userParam);236}237else238{239GenerateContextLostErrorOnCurrentGlobalContext();240}241}242243void GL_APIENTRY GL_DebugMessageControl(GLenum source,244GLenum type,245GLenum severity,246GLsizei count,247const GLuint *ids,248GLboolean enabled)249{250Context *context = GetValidGlobalContext();251EVENT(context, GLDebugMessageControl,252"context = %d, source = %s, type = %s, severity = %s, count = %d, ids = 0x%016" PRIxPTR253", enabled = %s",254CID(context), GLenumToString(GLenumGroup::DebugSource, source),255GLenumToString(GLenumGroup::DebugType, type),256GLenumToString(GLenumGroup::DebugSeverity, severity), count, (uintptr_t)ids,257GLbooleanToString(enabled));258259if (context)260{261std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);262bool isCallValid =263(context->skipValidation() ||264ValidateDebugMessageControl(context, source, type, severity, count, ids, enabled));265if (isCallValid)266{267context->debugMessageControl(source, type, severity, count, ids, enabled);268}269ANGLE_CAPTURE(DebugMessageControl, isCallValid, context, source, type, severity, count, ids,270enabled);271}272else273{274GenerateContextLostErrorOnCurrentGlobalContext();275}276}277278void GL_APIENTRY GL_DebugMessageInsert(GLenum source,279GLenum type,280GLuint id,281GLenum severity,282GLsizei length,283const GLchar *buf)284{285Context *context = GetValidGlobalContext();286EVENT(context, GLDebugMessageInsert,287"context = %d, source = %s, type = %s, id = %u, severity = %s, length = %d, buf = "288"0x%016" PRIxPTR "",289CID(context), GLenumToString(GLenumGroup::DebugSource, source),290GLenumToString(GLenumGroup::DebugType, type), id,291GLenumToString(GLenumGroup::DebugSeverity, severity), length, (uintptr_t)buf);292293if (context)294{295std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);296bool isCallValid =297(context->skipValidation() ||298ValidateDebugMessageInsert(context, source, type, id, severity, length, buf));299if (isCallValid)300{301context->debugMessageInsert(source, type, id, severity, length, buf);302}303ANGLE_CAPTURE(DebugMessageInsert, isCallValid, context, source, type, id, severity, length,304buf);305}306else307{308GenerateContextLostErrorOnCurrentGlobalContext();309}310}311312void GL_APIENTRY GL_Disablei(GLenum target, GLuint index)313{314Context *context = GetValidGlobalContext();315EVENT(context, GLDisablei, "context = %d, target = %s, index = %u", CID(context),316GLenumToString(GLenumGroup::EnableCap, target), index);317318if (context)319{320std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);321bool isCallValid = (context->skipValidation() || ValidateDisablei(context, target, index));322if (isCallValid)323{324context->disablei(target, index);325}326ANGLE_CAPTURE(Disablei, isCallValid, context, target, index);327}328else329{330GenerateContextLostErrorOnCurrentGlobalContext();331}332}333334void GL_APIENTRY GL_DrawElementsBaseVertex(GLenum mode,335GLsizei count,336GLenum type,337const void *indices,338GLint basevertex)339{340Context *context = GetValidGlobalContext();341EVENT(context, GLDrawElementsBaseVertex,342"context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR343", basevertex = %d",344CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,345GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex);346347if (context)348{349PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);350DrawElementsType typePacked = PackParam<DrawElementsType>(type);351std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);352bool isCallValid = (context->skipValidation() ||353ValidateDrawElementsBaseVertex(context, modePacked, count, typePacked,354indices, basevertex));355if (isCallValid)356{357context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex);358}359ANGLE_CAPTURE(DrawElementsBaseVertex, isCallValid, context, modePacked, count, typePacked,360indices, basevertex);361}362else363{364GenerateContextLostErrorOnCurrentGlobalContext();365}366}367368void GL_APIENTRY GL_DrawElementsInstancedBaseVertex(GLenum mode,369GLsizei count,370GLenum type,371const void *indices,372GLsizei instancecount,373GLint basevertex)374{375Context *context = GetValidGlobalContext();376EVENT(context, GLDrawElementsInstancedBaseVertex,377"context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR378", instancecount = %d, basevertex = %d",379CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,380GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, instancecount,381basevertex);382383if (context)384{385PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);386DrawElementsType typePacked = PackParam<DrawElementsType>(type);387std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);388bool isCallValid = (context->skipValidation() || ValidateDrawElementsInstancedBaseVertex(389context, modePacked, count, typePacked,390indices, instancecount, basevertex));391if (isCallValid)392{393context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices,394instancecount, basevertex);395}396ANGLE_CAPTURE(DrawElementsInstancedBaseVertex, isCallValid, context, modePacked, count,397typePacked, indices, instancecount, basevertex);398}399else400{401GenerateContextLostErrorOnCurrentGlobalContext();402}403}404405void GL_APIENTRY GL_DrawRangeElementsBaseVertex(GLenum mode,406GLuint start,407GLuint end,408GLsizei count,409GLenum type,410const void *indices,411GLint basevertex)412{413Context *context = GetValidGlobalContext();414EVENT(context, GLDrawRangeElementsBaseVertex,415"context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = "416"0x%016" PRIxPTR ", basevertex = %d",417CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), start, end, count,418GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, basevertex);419420if (context)421{422PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);423DrawElementsType typePacked = PackParam<DrawElementsType>(type);424std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);425bool isCallValid = (context->skipValidation() || ValidateDrawRangeElementsBaseVertex(426context, modePacked, start, end, count,427typePacked, indices, basevertex));428if (isCallValid)429{430context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices,431basevertex);432}433ANGLE_CAPTURE(DrawRangeElementsBaseVertex, isCallValid, context, modePacked, start, end,434count, typePacked, indices, basevertex);435}436else437{438GenerateContextLostErrorOnCurrentGlobalContext();439}440}441442void GL_APIENTRY GL_Enablei(GLenum target, GLuint index)443{444Context *context = GetValidGlobalContext();445EVENT(context, GLEnablei, "context = %d, target = %s, index = %u", CID(context),446GLenumToString(GLenumGroup::EnableCap, target), index);447448if (context)449{450std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);451bool isCallValid = (context->skipValidation() || ValidateEnablei(context, target, index));452if (isCallValid)453{454context->enablei(target, index);455}456ANGLE_CAPTURE(Enablei, isCallValid, context, target, index);457}458else459{460GenerateContextLostErrorOnCurrentGlobalContext();461}462}463464void GL_APIENTRY GL_FramebufferTexture(GLenum target,465GLenum attachment,466GLuint texture,467GLint level)468{469Context *context = GetValidGlobalContext();470EVENT(context, GLFramebufferTexture,471"context = %d, target = %s, attachment = %s, texture = %u, level = %d", CID(context),472GLenumToString(GLenumGroup::FramebufferTarget, target),473GLenumToString(GLenumGroup::FramebufferAttachment, attachment), texture, level);474475if (context)476{477TextureID texturePacked = PackParam<TextureID>(texture);478std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);479bool isCallValid =480(context->skipValidation() ||481ValidateFramebufferTexture(context, target, attachment, texturePacked, level));482if (isCallValid)483{484context->framebufferTexture(target, attachment, texturePacked, level);485}486ANGLE_CAPTURE(FramebufferTexture, isCallValid, context, target, attachment, texturePacked,487level);488}489else490{491GenerateContextLostErrorOnCurrentGlobalContext();492}493}494495GLuint GL_APIENTRY GL_GetDebugMessageLog(GLuint count,496GLsizei bufSize,497GLenum *sources,498GLenum *types,499GLuint *ids,500GLenum *severities,501GLsizei *lengths,502GLchar *messageLog)503{504Context *context = GetValidGlobalContext();505EVENT(context, GLGetDebugMessageLog,506"context = %d, count = %u, bufSize = %d, sources = 0x%016" PRIxPTR507", types = 0x%016" PRIxPTR ", ids = 0x%016" PRIxPTR ", severities = 0x%016" PRIxPTR508", lengths = 0x%016" PRIxPTR ", messageLog = 0x%016" PRIxPTR "",509CID(context), count, bufSize, (uintptr_t)sources, (uintptr_t)types, (uintptr_t)ids,510(uintptr_t)severities, (uintptr_t)lengths, (uintptr_t)messageLog);511512GLuint returnValue;513if (context)514{515std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);516bool isCallValid = (context->skipValidation() ||517ValidateGetDebugMessageLog(context, count, bufSize, sources, types, ids,518severities, lengths, messageLog));519if (isCallValid)520{521returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids,522severities, lengths, messageLog);523}524else525{526returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetDebugMessageLog, GLuint>();527}528ANGLE_CAPTURE(GetDebugMessageLog, isCallValid, context, count, bufSize, sources, types, ids,529severities, lengths, messageLog, returnValue);530}531else532{533GenerateContextLostErrorOnCurrentGlobalContext();534returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetDebugMessageLog, GLuint>();535}536return returnValue;537}538539GLenum GL_APIENTRY GL_GetGraphicsResetStatus()540{541Context *context = GetGlobalContext();542EVENT(context, GLGetGraphicsResetStatus, "context = %d", CID(context));543544GLenum returnValue;545if (context)546{547std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);548bool isCallValid = (context->skipValidation() || ValidateGetGraphicsResetStatus(context));549if (isCallValid)550{551returnValue = context->getGraphicsResetStatus();552}553else554{555returnValue =556GetDefaultReturnValue<angle::EntryPoint::GLGetGraphicsResetStatus, GLenum>();557}558ANGLE_CAPTURE(GetGraphicsResetStatus, isCallValid, context, returnValue);559}560else561{562563returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetGraphicsResetStatus, GLenum>();564}565return returnValue;566}567568void GL_APIENTRY569GL_GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)570{571Context *context = GetValidGlobalContext();572EVENT(context, GLGetObjectLabel,573"context = %d, identifier = %s, name = %u, bufSize = %d, length = 0x%016" PRIxPTR574", label = 0x%016" PRIxPTR "",575CID(context), GLenumToString(GLenumGroup::DefaultGroup, identifier), name, bufSize,576(uintptr_t)length, (uintptr_t)label);577578if (context)579{580std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);581bool isCallValid =582(context->skipValidation() ||583ValidateGetObjectLabel(context, identifier, name, bufSize, length, label));584if (isCallValid)585{586context->getObjectLabel(identifier, name, bufSize, length, label);587}588ANGLE_CAPTURE(GetObjectLabel, isCallValid, context, identifier, name, bufSize, length,589label);590}591else592{593GenerateContextLostErrorOnCurrentGlobalContext();594}595}596597void GL_APIENTRY GL_GetObjectPtrLabel(const void *ptr,598GLsizei bufSize,599GLsizei *length,600GLchar *label)601{602Context *context = GetValidGlobalContext();603EVENT(context, GLGetObjectPtrLabel,604"context = %d, ptr = 0x%016" PRIxPTR ", bufSize = %d, length = 0x%016" PRIxPTR605", label = 0x%016" PRIxPTR "",606CID(context), (uintptr_t)ptr, bufSize, (uintptr_t)length, (uintptr_t)label);607608if (context)609{610std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);611bool isCallValid = (context->skipValidation() ||612ValidateGetObjectPtrLabel(context, ptr, bufSize, length, label));613if (isCallValid)614{615context->getObjectPtrLabel(ptr, bufSize, length, label);616}617ANGLE_CAPTURE(GetObjectPtrLabel, isCallValid, context, ptr, bufSize, length, label);618}619else620{621GenerateContextLostErrorOnCurrentGlobalContext();622}623}624625void GL_APIENTRY GL_GetPointerv(GLenum pname, void **params)626{627Context *context = GetValidGlobalContext();628EVENT(context, GLGetPointerv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",629CID(context), GLenumToString(GLenumGroup::GetPointervPName, pname), (uintptr_t)params);630631if (context)632{633std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);634bool isCallValid =635(context->skipValidation() || ValidateGetPointerv(context, pname, params));636if (isCallValid)637{638context->getPointerv(pname, params);639}640ANGLE_CAPTURE(GetPointerv, isCallValid, context, pname, params);641}642else643{644GenerateContextLostErrorOnCurrentGlobalContext();645}646}647648void GL_APIENTRY GL_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params)649{650Context *context = GetValidGlobalContext();651EVENT(context, GLGetSamplerParameterIiv,652"context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context),653sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params);654655if (context)656{657SamplerID samplerPacked = PackParam<SamplerID>(sampler);658std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);659bool isCallValid = (context->skipValidation() ||660ValidateGetSamplerParameterIiv(context, samplerPacked, pname, params));661if (isCallValid)662{663context->getSamplerParameterIiv(samplerPacked, pname, params);664}665ANGLE_CAPTURE(GetSamplerParameterIiv, isCallValid, context, samplerPacked, pname, params);666}667else668{669GenerateContextLostErrorOnCurrentGlobalContext();670}671}672673void GL_APIENTRY GL_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params)674{675Context *context = GetValidGlobalContext();676EVENT(context, GLGetSamplerParameterIuiv,677"context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context),678sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)params);679680if (context)681{682SamplerID samplerPacked = PackParam<SamplerID>(sampler);683std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);684bool isCallValid = (context->skipValidation() ||685ValidateGetSamplerParameterIuiv(context, samplerPacked, pname, params));686if (isCallValid)687{688context->getSamplerParameterIuiv(samplerPacked, pname, params);689}690ANGLE_CAPTURE(GetSamplerParameterIuiv, isCallValid, context, samplerPacked, pname, params);691}692else693{694GenerateContextLostErrorOnCurrentGlobalContext();695}696}697698void GL_APIENTRY GL_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params)699{700Context *context = GetValidGlobalContext();701EVENT(context, GLGetTexParameterIiv,702"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),703GLenumToString(GLenumGroup::TextureTarget, target),704GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);705706if (context)707{708TextureType targetPacked = PackParam<TextureType>(target);709std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);710bool isCallValid = (context->skipValidation() ||711ValidateGetTexParameterIiv(context, targetPacked, pname, params));712if (isCallValid)713{714context->getTexParameterIiv(targetPacked, pname, params);715}716ANGLE_CAPTURE(GetTexParameterIiv, isCallValid, context, targetPacked, pname, params);717}718else719{720GenerateContextLostErrorOnCurrentGlobalContext();721}722}723724void GL_APIENTRY GL_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params)725{726Context *context = GetValidGlobalContext();727EVENT(context, GLGetTexParameterIuiv,728"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),729GLenumToString(GLenumGroup::TextureTarget, target),730GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);731732if (context)733{734TextureType targetPacked = PackParam<TextureType>(target);735std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);736bool isCallValid = (context->skipValidation() ||737ValidateGetTexParameterIuiv(context, targetPacked, pname, params));738if (isCallValid)739{740context->getTexParameterIuiv(targetPacked, pname, params);741}742ANGLE_CAPTURE(GetTexParameterIuiv, isCallValid, context, targetPacked, pname, params);743}744else745{746GenerateContextLostErrorOnCurrentGlobalContext();747}748}749750void GL_APIENTRY GL_GetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params)751{752Context *context = GetValidGlobalContext();753EVENT(context, GLGetnUniformfv,754"context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "",755CID(context), program, location, bufSize, (uintptr_t)params);756757if (context)758{759ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);760UniformLocation locationPacked = PackParam<UniformLocation>(location);761std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);762bool isCallValid =763(context->skipValidation() ||764ValidateGetnUniformfv(context, programPacked, locationPacked, bufSize, params));765if (isCallValid)766{767context->getnUniformfv(programPacked, locationPacked, bufSize, params);768}769ANGLE_CAPTURE(GetnUniformfv, isCallValid, context, programPacked, locationPacked, bufSize,770params);771}772else773{774GenerateContextLostErrorOnCurrentGlobalContext();775}776}777778void GL_APIENTRY GL_GetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params)779{780Context *context = GetValidGlobalContext();781EVENT(context, GLGetnUniformiv,782"context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "",783CID(context), program, location, bufSize, (uintptr_t)params);784785if (context)786{787ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);788UniformLocation locationPacked = PackParam<UniformLocation>(location);789std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);790bool isCallValid =791(context->skipValidation() ||792ValidateGetnUniformiv(context, programPacked, locationPacked, bufSize, params));793if (isCallValid)794{795context->getnUniformiv(programPacked, locationPacked, bufSize, params);796}797ANGLE_CAPTURE(GetnUniformiv, isCallValid, context, programPacked, locationPacked, bufSize,798params);799}800else801{802GenerateContextLostErrorOnCurrentGlobalContext();803}804}805806void GL_APIENTRY GL_GetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params)807{808Context *context = GetValidGlobalContext();809EVENT(context, GLGetnUniformuiv,810"context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "",811CID(context), program, location, bufSize, (uintptr_t)params);812813if (context)814{815ShaderProgramID programPacked = PackParam<ShaderProgramID>(program);816UniformLocation locationPacked = PackParam<UniformLocation>(location);817std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);818bool isCallValid =819(context->skipValidation() ||820ValidateGetnUniformuiv(context, programPacked, locationPacked, bufSize, params));821if (isCallValid)822{823context->getnUniformuiv(programPacked, locationPacked, bufSize, params);824}825ANGLE_CAPTURE(GetnUniformuiv, isCallValid, context, programPacked, locationPacked, bufSize,826params);827}828else829{830GenerateContextLostErrorOnCurrentGlobalContext();831}832}833834GLboolean GL_APIENTRY GL_IsEnabledi(GLenum target, GLuint index)835{836Context *context = GetValidGlobalContext();837EVENT(context, GLIsEnabledi, "context = %d, target = %s, index = %u", CID(context),838GLenumToString(GLenumGroup::EnableCap, target), index);839840GLboolean returnValue;841if (context)842{843std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);844bool isCallValid =845(context->skipValidation() || ValidateIsEnabledi(context, target, index));846if (isCallValid)847{848returnValue = context->isEnabledi(target, index);849}850else851{852returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsEnabledi, GLboolean>();853}854ANGLE_CAPTURE(IsEnabledi, isCallValid, context, target, index, returnValue);855}856else857{858GenerateContextLostErrorOnCurrentGlobalContext();859returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsEnabledi, GLboolean>();860}861return returnValue;862}863864void GL_APIENTRY GL_MinSampleShading(GLfloat value)865{866Context *context = GetValidGlobalContext();867EVENT(context, GLMinSampleShading, "context = %d, value = %f", CID(context), value);868869if (context)870{871std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);872bool isCallValid = (context->skipValidation() || ValidateMinSampleShading(context, value));873if (isCallValid)874{875context->minSampleShading(value);876}877ANGLE_CAPTURE(MinSampleShading, isCallValid, context, value);878}879else880{881GenerateContextLostErrorOnCurrentGlobalContext();882}883}884885void GL_APIENTRY GL_ObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label)886{887Context *context = GetValidGlobalContext();888EVENT(context, GLObjectLabel,889"context = %d, identifier = %s, name = %u, length = %d, label = 0x%016" PRIxPTR "",890CID(context), GLenumToString(GLenumGroup::ObjectIdentifier, identifier), name, length,891(uintptr_t)label);892893if (context)894{895std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);896bool isCallValid = (context->skipValidation() ||897ValidateObjectLabel(context, identifier, name, length, label));898if (isCallValid)899{900context->objectLabel(identifier, name, length, label);901}902ANGLE_CAPTURE(ObjectLabel, isCallValid, context, identifier, name, length, label);903}904else905{906GenerateContextLostErrorOnCurrentGlobalContext();907}908}909910void GL_APIENTRY GL_ObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label)911{912Context *context = GetValidGlobalContext();913EVENT(context, GLObjectPtrLabel,914"context = %d, ptr = 0x%016" PRIxPTR ", length = %d, label = 0x%016" PRIxPTR "",915CID(context), (uintptr_t)ptr, length, (uintptr_t)label);916917if (context)918{919std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);920bool isCallValid =921(context->skipValidation() || ValidateObjectPtrLabel(context, ptr, length, label));922if (isCallValid)923{924context->objectPtrLabel(ptr, length, label);925}926ANGLE_CAPTURE(ObjectPtrLabel, isCallValid, context, ptr, length, label);927}928else929{930GenerateContextLostErrorOnCurrentGlobalContext();931}932}933934void GL_APIENTRY GL_PatchParameteri(GLenum pname, GLint value)935{936Context *context = GetValidGlobalContext();937EVENT(context, GLPatchParameteri, "context = %d, pname = %s, value = %d", CID(context),938GLenumToString(GLenumGroup::PatchParameterName, pname), value);939940if (context)941{942std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);943bool isCallValid =944(context->skipValidation() || ValidatePatchParameteri(context, pname, value));945if (isCallValid)946{947context->patchParameteri(pname, value);948}949ANGLE_CAPTURE(PatchParameteri, isCallValid, context, pname, value);950}951else952{953GenerateContextLostErrorOnCurrentGlobalContext();954}955}956957void GL_APIENTRY GL_PopDebugGroup()958{959Context *context = GetValidGlobalContext();960EVENT(context, GLPopDebugGroup, "context = %d", CID(context));961962if (context)963{964std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);965bool isCallValid = (context->skipValidation() || ValidatePopDebugGroup(context));966if (isCallValid)967{968context->popDebugGroup();969}970ANGLE_CAPTURE(PopDebugGroup, isCallValid, context);971}972else973{974GenerateContextLostErrorOnCurrentGlobalContext();975}976}977978void GL_APIENTRY GL_PrimitiveBoundingBox(GLfloat minX,979GLfloat minY,980GLfloat minZ,981GLfloat minW,982GLfloat maxX,983GLfloat maxY,984GLfloat maxZ,985GLfloat maxW)986{987Context *context = GetValidGlobalContext();988EVENT(context, GLPrimitiveBoundingBox,989"context = %d, minX = %f, minY = %f, minZ = %f, minW = %f, maxX = %f, maxY = %f, maxZ = "990"%f, maxW = %f",991CID(context), minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);992993if (context)994{995std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);996bool isCallValid =997(context->skipValidation() ||998ValidatePrimitiveBoundingBox(context, minX, minY, minZ, minW, maxX, maxY, maxZ, maxW));999if (isCallValid)1000{1001context->primitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);1002}1003ANGLE_CAPTURE(PrimitiveBoundingBox, isCallValid, context, minX, minY, minZ, minW, maxX,1004maxY, maxZ, maxW);1005}1006else1007{1008GenerateContextLostErrorOnCurrentGlobalContext();1009}1010}10111012void GL_APIENTRY GL_PushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message)1013{1014Context *context = GetValidGlobalContext();1015EVENT(context, GLPushDebugGroup,1016"context = %d, source = %s, id = %u, length = %d, message = 0x%016" PRIxPTR "",1017CID(context), GLenumToString(GLenumGroup::DebugSource, source), id, length,1018(uintptr_t)message);10191020if (context)1021{1022std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1023bool isCallValid = (context->skipValidation() ||1024ValidatePushDebugGroup(context, source, id, length, message));1025if (isCallValid)1026{1027context->pushDebugGroup(source, id, length, message);1028}1029ANGLE_CAPTURE(PushDebugGroup, isCallValid, context, source, id, length, message);1030}1031else1032{1033GenerateContextLostErrorOnCurrentGlobalContext();1034}1035}10361037void GL_APIENTRY GL_ReadnPixels(GLint x,1038GLint y,1039GLsizei width,1040GLsizei height,1041GLenum format,1042GLenum type,1043GLsizei bufSize,1044void *data)1045{1046Context *context = GetValidGlobalContext();1047EVENT(context, GLReadnPixels,1048"context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, bufSize "1049"= %d, data = 0x%016" PRIxPTR "",1050CID(context), x, y, width, height, GLenumToString(GLenumGroup::PixelFormat, format),1051GLenumToString(GLenumGroup::PixelType, type), bufSize, (uintptr_t)data);10521053if (context)1054{1055std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1056bool isCallValid =1057(context->skipValidation() ||1058ValidateReadnPixels(context, x, y, width, height, format, type, bufSize, data));1059if (isCallValid)1060{1061context->readnPixels(x, y, width, height, format, type, bufSize, data);1062}1063ANGLE_CAPTURE(ReadnPixels, isCallValid, context, x, y, width, height, format, type, bufSize,1064data);1065}1066else1067{1068GenerateContextLostErrorOnCurrentGlobalContext();1069}1070}10711072void GL_APIENTRY GL_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param)1073{1074Context *context = GetValidGlobalContext();1075EVENT(context, GLSamplerParameterIiv,1076"context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context),1077sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param);10781079if (context)1080{1081SamplerID samplerPacked = PackParam<SamplerID>(sampler);1082std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1083bool isCallValid = (context->skipValidation() ||1084ValidateSamplerParameterIiv(context, samplerPacked, pname, param));1085if (isCallValid)1086{1087context->samplerParameterIiv(samplerPacked, pname, param);1088}1089ANGLE_CAPTURE(SamplerParameterIiv, isCallValid, context, samplerPacked, pname, param);1090}1091else1092{1093GenerateContextLostErrorOnCurrentGlobalContext();1094}1095}10961097void GL_APIENTRY GL_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param)1098{1099Context *context = GetValidGlobalContext();1100EVENT(context, GLSamplerParameterIuiv,1101"context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context),1102sampler, GLenumToString(GLenumGroup::SamplerParameterName, pname), (uintptr_t)param);11031104if (context)1105{1106SamplerID samplerPacked = PackParam<SamplerID>(sampler);1107std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1108bool isCallValid = (context->skipValidation() ||1109ValidateSamplerParameterIuiv(context, samplerPacked, pname, param));1110if (isCallValid)1111{1112context->samplerParameterIuiv(samplerPacked, pname, param);1113}1114ANGLE_CAPTURE(SamplerParameterIuiv, isCallValid, context, samplerPacked, pname, param);1115}1116else1117{1118GenerateContextLostErrorOnCurrentGlobalContext();1119}1120}11211122void GL_APIENTRY GL_TexBuffer(GLenum target, GLenum internalformat, GLuint buffer)1123{1124Context *context = GetValidGlobalContext();1125EVENT(context, GLTexBuffer, "context = %d, target = %s, internalformat = %s, buffer = %u",1126CID(context), GLenumToString(GLenumGroup::TextureTarget, target),1127GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer);11281129if (context)1130{1131TextureType targetPacked = PackParam<TextureType>(target);1132BufferID bufferPacked = PackParam<BufferID>(buffer);1133std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1134bool isCallValid = (context->skipValidation() ||1135ValidateTexBuffer(context, targetPacked, internalformat, bufferPacked));1136if (isCallValid)1137{1138context->texBuffer(targetPacked, internalformat, bufferPacked);1139}1140ANGLE_CAPTURE(TexBuffer, isCallValid, context, targetPacked, internalformat, bufferPacked);1141}1142else1143{1144GenerateContextLostErrorOnCurrentGlobalContext();1145}1146}11471148void GL_APIENTRY GL_TexBufferRange(GLenum target,1149GLenum internalformat,1150GLuint buffer,1151GLintptr offset,1152GLsizeiptr size)1153{1154Context *context = GetValidGlobalContext();1155EVENT(context, GLTexBufferRange,1156"context = %d, target = %s, internalformat = %s, buffer = %u, offset = %llu, size = %llu",1157CID(context), GLenumToString(GLenumGroup::TextureTarget, target),1158GLenumToString(GLenumGroup::InternalFormat, internalformat), buffer,1159static_cast<unsigned long long>(offset), static_cast<unsigned long long>(size));11601161if (context)1162{1163TextureType targetPacked = PackParam<TextureType>(target);1164BufferID bufferPacked = PackParam<BufferID>(buffer);1165std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1166bool isCallValid = (context->skipValidation() ||1167ValidateTexBufferRange(context, targetPacked, internalformat,1168bufferPacked, offset, size));1169if (isCallValid)1170{1171context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size);1172}1173ANGLE_CAPTURE(TexBufferRange, isCallValid, context, targetPacked, internalformat,1174bufferPacked, offset, size);1175}1176else1177{1178GenerateContextLostErrorOnCurrentGlobalContext();1179}1180}11811182void GL_APIENTRY GL_TexParameterIiv(GLenum target, GLenum pname, const GLint *params)1183{1184Context *context = GetValidGlobalContext();1185EVENT(context, GLTexParameterIiv,1186"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),1187GLenumToString(GLenumGroup::TextureTarget, target),1188GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params);11891190if (context)1191{1192TextureType targetPacked = PackParam<TextureType>(target);1193std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1194bool isCallValid = (context->skipValidation() ||1195ValidateTexParameterIiv(context, targetPacked, pname, params));1196if (isCallValid)1197{1198context->texParameterIiv(targetPacked, pname, params);1199}1200ANGLE_CAPTURE(TexParameterIiv, isCallValid, context, targetPacked, pname, params);1201}1202else1203{1204GenerateContextLostErrorOnCurrentGlobalContext();1205}1206}12071208void GL_APIENTRY GL_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params)1209{1210Context *context = GetValidGlobalContext();1211EVENT(context, GLTexParameterIuiv,1212"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),1213GLenumToString(GLenumGroup::TextureTarget, target),1214GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params);12151216if (context)1217{1218TextureType targetPacked = PackParam<TextureType>(target);1219std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1220bool isCallValid = (context->skipValidation() ||1221ValidateTexParameterIuiv(context, targetPacked, pname, params));1222if (isCallValid)1223{1224context->texParameterIuiv(targetPacked, pname, params);1225}1226ANGLE_CAPTURE(TexParameterIuiv, isCallValid, context, targetPacked, pname, params);1227}1228else1229{1230GenerateContextLostErrorOnCurrentGlobalContext();1231}1232}12331234void GL_APIENTRY GL_TexStorage3DMultisample(GLenum target,1235GLsizei samples,1236GLenum internalformat,1237GLsizei width,1238GLsizei height,1239GLsizei depth,1240GLboolean fixedsamplelocations)1241{1242Context *context = GetValidGlobalContext();1243EVENT(context, GLTexStorage3DMultisample,1244"context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, "1245"depth = %d, fixedsamplelocations = %s",1246CID(context), GLenumToString(GLenumGroup::TextureTarget, target), samples,1247GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth,1248GLbooleanToString(fixedsamplelocations));12491250if (context)1251{1252TextureType targetPacked = PackParam<TextureType>(target);1253std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1254bool isCallValid =1255(context->skipValidation() ||1256ValidateTexStorage3DMultisample(context, targetPacked, samples, internalformat, width,1257height, depth, fixedsamplelocations));1258if (isCallValid)1259{1260context->texStorage3DMultisample(targetPacked, samples, internalformat, width, height,1261depth, fixedsamplelocations);1262}1263ANGLE_CAPTURE(TexStorage3DMultisample, isCallValid, context, targetPacked, samples,1264internalformat, width, height, depth, fixedsamplelocations);1265}1266else1267{1268GenerateContextLostErrorOnCurrentGlobalContext();1269}1270}12711272} // extern "C"127312741275