Path: blob/main_old/src/libGL/entry_points_gl_1_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_gl_1_autogen.cpp:8// Defines the Desktop GL 1.x entry points.910#include "libGL/entry_points_gl_1_autogen.h"1112#include "libANGLE/Context.h"13#include "libANGLE/Context.inl.h"14#include "libANGLE/capture/gl_enum_utils.h"15#include "libANGLE/entry_points_utils.h"16#include "libANGLE/validationEGL.h"17#include "libANGLE/validationES.h"18#include "libANGLE/validationES1.h"19#include "libANGLE/validationES2.h"20#include "libANGLE/validationES3.h"21#include "libANGLE/validationES31.h"22#include "libANGLE/validationES32.h"23#include "libANGLE/validationESEXT.h"24#include "libANGLE/validationGL1_autogen.h"25#include "libGLESv2/global_state.h"2627using namespace gl;2829extern "C" {3031// GL 1.032void GL_APIENTRY GL_Accum(GLenum op, GLfloat value)33{34Context *context = GetValidGlobalContext();35EVENT(context, GLAccum, "context = %d, op = %s, value = %f", CID(context),36GLenumToString(GLenumGroup::AccumOp, op), value);3738if (context)39{40std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);41bool isCallValid = (context->skipValidation() || ValidateAccum(context, op, value));42if (isCallValid)43{44context->accum(op, value);45}46ANGLE_CAPTURE(Accum, isCallValid, context, op, value);47}48else49{50GenerateContextLostErrorOnCurrentGlobalContext();51}52}5354void GL_APIENTRY GL_AlphaFunc(GLenum func, GLfloat ref)55{56Context *context = GetValidGlobalContext();57EVENT(context, GLAlphaFunc, "context = %d, func = %s, ref = %f", CID(context),58GLenumToString(GLenumGroup::AlphaFunction, func), ref);5960if (context)61{62AlphaTestFunc funcPacked = PackParam<AlphaTestFunc>(func);63std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);64bool isCallValid =65(context->skipValidation() || ValidateAlphaFunc(context, funcPacked, ref));66if (isCallValid)67{68context->alphaFunc(funcPacked, ref);69}70ANGLE_CAPTURE(AlphaFunc, isCallValid, context, funcPacked, ref);71}72else73{74GenerateContextLostErrorOnCurrentGlobalContext();75}76}7778void GL_APIENTRY GL_Begin(GLenum mode)79{80Context *context = GetValidGlobalContext();81EVENT(context, GLBegin, "context = %d, mode = %s", CID(context),82GLenumToString(GLenumGroup::PrimitiveType, mode));8384if (context)85{86std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);87bool isCallValid = (context->skipValidation() || ValidateBegin(context, mode));88if (isCallValid)89{90context->begin(mode);91}92ANGLE_CAPTURE(Begin, isCallValid, context, mode);93}94else95{96GenerateContextLostErrorOnCurrentGlobalContext();97}98}99100void GL_APIENTRY GL_Bitmap(GLsizei width,101GLsizei height,102GLfloat xorig,103GLfloat yorig,104GLfloat xmove,105GLfloat ymove,106const GLubyte *bitmap)107{108Context *context = GetValidGlobalContext();109EVENT(context, GLBitmap,110"context = %d, width = %d, height = %d, xorig = %f, yorig = %f, xmove = %f, ymove = %f, "111"bitmap = 0x%016" PRIxPTR "",112CID(context), width, height, xorig, yorig, xmove, ymove, (uintptr_t)bitmap);113114if (context)115{116std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);117bool isCallValid =118(context->skipValidation() ||119ValidateBitmap(context, width, height, xorig, yorig, xmove, ymove, bitmap));120if (isCallValid)121{122context->bitmap(width, height, xorig, yorig, xmove, ymove, bitmap);123}124ANGLE_CAPTURE(Bitmap, isCallValid, context, width, height, xorig, yorig, xmove, ymove,125bitmap);126}127else128{129GenerateContextLostErrorOnCurrentGlobalContext();130}131}132133void GL_APIENTRY GL_BlendFunc(GLenum sfactor, GLenum dfactor)134{135Context *context = GetValidGlobalContext();136EVENT(context, GLBlendFunc, "context = %d, sfactor = %s, dfactor = %s", CID(context),137GLenumToString(GLenumGroup::BlendingFactor, sfactor),138GLenumToString(GLenumGroup::BlendingFactor, dfactor));139140if (context)141{142std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);143bool isCallValid =144(context->skipValidation() || ValidateBlendFunc(context, sfactor, dfactor));145if (isCallValid)146{147context->blendFunc(sfactor, dfactor);148}149ANGLE_CAPTURE(BlendFunc, isCallValid, context, sfactor, dfactor);150}151else152{153GenerateContextLostErrorOnCurrentGlobalContext();154}155}156157void GL_APIENTRY GL_CallList(GLuint list)158{159Context *context = GetValidGlobalContext();160EVENT(context, GLCallList, "context = %d, list = %u", CID(context), list);161162if (context)163{164std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);165bool isCallValid = (context->skipValidation() || ValidateCallList(context, list));166if (isCallValid)167{168context->callList(list);169}170ANGLE_CAPTURE(CallList, isCallValid, context, list);171}172else173{174GenerateContextLostErrorOnCurrentGlobalContext();175}176}177178void GL_APIENTRY GL_CallLists(GLsizei n, GLenum type, const void *lists)179{180Context *context = GetValidGlobalContext();181EVENT(context, GLCallLists, "context = %d, n = %d, type = %s, lists = 0x%016" PRIxPTR "",182CID(context), n, GLenumToString(GLenumGroup::ListNameType, type), (uintptr_t)lists);183184if (context)185{186std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);187bool isCallValid =188(context->skipValidation() || ValidateCallLists(context, n, type, lists));189if (isCallValid)190{191context->callLists(n, type, lists);192}193ANGLE_CAPTURE(CallLists, isCallValid, context, n, type, lists);194}195else196{197GenerateContextLostErrorOnCurrentGlobalContext();198}199}200201void GL_APIENTRY GL_Clear(GLbitfield mask)202{203Context *context = GetValidGlobalContext();204EVENT(context, GLClear, "context = %d, mask = %s", CID(context),205GLbitfieldToString(GLenumGroup::ClearBufferMask, mask).c_str());206207if (context)208{209std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);210bool isCallValid = (context->skipValidation() || ValidateClear(context, mask));211if (isCallValid)212{213context->clear(mask);214}215ANGLE_CAPTURE(Clear, isCallValid, context, mask);216}217else218{219GenerateContextLostErrorOnCurrentGlobalContext();220}221}222223void GL_APIENTRY GL_ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)224{225Context *context = GetValidGlobalContext();226EVENT(context, GLClearAccum, "context = %d, red = %f, green = %f, blue = %f, alpha = %f",227CID(context), red, green, blue, alpha);228229if (context)230{231std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);232bool isCallValid =233(context->skipValidation() || ValidateClearAccum(context, red, green, blue, alpha));234if (isCallValid)235{236context->clearAccum(red, green, blue, alpha);237}238ANGLE_CAPTURE(ClearAccum, isCallValid, context, red, green, blue, alpha);239}240else241{242GenerateContextLostErrorOnCurrentGlobalContext();243}244}245246void GL_APIENTRY GL_ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)247{248Context *context = GetValidGlobalContext();249EVENT(context, GLClearColor, "context = %d, red = %f, green = %f, blue = %f, alpha = %f",250CID(context), red, green, blue, alpha);251252if (context)253{254std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);255bool isCallValid =256(context->skipValidation() || ValidateClearColor(context, red, green, blue, alpha));257if (isCallValid)258{259context->clearColor(red, green, blue, alpha);260}261ANGLE_CAPTURE(ClearColor, isCallValid, context, red, green, blue, alpha);262}263else264{265GenerateContextLostErrorOnCurrentGlobalContext();266}267}268269void GL_APIENTRY GL_ClearDepth(GLdouble depth)270{271Context *context = GetValidGlobalContext();272EVENT(context, GLClearDepth, "context = %d, depth = %f", CID(context), depth);273274if (context)275{276std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);277bool isCallValid = (context->skipValidation() || ValidateClearDepth(context, depth));278if (isCallValid)279{280context->clearDepth(depth);281}282ANGLE_CAPTURE(ClearDepth, isCallValid, context, depth);283}284else285{286GenerateContextLostErrorOnCurrentGlobalContext();287}288}289290void GL_APIENTRY GL_ClearIndex(GLfloat c)291{292Context *context = GetValidGlobalContext();293EVENT(context, GLClearIndex, "context = %d, c = %f", CID(context), c);294295if (context)296{297std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);298bool isCallValid = (context->skipValidation() || ValidateClearIndex(context, c));299if (isCallValid)300{301context->clearIndex(c);302}303ANGLE_CAPTURE(ClearIndex, isCallValid, context, c);304}305else306{307GenerateContextLostErrorOnCurrentGlobalContext();308}309}310311void GL_APIENTRY GL_ClearStencil(GLint s)312{313Context *context = GetValidGlobalContext();314EVENT(context, GLClearStencil, "context = %d, s = %d", CID(context), s);315316if (context)317{318std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);319bool isCallValid = (context->skipValidation() || ValidateClearStencil(context, s));320if (isCallValid)321{322context->clearStencil(s);323}324ANGLE_CAPTURE(ClearStencil, isCallValid, context, s);325}326else327{328GenerateContextLostErrorOnCurrentGlobalContext();329}330}331332void GL_APIENTRY GL_ClipPlane(GLenum plane, const GLdouble *equation)333{334Context *context = GetValidGlobalContext();335EVENT(context, GLClipPlane, "context = %d, plane = %s, equation = 0x%016" PRIxPTR "",336CID(context), GLenumToString(GLenumGroup::ClipPlaneName, plane), (uintptr_t)equation);337338if (context)339{340std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);341bool isCallValid =342(context->skipValidation() || ValidateClipPlane(context, plane, equation));343if (isCallValid)344{345context->clipPlane(plane, equation);346}347ANGLE_CAPTURE(ClipPlane, isCallValid, context, plane, equation);348}349else350{351GenerateContextLostErrorOnCurrentGlobalContext();352}353}354355void GL_APIENTRY GL_Color3b(GLbyte red, GLbyte green, GLbyte blue)356{357Context *context = GetValidGlobalContext();358EVENT(context, GLColor3b, "context = %d, red = %d, green = %d, blue = %d", CID(context), red,359green, blue);360361if (context)362{363std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);364bool isCallValid =365(context->skipValidation() || ValidateColor3b(context, red, green, blue));366if (isCallValid)367{368context->color3b(red, green, blue);369}370ANGLE_CAPTURE(Color3b, isCallValid, context, red, green, blue);371}372else373{374GenerateContextLostErrorOnCurrentGlobalContext();375}376}377378void GL_APIENTRY GL_Color3bv(const GLbyte *v)379{380Context *context = GetValidGlobalContext();381EVENT(context, GLColor3bv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);382383if (context)384{385std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);386bool isCallValid = (context->skipValidation() || ValidateColor3bv(context, v));387if (isCallValid)388{389context->color3bv(v);390}391ANGLE_CAPTURE(Color3bv, isCallValid, context, v);392}393else394{395GenerateContextLostErrorOnCurrentGlobalContext();396}397}398399void GL_APIENTRY GL_Color3d(GLdouble red, GLdouble green, GLdouble blue)400{401Context *context = GetValidGlobalContext();402EVENT(context, GLColor3d, "context = %d, red = %f, green = %f, blue = %f", CID(context), red,403green, blue);404405if (context)406{407std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);408bool isCallValid =409(context->skipValidation() || ValidateColor3d(context, red, green, blue));410if (isCallValid)411{412context->color3d(red, green, blue);413}414ANGLE_CAPTURE(Color3d, isCallValid, context, red, green, blue);415}416else417{418GenerateContextLostErrorOnCurrentGlobalContext();419}420}421422void GL_APIENTRY GL_Color3dv(const GLdouble *v)423{424Context *context = GetValidGlobalContext();425EVENT(context, GLColor3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);426427if (context)428{429std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);430bool isCallValid = (context->skipValidation() || ValidateColor3dv(context, v));431if (isCallValid)432{433context->color3dv(v);434}435ANGLE_CAPTURE(Color3dv, isCallValid, context, v);436}437else438{439GenerateContextLostErrorOnCurrentGlobalContext();440}441}442443void GL_APIENTRY GL_Color3f(GLfloat red, GLfloat green, GLfloat blue)444{445Context *context = GetValidGlobalContext();446EVENT(context, GLColor3f, "context = %d, red = %f, green = %f, blue = %f", CID(context), red,447green, blue);448449if (context)450{451std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);452bool isCallValid =453(context->skipValidation() || ValidateColor3f(context, red, green, blue));454if (isCallValid)455{456context->color3f(red, green, blue);457}458ANGLE_CAPTURE(Color3f, isCallValid, context, red, green, blue);459}460else461{462GenerateContextLostErrorOnCurrentGlobalContext();463}464}465466void GL_APIENTRY GL_Color3fv(const GLfloat *v)467{468Context *context = GetValidGlobalContext();469EVENT(context, GLColor3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);470471if (context)472{473std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);474bool isCallValid = (context->skipValidation() || ValidateColor3fv(context, v));475if (isCallValid)476{477context->color3fv(v);478}479ANGLE_CAPTURE(Color3fv, isCallValid, context, v);480}481else482{483GenerateContextLostErrorOnCurrentGlobalContext();484}485}486487void GL_APIENTRY GL_Color3i(GLint red, GLint green, GLint blue)488{489Context *context = GetValidGlobalContext();490EVENT(context, GLColor3i, "context = %d, red = %d, green = %d, blue = %d", CID(context), red,491green, blue);492493if (context)494{495std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);496bool isCallValid =497(context->skipValidation() || ValidateColor3i(context, red, green, blue));498if (isCallValid)499{500context->color3i(red, green, blue);501}502ANGLE_CAPTURE(Color3i, isCallValid, context, red, green, blue);503}504else505{506GenerateContextLostErrorOnCurrentGlobalContext();507}508}509510void GL_APIENTRY GL_Color3iv(const GLint *v)511{512Context *context = GetValidGlobalContext();513EVENT(context, GLColor3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);514515if (context)516{517std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);518bool isCallValid = (context->skipValidation() || ValidateColor3iv(context, v));519if (isCallValid)520{521context->color3iv(v);522}523ANGLE_CAPTURE(Color3iv, isCallValid, context, v);524}525else526{527GenerateContextLostErrorOnCurrentGlobalContext();528}529}530531void GL_APIENTRY GL_Color3s(GLshort red, GLshort green, GLshort blue)532{533Context *context = GetValidGlobalContext();534EVENT(context, GLColor3s, "context = %d, red = %d, green = %d, blue = %d", CID(context), red,535green, blue);536537if (context)538{539std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);540bool isCallValid =541(context->skipValidation() || ValidateColor3s(context, red, green, blue));542if (isCallValid)543{544context->color3s(red, green, blue);545}546ANGLE_CAPTURE(Color3s, isCallValid, context, red, green, blue);547}548else549{550GenerateContextLostErrorOnCurrentGlobalContext();551}552}553554void GL_APIENTRY GL_Color3sv(const GLshort *v)555{556Context *context = GetValidGlobalContext();557EVENT(context, GLColor3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);558559if (context)560{561std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);562bool isCallValid = (context->skipValidation() || ValidateColor3sv(context, v));563if (isCallValid)564{565context->color3sv(v);566}567ANGLE_CAPTURE(Color3sv, isCallValid, context, v);568}569else570{571GenerateContextLostErrorOnCurrentGlobalContext();572}573}574575void GL_APIENTRY GL_Color3ub(GLubyte red, GLubyte green, GLubyte blue)576{577Context *context = GetValidGlobalContext();578EVENT(context, GLColor3ub, "context = %d, red = %d, green = %d, blue = %d", CID(context), red,579green, blue);580581if (context)582{583std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);584bool isCallValid =585(context->skipValidation() || ValidateColor3ub(context, red, green, blue));586if (isCallValid)587{588context->color3ub(red, green, blue);589}590ANGLE_CAPTURE(Color3ub, isCallValid, context, red, green, blue);591}592else593{594GenerateContextLostErrorOnCurrentGlobalContext();595}596}597598void GL_APIENTRY GL_Color3ubv(const GLubyte *v)599{600Context *context = GetValidGlobalContext();601EVENT(context, GLColor3ubv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);602603if (context)604{605std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);606bool isCallValid = (context->skipValidation() || ValidateColor3ubv(context, v));607if (isCallValid)608{609context->color3ubv(v);610}611ANGLE_CAPTURE(Color3ubv, isCallValid, context, v);612}613else614{615GenerateContextLostErrorOnCurrentGlobalContext();616}617}618619void GL_APIENTRY GL_Color3ui(GLuint red, GLuint green, GLuint blue)620{621Context *context = GetValidGlobalContext();622EVENT(context, GLColor3ui, "context = %d, red = %u, green = %u, blue = %u", CID(context), red,623green, blue);624625if (context)626{627std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);628bool isCallValid =629(context->skipValidation() || ValidateColor3ui(context, red, green, blue));630if (isCallValid)631{632context->color3ui(red, green, blue);633}634ANGLE_CAPTURE(Color3ui, isCallValid, context, red, green, blue);635}636else637{638GenerateContextLostErrorOnCurrentGlobalContext();639}640}641642void GL_APIENTRY GL_Color3uiv(const GLuint *v)643{644Context *context = GetValidGlobalContext();645EVENT(context, GLColor3uiv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);646647if (context)648{649std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);650bool isCallValid = (context->skipValidation() || ValidateColor3uiv(context, v));651if (isCallValid)652{653context->color3uiv(v);654}655ANGLE_CAPTURE(Color3uiv, isCallValid, context, v);656}657else658{659GenerateContextLostErrorOnCurrentGlobalContext();660}661}662663void GL_APIENTRY GL_Color3us(GLushort red, GLushort green, GLushort blue)664{665Context *context = GetValidGlobalContext();666EVENT(context, GLColor3us, "context = %d, red = %u, green = %u, blue = %u", CID(context), red,667green, blue);668669if (context)670{671std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);672bool isCallValid =673(context->skipValidation() || ValidateColor3us(context, red, green, blue));674if (isCallValid)675{676context->color3us(red, green, blue);677}678ANGLE_CAPTURE(Color3us, isCallValid, context, red, green, blue);679}680else681{682GenerateContextLostErrorOnCurrentGlobalContext();683}684}685686void GL_APIENTRY GL_Color3usv(const GLushort *v)687{688Context *context = GetValidGlobalContext();689EVENT(context, GLColor3usv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);690691if (context)692{693std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);694bool isCallValid = (context->skipValidation() || ValidateColor3usv(context, v));695if (isCallValid)696{697context->color3usv(v);698}699ANGLE_CAPTURE(Color3usv, isCallValid, context, v);700}701else702{703GenerateContextLostErrorOnCurrentGlobalContext();704}705}706707void GL_APIENTRY GL_Color4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)708{709Context *context = GetValidGlobalContext();710EVENT(context, GLColor4b, "context = %d, red = %d, green = %d, blue = %d, alpha = %d",711CID(context), red, green, blue, alpha);712713if (context)714{715std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);716bool isCallValid =717(context->skipValidation() || ValidateColor4b(context, red, green, blue, alpha));718if (isCallValid)719{720context->color4b(red, green, blue, alpha);721}722ANGLE_CAPTURE(Color4b, isCallValid, context, red, green, blue, alpha);723}724else725{726GenerateContextLostErrorOnCurrentGlobalContext();727}728}729730void GL_APIENTRY GL_Color4bv(const GLbyte *v)731{732Context *context = GetValidGlobalContext();733EVENT(context, GLColor4bv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);734735if (context)736{737std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);738bool isCallValid = (context->skipValidation() || ValidateColor4bv(context, v));739if (isCallValid)740{741context->color4bv(v);742}743ANGLE_CAPTURE(Color4bv, isCallValid, context, v);744}745else746{747GenerateContextLostErrorOnCurrentGlobalContext();748}749}750751void GL_APIENTRY GL_Color4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)752{753Context *context = GetValidGlobalContext();754EVENT(context, GLColor4d, "context = %d, red = %f, green = %f, blue = %f, alpha = %f",755CID(context), red, green, blue, alpha);756757if (context)758{759std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);760bool isCallValid =761(context->skipValidation() || ValidateColor4d(context, red, green, blue, alpha));762if (isCallValid)763{764context->color4d(red, green, blue, alpha);765}766ANGLE_CAPTURE(Color4d, isCallValid, context, red, green, blue, alpha);767}768else769{770GenerateContextLostErrorOnCurrentGlobalContext();771}772}773774void GL_APIENTRY GL_Color4dv(const GLdouble *v)775{776Context *context = GetValidGlobalContext();777EVENT(context, GLColor4dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);778779if (context)780{781std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);782bool isCallValid = (context->skipValidation() || ValidateColor4dv(context, v));783if (isCallValid)784{785context->color4dv(v);786}787ANGLE_CAPTURE(Color4dv, isCallValid, context, v);788}789else790{791GenerateContextLostErrorOnCurrentGlobalContext();792}793}794795void GL_APIENTRY GL_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)796{797Context *context = GetValidGlobalContext();798EVENT(context, GLColor4f, "context = %d, red = %f, green = %f, blue = %f, alpha = %f",799CID(context), red, green, blue, alpha);800801if (context)802{803std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);804bool isCallValid =805(context->skipValidation() || ValidateColor4f(context, red, green, blue, alpha));806if (isCallValid)807{808context->color4f(red, green, blue, alpha);809}810ANGLE_CAPTURE(Color4f, isCallValid, context, red, green, blue, alpha);811}812else813{814GenerateContextLostErrorOnCurrentGlobalContext();815}816}817818void GL_APIENTRY GL_Color4fv(const GLfloat *v)819{820Context *context = GetValidGlobalContext();821EVENT(context, GLColor4fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);822823if (context)824{825std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);826bool isCallValid = (context->skipValidation() || ValidateColor4fv(context, v));827if (isCallValid)828{829context->color4fv(v);830}831ANGLE_CAPTURE(Color4fv, isCallValid, context, v);832}833else834{835GenerateContextLostErrorOnCurrentGlobalContext();836}837}838839void GL_APIENTRY GL_Color4i(GLint red, GLint green, GLint blue, GLint alpha)840{841Context *context = GetValidGlobalContext();842EVENT(context, GLColor4i, "context = %d, red = %d, green = %d, blue = %d, alpha = %d",843CID(context), red, green, blue, alpha);844845if (context)846{847std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);848bool isCallValid =849(context->skipValidation() || ValidateColor4i(context, red, green, blue, alpha));850if (isCallValid)851{852context->color4i(red, green, blue, alpha);853}854ANGLE_CAPTURE(Color4i, isCallValid, context, red, green, blue, alpha);855}856else857{858GenerateContextLostErrorOnCurrentGlobalContext();859}860}861862void GL_APIENTRY GL_Color4iv(const GLint *v)863{864Context *context = GetValidGlobalContext();865EVENT(context, GLColor4iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);866867if (context)868{869std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);870bool isCallValid = (context->skipValidation() || ValidateColor4iv(context, v));871if (isCallValid)872{873context->color4iv(v);874}875ANGLE_CAPTURE(Color4iv, isCallValid, context, v);876}877else878{879GenerateContextLostErrorOnCurrentGlobalContext();880}881}882883void GL_APIENTRY GL_Color4s(GLshort red, GLshort green, GLshort blue, GLshort alpha)884{885Context *context = GetValidGlobalContext();886EVENT(context, GLColor4s, "context = %d, red = %d, green = %d, blue = %d, alpha = %d",887CID(context), red, green, blue, alpha);888889if (context)890{891std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);892bool isCallValid =893(context->skipValidation() || ValidateColor4s(context, red, green, blue, alpha));894if (isCallValid)895{896context->color4s(red, green, blue, alpha);897}898ANGLE_CAPTURE(Color4s, isCallValid, context, red, green, blue, alpha);899}900else901{902GenerateContextLostErrorOnCurrentGlobalContext();903}904}905906void GL_APIENTRY GL_Color4sv(const GLshort *v)907{908Context *context = GetValidGlobalContext();909EVENT(context, GLColor4sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);910911if (context)912{913std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);914bool isCallValid = (context->skipValidation() || ValidateColor4sv(context, v));915if (isCallValid)916{917context->color4sv(v);918}919ANGLE_CAPTURE(Color4sv, isCallValid, context, v);920}921else922{923GenerateContextLostErrorOnCurrentGlobalContext();924}925}926927void GL_APIENTRY GL_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)928{929Context *context = GetValidGlobalContext();930EVENT(context, GLColor4ub, "context = %d, red = %d, green = %d, blue = %d, alpha = %d",931CID(context), red, green, blue, alpha);932933if (context)934{935std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);936bool isCallValid =937(context->skipValidation() || ValidateColor4ub(context, red, green, blue, alpha));938if (isCallValid)939{940context->color4ub(red, green, blue, alpha);941}942ANGLE_CAPTURE(Color4ub, isCallValid, context, red, green, blue, alpha);943}944else945{946GenerateContextLostErrorOnCurrentGlobalContext();947}948}949950void GL_APIENTRY GL_Color4ubv(const GLubyte *v)951{952Context *context = GetValidGlobalContext();953EVENT(context, GLColor4ubv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);954955if (context)956{957std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);958bool isCallValid = (context->skipValidation() || ValidateColor4ubv(context, v));959if (isCallValid)960{961context->color4ubv(v);962}963ANGLE_CAPTURE(Color4ubv, isCallValid, context, v);964}965else966{967GenerateContextLostErrorOnCurrentGlobalContext();968}969}970971void GL_APIENTRY GL_Color4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha)972{973Context *context = GetValidGlobalContext();974EVENT(context, GLColor4ui, "context = %d, red = %u, green = %u, blue = %u, alpha = %u",975CID(context), red, green, blue, alpha);976977if (context)978{979std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);980bool isCallValid =981(context->skipValidation() || ValidateColor4ui(context, red, green, blue, alpha));982if (isCallValid)983{984context->color4ui(red, green, blue, alpha);985}986ANGLE_CAPTURE(Color4ui, isCallValid, context, red, green, blue, alpha);987}988else989{990GenerateContextLostErrorOnCurrentGlobalContext();991}992}993994void GL_APIENTRY GL_Color4uiv(const GLuint *v)995{996Context *context = GetValidGlobalContext();997EVENT(context, GLColor4uiv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);998999if (context)1000{1001std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1002bool isCallValid = (context->skipValidation() || ValidateColor4uiv(context, v));1003if (isCallValid)1004{1005context->color4uiv(v);1006}1007ANGLE_CAPTURE(Color4uiv, isCallValid, context, v);1008}1009else1010{1011GenerateContextLostErrorOnCurrentGlobalContext();1012}1013}10141015void GL_APIENTRY GL_Color4us(GLushort red, GLushort green, GLushort blue, GLushort alpha)1016{1017Context *context = GetValidGlobalContext();1018EVENT(context, GLColor4us, "context = %d, red = %u, green = %u, blue = %u, alpha = %u",1019CID(context), red, green, blue, alpha);10201021if (context)1022{1023std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1024bool isCallValid =1025(context->skipValidation() || ValidateColor4us(context, red, green, blue, alpha));1026if (isCallValid)1027{1028context->color4us(red, green, blue, alpha);1029}1030ANGLE_CAPTURE(Color4us, isCallValid, context, red, green, blue, alpha);1031}1032else1033{1034GenerateContextLostErrorOnCurrentGlobalContext();1035}1036}10371038void GL_APIENTRY GL_Color4usv(const GLushort *v)1039{1040Context *context = GetValidGlobalContext();1041EVENT(context, GLColor4usv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);10421043if (context)1044{1045std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1046bool isCallValid = (context->skipValidation() || ValidateColor4usv(context, v));1047if (isCallValid)1048{1049context->color4usv(v);1050}1051ANGLE_CAPTURE(Color4usv, isCallValid, context, v);1052}1053else1054{1055GenerateContextLostErrorOnCurrentGlobalContext();1056}1057}10581059void GL_APIENTRY GL_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)1060{1061Context *context = GetValidGlobalContext();1062EVENT(context, GLColorMask, "context = %d, red = %s, green = %s, blue = %s, alpha = %s",1063CID(context), GLbooleanToString(red), GLbooleanToString(green), GLbooleanToString(blue),1064GLbooleanToString(alpha));10651066if (context)1067{1068std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1069bool isCallValid =1070(context->skipValidation() || ValidateColorMask(context, red, green, blue, alpha));1071if (isCallValid)1072{1073context->colorMask(red, green, blue, alpha);1074}1075ANGLE_CAPTURE(ColorMask, isCallValid, context, red, green, blue, alpha);1076}1077else1078{1079GenerateContextLostErrorOnCurrentGlobalContext();1080}1081}10821083void GL_APIENTRY GL_ColorMaterial(GLenum face, GLenum mode)1084{1085Context *context = GetValidGlobalContext();1086EVENT(context, GLColorMaterial, "context = %d, face = %s, mode = %s", CID(context),1087GLenumToString(GLenumGroup::MaterialFace, face),1088GLenumToString(GLenumGroup::ColorMaterialParameter, mode));10891090if (context)1091{1092std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1093bool isCallValid =1094(context->skipValidation() || ValidateColorMaterial(context, face, mode));1095if (isCallValid)1096{1097context->colorMaterial(face, mode);1098}1099ANGLE_CAPTURE(ColorMaterial, isCallValid, context, face, mode);1100}1101else1102{1103GenerateContextLostErrorOnCurrentGlobalContext();1104}1105}11061107void GL_APIENTRY GL_CopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)1108{1109Context *context = GetValidGlobalContext();1110EVENT(context, GLCopyPixels, "context = %d, x = %d, y = %d, width = %d, height = %d, type = %s",1111CID(context), x, y, width, height, GLenumToString(GLenumGroup::PixelCopyType, type));11121113if (context)1114{1115std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1116bool isCallValid =1117(context->skipValidation() || ValidateCopyPixels(context, x, y, width, height, type));1118if (isCallValid)1119{1120context->copyPixels(x, y, width, height, type);1121}1122ANGLE_CAPTURE(CopyPixels, isCallValid, context, x, y, width, height, type);1123}1124else1125{1126GenerateContextLostErrorOnCurrentGlobalContext();1127}1128}11291130void GL_APIENTRY GL_CullFace(GLenum mode)1131{1132Context *context = GetValidGlobalContext();1133EVENT(context, GLCullFace, "context = %d, mode = %s", CID(context),1134GLenumToString(GLenumGroup::CullFaceMode, mode));11351136if (context)1137{1138CullFaceMode modePacked = PackParam<CullFaceMode>(mode);1139std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1140bool isCallValid = (context->skipValidation() || ValidateCullFace(context, modePacked));1141if (isCallValid)1142{1143context->cullFace(modePacked);1144}1145ANGLE_CAPTURE(CullFace, isCallValid, context, modePacked);1146}1147else1148{1149GenerateContextLostErrorOnCurrentGlobalContext();1150}1151}11521153void GL_APIENTRY GL_DeleteLists(GLuint list, GLsizei range)1154{1155Context *context = GetValidGlobalContext();1156EVENT(context, GLDeleteLists, "context = %d, list = %u, range = %d", CID(context), list, range);11571158if (context)1159{1160std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1161bool isCallValid = (context->skipValidation() || ValidateDeleteLists(context, list, range));1162if (isCallValid)1163{1164context->deleteLists(list, range);1165}1166ANGLE_CAPTURE(DeleteLists, isCallValid, context, list, range);1167}1168else1169{1170GenerateContextLostErrorOnCurrentGlobalContext();1171}1172}11731174void GL_APIENTRY GL_DepthFunc(GLenum func)1175{1176Context *context = GetValidGlobalContext();1177EVENT(context, GLDepthFunc, "context = %d, func = %s", CID(context),1178GLenumToString(GLenumGroup::DepthFunction, func));11791180if (context)1181{1182std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1183bool isCallValid = (context->skipValidation() || ValidateDepthFunc(context, func));1184if (isCallValid)1185{1186context->depthFunc(func);1187}1188ANGLE_CAPTURE(DepthFunc, isCallValid, context, func);1189}1190else1191{1192GenerateContextLostErrorOnCurrentGlobalContext();1193}1194}11951196void GL_APIENTRY GL_DepthMask(GLboolean flag)1197{1198Context *context = GetValidGlobalContext();1199EVENT(context, GLDepthMask, "context = %d, flag = %s", CID(context), GLbooleanToString(flag));12001201if (context)1202{1203std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1204bool isCallValid = (context->skipValidation() || ValidateDepthMask(context, flag));1205if (isCallValid)1206{1207context->depthMask(flag);1208}1209ANGLE_CAPTURE(DepthMask, isCallValid, context, flag);1210}1211else1212{1213GenerateContextLostErrorOnCurrentGlobalContext();1214}1215}12161217void GL_APIENTRY GL_DepthRange(GLdouble n, GLdouble f)1218{1219Context *context = GetValidGlobalContext();1220EVENT(context, GLDepthRange, "context = %d, n = %f, f = %f", CID(context), n, f);12211222if (context)1223{1224std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1225bool isCallValid = (context->skipValidation() || ValidateDepthRange(context, n, f));1226if (isCallValid)1227{1228context->depthRange(n, f);1229}1230ANGLE_CAPTURE(DepthRange, isCallValid, context, n, f);1231}1232else1233{1234GenerateContextLostErrorOnCurrentGlobalContext();1235}1236}12371238void GL_APIENTRY GL_Disable(GLenum cap)1239{1240Context *context = GetValidGlobalContext();1241EVENT(context, GLDisable, "context = %d, cap = %s", CID(context),1242GLenumToString(GLenumGroup::EnableCap, cap));12431244if (context)1245{1246std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1247bool isCallValid = (context->skipValidation() || ValidateDisable(context, cap));1248if (isCallValid)1249{1250context->disable(cap);1251}1252ANGLE_CAPTURE(Disable, isCallValid, context, cap);1253}1254else1255{1256GenerateContextLostErrorOnCurrentGlobalContext();1257}1258}12591260void GL_APIENTRY GL_DrawBuffer(GLenum buf)1261{1262Context *context = GetValidGlobalContext();1263EVENT(context, GLDrawBuffer, "context = %d, buf = %s", CID(context),1264GLenumToString(GLenumGroup::DrawBufferMode, buf));12651266if (context)1267{1268std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1269bool isCallValid = (context->skipValidation() || ValidateDrawBuffer(context, buf));1270if (isCallValid)1271{1272context->drawBuffer(buf);1273}1274ANGLE_CAPTURE(DrawBuffer, isCallValid, context, buf);1275}1276else1277{1278GenerateContextLostErrorOnCurrentGlobalContext();1279}1280}12811282void GL_APIENTRY1283GL_DrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)1284{1285Context *context = GetValidGlobalContext();1286EVENT(context, GLDrawPixels,1287"context = %d, width = %d, height = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR1288"",1289CID(context), width, height, GLenumToString(GLenumGroup::PixelFormat, format),1290GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);12911292if (context)1293{1294std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1295bool isCallValid = (context->skipValidation() ||1296ValidateDrawPixels(context, width, height, format, type, pixels));1297if (isCallValid)1298{1299context->drawPixels(width, height, format, type, pixels);1300}1301ANGLE_CAPTURE(DrawPixels, isCallValid, context, width, height, format, type, pixels);1302}1303else1304{1305GenerateContextLostErrorOnCurrentGlobalContext();1306}1307}13081309void GL_APIENTRY GL_EdgeFlag(GLboolean flag)1310{1311Context *context = GetValidGlobalContext();1312EVENT(context, GLEdgeFlag, "context = %d, flag = %s", CID(context), GLbooleanToString(flag));13131314if (context)1315{1316std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1317bool isCallValid = (context->skipValidation() || ValidateEdgeFlag(context, flag));1318if (isCallValid)1319{1320context->edgeFlag(flag);1321}1322ANGLE_CAPTURE(EdgeFlag, isCallValid, context, flag);1323}1324else1325{1326GenerateContextLostErrorOnCurrentGlobalContext();1327}1328}13291330void GL_APIENTRY GL_EdgeFlagv(const GLboolean *flag)1331{1332Context *context = GetValidGlobalContext();1333EVENT(context, GLEdgeFlagv, "context = %d, flag = 0x%016" PRIxPTR "", CID(context),1334(uintptr_t)flag);13351336if (context)1337{1338std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1339bool isCallValid = (context->skipValidation() || ValidateEdgeFlagv(context, flag));1340if (isCallValid)1341{1342context->edgeFlagv(flag);1343}1344ANGLE_CAPTURE(EdgeFlagv, isCallValid, context, flag);1345}1346else1347{1348GenerateContextLostErrorOnCurrentGlobalContext();1349}1350}13511352void GL_APIENTRY GL_Enable(GLenum cap)1353{1354Context *context = GetValidGlobalContext();1355EVENT(context, GLEnable, "context = %d, cap = %s", CID(context),1356GLenumToString(GLenumGroup::EnableCap, cap));13571358if (context)1359{1360std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1361bool isCallValid = (context->skipValidation() || ValidateEnable(context, cap));1362if (isCallValid)1363{1364context->enable(cap);1365}1366ANGLE_CAPTURE(Enable, isCallValid, context, cap);1367}1368else1369{1370GenerateContextLostErrorOnCurrentGlobalContext();1371}1372}13731374void GL_APIENTRY GL_End()1375{1376Context *context = GetValidGlobalContext();1377EVENT(context, GLEnd, "context = %d", CID(context));13781379if (context)1380{1381std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1382bool isCallValid = (context->skipValidation() || ValidateEnd(context));1383if (isCallValid)1384{1385context->end();1386}1387ANGLE_CAPTURE(End, isCallValid, context);1388}1389else1390{1391GenerateContextLostErrorOnCurrentGlobalContext();1392}1393}13941395void GL_APIENTRY GL_EndList()1396{1397Context *context = GetValidGlobalContext();1398EVENT(context, GLEndList, "context = %d", CID(context));13991400if (context)1401{1402std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1403bool isCallValid = (context->skipValidation() || ValidateEndList(context));1404if (isCallValid)1405{1406context->endList();1407}1408ANGLE_CAPTURE(EndList, isCallValid, context);1409}1410else1411{1412GenerateContextLostErrorOnCurrentGlobalContext();1413}1414}14151416void GL_APIENTRY GL_EvalCoord1d(GLdouble u)1417{1418Context *context = GetValidGlobalContext();1419EVENT(context, GLEvalCoord1d, "context = %d, u = %f", CID(context), u);14201421if (context)1422{1423std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1424bool isCallValid = (context->skipValidation() || ValidateEvalCoord1d(context, u));1425if (isCallValid)1426{1427context->evalCoord1d(u);1428}1429ANGLE_CAPTURE(EvalCoord1d, isCallValid, context, u);1430}1431else1432{1433GenerateContextLostErrorOnCurrentGlobalContext();1434}1435}14361437void GL_APIENTRY GL_EvalCoord1dv(const GLdouble *u)1438{1439Context *context = GetValidGlobalContext();1440EVENT(context, GLEvalCoord1dv, "context = %d, u = 0x%016" PRIxPTR "", CID(context),1441(uintptr_t)u);14421443if (context)1444{1445std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1446bool isCallValid = (context->skipValidation() || ValidateEvalCoord1dv(context, u));1447if (isCallValid)1448{1449context->evalCoord1dv(u);1450}1451ANGLE_CAPTURE(EvalCoord1dv, isCallValid, context, u);1452}1453else1454{1455GenerateContextLostErrorOnCurrentGlobalContext();1456}1457}14581459void GL_APIENTRY GL_EvalCoord1f(GLfloat u)1460{1461Context *context = GetValidGlobalContext();1462EVENT(context, GLEvalCoord1f, "context = %d, u = %f", CID(context), u);14631464if (context)1465{1466std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1467bool isCallValid = (context->skipValidation() || ValidateEvalCoord1f(context, u));1468if (isCallValid)1469{1470context->evalCoord1f(u);1471}1472ANGLE_CAPTURE(EvalCoord1f, isCallValid, context, u);1473}1474else1475{1476GenerateContextLostErrorOnCurrentGlobalContext();1477}1478}14791480void GL_APIENTRY GL_EvalCoord1fv(const GLfloat *u)1481{1482Context *context = GetValidGlobalContext();1483EVENT(context, GLEvalCoord1fv, "context = %d, u = 0x%016" PRIxPTR "", CID(context),1484(uintptr_t)u);14851486if (context)1487{1488std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1489bool isCallValid = (context->skipValidation() || ValidateEvalCoord1fv(context, u));1490if (isCallValid)1491{1492context->evalCoord1fv(u);1493}1494ANGLE_CAPTURE(EvalCoord1fv, isCallValid, context, u);1495}1496else1497{1498GenerateContextLostErrorOnCurrentGlobalContext();1499}1500}15011502void GL_APIENTRY GL_EvalCoord2d(GLdouble u, GLdouble v)1503{1504Context *context = GetValidGlobalContext();1505EVENT(context, GLEvalCoord2d, "context = %d, u = %f, v = %f", CID(context), u, v);15061507if (context)1508{1509std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1510bool isCallValid = (context->skipValidation() || ValidateEvalCoord2d(context, u, v));1511if (isCallValid)1512{1513context->evalCoord2d(u, v);1514}1515ANGLE_CAPTURE(EvalCoord2d, isCallValid, context, u, v);1516}1517else1518{1519GenerateContextLostErrorOnCurrentGlobalContext();1520}1521}15221523void GL_APIENTRY GL_EvalCoord2dv(const GLdouble *u)1524{1525Context *context = GetValidGlobalContext();1526EVENT(context, GLEvalCoord2dv, "context = %d, u = 0x%016" PRIxPTR "", CID(context),1527(uintptr_t)u);15281529if (context)1530{1531std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1532bool isCallValid = (context->skipValidation() || ValidateEvalCoord2dv(context, u));1533if (isCallValid)1534{1535context->evalCoord2dv(u);1536}1537ANGLE_CAPTURE(EvalCoord2dv, isCallValid, context, u);1538}1539else1540{1541GenerateContextLostErrorOnCurrentGlobalContext();1542}1543}15441545void GL_APIENTRY GL_EvalCoord2f(GLfloat u, GLfloat v)1546{1547Context *context = GetValidGlobalContext();1548EVENT(context, GLEvalCoord2f, "context = %d, u = %f, v = %f", CID(context), u, v);15491550if (context)1551{1552std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1553bool isCallValid = (context->skipValidation() || ValidateEvalCoord2f(context, u, v));1554if (isCallValid)1555{1556context->evalCoord2f(u, v);1557}1558ANGLE_CAPTURE(EvalCoord2f, isCallValid, context, u, v);1559}1560else1561{1562GenerateContextLostErrorOnCurrentGlobalContext();1563}1564}15651566void GL_APIENTRY GL_EvalCoord2fv(const GLfloat *u)1567{1568Context *context = GetValidGlobalContext();1569EVENT(context, GLEvalCoord2fv, "context = %d, u = 0x%016" PRIxPTR "", CID(context),1570(uintptr_t)u);15711572if (context)1573{1574std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1575bool isCallValid = (context->skipValidation() || ValidateEvalCoord2fv(context, u));1576if (isCallValid)1577{1578context->evalCoord2fv(u);1579}1580ANGLE_CAPTURE(EvalCoord2fv, isCallValid, context, u);1581}1582else1583{1584GenerateContextLostErrorOnCurrentGlobalContext();1585}1586}15871588void GL_APIENTRY GL_EvalMesh1(GLenum mode, GLint i1, GLint i2)1589{1590Context *context = GetValidGlobalContext();1591EVENT(context, GLEvalMesh1, "context = %d, mode = %s, i1 = %d, i2 = %d", CID(context),1592GLenumToString(GLenumGroup::MeshMode1, mode), i1, i2);15931594if (context)1595{1596std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1597bool isCallValid = (context->skipValidation() || ValidateEvalMesh1(context, mode, i1, i2));1598if (isCallValid)1599{1600context->evalMesh1(mode, i1, i2);1601}1602ANGLE_CAPTURE(EvalMesh1, isCallValid, context, mode, i1, i2);1603}1604else1605{1606GenerateContextLostErrorOnCurrentGlobalContext();1607}1608}16091610void GL_APIENTRY GL_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)1611{1612Context *context = GetValidGlobalContext();1613EVENT(context, GLEvalMesh2, "context = %d, mode = %s, i1 = %d, i2 = %d, j1 = %d, j2 = %d",1614CID(context), GLenumToString(GLenumGroup::MeshMode2, mode), i1, i2, j1, j2);16151616if (context)1617{1618std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1619bool isCallValid =1620(context->skipValidation() || ValidateEvalMesh2(context, mode, i1, i2, j1, j2));1621if (isCallValid)1622{1623context->evalMesh2(mode, i1, i2, j1, j2);1624}1625ANGLE_CAPTURE(EvalMesh2, isCallValid, context, mode, i1, i2, j1, j2);1626}1627else1628{1629GenerateContextLostErrorOnCurrentGlobalContext();1630}1631}16321633void GL_APIENTRY GL_EvalPoint1(GLint i)1634{1635Context *context = GetValidGlobalContext();1636EVENT(context, GLEvalPoint1, "context = %d, i = %d", CID(context), i);16371638if (context)1639{1640std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1641bool isCallValid = (context->skipValidation() || ValidateEvalPoint1(context, i));1642if (isCallValid)1643{1644context->evalPoint1(i);1645}1646ANGLE_CAPTURE(EvalPoint1, isCallValid, context, i);1647}1648else1649{1650GenerateContextLostErrorOnCurrentGlobalContext();1651}1652}16531654void GL_APIENTRY GL_EvalPoint2(GLint i, GLint j)1655{1656Context *context = GetValidGlobalContext();1657EVENT(context, GLEvalPoint2, "context = %d, i = %d, j = %d", CID(context), i, j);16581659if (context)1660{1661std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1662bool isCallValid = (context->skipValidation() || ValidateEvalPoint2(context, i, j));1663if (isCallValid)1664{1665context->evalPoint2(i, j);1666}1667ANGLE_CAPTURE(EvalPoint2, isCallValid, context, i, j);1668}1669else1670{1671GenerateContextLostErrorOnCurrentGlobalContext();1672}1673}16741675void GL_APIENTRY GL_FeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer)1676{1677Context *context = GetValidGlobalContext();1678EVENT(context, GLFeedbackBuffer,1679"context = %d, size = %d, type = %s, buffer = 0x%016" PRIxPTR "", CID(context), size,1680GLenumToString(GLenumGroup::FeedbackType, type), (uintptr_t)buffer);16811682if (context)1683{1684std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1685bool isCallValid =1686(context->skipValidation() || ValidateFeedbackBuffer(context, size, type, buffer));1687if (isCallValid)1688{1689context->feedbackBuffer(size, type, buffer);1690}1691ANGLE_CAPTURE(FeedbackBuffer, isCallValid, context, size, type, buffer);1692}1693else1694{1695GenerateContextLostErrorOnCurrentGlobalContext();1696}1697}16981699void GL_APIENTRY GL_Finish()1700{1701Context *context = GetValidGlobalContext();1702EVENT(context, GLFinish, "context = %d", CID(context));17031704if (context)1705{1706std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1707bool isCallValid = (context->skipValidation() || ValidateFinish(context));1708if (isCallValid)1709{1710context->finish();1711}1712ANGLE_CAPTURE(Finish, isCallValid, context);1713}1714else1715{1716GenerateContextLostErrorOnCurrentGlobalContext();1717}1718}17191720void GL_APIENTRY GL_Flush()1721{1722Context *context = GetValidGlobalContext();1723EVENT(context, GLFlush, "context = %d", CID(context));17241725if (context)1726{1727std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1728bool isCallValid = (context->skipValidation() || ValidateFlush(context));1729if (isCallValid)1730{1731context->flush();1732}1733ANGLE_CAPTURE(Flush, isCallValid, context);1734}1735else1736{1737GenerateContextLostErrorOnCurrentGlobalContext();1738}1739}17401741void GL_APIENTRY GL_Fogf(GLenum pname, GLfloat param)1742{1743Context *context = GetValidGlobalContext();1744EVENT(context, GLFogf, "context = %d, pname = %s, param = %f", CID(context),1745GLenumToString(GLenumGroup::FogParameter, pname), param);17461747if (context)1748{1749std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1750bool isCallValid = (context->skipValidation() || ValidateFogf(context, pname, param));1751if (isCallValid)1752{1753context->fogf(pname, param);1754}1755ANGLE_CAPTURE(Fogf, isCallValid, context, pname, param);1756}1757else1758{1759GenerateContextLostErrorOnCurrentGlobalContext();1760}1761}17621763void GL_APIENTRY GL_Fogfv(GLenum pname, const GLfloat *params)1764{1765Context *context = GetValidGlobalContext();1766EVENT(context, GLFogfv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", CID(context),1767GLenumToString(GLenumGroup::FogParameter, pname), (uintptr_t)params);17681769if (context)1770{1771std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1772bool isCallValid = (context->skipValidation() || ValidateFogfv(context, pname, params));1773if (isCallValid)1774{1775context->fogfv(pname, params);1776}1777ANGLE_CAPTURE(Fogfv, isCallValid, context, pname, params);1778}1779else1780{1781GenerateContextLostErrorOnCurrentGlobalContext();1782}1783}17841785void GL_APIENTRY GL_Fogi(GLenum pname, GLint param)1786{1787Context *context = GetValidGlobalContext();1788EVENT(context, GLFogi, "context = %d, pname = %s, param = %d", CID(context),1789GLenumToString(GLenumGroup::FogParameter, pname), param);17901791if (context)1792{1793std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1794bool isCallValid = (context->skipValidation() || ValidateFogi(context, pname, param));1795if (isCallValid)1796{1797context->fogi(pname, param);1798}1799ANGLE_CAPTURE(Fogi, isCallValid, context, pname, param);1800}1801else1802{1803GenerateContextLostErrorOnCurrentGlobalContext();1804}1805}18061807void GL_APIENTRY GL_Fogiv(GLenum pname, const GLint *params)1808{1809Context *context = GetValidGlobalContext();1810EVENT(context, GLFogiv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "", CID(context),1811GLenumToString(GLenumGroup::FogParameter, pname), (uintptr_t)params);18121813if (context)1814{1815std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1816bool isCallValid = (context->skipValidation() || ValidateFogiv(context, pname, params));1817if (isCallValid)1818{1819context->fogiv(pname, params);1820}1821ANGLE_CAPTURE(Fogiv, isCallValid, context, pname, params);1822}1823else1824{1825GenerateContextLostErrorOnCurrentGlobalContext();1826}1827}18281829void GL_APIENTRY GL_FrontFace(GLenum mode)1830{1831Context *context = GetValidGlobalContext();1832EVENT(context, GLFrontFace, "context = %d, mode = %s", CID(context),1833GLenumToString(GLenumGroup::FrontFaceDirection, mode));18341835if (context)1836{1837std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1838bool isCallValid = (context->skipValidation() || ValidateFrontFace(context, mode));1839if (isCallValid)1840{1841context->frontFace(mode);1842}1843ANGLE_CAPTURE(FrontFace, isCallValid, context, mode);1844}1845else1846{1847GenerateContextLostErrorOnCurrentGlobalContext();1848}1849}18501851void GL_APIENTRY GL_Frustum(GLdouble left,1852GLdouble right,1853GLdouble bottom,1854GLdouble top,1855GLdouble zNear,1856GLdouble zFar)1857{1858Context *context = GetValidGlobalContext();1859EVENT(context, GLFrustum,1860"context = %d, left = %f, right = %f, bottom = %f, top = %f, zNear = %f, zFar = %f",1861CID(context), left, right, bottom, top, zNear, zFar);18621863if (context)1864{1865std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1866bool isCallValid = (context->skipValidation() ||1867ValidateFrustum(context, left, right, bottom, top, zNear, zFar));1868if (isCallValid)1869{1870context->frustum(left, right, bottom, top, zNear, zFar);1871}1872ANGLE_CAPTURE(Frustum, isCallValid, context, left, right, bottom, top, zNear, zFar);1873}1874else1875{1876GenerateContextLostErrorOnCurrentGlobalContext();1877}1878}18791880GLuint GL_APIENTRY GL_GenLists(GLsizei range)1881{1882Context *context = GetValidGlobalContext();1883EVENT(context, GLGenLists, "context = %d, range = %d", CID(context), range);18841885GLuint returnValue;1886if (context)1887{1888std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1889bool isCallValid = (context->skipValidation() || ValidateGenLists(context, range));1890if (isCallValid)1891{1892returnValue = context->genLists(range);1893}1894else1895{1896returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGenLists, GLuint>();1897}1898ANGLE_CAPTURE(GenLists, isCallValid, context, range, returnValue);1899}1900else1901{1902GenerateContextLostErrorOnCurrentGlobalContext();1903returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGenLists, GLuint>();1904}1905return returnValue;1906}19071908void GL_APIENTRY GL_GetBooleanv(GLenum pname, GLboolean *data)1909{1910Context *context = GetValidGlobalContext();1911EVENT(context, GLGetBooleanv, "context = %d, pname = %s, data = 0x%016" PRIxPTR "",1912CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data);19131914if (context)1915{1916std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1917bool isCallValid = (context->skipValidation() || ValidateGetBooleanv(context, pname, data));1918if (isCallValid)1919{1920context->getBooleanv(pname, data);1921}1922ANGLE_CAPTURE(GetBooleanv, isCallValid, context, pname, data);1923}1924else1925{1926GenerateContextLostErrorOnCurrentGlobalContext();1927}1928}19291930void GL_APIENTRY GL_GetClipPlane(GLenum plane, GLdouble *equation)1931{1932Context *context = GetValidGlobalContext();1933EVENT(context, GLGetClipPlane, "context = %d, plane = %s, equation = 0x%016" PRIxPTR "",1934CID(context), GLenumToString(GLenumGroup::ClipPlaneName, plane), (uintptr_t)equation);19351936if (context)1937{1938std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1939bool isCallValid =1940(context->skipValidation() || ValidateGetClipPlane(context, plane, equation));1941if (isCallValid)1942{1943context->getClipPlane(plane, equation);1944}1945ANGLE_CAPTURE(GetClipPlane, isCallValid, context, plane, equation);1946}1947else1948{1949GenerateContextLostErrorOnCurrentGlobalContext();1950}1951}19521953void GL_APIENTRY GL_GetDoublev(GLenum pname, GLdouble *data)1954{1955Context *context = GetValidGlobalContext();1956EVENT(context, GLGetDoublev, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", CID(context),1957GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data);19581959if (context)1960{1961std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1962bool isCallValid = (context->skipValidation() || ValidateGetDoublev(context, pname, data));1963if (isCallValid)1964{1965context->getDoublev(pname, data);1966}1967ANGLE_CAPTURE(GetDoublev, isCallValid, context, pname, data);1968}1969else1970{1971GenerateContextLostErrorOnCurrentGlobalContext();1972}1973}19741975GLenum GL_APIENTRY GL_GetError()1976{1977Context *context = GetGlobalContext();1978EVENT(context, GLGetError, "context = %d", CID(context));19791980GLenum returnValue;1981if (context)1982{1983std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);1984bool isCallValid = (context->skipValidation() || ValidateGetError(context));1985if (isCallValid)1986{1987returnValue = context->getError();1988}1989else1990{1991returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetError, GLenum>();1992}1993ANGLE_CAPTURE(GetError, isCallValid, context, returnValue);1994}1995else1996{19971998returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetError, GLenum>();1999}2000return returnValue;2001}20022003void GL_APIENTRY GL_GetFloatv(GLenum pname, GLfloat *data)2004{2005Context *context = GetValidGlobalContext();2006EVENT(context, GLGetFloatv, "context = %d, pname = %s, data = 0x%016" PRIxPTR "", CID(context),2007GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data);20082009if (context)2010{2011std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2012bool isCallValid = (context->skipValidation() || ValidateGetFloatv(context, pname, data));2013if (isCallValid)2014{2015context->getFloatv(pname, data);2016}2017ANGLE_CAPTURE(GetFloatv, isCallValid, context, pname, data);2018}2019else2020{2021GenerateContextLostErrorOnCurrentGlobalContext();2022}2023}20242025void GL_APIENTRY GL_GetIntegerv(GLenum pname, GLint *data)2026{2027Context *context = GetValidGlobalContext();2028EVENT(context, GLGetIntegerv, "context = %d, pname = %s, data = 0x%016" PRIxPTR "",2029CID(context), GLenumToString(GLenumGroup::GetPName, pname), (uintptr_t)data);20302031if (context)2032{2033std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2034bool isCallValid = (context->skipValidation() || ValidateGetIntegerv(context, pname, data));2035if (isCallValid)2036{2037context->getIntegerv(pname, data);2038}2039ANGLE_CAPTURE(GetIntegerv, isCallValid, context, pname, data);2040}2041else2042{2043GenerateContextLostErrorOnCurrentGlobalContext();2044}2045}20462047void GL_APIENTRY GL_GetLightfv(GLenum light, GLenum pname, GLfloat *params)2048{2049Context *context = GetValidGlobalContext();2050EVENT(context, GLGetLightfv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "",2051CID(context), GLenumToString(GLenumGroup::LightName, light),2052GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params);20532054if (context)2055{2056LightParameter pnamePacked = PackParam<LightParameter>(pname);2057std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2058bool isCallValid =2059(context->skipValidation() || ValidateGetLightfv(context, light, pnamePacked, params));2060if (isCallValid)2061{2062context->getLightfv(light, pnamePacked, params);2063}2064ANGLE_CAPTURE(GetLightfv, isCallValid, context, light, pnamePacked, params);2065}2066else2067{2068GenerateContextLostErrorOnCurrentGlobalContext();2069}2070}20712072void GL_APIENTRY GL_GetLightiv(GLenum light, GLenum pname, GLint *params)2073{2074Context *context = GetValidGlobalContext();2075EVENT(context, GLGetLightiv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "",2076CID(context), GLenumToString(GLenumGroup::LightName, light),2077GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params);20782079if (context)2080{2081std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2082bool isCallValid =2083(context->skipValidation() || ValidateGetLightiv(context, light, pname, params));2084if (isCallValid)2085{2086context->getLightiv(light, pname, params);2087}2088ANGLE_CAPTURE(GetLightiv, isCallValid, context, light, pname, params);2089}2090else2091{2092GenerateContextLostErrorOnCurrentGlobalContext();2093}2094}20952096void GL_APIENTRY GL_GetMapdv(GLenum target, GLenum query, GLdouble *v)2097{2098Context *context = GetValidGlobalContext();2099EVENT(context, GLGetMapdv, "context = %d, target = %s, query = %s, v = 0x%016" PRIxPTR "",2100CID(context), GLenumToString(GLenumGroup::MapTarget, target),2101GLenumToString(GLenumGroup::GetMapQuery, query), (uintptr_t)v);21022103if (context)2104{2105std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2106bool isCallValid =2107(context->skipValidation() || ValidateGetMapdv(context, target, query, v));2108if (isCallValid)2109{2110context->getMapdv(target, query, v);2111}2112ANGLE_CAPTURE(GetMapdv, isCallValid, context, target, query, v);2113}2114else2115{2116GenerateContextLostErrorOnCurrentGlobalContext();2117}2118}21192120void GL_APIENTRY GL_GetMapfv(GLenum target, GLenum query, GLfloat *v)2121{2122Context *context = GetValidGlobalContext();2123EVENT(context, GLGetMapfv, "context = %d, target = %s, query = %s, v = 0x%016" PRIxPTR "",2124CID(context), GLenumToString(GLenumGroup::MapTarget, target),2125GLenumToString(GLenumGroup::GetMapQuery, query), (uintptr_t)v);21262127if (context)2128{2129std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2130bool isCallValid =2131(context->skipValidation() || ValidateGetMapfv(context, target, query, v));2132if (isCallValid)2133{2134context->getMapfv(target, query, v);2135}2136ANGLE_CAPTURE(GetMapfv, isCallValid, context, target, query, v);2137}2138else2139{2140GenerateContextLostErrorOnCurrentGlobalContext();2141}2142}21432144void GL_APIENTRY GL_GetMapiv(GLenum target, GLenum query, GLint *v)2145{2146Context *context = GetValidGlobalContext();2147EVENT(context, GLGetMapiv, "context = %d, target = %s, query = %s, v = 0x%016" PRIxPTR "",2148CID(context), GLenumToString(GLenumGroup::MapTarget, target),2149GLenumToString(GLenumGroup::GetMapQuery, query), (uintptr_t)v);21502151if (context)2152{2153std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2154bool isCallValid =2155(context->skipValidation() || ValidateGetMapiv(context, target, query, v));2156if (isCallValid)2157{2158context->getMapiv(target, query, v);2159}2160ANGLE_CAPTURE(GetMapiv, isCallValid, context, target, query, v);2161}2162else2163{2164GenerateContextLostErrorOnCurrentGlobalContext();2165}2166}21672168void GL_APIENTRY GL_GetMaterialfv(GLenum face, GLenum pname, GLfloat *params)2169{2170Context *context = GetValidGlobalContext();2171EVENT(context, GLGetMaterialfv,2172"context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2173GLenumToString(GLenumGroup::MaterialFace, face),2174GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params);21752176if (context)2177{2178MaterialParameter pnamePacked = PackParam<MaterialParameter>(pname);2179std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2180bool isCallValid = (context->skipValidation() ||2181ValidateGetMaterialfv(context, face, pnamePacked, params));2182if (isCallValid)2183{2184context->getMaterialfv(face, pnamePacked, params);2185}2186ANGLE_CAPTURE(GetMaterialfv, isCallValid, context, face, pnamePacked, params);2187}2188else2189{2190GenerateContextLostErrorOnCurrentGlobalContext();2191}2192}21932194void GL_APIENTRY GL_GetMaterialiv(GLenum face, GLenum pname, GLint *params)2195{2196Context *context = GetValidGlobalContext();2197EVENT(context, GLGetMaterialiv,2198"context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2199GLenumToString(GLenumGroup::MaterialFace, face),2200GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params);22012202if (context)2203{2204std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2205bool isCallValid =2206(context->skipValidation() || ValidateGetMaterialiv(context, face, pname, params));2207if (isCallValid)2208{2209context->getMaterialiv(face, pname, params);2210}2211ANGLE_CAPTURE(GetMaterialiv, isCallValid, context, face, pname, params);2212}2213else2214{2215GenerateContextLostErrorOnCurrentGlobalContext();2216}2217}22182219void GL_APIENTRY GL_GetPixelMapfv(GLenum map, GLfloat *values)2220{2221Context *context = GetValidGlobalContext();2222EVENT(context, GLGetPixelMapfv, "context = %d, map = %s, values = 0x%016" PRIxPTR "",2223CID(context), GLenumToString(GLenumGroup::PixelMap, map), (uintptr_t)values);22242225if (context)2226{2227std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2228bool isCallValid =2229(context->skipValidation() || ValidateGetPixelMapfv(context, map, values));2230if (isCallValid)2231{2232context->getPixelMapfv(map, values);2233}2234ANGLE_CAPTURE(GetPixelMapfv, isCallValid, context, map, values);2235}2236else2237{2238GenerateContextLostErrorOnCurrentGlobalContext();2239}2240}22412242void GL_APIENTRY GL_GetPixelMapuiv(GLenum map, GLuint *values)2243{2244Context *context = GetValidGlobalContext();2245EVENT(context, GLGetPixelMapuiv, "context = %d, map = %s, values = 0x%016" PRIxPTR "",2246CID(context), GLenumToString(GLenumGroup::PixelMap, map), (uintptr_t)values);22472248if (context)2249{2250std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2251bool isCallValid =2252(context->skipValidation() || ValidateGetPixelMapuiv(context, map, values));2253if (isCallValid)2254{2255context->getPixelMapuiv(map, values);2256}2257ANGLE_CAPTURE(GetPixelMapuiv, isCallValid, context, map, values);2258}2259else2260{2261GenerateContextLostErrorOnCurrentGlobalContext();2262}2263}22642265void GL_APIENTRY GL_GetPixelMapusv(GLenum map, GLushort *values)2266{2267Context *context = GetValidGlobalContext();2268EVENT(context, GLGetPixelMapusv, "context = %d, map = %s, values = 0x%016" PRIxPTR "",2269CID(context), GLenumToString(GLenumGroup::PixelMap, map), (uintptr_t)values);22702271if (context)2272{2273std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2274bool isCallValid =2275(context->skipValidation() || ValidateGetPixelMapusv(context, map, values));2276if (isCallValid)2277{2278context->getPixelMapusv(map, values);2279}2280ANGLE_CAPTURE(GetPixelMapusv, isCallValid, context, map, values);2281}2282else2283{2284GenerateContextLostErrorOnCurrentGlobalContext();2285}2286}22872288void GL_APIENTRY GL_GetPolygonStipple(GLubyte *mask)2289{2290Context *context = GetValidGlobalContext();2291EVENT(context, GLGetPolygonStipple, "context = %d, mask = 0x%016" PRIxPTR "", CID(context),2292(uintptr_t)mask);22932294if (context)2295{2296std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2297bool isCallValid = (context->skipValidation() || ValidateGetPolygonStipple(context, mask));2298if (isCallValid)2299{2300context->getPolygonStipple(mask);2301}2302ANGLE_CAPTURE(GetPolygonStipple, isCallValid, context, mask);2303}2304else2305{2306GenerateContextLostErrorOnCurrentGlobalContext();2307}2308}23092310const GLubyte *GL_APIENTRY GL_GetString(GLenum name)2311{2312Context *context = GetValidGlobalContext();2313EVENT(context, GLGetString, "context = %d, name = %s", CID(context),2314GLenumToString(GLenumGroup::StringName, name));23152316const GLubyte *returnValue;2317if (context)2318{2319std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2320bool isCallValid = (context->skipValidation() || ValidateGetString(context, name));2321if (isCallValid)2322{2323returnValue = context->getString(name);2324}2325else2326{2327returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetString, const GLubyte *>();2328}2329ANGLE_CAPTURE(GetString, isCallValid, context, name, returnValue);2330}2331else2332{2333GenerateContextLostErrorOnCurrentGlobalContext();2334returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetString, const GLubyte *>();2335}2336return returnValue;2337}23382339void GL_APIENTRY GL_GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)2340{2341Context *context = GetValidGlobalContext();2342EVENT(context, GLGetTexEnvfv,2343"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2344GLenumToString(GLenumGroup::TextureEnvTarget, target),2345GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params);23462347if (context)2348{2349TextureEnvTarget targetPacked = PackParam<TextureEnvTarget>(target);2350TextureEnvParameter pnamePacked = PackParam<TextureEnvParameter>(pname);2351std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2352bool isCallValid = (context->skipValidation() ||2353ValidateGetTexEnvfv(context, targetPacked, pnamePacked, params));2354if (isCallValid)2355{2356context->getTexEnvfv(targetPacked, pnamePacked, params);2357}2358ANGLE_CAPTURE(GetTexEnvfv, isCallValid, context, targetPacked, pnamePacked, params);2359}2360else2361{2362GenerateContextLostErrorOnCurrentGlobalContext();2363}2364}23652366void GL_APIENTRY GL_GetTexEnviv(GLenum target, GLenum pname, GLint *params)2367{2368Context *context = GetValidGlobalContext();2369EVENT(context, GLGetTexEnviv,2370"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2371GLenumToString(GLenumGroup::TextureEnvTarget, target),2372GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params);23732374if (context)2375{2376TextureEnvTarget targetPacked = PackParam<TextureEnvTarget>(target);2377TextureEnvParameter pnamePacked = PackParam<TextureEnvParameter>(pname);2378std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2379bool isCallValid = (context->skipValidation() ||2380ValidateGetTexEnviv(context, targetPacked, pnamePacked, params));2381if (isCallValid)2382{2383context->getTexEnviv(targetPacked, pnamePacked, params);2384}2385ANGLE_CAPTURE(GetTexEnviv, isCallValid, context, targetPacked, pnamePacked, params);2386}2387else2388{2389GenerateContextLostErrorOnCurrentGlobalContext();2390}2391}23922393void GL_APIENTRY GL_GetTexGendv(GLenum coord, GLenum pname, GLdouble *params)2394{2395Context *context = GetValidGlobalContext();2396EVENT(context, GLGetTexGendv,2397"context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2398GLenumToString(GLenumGroup::TextureCoordName, coord),2399GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params);24002401if (context)2402{2403std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2404bool isCallValid =2405(context->skipValidation() || ValidateGetTexGendv(context, coord, pname, params));2406if (isCallValid)2407{2408context->getTexGendv(coord, pname, params);2409}2410ANGLE_CAPTURE(GetTexGendv, isCallValid, context, coord, pname, params);2411}2412else2413{2414GenerateContextLostErrorOnCurrentGlobalContext();2415}2416}24172418void GL_APIENTRY GL_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params)2419{2420Context *context = GetValidGlobalContext();2421EVENT(context, GLGetTexGenfv,2422"context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2423GLenumToString(GLenumGroup::TextureCoordName, coord),2424GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params);24252426if (context)2427{2428std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2429bool isCallValid =2430(context->skipValidation() || ValidateGetTexGenfv(context, coord, pname, params));2431if (isCallValid)2432{2433context->getTexGenfv(coord, pname, params);2434}2435ANGLE_CAPTURE(GetTexGenfv, isCallValid, context, coord, pname, params);2436}2437else2438{2439GenerateContextLostErrorOnCurrentGlobalContext();2440}2441}24422443void GL_APIENTRY GL_GetTexGeniv(GLenum coord, GLenum pname, GLint *params)2444{2445Context *context = GetValidGlobalContext();2446EVENT(context, GLGetTexGeniv,2447"context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2448GLenumToString(GLenumGroup::TextureCoordName, coord),2449GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params);24502451if (context)2452{2453std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2454bool isCallValid =2455(context->skipValidation() || ValidateGetTexGeniv(context, coord, pname, params));2456if (isCallValid)2457{2458context->getTexGeniv(coord, pname, params);2459}2460ANGLE_CAPTURE(GetTexGeniv, isCallValid, context, coord, pname, params);2461}2462else2463{2464GenerateContextLostErrorOnCurrentGlobalContext();2465}2466}24672468void GL_APIENTRY2469GL_GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, void *pixels)2470{2471Context *context = GetValidGlobalContext();2472EVENT(context, GLGetTexImage,2473"context = %d, target = %s, level = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR2474"",2475CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,2476GLenumToString(GLenumGroup::PixelFormat, format),2477GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);24782479if (context)2480{2481TextureTarget targetPacked = PackParam<TextureTarget>(target);2482std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2483bool isCallValid =2484(context->skipValidation() ||2485ValidateGetTexImage(context, targetPacked, level, format, type, pixels));2486if (isCallValid)2487{2488context->getTexImage(targetPacked, level, format, type, pixels);2489}2490ANGLE_CAPTURE(GetTexImage, isCallValid, context, targetPacked, level, format, type, pixels);2491}2492else2493{2494GenerateContextLostErrorOnCurrentGlobalContext();2495}2496}24972498void GL_APIENTRY GL_GetTexLevelParameterfv(GLenum target,2499GLint level,2500GLenum pname,2501GLfloat *params)2502{2503Context *context = GetValidGlobalContext();2504EVENT(context, GLGetTexLevelParameterfv,2505"context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "",2506CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,2507GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);25082509if (context)2510{2511TextureTarget targetPacked = PackParam<TextureTarget>(target);2512std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2513bool isCallValid =2514(context->skipValidation() ||2515ValidateGetTexLevelParameterfv(context, targetPacked, level, pname, params));2516if (isCallValid)2517{2518context->getTexLevelParameterfv(targetPacked, level, pname, params);2519}2520ANGLE_CAPTURE(GetTexLevelParameterfv, isCallValid, context, targetPacked, level, pname,2521params);2522}2523else2524{2525GenerateContextLostErrorOnCurrentGlobalContext();2526}2527}25282529void GL_APIENTRY GL_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)2530{2531Context *context = GetValidGlobalContext();2532EVENT(context, GLGetTexLevelParameteriv,2533"context = %d, target = %s, level = %d, pname = %s, params = 0x%016" PRIxPTR "",2534CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,2535GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);25362537if (context)2538{2539TextureTarget targetPacked = PackParam<TextureTarget>(target);2540std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2541bool isCallValid =2542(context->skipValidation() ||2543ValidateGetTexLevelParameteriv(context, targetPacked, level, pname, params));2544if (isCallValid)2545{2546context->getTexLevelParameteriv(targetPacked, level, pname, params);2547}2548ANGLE_CAPTURE(GetTexLevelParameteriv, isCallValid, context, targetPacked, level, pname,2549params);2550}2551else2552{2553GenerateContextLostErrorOnCurrentGlobalContext();2554}2555}25562557void GL_APIENTRY GL_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)2558{2559Context *context = GetValidGlobalContext();2560EVENT(context, GLGetTexParameterfv,2561"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2562GLenumToString(GLenumGroup::TextureTarget, target),2563GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);25642565if (context)2566{2567TextureType targetPacked = PackParam<TextureType>(target);2568std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2569bool isCallValid = (context->skipValidation() ||2570ValidateGetTexParameterfv(context, targetPacked, pname, params));2571if (isCallValid)2572{2573context->getTexParameterfv(targetPacked, pname, params);2574}2575ANGLE_CAPTURE(GetTexParameterfv, isCallValid, context, targetPacked, pname, params);2576}2577else2578{2579GenerateContextLostErrorOnCurrentGlobalContext();2580}2581}25822583void GL_APIENTRY GL_GetTexParameteriv(GLenum target, GLenum pname, GLint *params)2584{2585Context *context = GetValidGlobalContext();2586EVENT(context, GLGetTexParameteriv,2587"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),2588GLenumToString(GLenumGroup::TextureTarget, target),2589GLenumToString(GLenumGroup::GetTextureParameter, pname), (uintptr_t)params);25902591if (context)2592{2593TextureType targetPacked = PackParam<TextureType>(target);2594std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2595bool isCallValid = (context->skipValidation() ||2596ValidateGetTexParameteriv(context, targetPacked, pname, params));2597if (isCallValid)2598{2599context->getTexParameteriv(targetPacked, pname, params);2600}2601ANGLE_CAPTURE(GetTexParameteriv, isCallValid, context, targetPacked, pname, params);2602}2603else2604{2605GenerateContextLostErrorOnCurrentGlobalContext();2606}2607}26082609void GL_APIENTRY GL_Hint(GLenum target, GLenum mode)2610{2611Context *context = GetValidGlobalContext();2612EVENT(context, GLHint, "context = %d, target = %s, mode = %s", CID(context),2613GLenumToString(GLenumGroup::HintTarget, target),2614GLenumToString(GLenumGroup::HintMode, mode));26152616if (context)2617{2618std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2619bool isCallValid = (context->skipValidation() || ValidateHint(context, target, mode));2620if (isCallValid)2621{2622context->hint(target, mode);2623}2624ANGLE_CAPTURE(Hint, isCallValid, context, target, mode);2625}2626else2627{2628GenerateContextLostErrorOnCurrentGlobalContext();2629}2630}26312632void GL_APIENTRY GL_IndexMask(GLuint mask)2633{2634Context *context = GetValidGlobalContext();2635EVENT(context, GLIndexMask, "context = %d, mask = %u", CID(context), mask);26362637if (context)2638{2639std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2640bool isCallValid = (context->skipValidation() || ValidateIndexMask(context, mask));2641if (isCallValid)2642{2643context->indexMask(mask);2644}2645ANGLE_CAPTURE(IndexMask, isCallValid, context, mask);2646}2647else2648{2649GenerateContextLostErrorOnCurrentGlobalContext();2650}2651}26522653void GL_APIENTRY GL_Indexd(GLdouble c)2654{2655Context *context = GetValidGlobalContext();2656EVENT(context, GLIndexd, "context = %d, c = %f", CID(context), c);26572658if (context)2659{2660std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2661bool isCallValid = (context->skipValidation() || ValidateIndexd(context, c));2662if (isCallValid)2663{2664context->indexd(c);2665}2666ANGLE_CAPTURE(Indexd, isCallValid, context, c);2667}2668else2669{2670GenerateContextLostErrorOnCurrentGlobalContext();2671}2672}26732674void GL_APIENTRY GL_Indexdv(const GLdouble *c)2675{2676Context *context = GetValidGlobalContext();2677EVENT(context, GLIndexdv, "context = %d, c = 0x%016" PRIxPTR "", CID(context), (uintptr_t)c);26782679if (context)2680{2681std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2682bool isCallValid = (context->skipValidation() || ValidateIndexdv(context, c));2683if (isCallValid)2684{2685context->indexdv(c);2686}2687ANGLE_CAPTURE(Indexdv, isCallValid, context, c);2688}2689else2690{2691GenerateContextLostErrorOnCurrentGlobalContext();2692}2693}26942695void GL_APIENTRY GL_Indexf(GLfloat c)2696{2697Context *context = GetValidGlobalContext();2698EVENT(context, GLIndexf, "context = %d, c = %f", CID(context), c);26992700if (context)2701{2702std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2703bool isCallValid = (context->skipValidation() || ValidateIndexf(context, c));2704if (isCallValid)2705{2706context->indexf(c);2707}2708ANGLE_CAPTURE(Indexf, isCallValid, context, c);2709}2710else2711{2712GenerateContextLostErrorOnCurrentGlobalContext();2713}2714}27152716void GL_APIENTRY GL_Indexfv(const GLfloat *c)2717{2718Context *context = GetValidGlobalContext();2719EVENT(context, GLIndexfv, "context = %d, c = 0x%016" PRIxPTR "", CID(context), (uintptr_t)c);27202721if (context)2722{2723std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2724bool isCallValid = (context->skipValidation() || ValidateIndexfv(context, c));2725if (isCallValid)2726{2727context->indexfv(c);2728}2729ANGLE_CAPTURE(Indexfv, isCallValid, context, c);2730}2731else2732{2733GenerateContextLostErrorOnCurrentGlobalContext();2734}2735}27362737void GL_APIENTRY GL_Indexi(GLint c)2738{2739Context *context = GetValidGlobalContext();2740EVENT(context, GLIndexi, "context = %d, c = %d", CID(context), c);27412742if (context)2743{2744std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2745bool isCallValid = (context->skipValidation() || ValidateIndexi(context, c));2746if (isCallValid)2747{2748context->indexi(c);2749}2750ANGLE_CAPTURE(Indexi, isCallValid, context, c);2751}2752else2753{2754GenerateContextLostErrorOnCurrentGlobalContext();2755}2756}27572758void GL_APIENTRY GL_Indexiv(const GLint *c)2759{2760Context *context = GetValidGlobalContext();2761EVENT(context, GLIndexiv, "context = %d, c = 0x%016" PRIxPTR "", CID(context), (uintptr_t)c);27622763if (context)2764{2765std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2766bool isCallValid = (context->skipValidation() || ValidateIndexiv(context, c));2767if (isCallValid)2768{2769context->indexiv(c);2770}2771ANGLE_CAPTURE(Indexiv, isCallValid, context, c);2772}2773else2774{2775GenerateContextLostErrorOnCurrentGlobalContext();2776}2777}27782779void GL_APIENTRY GL_Indexs(GLshort c)2780{2781Context *context = GetValidGlobalContext();2782EVENT(context, GLIndexs, "context = %d, c = %d", CID(context), c);27832784if (context)2785{2786std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2787bool isCallValid = (context->skipValidation() || ValidateIndexs(context, c));2788if (isCallValid)2789{2790context->indexs(c);2791}2792ANGLE_CAPTURE(Indexs, isCallValid, context, c);2793}2794else2795{2796GenerateContextLostErrorOnCurrentGlobalContext();2797}2798}27992800void GL_APIENTRY GL_Indexsv(const GLshort *c)2801{2802Context *context = GetValidGlobalContext();2803EVENT(context, GLIndexsv, "context = %d, c = 0x%016" PRIxPTR "", CID(context), (uintptr_t)c);28042805if (context)2806{2807std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2808bool isCallValid = (context->skipValidation() || ValidateIndexsv(context, c));2809if (isCallValid)2810{2811context->indexsv(c);2812}2813ANGLE_CAPTURE(Indexsv, isCallValid, context, c);2814}2815else2816{2817GenerateContextLostErrorOnCurrentGlobalContext();2818}2819}28202821void GL_APIENTRY GL_InitNames()2822{2823Context *context = GetValidGlobalContext();2824EVENT(context, GLInitNames, "context = %d", CID(context));28252826if (context)2827{2828std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2829bool isCallValid = (context->skipValidation() || ValidateInitNames(context));2830if (isCallValid)2831{2832context->initNames();2833}2834ANGLE_CAPTURE(InitNames, isCallValid, context);2835}2836else2837{2838GenerateContextLostErrorOnCurrentGlobalContext();2839}2840}28412842GLboolean GL_APIENTRY GL_IsEnabled(GLenum cap)2843{2844Context *context = GetValidGlobalContext();2845EVENT(context, GLIsEnabled, "context = %d, cap = %s", CID(context),2846GLenumToString(GLenumGroup::EnableCap, cap));28472848GLboolean returnValue;2849if (context)2850{2851std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2852bool isCallValid = (context->skipValidation() || ValidateIsEnabled(context, cap));2853if (isCallValid)2854{2855returnValue = context->isEnabled(cap);2856}2857else2858{2859returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsEnabled, GLboolean>();2860}2861ANGLE_CAPTURE(IsEnabled, isCallValid, context, cap, returnValue);2862}2863else2864{2865GenerateContextLostErrorOnCurrentGlobalContext();2866returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsEnabled, GLboolean>();2867}2868return returnValue;2869}28702871GLboolean GL_APIENTRY GL_IsList(GLuint list)2872{2873Context *context = GetValidGlobalContext();2874EVENT(context, GLIsList, "context = %d, list = %u", CID(context), list);28752876GLboolean returnValue;2877if (context)2878{2879std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2880bool isCallValid = (context->skipValidation() || ValidateIsList(context, list));2881if (isCallValid)2882{2883returnValue = context->isList(list);2884}2885else2886{2887returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsList, GLboolean>();2888}2889ANGLE_CAPTURE(IsList, isCallValid, context, list, returnValue);2890}2891else2892{2893GenerateContextLostErrorOnCurrentGlobalContext();2894returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsList, GLboolean>();2895}2896return returnValue;2897}28982899void GL_APIENTRY GL_LightModelf(GLenum pname, GLfloat param)2900{2901Context *context = GetValidGlobalContext();2902EVENT(context, GLLightModelf, "context = %d, pname = %s, param = %f", CID(context),2903GLenumToString(GLenumGroup::LightModelParameter, pname), param);29042905if (context)2906{2907std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2908bool isCallValid =2909(context->skipValidation() || ValidateLightModelf(context, pname, param));2910if (isCallValid)2911{2912context->lightModelf(pname, param);2913}2914ANGLE_CAPTURE(LightModelf, isCallValid, context, pname, param);2915}2916else2917{2918GenerateContextLostErrorOnCurrentGlobalContext();2919}2920}29212922void GL_APIENTRY GL_LightModelfv(GLenum pname, const GLfloat *params)2923{2924Context *context = GetValidGlobalContext();2925EVENT(context, GLLightModelfv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",2926CID(context), GLenumToString(GLenumGroup::LightModelParameter, pname), (uintptr_t)params);29272928if (context)2929{2930std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2931bool isCallValid =2932(context->skipValidation() || ValidateLightModelfv(context, pname, params));2933if (isCallValid)2934{2935context->lightModelfv(pname, params);2936}2937ANGLE_CAPTURE(LightModelfv, isCallValid, context, pname, params);2938}2939else2940{2941GenerateContextLostErrorOnCurrentGlobalContext();2942}2943}29442945void GL_APIENTRY GL_LightModeli(GLenum pname, GLint param)2946{2947Context *context = GetValidGlobalContext();2948EVENT(context, GLLightModeli, "context = %d, pname = %s, param = %d", CID(context),2949GLenumToString(GLenumGroup::LightModelParameter, pname), param);29502951if (context)2952{2953std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2954bool isCallValid =2955(context->skipValidation() || ValidateLightModeli(context, pname, param));2956if (isCallValid)2957{2958context->lightModeli(pname, param);2959}2960ANGLE_CAPTURE(LightModeli, isCallValid, context, pname, param);2961}2962else2963{2964GenerateContextLostErrorOnCurrentGlobalContext();2965}2966}29672968void GL_APIENTRY GL_LightModeliv(GLenum pname, const GLint *params)2969{2970Context *context = GetValidGlobalContext();2971EVENT(context, GLLightModeliv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",2972CID(context), GLenumToString(GLenumGroup::LightModelParameter, pname), (uintptr_t)params);29732974if (context)2975{2976std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);2977bool isCallValid =2978(context->skipValidation() || ValidateLightModeliv(context, pname, params));2979if (isCallValid)2980{2981context->lightModeliv(pname, params);2982}2983ANGLE_CAPTURE(LightModeliv, isCallValid, context, pname, params);2984}2985else2986{2987GenerateContextLostErrorOnCurrentGlobalContext();2988}2989}29902991void GL_APIENTRY GL_Lightf(GLenum light, GLenum pname, GLfloat param)2992{2993Context *context = GetValidGlobalContext();2994EVENT(context, GLLightf, "context = %d, light = %s, pname = %s, param = %f", CID(context),2995GLenumToString(GLenumGroup::LightName, light),2996GLenumToString(GLenumGroup::LightParameter, pname), param);29972998if (context)2999{3000LightParameter pnamePacked = PackParam<LightParameter>(pname);3001std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3002bool isCallValid =3003(context->skipValidation() || ValidateLightf(context, light, pnamePacked, param));3004if (isCallValid)3005{3006context->lightf(light, pnamePacked, param);3007}3008ANGLE_CAPTURE(Lightf, isCallValid, context, light, pnamePacked, param);3009}3010else3011{3012GenerateContextLostErrorOnCurrentGlobalContext();3013}3014}30153016void GL_APIENTRY GL_Lightfv(GLenum light, GLenum pname, const GLfloat *params)3017{3018Context *context = GetValidGlobalContext();3019EVENT(context, GLLightfv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "",3020CID(context), GLenumToString(GLenumGroup::LightName, light),3021GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params);30223023if (context)3024{3025LightParameter pnamePacked = PackParam<LightParameter>(pname);3026std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3027bool isCallValid =3028(context->skipValidation() || ValidateLightfv(context, light, pnamePacked, params));3029if (isCallValid)3030{3031context->lightfv(light, pnamePacked, params);3032}3033ANGLE_CAPTURE(Lightfv, isCallValid, context, light, pnamePacked, params);3034}3035else3036{3037GenerateContextLostErrorOnCurrentGlobalContext();3038}3039}30403041void GL_APIENTRY GL_Lighti(GLenum light, GLenum pname, GLint param)3042{3043Context *context = GetValidGlobalContext();3044EVENT(context, GLLighti, "context = %d, light = %s, pname = %s, param = %d", CID(context),3045GLenumToString(GLenumGroup::LightName, light),3046GLenumToString(GLenumGroup::LightParameter, pname), param);30473048if (context)3049{3050std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3051bool isCallValid =3052(context->skipValidation() || ValidateLighti(context, light, pname, param));3053if (isCallValid)3054{3055context->lighti(light, pname, param);3056}3057ANGLE_CAPTURE(Lighti, isCallValid, context, light, pname, param);3058}3059else3060{3061GenerateContextLostErrorOnCurrentGlobalContext();3062}3063}30643065void GL_APIENTRY GL_Lightiv(GLenum light, GLenum pname, const GLint *params)3066{3067Context *context = GetValidGlobalContext();3068EVENT(context, GLLightiv, "context = %d, light = %s, pname = %s, params = 0x%016" PRIxPTR "",3069CID(context), GLenumToString(GLenumGroup::LightName, light),3070GLenumToString(GLenumGroup::LightParameter, pname), (uintptr_t)params);30713072if (context)3073{3074std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3075bool isCallValid =3076(context->skipValidation() || ValidateLightiv(context, light, pname, params));3077if (isCallValid)3078{3079context->lightiv(light, pname, params);3080}3081ANGLE_CAPTURE(Lightiv, isCallValid, context, light, pname, params);3082}3083else3084{3085GenerateContextLostErrorOnCurrentGlobalContext();3086}3087}30883089void GL_APIENTRY GL_LineStipple(GLint factor, GLushort pattern)3090{3091Context *context = GetValidGlobalContext();3092EVENT(context, GLLineStipple, "context = %d, factor = %d, pattern = %u", CID(context), factor,3093pattern);30943095if (context)3096{3097std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3098bool isCallValid =3099(context->skipValidation() || ValidateLineStipple(context, factor, pattern));3100if (isCallValid)3101{3102context->lineStipple(factor, pattern);3103}3104ANGLE_CAPTURE(LineStipple, isCallValid, context, factor, pattern);3105}3106else3107{3108GenerateContextLostErrorOnCurrentGlobalContext();3109}3110}31113112void GL_APIENTRY GL_LineWidth(GLfloat width)3113{3114Context *context = GetValidGlobalContext();3115EVENT(context, GLLineWidth, "context = %d, width = %f", CID(context), width);31163117if (context)3118{3119std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3120bool isCallValid = (context->skipValidation() || ValidateLineWidth(context, width));3121if (isCallValid)3122{3123context->lineWidth(width);3124}3125ANGLE_CAPTURE(LineWidth, isCallValid, context, width);3126}3127else3128{3129GenerateContextLostErrorOnCurrentGlobalContext();3130}3131}31323133void GL_APIENTRY GL_ListBase(GLuint base)3134{3135Context *context = GetValidGlobalContext();3136EVENT(context, GLListBase, "context = %d, base = %u", CID(context), base);31373138if (context)3139{3140std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3141bool isCallValid = (context->skipValidation() || ValidateListBase(context, base));3142if (isCallValid)3143{3144context->listBase(base);3145}3146ANGLE_CAPTURE(ListBase, isCallValid, context, base);3147}3148else3149{3150GenerateContextLostErrorOnCurrentGlobalContext();3151}3152}31533154void GL_APIENTRY GL_LoadIdentity()3155{3156Context *context = GetValidGlobalContext();3157EVENT(context, GLLoadIdentity, "context = %d", CID(context));31583159if (context)3160{3161std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3162bool isCallValid = (context->skipValidation() || ValidateLoadIdentity(context));3163if (isCallValid)3164{3165context->loadIdentity();3166}3167ANGLE_CAPTURE(LoadIdentity, isCallValid, context);3168}3169else3170{3171GenerateContextLostErrorOnCurrentGlobalContext();3172}3173}31743175void GL_APIENTRY GL_LoadMatrixd(const GLdouble *m)3176{3177Context *context = GetValidGlobalContext();3178EVENT(context, GLLoadMatrixd, "context = %d, m = 0x%016" PRIxPTR "", CID(context),3179(uintptr_t)m);31803181if (context)3182{3183std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3184bool isCallValid = (context->skipValidation() || ValidateLoadMatrixd(context, m));3185if (isCallValid)3186{3187context->loadMatrixd(m);3188}3189ANGLE_CAPTURE(LoadMatrixd, isCallValid, context, m);3190}3191else3192{3193GenerateContextLostErrorOnCurrentGlobalContext();3194}3195}31963197void GL_APIENTRY GL_LoadMatrixf(const GLfloat *m)3198{3199Context *context = GetValidGlobalContext();3200EVENT(context, GLLoadMatrixf, "context = %d, m = 0x%016" PRIxPTR "", CID(context),3201(uintptr_t)m);32023203if (context)3204{3205std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3206bool isCallValid = (context->skipValidation() || ValidateLoadMatrixf(context, m));3207if (isCallValid)3208{3209context->loadMatrixf(m);3210}3211ANGLE_CAPTURE(LoadMatrixf, isCallValid, context, m);3212}3213else3214{3215GenerateContextLostErrorOnCurrentGlobalContext();3216}3217}32183219void GL_APIENTRY GL_LoadName(GLuint name)3220{3221Context *context = GetValidGlobalContext();3222EVENT(context, GLLoadName, "context = %d, name = %u", CID(context), name);32233224if (context)3225{3226std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3227bool isCallValid = (context->skipValidation() || ValidateLoadName(context, name));3228if (isCallValid)3229{3230context->loadName(name);3231}3232ANGLE_CAPTURE(LoadName, isCallValid, context, name);3233}3234else3235{3236GenerateContextLostErrorOnCurrentGlobalContext();3237}3238}32393240void GL_APIENTRY GL_LogicOp(GLenum opcode)3241{3242Context *context = GetValidGlobalContext();3243EVENT(context, GLLogicOp, "context = %d, opcode = %s", CID(context),3244GLenumToString(GLenumGroup::LogicOp, opcode));32453246if (context)3247{3248LogicalOperation opcodePacked = PackParam<LogicalOperation>(opcode);3249std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3250bool isCallValid = (context->skipValidation() || ValidateLogicOp(context, opcodePacked));3251if (isCallValid)3252{3253context->logicOp(opcodePacked);3254}3255ANGLE_CAPTURE(LogicOp, isCallValid, context, opcodePacked);3256}3257else3258{3259GenerateContextLostErrorOnCurrentGlobalContext();3260}3261}32623263void GL_APIENTRY3264GL_Map1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)3265{3266Context *context = GetValidGlobalContext();3267EVENT(context, GLMap1d,3268"context = %d, target = %s, u1 = %f, u2 = %f, stride = %d, order = %d, points = "3269"0x%016" PRIxPTR "",3270CID(context), GLenumToString(GLenumGroup::MapTarget, target), u1, u2, stride, order,3271(uintptr_t)points);32723273if (context)3274{3275std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3276bool isCallValid = (context->skipValidation() ||3277ValidateMap1d(context, target, u1, u2, stride, order, points));3278if (isCallValid)3279{3280context->map1d(target, u1, u2, stride, order, points);3281}3282ANGLE_CAPTURE(Map1d, isCallValid, context, target, u1, u2, stride, order, points);3283}3284else3285{3286GenerateContextLostErrorOnCurrentGlobalContext();3287}3288}32893290void GL_APIENTRY3291GL_Map1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)3292{3293Context *context = GetValidGlobalContext();3294EVENT(context, GLMap1f,3295"context = %d, target = %s, u1 = %f, u2 = %f, stride = %d, order = %d, points = "3296"0x%016" PRIxPTR "",3297CID(context), GLenumToString(GLenumGroup::MapTarget, target), u1, u2, stride, order,3298(uintptr_t)points);32993300if (context)3301{3302std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3303bool isCallValid = (context->skipValidation() ||3304ValidateMap1f(context, target, u1, u2, stride, order, points));3305if (isCallValid)3306{3307context->map1f(target, u1, u2, stride, order, points);3308}3309ANGLE_CAPTURE(Map1f, isCallValid, context, target, u1, u2, stride, order, points);3310}3311else3312{3313GenerateContextLostErrorOnCurrentGlobalContext();3314}3315}33163317void GL_APIENTRY GL_Map2d(GLenum target,3318GLdouble u1,3319GLdouble u2,3320GLint ustride,3321GLint uorder,3322GLdouble v1,3323GLdouble v2,3324GLint vstride,3325GLint vorder,3326const GLdouble *points)3327{3328Context *context = GetValidGlobalContext();3329EVENT(context, GLMap2d,3330"context = %d, target = %s, u1 = %f, u2 = %f, ustride = %d, uorder = %d, v1 = %f, v2 = "3331"%f, vstride = %d, vorder = %d, points = 0x%016" PRIxPTR "",3332CID(context), GLenumToString(GLenumGroup::MapTarget, target), u1, u2, ustride, uorder, v1,3333v2, vstride, vorder, (uintptr_t)points);33343335if (context)3336{3337std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3338bool isCallValid =3339(context->skipValidation() || ValidateMap2d(context, target, u1, u2, ustride, uorder,3340v1, v2, vstride, vorder, points));3341if (isCallValid)3342{3343context->map2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);3344}3345ANGLE_CAPTURE(Map2d, isCallValid, context, target, u1, u2, ustride, uorder, v1, v2, vstride,3346vorder, points);3347}3348else3349{3350GenerateContextLostErrorOnCurrentGlobalContext();3351}3352}33533354void GL_APIENTRY GL_Map2f(GLenum target,3355GLfloat u1,3356GLfloat u2,3357GLint ustride,3358GLint uorder,3359GLfloat v1,3360GLfloat v2,3361GLint vstride,3362GLint vorder,3363const GLfloat *points)3364{3365Context *context = GetValidGlobalContext();3366EVENT(context, GLMap2f,3367"context = %d, target = %s, u1 = %f, u2 = %f, ustride = %d, uorder = %d, v1 = %f, v2 = "3368"%f, vstride = %d, vorder = %d, points = 0x%016" PRIxPTR "",3369CID(context), GLenumToString(GLenumGroup::MapTarget, target), u1, u2, ustride, uorder, v1,3370v2, vstride, vorder, (uintptr_t)points);33713372if (context)3373{3374std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3375bool isCallValid =3376(context->skipValidation() || ValidateMap2f(context, target, u1, u2, ustride, uorder,3377v1, v2, vstride, vorder, points));3378if (isCallValid)3379{3380context->map2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);3381}3382ANGLE_CAPTURE(Map2f, isCallValid, context, target, u1, u2, ustride, uorder, v1, v2, vstride,3383vorder, points);3384}3385else3386{3387GenerateContextLostErrorOnCurrentGlobalContext();3388}3389}33903391void GL_APIENTRY GL_MapGrid1d(GLint un, GLdouble u1, GLdouble u2)3392{3393Context *context = GetValidGlobalContext();3394EVENT(context, GLMapGrid1d, "context = %d, un = %d, u1 = %f, u2 = %f", CID(context), un, u1,3395u2);33963397if (context)3398{3399std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3400bool isCallValid = (context->skipValidation() || ValidateMapGrid1d(context, un, u1, u2));3401if (isCallValid)3402{3403context->mapGrid1d(un, u1, u2);3404}3405ANGLE_CAPTURE(MapGrid1d, isCallValid, context, un, u1, u2);3406}3407else3408{3409GenerateContextLostErrorOnCurrentGlobalContext();3410}3411}34123413void GL_APIENTRY GL_MapGrid1f(GLint un, GLfloat u1, GLfloat u2)3414{3415Context *context = GetValidGlobalContext();3416EVENT(context, GLMapGrid1f, "context = %d, un = %d, u1 = %f, u2 = %f", CID(context), un, u1,3417u2);34183419if (context)3420{3421std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3422bool isCallValid = (context->skipValidation() || ValidateMapGrid1f(context, un, u1, u2));3423if (isCallValid)3424{3425context->mapGrid1f(un, u1, u2);3426}3427ANGLE_CAPTURE(MapGrid1f, isCallValid, context, un, u1, u2);3428}3429else3430{3431GenerateContextLostErrorOnCurrentGlobalContext();3432}3433}34343435void GL_APIENTRY3436GL_MapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)3437{3438Context *context = GetValidGlobalContext();3439EVENT(context, GLMapGrid2d,3440"context = %d, un = %d, u1 = %f, u2 = %f, vn = %d, v1 = %f, v2 = %f", CID(context), un,3441u1, u2, vn, v1, v2);34423443if (context)3444{3445std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3446bool isCallValid =3447(context->skipValidation() || ValidateMapGrid2d(context, un, u1, u2, vn, v1, v2));3448if (isCallValid)3449{3450context->mapGrid2d(un, u1, u2, vn, v1, v2);3451}3452ANGLE_CAPTURE(MapGrid2d, isCallValid, context, un, u1, u2, vn, v1, v2);3453}3454else3455{3456GenerateContextLostErrorOnCurrentGlobalContext();3457}3458}34593460void GL_APIENTRY GL_MapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)3461{3462Context *context = GetValidGlobalContext();3463EVENT(context, GLMapGrid2f,3464"context = %d, un = %d, u1 = %f, u2 = %f, vn = %d, v1 = %f, v2 = %f", CID(context), un,3465u1, u2, vn, v1, v2);34663467if (context)3468{3469std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3470bool isCallValid =3471(context->skipValidation() || ValidateMapGrid2f(context, un, u1, u2, vn, v1, v2));3472if (isCallValid)3473{3474context->mapGrid2f(un, u1, u2, vn, v1, v2);3475}3476ANGLE_CAPTURE(MapGrid2f, isCallValid, context, un, u1, u2, vn, v1, v2);3477}3478else3479{3480GenerateContextLostErrorOnCurrentGlobalContext();3481}3482}34833484void GL_APIENTRY GL_Materialf(GLenum face, GLenum pname, GLfloat param)3485{3486Context *context = GetValidGlobalContext();3487EVENT(context, GLMaterialf, "context = %d, face = %s, pname = %s, param = %f", CID(context),3488GLenumToString(GLenumGroup::MaterialFace, face),3489GLenumToString(GLenumGroup::MaterialParameter, pname), param);34903491if (context)3492{3493MaterialParameter pnamePacked = PackParam<MaterialParameter>(pname);3494std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3495bool isCallValid =3496(context->skipValidation() || ValidateMaterialf(context, face, pnamePacked, param));3497if (isCallValid)3498{3499context->materialf(face, pnamePacked, param);3500}3501ANGLE_CAPTURE(Materialf, isCallValid, context, face, pnamePacked, param);3502}3503else3504{3505GenerateContextLostErrorOnCurrentGlobalContext();3506}3507}35083509void GL_APIENTRY GL_Materialfv(GLenum face, GLenum pname, const GLfloat *params)3510{3511Context *context = GetValidGlobalContext();3512EVENT(context, GLMaterialfv, "context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "",3513CID(context), GLenumToString(GLenumGroup::MaterialFace, face),3514GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params);35153516if (context)3517{3518MaterialParameter pnamePacked = PackParam<MaterialParameter>(pname);3519std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3520bool isCallValid =3521(context->skipValidation() || ValidateMaterialfv(context, face, pnamePacked, params));3522if (isCallValid)3523{3524context->materialfv(face, pnamePacked, params);3525}3526ANGLE_CAPTURE(Materialfv, isCallValid, context, face, pnamePacked, params);3527}3528else3529{3530GenerateContextLostErrorOnCurrentGlobalContext();3531}3532}35333534void GL_APIENTRY GL_Materiali(GLenum face, GLenum pname, GLint param)3535{3536Context *context = GetValidGlobalContext();3537EVENT(context, GLMateriali, "context = %d, face = %s, pname = %s, param = %d", CID(context),3538GLenumToString(GLenumGroup::MaterialFace, face),3539GLenumToString(GLenumGroup::MaterialParameter, pname), param);35403541if (context)3542{3543std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3544bool isCallValid =3545(context->skipValidation() || ValidateMateriali(context, face, pname, param));3546if (isCallValid)3547{3548context->materiali(face, pname, param);3549}3550ANGLE_CAPTURE(Materiali, isCallValid, context, face, pname, param);3551}3552else3553{3554GenerateContextLostErrorOnCurrentGlobalContext();3555}3556}35573558void GL_APIENTRY GL_Materialiv(GLenum face, GLenum pname, const GLint *params)3559{3560Context *context = GetValidGlobalContext();3561EVENT(context, GLMaterialiv, "context = %d, face = %s, pname = %s, params = 0x%016" PRIxPTR "",3562CID(context), GLenumToString(GLenumGroup::MaterialFace, face),3563GLenumToString(GLenumGroup::MaterialParameter, pname), (uintptr_t)params);35643565if (context)3566{3567std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3568bool isCallValid =3569(context->skipValidation() || ValidateMaterialiv(context, face, pname, params));3570if (isCallValid)3571{3572context->materialiv(face, pname, params);3573}3574ANGLE_CAPTURE(Materialiv, isCallValid, context, face, pname, params);3575}3576else3577{3578GenerateContextLostErrorOnCurrentGlobalContext();3579}3580}35813582void GL_APIENTRY GL_MatrixMode(GLenum mode)3583{3584Context *context = GetValidGlobalContext();3585EVENT(context, GLMatrixMode, "context = %d, mode = %s", CID(context),3586GLenumToString(GLenumGroup::MatrixMode, mode));35873588if (context)3589{3590MatrixType modePacked = PackParam<MatrixType>(mode);3591std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3592bool isCallValid = (context->skipValidation() || ValidateMatrixMode(context, modePacked));3593if (isCallValid)3594{3595context->matrixMode(modePacked);3596}3597ANGLE_CAPTURE(MatrixMode, isCallValid, context, modePacked);3598}3599else3600{3601GenerateContextLostErrorOnCurrentGlobalContext();3602}3603}36043605void GL_APIENTRY GL_MultMatrixd(const GLdouble *m)3606{3607Context *context = GetValidGlobalContext();3608EVENT(context, GLMultMatrixd, "context = %d, m = 0x%016" PRIxPTR "", CID(context),3609(uintptr_t)m);36103611if (context)3612{3613std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3614bool isCallValid = (context->skipValidation() || ValidateMultMatrixd(context, m));3615if (isCallValid)3616{3617context->multMatrixd(m);3618}3619ANGLE_CAPTURE(MultMatrixd, isCallValid, context, m);3620}3621else3622{3623GenerateContextLostErrorOnCurrentGlobalContext();3624}3625}36263627void GL_APIENTRY GL_MultMatrixf(const GLfloat *m)3628{3629Context *context = GetValidGlobalContext();3630EVENT(context, GLMultMatrixf, "context = %d, m = 0x%016" PRIxPTR "", CID(context),3631(uintptr_t)m);36323633if (context)3634{3635std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3636bool isCallValid = (context->skipValidation() || ValidateMultMatrixf(context, m));3637if (isCallValid)3638{3639context->multMatrixf(m);3640}3641ANGLE_CAPTURE(MultMatrixf, isCallValid, context, m);3642}3643else3644{3645GenerateContextLostErrorOnCurrentGlobalContext();3646}3647}36483649void GL_APIENTRY GL_NewList(GLuint list, GLenum mode)3650{3651Context *context = GetValidGlobalContext();3652EVENT(context, GLNewList, "context = %d, list = %u, mode = %s", CID(context), list,3653GLenumToString(GLenumGroup::ListMode, mode));36543655if (context)3656{3657std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3658bool isCallValid = (context->skipValidation() || ValidateNewList(context, list, mode));3659if (isCallValid)3660{3661context->newList(list, mode);3662}3663ANGLE_CAPTURE(NewList, isCallValid, context, list, mode);3664}3665else3666{3667GenerateContextLostErrorOnCurrentGlobalContext();3668}3669}36703671void GL_APIENTRY GL_Normal3b(GLbyte nx, GLbyte ny, GLbyte nz)3672{3673Context *context = GetValidGlobalContext();3674EVENT(context, GLNormal3b, "context = %d, nx = %d, ny = %d, nz = %d", CID(context), nx, ny, nz);36753676if (context)3677{3678std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3679bool isCallValid = (context->skipValidation() || ValidateNormal3b(context, nx, ny, nz));3680if (isCallValid)3681{3682context->normal3b(nx, ny, nz);3683}3684ANGLE_CAPTURE(Normal3b, isCallValid, context, nx, ny, nz);3685}3686else3687{3688GenerateContextLostErrorOnCurrentGlobalContext();3689}3690}36913692void GL_APIENTRY GL_Normal3bv(const GLbyte *v)3693{3694Context *context = GetValidGlobalContext();3695EVENT(context, GLNormal3bv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);36963697if (context)3698{3699std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3700bool isCallValid = (context->skipValidation() || ValidateNormal3bv(context, v));3701if (isCallValid)3702{3703context->normal3bv(v);3704}3705ANGLE_CAPTURE(Normal3bv, isCallValid, context, v);3706}3707else3708{3709GenerateContextLostErrorOnCurrentGlobalContext();3710}3711}37123713void GL_APIENTRY GL_Normal3d(GLdouble nx, GLdouble ny, GLdouble nz)3714{3715Context *context = GetValidGlobalContext();3716EVENT(context, GLNormal3d, "context = %d, nx = %f, ny = %f, nz = %f", CID(context), nx, ny, nz);37173718if (context)3719{3720std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3721bool isCallValid = (context->skipValidation() || ValidateNormal3d(context, nx, ny, nz));3722if (isCallValid)3723{3724context->normal3d(nx, ny, nz);3725}3726ANGLE_CAPTURE(Normal3d, isCallValid, context, nx, ny, nz);3727}3728else3729{3730GenerateContextLostErrorOnCurrentGlobalContext();3731}3732}37333734void GL_APIENTRY GL_Normal3dv(const GLdouble *v)3735{3736Context *context = GetValidGlobalContext();3737EVENT(context, GLNormal3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);37383739if (context)3740{3741std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3742bool isCallValid = (context->skipValidation() || ValidateNormal3dv(context, v));3743if (isCallValid)3744{3745context->normal3dv(v);3746}3747ANGLE_CAPTURE(Normal3dv, isCallValid, context, v);3748}3749else3750{3751GenerateContextLostErrorOnCurrentGlobalContext();3752}3753}37543755void GL_APIENTRY GL_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz)3756{3757Context *context = GetValidGlobalContext();3758EVENT(context, GLNormal3f, "context = %d, nx = %f, ny = %f, nz = %f", CID(context), nx, ny, nz);37593760if (context)3761{3762std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3763bool isCallValid = (context->skipValidation() || ValidateNormal3f(context, nx, ny, nz));3764if (isCallValid)3765{3766context->normal3f(nx, ny, nz);3767}3768ANGLE_CAPTURE(Normal3f, isCallValid, context, nx, ny, nz);3769}3770else3771{3772GenerateContextLostErrorOnCurrentGlobalContext();3773}3774}37753776void GL_APIENTRY GL_Normal3fv(const GLfloat *v)3777{3778Context *context = GetValidGlobalContext();3779EVENT(context, GLNormal3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);37803781if (context)3782{3783std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3784bool isCallValid = (context->skipValidation() || ValidateNormal3fv(context, v));3785if (isCallValid)3786{3787context->normal3fv(v);3788}3789ANGLE_CAPTURE(Normal3fv, isCallValid, context, v);3790}3791else3792{3793GenerateContextLostErrorOnCurrentGlobalContext();3794}3795}37963797void GL_APIENTRY GL_Normal3i(GLint nx, GLint ny, GLint nz)3798{3799Context *context = GetValidGlobalContext();3800EVENT(context, GLNormal3i, "context = %d, nx = %d, ny = %d, nz = %d", CID(context), nx, ny, nz);38013802if (context)3803{3804std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3805bool isCallValid = (context->skipValidation() || ValidateNormal3i(context, nx, ny, nz));3806if (isCallValid)3807{3808context->normal3i(nx, ny, nz);3809}3810ANGLE_CAPTURE(Normal3i, isCallValid, context, nx, ny, nz);3811}3812else3813{3814GenerateContextLostErrorOnCurrentGlobalContext();3815}3816}38173818void GL_APIENTRY GL_Normal3iv(const GLint *v)3819{3820Context *context = GetValidGlobalContext();3821EVENT(context, GLNormal3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);38223823if (context)3824{3825std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3826bool isCallValid = (context->skipValidation() || ValidateNormal3iv(context, v));3827if (isCallValid)3828{3829context->normal3iv(v);3830}3831ANGLE_CAPTURE(Normal3iv, isCallValid, context, v);3832}3833else3834{3835GenerateContextLostErrorOnCurrentGlobalContext();3836}3837}38383839void GL_APIENTRY GL_Normal3s(GLshort nx, GLshort ny, GLshort nz)3840{3841Context *context = GetValidGlobalContext();3842EVENT(context, GLNormal3s, "context = %d, nx = %d, ny = %d, nz = %d", CID(context), nx, ny, nz);38433844if (context)3845{3846std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3847bool isCallValid = (context->skipValidation() || ValidateNormal3s(context, nx, ny, nz));3848if (isCallValid)3849{3850context->normal3s(nx, ny, nz);3851}3852ANGLE_CAPTURE(Normal3s, isCallValid, context, nx, ny, nz);3853}3854else3855{3856GenerateContextLostErrorOnCurrentGlobalContext();3857}3858}38593860void GL_APIENTRY GL_Normal3sv(const GLshort *v)3861{3862Context *context = GetValidGlobalContext();3863EVENT(context, GLNormal3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);38643865if (context)3866{3867std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3868bool isCallValid = (context->skipValidation() || ValidateNormal3sv(context, v));3869if (isCallValid)3870{3871context->normal3sv(v);3872}3873ANGLE_CAPTURE(Normal3sv, isCallValid, context, v);3874}3875else3876{3877GenerateContextLostErrorOnCurrentGlobalContext();3878}3879}38803881void GL_APIENTRY GL_Ortho(GLdouble left,3882GLdouble right,3883GLdouble bottom,3884GLdouble top,3885GLdouble zNear,3886GLdouble zFar)3887{3888Context *context = GetValidGlobalContext();3889EVENT(context, GLOrtho,3890"context = %d, left = %f, right = %f, bottom = %f, top = %f, zNear = %f, zFar = %f",3891CID(context), left, right, bottom, top, zNear, zFar);38923893if (context)3894{3895std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3896bool isCallValid = (context->skipValidation() ||3897ValidateOrtho(context, left, right, bottom, top, zNear, zFar));3898if (isCallValid)3899{3900context->ortho(left, right, bottom, top, zNear, zFar);3901}3902ANGLE_CAPTURE(Ortho, isCallValid, context, left, right, bottom, top, zNear, zFar);3903}3904else3905{3906GenerateContextLostErrorOnCurrentGlobalContext();3907}3908}39093910void GL_APIENTRY GL_PassThrough(GLfloat token)3911{3912Context *context = GetValidGlobalContext();3913EVENT(context, GLPassThrough, "context = %d, token = %f", CID(context), token);39143915if (context)3916{3917std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3918bool isCallValid = (context->skipValidation() || ValidatePassThrough(context, token));3919if (isCallValid)3920{3921context->passThrough(token);3922}3923ANGLE_CAPTURE(PassThrough, isCallValid, context, token);3924}3925else3926{3927GenerateContextLostErrorOnCurrentGlobalContext();3928}3929}39303931void GL_APIENTRY GL_PixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values)3932{3933Context *context = GetValidGlobalContext();3934EVENT(context, GLPixelMapfv, "context = %d, map = %s, mapsize = %d, values = 0x%016" PRIxPTR "",3935CID(context), GLenumToString(GLenumGroup::PixelMap, map), mapsize, (uintptr_t)values);39363937if (context)3938{3939std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3940bool isCallValid =3941(context->skipValidation() || ValidatePixelMapfv(context, map, mapsize, values));3942if (isCallValid)3943{3944context->pixelMapfv(map, mapsize, values);3945}3946ANGLE_CAPTURE(PixelMapfv, isCallValid, context, map, mapsize, values);3947}3948else3949{3950GenerateContextLostErrorOnCurrentGlobalContext();3951}3952}39533954void GL_APIENTRY GL_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values)3955{3956Context *context = GetValidGlobalContext();3957EVENT(context, GLPixelMapuiv,3958"context = %d, map = %s, mapsize = %d, values = 0x%016" PRIxPTR "", CID(context),3959GLenumToString(GLenumGroup::PixelMap, map), mapsize, (uintptr_t)values);39603961if (context)3962{3963std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3964bool isCallValid =3965(context->skipValidation() || ValidatePixelMapuiv(context, map, mapsize, values));3966if (isCallValid)3967{3968context->pixelMapuiv(map, mapsize, values);3969}3970ANGLE_CAPTURE(PixelMapuiv, isCallValid, context, map, mapsize, values);3971}3972else3973{3974GenerateContextLostErrorOnCurrentGlobalContext();3975}3976}39773978void GL_APIENTRY GL_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values)3979{3980Context *context = GetValidGlobalContext();3981EVENT(context, GLPixelMapusv,3982"context = %d, map = %s, mapsize = %d, values = 0x%016" PRIxPTR "", CID(context),3983GLenumToString(GLenumGroup::PixelMap, map), mapsize, (uintptr_t)values);39843985if (context)3986{3987std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);3988bool isCallValid =3989(context->skipValidation() || ValidatePixelMapusv(context, map, mapsize, values));3990if (isCallValid)3991{3992context->pixelMapusv(map, mapsize, values);3993}3994ANGLE_CAPTURE(PixelMapusv, isCallValid, context, map, mapsize, values);3995}3996else3997{3998GenerateContextLostErrorOnCurrentGlobalContext();3999}4000}40014002void GL_APIENTRY GL_PixelStoref(GLenum pname, GLfloat param)4003{4004Context *context = GetValidGlobalContext();4005EVENT(context, GLPixelStoref, "context = %d, pname = %s, param = %f", CID(context),4006GLenumToString(GLenumGroup::PixelStoreParameter, pname), param);40074008if (context)4009{4010std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4011bool isCallValid =4012(context->skipValidation() || ValidatePixelStoref(context, pname, param));4013if (isCallValid)4014{4015context->pixelStoref(pname, param);4016}4017ANGLE_CAPTURE(PixelStoref, isCallValid, context, pname, param);4018}4019else4020{4021GenerateContextLostErrorOnCurrentGlobalContext();4022}4023}40244025void GL_APIENTRY GL_PixelStorei(GLenum pname, GLint param)4026{4027Context *context = GetValidGlobalContext();4028EVENT(context, GLPixelStorei, "context = %d, pname = %s, param = %d", CID(context),4029GLenumToString(GLenumGroup::PixelStoreParameter, pname), param);40304031if (context)4032{4033std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4034bool isCallValid =4035(context->skipValidation() || ValidatePixelStorei(context, pname, param));4036if (isCallValid)4037{4038context->pixelStorei(pname, param);4039}4040ANGLE_CAPTURE(PixelStorei, isCallValid, context, pname, param);4041}4042else4043{4044GenerateContextLostErrorOnCurrentGlobalContext();4045}4046}40474048void GL_APIENTRY GL_PixelTransferf(GLenum pname, GLfloat param)4049{4050Context *context = GetValidGlobalContext();4051EVENT(context, GLPixelTransferf, "context = %d, pname = %s, param = %f", CID(context),4052GLenumToString(GLenumGroup::PixelTransferParameter, pname), param);40534054if (context)4055{4056std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4057bool isCallValid =4058(context->skipValidation() || ValidatePixelTransferf(context, pname, param));4059if (isCallValid)4060{4061context->pixelTransferf(pname, param);4062}4063ANGLE_CAPTURE(PixelTransferf, isCallValid, context, pname, param);4064}4065else4066{4067GenerateContextLostErrorOnCurrentGlobalContext();4068}4069}40704071void GL_APIENTRY GL_PixelTransferi(GLenum pname, GLint param)4072{4073Context *context = GetValidGlobalContext();4074EVENT(context, GLPixelTransferi, "context = %d, pname = %s, param = %d", CID(context),4075GLenumToString(GLenumGroup::PixelTransferParameter, pname), param);40764077if (context)4078{4079std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4080bool isCallValid =4081(context->skipValidation() || ValidatePixelTransferi(context, pname, param));4082if (isCallValid)4083{4084context->pixelTransferi(pname, param);4085}4086ANGLE_CAPTURE(PixelTransferi, isCallValid, context, pname, param);4087}4088else4089{4090GenerateContextLostErrorOnCurrentGlobalContext();4091}4092}40934094void GL_APIENTRY GL_PixelZoom(GLfloat xfactor, GLfloat yfactor)4095{4096Context *context = GetValidGlobalContext();4097EVENT(context, GLPixelZoom, "context = %d, xfactor = %f, yfactor = %f", CID(context), xfactor,4098yfactor);40994100if (context)4101{4102std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4103bool isCallValid =4104(context->skipValidation() || ValidatePixelZoom(context, xfactor, yfactor));4105if (isCallValid)4106{4107context->pixelZoom(xfactor, yfactor);4108}4109ANGLE_CAPTURE(PixelZoom, isCallValid, context, xfactor, yfactor);4110}4111else4112{4113GenerateContextLostErrorOnCurrentGlobalContext();4114}4115}41164117void GL_APIENTRY GL_PointSize(GLfloat size)4118{4119Context *context = GetValidGlobalContext();4120EVENT(context, GLPointSize, "context = %d, size = %f", CID(context), size);41214122if (context)4123{4124std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4125bool isCallValid = (context->skipValidation() || ValidatePointSize(context, size));4126if (isCallValid)4127{4128context->pointSize(size);4129}4130ANGLE_CAPTURE(PointSize, isCallValid, context, size);4131}4132else4133{4134GenerateContextLostErrorOnCurrentGlobalContext();4135}4136}41374138void GL_APIENTRY GL_PolygonMode(GLenum face, GLenum mode)4139{4140Context *context = GetValidGlobalContext();4141EVENT(context, GLPolygonMode, "context = %d, face = %s, mode = %s", CID(context),4142GLenumToString(GLenumGroup::MaterialFace, face),4143GLenumToString(GLenumGroup::PolygonMode, mode));41444145if (context)4146{4147std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4148bool isCallValid = (context->skipValidation() || ValidatePolygonMode(context, face, mode));4149if (isCallValid)4150{4151context->polygonMode(face, mode);4152}4153ANGLE_CAPTURE(PolygonMode, isCallValid, context, face, mode);4154}4155else4156{4157GenerateContextLostErrorOnCurrentGlobalContext();4158}4159}41604161void GL_APIENTRY GL_PolygonStipple(const GLubyte *mask)4162{4163Context *context = GetValidGlobalContext();4164EVENT(context, GLPolygonStipple, "context = %d, mask = 0x%016" PRIxPTR "", CID(context),4165(uintptr_t)mask);41664167if (context)4168{4169std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4170bool isCallValid = (context->skipValidation() || ValidatePolygonStipple(context, mask));4171if (isCallValid)4172{4173context->polygonStipple(mask);4174}4175ANGLE_CAPTURE(PolygonStipple, isCallValid, context, mask);4176}4177else4178{4179GenerateContextLostErrorOnCurrentGlobalContext();4180}4181}41824183void GL_APIENTRY GL_PopAttrib()4184{4185Context *context = GetValidGlobalContext();4186EVENT(context, GLPopAttrib, "context = %d", CID(context));41874188if (context)4189{4190std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4191bool isCallValid = (context->skipValidation() || ValidatePopAttrib(context));4192if (isCallValid)4193{4194context->popAttrib();4195}4196ANGLE_CAPTURE(PopAttrib, isCallValid, context);4197}4198else4199{4200GenerateContextLostErrorOnCurrentGlobalContext();4201}4202}42034204void GL_APIENTRY GL_PopMatrix()4205{4206Context *context = GetValidGlobalContext();4207EVENT(context, GLPopMatrix, "context = %d", CID(context));42084209if (context)4210{4211std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4212bool isCallValid = (context->skipValidation() || ValidatePopMatrix(context));4213if (isCallValid)4214{4215context->popMatrix();4216}4217ANGLE_CAPTURE(PopMatrix, isCallValid, context);4218}4219else4220{4221GenerateContextLostErrorOnCurrentGlobalContext();4222}4223}42244225void GL_APIENTRY GL_PopName()4226{4227Context *context = GetValidGlobalContext();4228EVENT(context, GLPopName, "context = %d", CID(context));42294230if (context)4231{4232std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4233bool isCallValid = (context->skipValidation() || ValidatePopName(context));4234if (isCallValid)4235{4236context->popName();4237}4238ANGLE_CAPTURE(PopName, isCallValid, context);4239}4240else4241{4242GenerateContextLostErrorOnCurrentGlobalContext();4243}4244}42454246void GL_APIENTRY GL_PushAttrib(GLbitfield mask)4247{4248Context *context = GetValidGlobalContext();4249EVENT(context, GLPushAttrib, "context = %d, mask = %s", CID(context),4250GLbitfieldToString(GLenumGroup::AttribMask, mask).c_str());42514252if (context)4253{4254std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4255bool isCallValid = (context->skipValidation() || ValidatePushAttrib(context, mask));4256if (isCallValid)4257{4258context->pushAttrib(mask);4259}4260ANGLE_CAPTURE(PushAttrib, isCallValid, context, mask);4261}4262else4263{4264GenerateContextLostErrorOnCurrentGlobalContext();4265}4266}42674268void GL_APIENTRY GL_PushMatrix()4269{4270Context *context = GetValidGlobalContext();4271EVENT(context, GLPushMatrix, "context = %d", CID(context));42724273if (context)4274{4275std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4276bool isCallValid = (context->skipValidation() || ValidatePushMatrix(context));4277if (isCallValid)4278{4279context->pushMatrix();4280}4281ANGLE_CAPTURE(PushMatrix, isCallValid, context);4282}4283else4284{4285GenerateContextLostErrorOnCurrentGlobalContext();4286}4287}42884289void GL_APIENTRY GL_PushName(GLuint name)4290{4291Context *context = GetValidGlobalContext();4292EVENT(context, GLPushName, "context = %d, name = %u", CID(context), name);42934294if (context)4295{4296std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4297bool isCallValid = (context->skipValidation() || ValidatePushName(context, name));4298if (isCallValid)4299{4300context->pushName(name);4301}4302ANGLE_CAPTURE(PushName, isCallValid, context, name);4303}4304else4305{4306GenerateContextLostErrorOnCurrentGlobalContext();4307}4308}43094310void GL_APIENTRY GL_RasterPos2d(GLdouble x, GLdouble y)4311{4312Context *context = GetValidGlobalContext();4313EVENT(context, GLRasterPos2d, "context = %d, x = %f, y = %f", CID(context), x, y);43144315if (context)4316{4317std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4318bool isCallValid = (context->skipValidation() || ValidateRasterPos2d(context, x, y));4319if (isCallValid)4320{4321context->rasterPos2d(x, y);4322}4323ANGLE_CAPTURE(RasterPos2d, isCallValid, context, x, y);4324}4325else4326{4327GenerateContextLostErrorOnCurrentGlobalContext();4328}4329}43304331void GL_APIENTRY GL_RasterPos2dv(const GLdouble *v)4332{4333Context *context = GetValidGlobalContext();4334EVENT(context, GLRasterPos2dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4335(uintptr_t)v);43364337if (context)4338{4339std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4340bool isCallValid = (context->skipValidation() || ValidateRasterPos2dv(context, v));4341if (isCallValid)4342{4343context->rasterPos2dv(v);4344}4345ANGLE_CAPTURE(RasterPos2dv, isCallValid, context, v);4346}4347else4348{4349GenerateContextLostErrorOnCurrentGlobalContext();4350}4351}43524353void GL_APIENTRY GL_RasterPos2f(GLfloat x, GLfloat y)4354{4355Context *context = GetValidGlobalContext();4356EVENT(context, GLRasterPos2f, "context = %d, x = %f, y = %f", CID(context), x, y);43574358if (context)4359{4360std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4361bool isCallValid = (context->skipValidation() || ValidateRasterPos2f(context, x, y));4362if (isCallValid)4363{4364context->rasterPos2f(x, y);4365}4366ANGLE_CAPTURE(RasterPos2f, isCallValid, context, x, y);4367}4368else4369{4370GenerateContextLostErrorOnCurrentGlobalContext();4371}4372}43734374void GL_APIENTRY GL_RasterPos2fv(const GLfloat *v)4375{4376Context *context = GetValidGlobalContext();4377EVENT(context, GLRasterPos2fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4378(uintptr_t)v);43794380if (context)4381{4382std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4383bool isCallValid = (context->skipValidation() || ValidateRasterPos2fv(context, v));4384if (isCallValid)4385{4386context->rasterPos2fv(v);4387}4388ANGLE_CAPTURE(RasterPos2fv, isCallValid, context, v);4389}4390else4391{4392GenerateContextLostErrorOnCurrentGlobalContext();4393}4394}43954396void GL_APIENTRY GL_RasterPos2i(GLint x, GLint y)4397{4398Context *context = GetValidGlobalContext();4399EVENT(context, GLRasterPos2i, "context = %d, x = %d, y = %d", CID(context), x, y);44004401if (context)4402{4403std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4404bool isCallValid = (context->skipValidation() || ValidateRasterPos2i(context, x, y));4405if (isCallValid)4406{4407context->rasterPos2i(x, y);4408}4409ANGLE_CAPTURE(RasterPos2i, isCallValid, context, x, y);4410}4411else4412{4413GenerateContextLostErrorOnCurrentGlobalContext();4414}4415}44164417void GL_APIENTRY GL_RasterPos2iv(const GLint *v)4418{4419Context *context = GetValidGlobalContext();4420EVENT(context, GLRasterPos2iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4421(uintptr_t)v);44224423if (context)4424{4425std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4426bool isCallValid = (context->skipValidation() || ValidateRasterPos2iv(context, v));4427if (isCallValid)4428{4429context->rasterPos2iv(v);4430}4431ANGLE_CAPTURE(RasterPos2iv, isCallValid, context, v);4432}4433else4434{4435GenerateContextLostErrorOnCurrentGlobalContext();4436}4437}44384439void GL_APIENTRY GL_RasterPos2s(GLshort x, GLshort y)4440{4441Context *context = GetValidGlobalContext();4442EVENT(context, GLRasterPos2s, "context = %d, x = %d, y = %d", CID(context), x, y);44434444if (context)4445{4446std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4447bool isCallValid = (context->skipValidation() || ValidateRasterPos2s(context, x, y));4448if (isCallValid)4449{4450context->rasterPos2s(x, y);4451}4452ANGLE_CAPTURE(RasterPos2s, isCallValid, context, x, y);4453}4454else4455{4456GenerateContextLostErrorOnCurrentGlobalContext();4457}4458}44594460void GL_APIENTRY GL_RasterPos2sv(const GLshort *v)4461{4462Context *context = GetValidGlobalContext();4463EVENT(context, GLRasterPos2sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4464(uintptr_t)v);44654466if (context)4467{4468std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4469bool isCallValid = (context->skipValidation() || ValidateRasterPos2sv(context, v));4470if (isCallValid)4471{4472context->rasterPos2sv(v);4473}4474ANGLE_CAPTURE(RasterPos2sv, isCallValid, context, v);4475}4476else4477{4478GenerateContextLostErrorOnCurrentGlobalContext();4479}4480}44814482void GL_APIENTRY GL_RasterPos3d(GLdouble x, GLdouble y, GLdouble z)4483{4484Context *context = GetValidGlobalContext();4485EVENT(context, GLRasterPos3d, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);44864487if (context)4488{4489std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4490bool isCallValid = (context->skipValidation() || ValidateRasterPos3d(context, x, y, z));4491if (isCallValid)4492{4493context->rasterPos3d(x, y, z);4494}4495ANGLE_CAPTURE(RasterPos3d, isCallValid, context, x, y, z);4496}4497else4498{4499GenerateContextLostErrorOnCurrentGlobalContext();4500}4501}45024503void GL_APIENTRY GL_RasterPos3dv(const GLdouble *v)4504{4505Context *context = GetValidGlobalContext();4506EVENT(context, GLRasterPos3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4507(uintptr_t)v);45084509if (context)4510{4511std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4512bool isCallValid = (context->skipValidation() || ValidateRasterPos3dv(context, v));4513if (isCallValid)4514{4515context->rasterPos3dv(v);4516}4517ANGLE_CAPTURE(RasterPos3dv, isCallValid, context, v);4518}4519else4520{4521GenerateContextLostErrorOnCurrentGlobalContext();4522}4523}45244525void GL_APIENTRY GL_RasterPos3f(GLfloat x, GLfloat y, GLfloat z)4526{4527Context *context = GetValidGlobalContext();4528EVENT(context, GLRasterPos3f, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);45294530if (context)4531{4532std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4533bool isCallValid = (context->skipValidation() || ValidateRasterPos3f(context, x, y, z));4534if (isCallValid)4535{4536context->rasterPos3f(x, y, z);4537}4538ANGLE_CAPTURE(RasterPos3f, isCallValid, context, x, y, z);4539}4540else4541{4542GenerateContextLostErrorOnCurrentGlobalContext();4543}4544}45454546void GL_APIENTRY GL_RasterPos3fv(const GLfloat *v)4547{4548Context *context = GetValidGlobalContext();4549EVENT(context, GLRasterPos3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4550(uintptr_t)v);45514552if (context)4553{4554std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4555bool isCallValid = (context->skipValidation() || ValidateRasterPos3fv(context, v));4556if (isCallValid)4557{4558context->rasterPos3fv(v);4559}4560ANGLE_CAPTURE(RasterPos3fv, isCallValid, context, v);4561}4562else4563{4564GenerateContextLostErrorOnCurrentGlobalContext();4565}4566}45674568void GL_APIENTRY GL_RasterPos3i(GLint x, GLint y, GLint z)4569{4570Context *context = GetValidGlobalContext();4571EVENT(context, GLRasterPos3i, "context = %d, x = %d, y = %d, z = %d", CID(context), x, y, z);45724573if (context)4574{4575std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4576bool isCallValid = (context->skipValidation() || ValidateRasterPos3i(context, x, y, z));4577if (isCallValid)4578{4579context->rasterPos3i(x, y, z);4580}4581ANGLE_CAPTURE(RasterPos3i, isCallValid, context, x, y, z);4582}4583else4584{4585GenerateContextLostErrorOnCurrentGlobalContext();4586}4587}45884589void GL_APIENTRY GL_RasterPos3iv(const GLint *v)4590{4591Context *context = GetValidGlobalContext();4592EVENT(context, GLRasterPos3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4593(uintptr_t)v);45944595if (context)4596{4597std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4598bool isCallValid = (context->skipValidation() || ValidateRasterPos3iv(context, v));4599if (isCallValid)4600{4601context->rasterPos3iv(v);4602}4603ANGLE_CAPTURE(RasterPos3iv, isCallValid, context, v);4604}4605else4606{4607GenerateContextLostErrorOnCurrentGlobalContext();4608}4609}46104611void GL_APIENTRY GL_RasterPos3s(GLshort x, GLshort y, GLshort z)4612{4613Context *context = GetValidGlobalContext();4614EVENT(context, GLRasterPos3s, "context = %d, x = %d, y = %d, z = %d", CID(context), x, y, z);46154616if (context)4617{4618std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4619bool isCallValid = (context->skipValidation() || ValidateRasterPos3s(context, x, y, z));4620if (isCallValid)4621{4622context->rasterPos3s(x, y, z);4623}4624ANGLE_CAPTURE(RasterPos3s, isCallValid, context, x, y, z);4625}4626else4627{4628GenerateContextLostErrorOnCurrentGlobalContext();4629}4630}46314632void GL_APIENTRY GL_RasterPos3sv(const GLshort *v)4633{4634Context *context = GetValidGlobalContext();4635EVENT(context, GLRasterPos3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4636(uintptr_t)v);46374638if (context)4639{4640std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4641bool isCallValid = (context->skipValidation() || ValidateRasterPos3sv(context, v));4642if (isCallValid)4643{4644context->rasterPos3sv(v);4645}4646ANGLE_CAPTURE(RasterPos3sv, isCallValid, context, v);4647}4648else4649{4650GenerateContextLostErrorOnCurrentGlobalContext();4651}4652}46534654void GL_APIENTRY GL_RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)4655{4656Context *context = GetValidGlobalContext();4657EVENT(context, GLRasterPos4d, "context = %d, x = %f, y = %f, z = %f, w = %f", CID(context), x,4658y, z, w);46594660if (context)4661{4662std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4663bool isCallValid = (context->skipValidation() || ValidateRasterPos4d(context, x, y, z, w));4664if (isCallValid)4665{4666context->rasterPos4d(x, y, z, w);4667}4668ANGLE_CAPTURE(RasterPos4d, isCallValid, context, x, y, z, w);4669}4670else4671{4672GenerateContextLostErrorOnCurrentGlobalContext();4673}4674}46754676void GL_APIENTRY GL_RasterPos4dv(const GLdouble *v)4677{4678Context *context = GetValidGlobalContext();4679EVENT(context, GLRasterPos4dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4680(uintptr_t)v);46814682if (context)4683{4684std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4685bool isCallValid = (context->skipValidation() || ValidateRasterPos4dv(context, v));4686if (isCallValid)4687{4688context->rasterPos4dv(v);4689}4690ANGLE_CAPTURE(RasterPos4dv, isCallValid, context, v);4691}4692else4693{4694GenerateContextLostErrorOnCurrentGlobalContext();4695}4696}46974698void GL_APIENTRY GL_RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)4699{4700Context *context = GetValidGlobalContext();4701EVENT(context, GLRasterPos4f, "context = %d, x = %f, y = %f, z = %f, w = %f", CID(context), x,4702y, z, w);47034704if (context)4705{4706std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4707bool isCallValid = (context->skipValidation() || ValidateRasterPos4f(context, x, y, z, w));4708if (isCallValid)4709{4710context->rasterPos4f(x, y, z, w);4711}4712ANGLE_CAPTURE(RasterPos4f, isCallValid, context, x, y, z, w);4713}4714else4715{4716GenerateContextLostErrorOnCurrentGlobalContext();4717}4718}47194720void GL_APIENTRY GL_RasterPos4fv(const GLfloat *v)4721{4722Context *context = GetValidGlobalContext();4723EVENT(context, GLRasterPos4fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4724(uintptr_t)v);47254726if (context)4727{4728std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4729bool isCallValid = (context->skipValidation() || ValidateRasterPos4fv(context, v));4730if (isCallValid)4731{4732context->rasterPos4fv(v);4733}4734ANGLE_CAPTURE(RasterPos4fv, isCallValid, context, v);4735}4736else4737{4738GenerateContextLostErrorOnCurrentGlobalContext();4739}4740}47414742void GL_APIENTRY GL_RasterPos4i(GLint x, GLint y, GLint z, GLint w)4743{4744Context *context = GetValidGlobalContext();4745EVENT(context, GLRasterPos4i, "context = %d, x = %d, y = %d, z = %d, w = %d", CID(context), x,4746y, z, w);47474748if (context)4749{4750std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4751bool isCallValid = (context->skipValidation() || ValidateRasterPos4i(context, x, y, z, w));4752if (isCallValid)4753{4754context->rasterPos4i(x, y, z, w);4755}4756ANGLE_CAPTURE(RasterPos4i, isCallValid, context, x, y, z, w);4757}4758else4759{4760GenerateContextLostErrorOnCurrentGlobalContext();4761}4762}47634764void GL_APIENTRY GL_RasterPos4iv(const GLint *v)4765{4766Context *context = GetValidGlobalContext();4767EVENT(context, GLRasterPos4iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4768(uintptr_t)v);47694770if (context)4771{4772std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4773bool isCallValid = (context->skipValidation() || ValidateRasterPos4iv(context, v));4774if (isCallValid)4775{4776context->rasterPos4iv(v);4777}4778ANGLE_CAPTURE(RasterPos4iv, isCallValid, context, v);4779}4780else4781{4782GenerateContextLostErrorOnCurrentGlobalContext();4783}4784}47854786void GL_APIENTRY GL_RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w)4787{4788Context *context = GetValidGlobalContext();4789EVENT(context, GLRasterPos4s, "context = %d, x = %d, y = %d, z = %d, w = %d", CID(context), x,4790y, z, w);47914792if (context)4793{4794std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4795bool isCallValid = (context->skipValidation() || ValidateRasterPos4s(context, x, y, z, w));4796if (isCallValid)4797{4798context->rasterPos4s(x, y, z, w);4799}4800ANGLE_CAPTURE(RasterPos4s, isCallValid, context, x, y, z, w);4801}4802else4803{4804GenerateContextLostErrorOnCurrentGlobalContext();4805}4806}48074808void GL_APIENTRY GL_RasterPos4sv(const GLshort *v)4809{4810Context *context = GetValidGlobalContext();4811EVENT(context, GLRasterPos4sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),4812(uintptr_t)v);48134814if (context)4815{4816std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4817bool isCallValid = (context->skipValidation() || ValidateRasterPos4sv(context, v));4818if (isCallValid)4819{4820context->rasterPos4sv(v);4821}4822ANGLE_CAPTURE(RasterPos4sv, isCallValid, context, v);4823}4824else4825{4826GenerateContextLostErrorOnCurrentGlobalContext();4827}4828}48294830void GL_APIENTRY GL_ReadBuffer(GLenum src)4831{4832Context *context = GetValidGlobalContext();4833EVENT(context, GLReadBuffer, "context = %d, src = %s", CID(context),4834GLenumToString(GLenumGroup::ReadBufferMode, src));48354836if (context)4837{4838std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4839bool isCallValid = (context->skipValidation() || ValidateReadBuffer(context, src));4840if (isCallValid)4841{4842context->readBuffer(src);4843}4844ANGLE_CAPTURE(ReadBuffer, isCallValid, context, src);4845}4846else4847{4848GenerateContextLostErrorOnCurrentGlobalContext();4849}4850}48514852void GL_APIENTRY GL_ReadPixels(GLint x,4853GLint y,4854GLsizei width,4855GLsizei height,4856GLenum format,4857GLenum type,4858void *pixels)4859{4860Context *context = GetValidGlobalContext();4861EVENT(context, GLReadPixels,4862"context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, pixels = "4863"0x%016" PRIxPTR "",4864CID(context), x, y, width, height, GLenumToString(GLenumGroup::PixelFormat, format),4865GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);48664867if (context)4868{4869std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4870bool isCallValid = (context->skipValidation() ||4871ValidateReadPixels(context, x, y, width, height, format, type, pixels));4872if (isCallValid)4873{4874context->readPixels(x, y, width, height, format, type, pixels);4875}4876ANGLE_CAPTURE(ReadPixels, isCallValid, context, x, y, width, height, format, type, pixels);4877}4878else4879{4880GenerateContextLostErrorOnCurrentGlobalContext();4881}4882}48834884void GL_APIENTRY GL_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)4885{4886Context *context = GetValidGlobalContext();4887EVENT(context, GLRectd, "context = %d, x1 = %f, y1 = %f, x2 = %f, y2 = %f", CID(context), x1,4888y1, x2, y2);48894890if (context)4891{4892std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4893bool isCallValid = (context->skipValidation() || ValidateRectd(context, x1, y1, x2, y2));4894if (isCallValid)4895{4896context->rectd(x1, y1, x2, y2);4897}4898ANGLE_CAPTURE(Rectd, isCallValid, context, x1, y1, x2, y2);4899}4900else4901{4902GenerateContextLostErrorOnCurrentGlobalContext();4903}4904}49054906void GL_APIENTRY GL_Rectdv(const GLdouble *v1, const GLdouble *v2)4907{4908Context *context = GetValidGlobalContext();4909EVENT(context, GLRectdv, "context = %d, v1 = 0x%016" PRIxPTR ", v2 = 0x%016" PRIxPTR "",4910CID(context), (uintptr_t)v1, (uintptr_t)v2);49114912if (context)4913{4914std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4915bool isCallValid = (context->skipValidation() || ValidateRectdv(context, v1, v2));4916if (isCallValid)4917{4918context->rectdv(v1, v2);4919}4920ANGLE_CAPTURE(Rectdv, isCallValid, context, v1, v2);4921}4922else4923{4924GenerateContextLostErrorOnCurrentGlobalContext();4925}4926}49274928void GL_APIENTRY GL_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)4929{4930Context *context = GetValidGlobalContext();4931EVENT(context, GLRectf, "context = %d, x1 = %f, y1 = %f, x2 = %f, y2 = %f", CID(context), x1,4932y1, x2, y2);49334934if (context)4935{4936std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4937bool isCallValid = (context->skipValidation() || ValidateRectf(context, x1, y1, x2, y2));4938if (isCallValid)4939{4940context->rectf(x1, y1, x2, y2);4941}4942ANGLE_CAPTURE(Rectf, isCallValid, context, x1, y1, x2, y2);4943}4944else4945{4946GenerateContextLostErrorOnCurrentGlobalContext();4947}4948}49494950void GL_APIENTRY GL_Rectfv(const GLfloat *v1, const GLfloat *v2)4951{4952Context *context = GetValidGlobalContext();4953EVENT(context, GLRectfv, "context = %d, v1 = 0x%016" PRIxPTR ", v2 = 0x%016" PRIxPTR "",4954CID(context), (uintptr_t)v1, (uintptr_t)v2);49554956if (context)4957{4958std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4959bool isCallValid = (context->skipValidation() || ValidateRectfv(context, v1, v2));4960if (isCallValid)4961{4962context->rectfv(v1, v2);4963}4964ANGLE_CAPTURE(Rectfv, isCallValid, context, v1, v2);4965}4966else4967{4968GenerateContextLostErrorOnCurrentGlobalContext();4969}4970}49714972void GL_APIENTRY GL_Recti(GLint x1, GLint y1, GLint x2, GLint y2)4973{4974Context *context = GetValidGlobalContext();4975EVENT(context, GLRecti, "context = %d, x1 = %d, y1 = %d, x2 = %d, y2 = %d", CID(context), x1,4976y1, x2, y2);49774978if (context)4979{4980std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);4981bool isCallValid = (context->skipValidation() || ValidateRecti(context, x1, y1, x2, y2));4982if (isCallValid)4983{4984context->recti(x1, y1, x2, y2);4985}4986ANGLE_CAPTURE(Recti, isCallValid, context, x1, y1, x2, y2);4987}4988else4989{4990GenerateContextLostErrorOnCurrentGlobalContext();4991}4992}49934994void GL_APIENTRY GL_Rectiv(const GLint *v1, const GLint *v2)4995{4996Context *context = GetValidGlobalContext();4997EVENT(context, GLRectiv, "context = %d, v1 = 0x%016" PRIxPTR ", v2 = 0x%016" PRIxPTR "",4998CID(context), (uintptr_t)v1, (uintptr_t)v2);49995000if (context)5001{5002std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5003bool isCallValid = (context->skipValidation() || ValidateRectiv(context, v1, v2));5004if (isCallValid)5005{5006context->rectiv(v1, v2);5007}5008ANGLE_CAPTURE(Rectiv, isCallValid, context, v1, v2);5009}5010else5011{5012GenerateContextLostErrorOnCurrentGlobalContext();5013}5014}50155016void GL_APIENTRY GL_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)5017{5018Context *context = GetValidGlobalContext();5019EVENT(context, GLRects, "context = %d, x1 = %d, y1 = %d, x2 = %d, y2 = %d", CID(context), x1,5020y1, x2, y2);50215022if (context)5023{5024std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5025bool isCallValid = (context->skipValidation() || ValidateRects(context, x1, y1, x2, y2));5026if (isCallValid)5027{5028context->rects(x1, y1, x2, y2);5029}5030ANGLE_CAPTURE(Rects, isCallValid, context, x1, y1, x2, y2);5031}5032else5033{5034GenerateContextLostErrorOnCurrentGlobalContext();5035}5036}50375038void GL_APIENTRY GL_Rectsv(const GLshort *v1, const GLshort *v2)5039{5040Context *context = GetValidGlobalContext();5041EVENT(context, GLRectsv, "context = %d, v1 = 0x%016" PRIxPTR ", v2 = 0x%016" PRIxPTR "",5042CID(context), (uintptr_t)v1, (uintptr_t)v2);50435044if (context)5045{5046std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5047bool isCallValid = (context->skipValidation() || ValidateRectsv(context, v1, v2));5048if (isCallValid)5049{5050context->rectsv(v1, v2);5051}5052ANGLE_CAPTURE(Rectsv, isCallValid, context, v1, v2);5053}5054else5055{5056GenerateContextLostErrorOnCurrentGlobalContext();5057}5058}50595060GLint GL_APIENTRY GL_RenderMode(GLenum mode)5061{5062Context *context = GetValidGlobalContext();5063EVENT(context, GLRenderMode, "context = %d, mode = %s", CID(context),5064GLenumToString(GLenumGroup::RenderingMode, mode));50655066GLint returnValue;5067if (context)5068{5069std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5070bool isCallValid = (context->skipValidation() || ValidateRenderMode(context, mode));5071if (isCallValid)5072{5073returnValue = context->renderMode(mode);5074}5075else5076{5077returnValue = GetDefaultReturnValue<angle::EntryPoint::GLRenderMode, GLint>();5078}5079ANGLE_CAPTURE(RenderMode, isCallValid, context, mode, returnValue);5080}5081else5082{5083GenerateContextLostErrorOnCurrentGlobalContext();5084returnValue = GetDefaultReturnValue<angle::EntryPoint::GLRenderMode, GLint>();5085}5086return returnValue;5087}50885089void GL_APIENTRY GL_Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)5090{5091Context *context = GetValidGlobalContext();5092EVENT(context, GLRotated, "context = %d, angle = %f, x = %f, y = %f, z = %f", CID(context),5093angle, x, y, z);50945095if (context)5096{5097std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5098bool isCallValid = (context->skipValidation() || ValidateRotated(context, angle, x, y, z));5099if (isCallValid)5100{5101context->rotated(angle, x, y, z);5102}5103ANGLE_CAPTURE(Rotated, isCallValid, context, angle, x, y, z);5104}5105else5106{5107GenerateContextLostErrorOnCurrentGlobalContext();5108}5109}51105111void GL_APIENTRY GL_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)5112{5113Context *context = GetValidGlobalContext();5114EVENT(context, GLRotatef, "context = %d, angle = %f, x = %f, y = %f, z = %f", CID(context),5115angle, x, y, z);51165117if (context)5118{5119std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5120bool isCallValid = (context->skipValidation() || ValidateRotatef(context, angle, x, y, z));5121if (isCallValid)5122{5123context->rotatef(angle, x, y, z);5124}5125ANGLE_CAPTURE(Rotatef, isCallValid, context, angle, x, y, z);5126}5127else5128{5129GenerateContextLostErrorOnCurrentGlobalContext();5130}5131}51325133void GL_APIENTRY GL_Scaled(GLdouble x, GLdouble y, GLdouble z)5134{5135Context *context = GetValidGlobalContext();5136EVENT(context, GLScaled, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);51375138if (context)5139{5140std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5141bool isCallValid = (context->skipValidation() || ValidateScaled(context, x, y, z));5142if (isCallValid)5143{5144context->scaled(x, y, z);5145}5146ANGLE_CAPTURE(Scaled, isCallValid, context, x, y, z);5147}5148else5149{5150GenerateContextLostErrorOnCurrentGlobalContext();5151}5152}51535154void GL_APIENTRY GL_Scalef(GLfloat x, GLfloat y, GLfloat z)5155{5156Context *context = GetValidGlobalContext();5157EVENT(context, GLScalef, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);51585159if (context)5160{5161std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5162bool isCallValid = (context->skipValidation() || ValidateScalef(context, x, y, z));5163if (isCallValid)5164{5165context->scalef(x, y, z);5166}5167ANGLE_CAPTURE(Scalef, isCallValid, context, x, y, z);5168}5169else5170{5171GenerateContextLostErrorOnCurrentGlobalContext();5172}5173}51745175void GL_APIENTRY GL_Scissor(GLint x, GLint y, GLsizei width, GLsizei height)5176{5177Context *context = GetValidGlobalContext();5178EVENT(context, GLScissor, "context = %d, x = %d, y = %d, width = %d, height = %d", CID(context),5179x, y, width, height);51805181if (context)5182{5183std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5184bool isCallValid =5185(context->skipValidation() || ValidateScissor(context, x, y, width, height));5186if (isCallValid)5187{5188context->scissor(x, y, width, height);5189}5190ANGLE_CAPTURE(Scissor, isCallValid, context, x, y, width, height);5191}5192else5193{5194GenerateContextLostErrorOnCurrentGlobalContext();5195}5196}51975198void GL_APIENTRY GL_SelectBuffer(GLsizei size, GLuint *buffer)5199{5200Context *context = GetValidGlobalContext();5201EVENT(context, GLSelectBuffer, "context = %d, size = %d, buffer = 0x%016" PRIxPTR "",5202CID(context), size, (uintptr_t)buffer);52035204if (context)5205{5206std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5207bool isCallValid =5208(context->skipValidation() || ValidateSelectBuffer(context, size, buffer));5209if (isCallValid)5210{5211context->selectBuffer(size, buffer);5212}5213ANGLE_CAPTURE(SelectBuffer, isCallValid, context, size, buffer);5214}5215else5216{5217GenerateContextLostErrorOnCurrentGlobalContext();5218}5219}52205221void GL_APIENTRY GL_ShadeModel(GLenum mode)5222{5223Context *context = GetValidGlobalContext();5224EVENT(context, GLShadeModel, "context = %d, mode = %s", CID(context),5225GLenumToString(GLenumGroup::ShadingModel, mode));52265227if (context)5228{5229ShadingModel modePacked = PackParam<ShadingModel>(mode);5230std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5231bool isCallValid = (context->skipValidation() || ValidateShadeModel(context, modePacked));5232if (isCallValid)5233{5234context->shadeModel(modePacked);5235}5236ANGLE_CAPTURE(ShadeModel, isCallValid, context, modePacked);5237}5238else5239{5240GenerateContextLostErrorOnCurrentGlobalContext();5241}5242}52435244void GL_APIENTRY GL_StencilFunc(GLenum func, GLint ref, GLuint mask)5245{5246Context *context = GetValidGlobalContext();5247EVENT(context, GLStencilFunc, "context = %d, func = %s, ref = %d, mask = %u", CID(context),5248GLenumToString(GLenumGroup::StencilFunction, func), ref, mask);52495250if (context)5251{5252std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5253bool isCallValid =5254(context->skipValidation() || ValidateStencilFunc(context, func, ref, mask));5255if (isCallValid)5256{5257context->stencilFunc(func, ref, mask);5258}5259ANGLE_CAPTURE(StencilFunc, isCallValid, context, func, ref, mask);5260}5261else5262{5263GenerateContextLostErrorOnCurrentGlobalContext();5264}5265}52665267void GL_APIENTRY GL_StencilMask(GLuint mask)5268{5269Context *context = GetValidGlobalContext();5270EVENT(context, GLStencilMask, "context = %d, mask = %u", CID(context), mask);52715272if (context)5273{5274std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5275bool isCallValid = (context->skipValidation() || ValidateStencilMask(context, mask));5276if (isCallValid)5277{5278context->stencilMask(mask);5279}5280ANGLE_CAPTURE(StencilMask, isCallValid, context, mask);5281}5282else5283{5284GenerateContextLostErrorOnCurrentGlobalContext();5285}5286}52875288void GL_APIENTRY GL_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)5289{5290Context *context = GetValidGlobalContext();5291EVENT(context, GLStencilOp, "context = %d, fail = %s, zfail = %s, zpass = %s", CID(context),5292GLenumToString(GLenumGroup::StencilOp, fail),5293GLenumToString(GLenumGroup::StencilOp, zfail),5294GLenumToString(GLenumGroup::StencilOp, zpass));52955296if (context)5297{5298std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5299bool isCallValid =5300(context->skipValidation() || ValidateStencilOp(context, fail, zfail, zpass));5301if (isCallValid)5302{5303context->stencilOp(fail, zfail, zpass);5304}5305ANGLE_CAPTURE(StencilOp, isCallValid, context, fail, zfail, zpass);5306}5307else5308{5309GenerateContextLostErrorOnCurrentGlobalContext();5310}5311}53125313void GL_APIENTRY GL_TexCoord1d(GLdouble s)5314{5315Context *context = GetValidGlobalContext();5316EVENT(context, GLTexCoord1d, "context = %d, s = %f", CID(context), s);53175318if (context)5319{5320std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5321bool isCallValid = (context->skipValidation() || ValidateTexCoord1d(context, s));5322if (isCallValid)5323{5324context->texCoord1d(s);5325}5326ANGLE_CAPTURE(TexCoord1d, isCallValid, context, s);5327}5328else5329{5330GenerateContextLostErrorOnCurrentGlobalContext();5331}5332}53335334void GL_APIENTRY GL_TexCoord1dv(const GLdouble *v)5335{5336Context *context = GetValidGlobalContext();5337EVENT(context, GLTexCoord1dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5338(uintptr_t)v);53395340if (context)5341{5342std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5343bool isCallValid = (context->skipValidation() || ValidateTexCoord1dv(context, v));5344if (isCallValid)5345{5346context->texCoord1dv(v);5347}5348ANGLE_CAPTURE(TexCoord1dv, isCallValid, context, v);5349}5350else5351{5352GenerateContextLostErrorOnCurrentGlobalContext();5353}5354}53555356void GL_APIENTRY GL_TexCoord1f(GLfloat s)5357{5358Context *context = GetValidGlobalContext();5359EVENT(context, GLTexCoord1f, "context = %d, s = %f", CID(context), s);53605361if (context)5362{5363std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5364bool isCallValid = (context->skipValidation() || ValidateTexCoord1f(context, s));5365if (isCallValid)5366{5367context->texCoord1f(s);5368}5369ANGLE_CAPTURE(TexCoord1f, isCallValid, context, s);5370}5371else5372{5373GenerateContextLostErrorOnCurrentGlobalContext();5374}5375}53765377void GL_APIENTRY GL_TexCoord1fv(const GLfloat *v)5378{5379Context *context = GetValidGlobalContext();5380EVENT(context, GLTexCoord1fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5381(uintptr_t)v);53825383if (context)5384{5385std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5386bool isCallValid = (context->skipValidation() || ValidateTexCoord1fv(context, v));5387if (isCallValid)5388{5389context->texCoord1fv(v);5390}5391ANGLE_CAPTURE(TexCoord1fv, isCallValid, context, v);5392}5393else5394{5395GenerateContextLostErrorOnCurrentGlobalContext();5396}5397}53985399void GL_APIENTRY GL_TexCoord1i(GLint s)5400{5401Context *context = GetValidGlobalContext();5402EVENT(context, GLTexCoord1i, "context = %d, s = %d", CID(context), s);54035404if (context)5405{5406std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5407bool isCallValid = (context->skipValidation() || ValidateTexCoord1i(context, s));5408if (isCallValid)5409{5410context->texCoord1i(s);5411}5412ANGLE_CAPTURE(TexCoord1i, isCallValid, context, s);5413}5414else5415{5416GenerateContextLostErrorOnCurrentGlobalContext();5417}5418}54195420void GL_APIENTRY GL_TexCoord1iv(const GLint *v)5421{5422Context *context = GetValidGlobalContext();5423EVENT(context, GLTexCoord1iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5424(uintptr_t)v);54255426if (context)5427{5428std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5429bool isCallValid = (context->skipValidation() || ValidateTexCoord1iv(context, v));5430if (isCallValid)5431{5432context->texCoord1iv(v);5433}5434ANGLE_CAPTURE(TexCoord1iv, isCallValid, context, v);5435}5436else5437{5438GenerateContextLostErrorOnCurrentGlobalContext();5439}5440}54415442void GL_APIENTRY GL_TexCoord1s(GLshort s)5443{5444Context *context = GetValidGlobalContext();5445EVENT(context, GLTexCoord1s, "context = %d, s = %d", CID(context), s);54465447if (context)5448{5449std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5450bool isCallValid = (context->skipValidation() || ValidateTexCoord1s(context, s));5451if (isCallValid)5452{5453context->texCoord1s(s);5454}5455ANGLE_CAPTURE(TexCoord1s, isCallValid, context, s);5456}5457else5458{5459GenerateContextLostErrorOnCurrentGlobalContext();5460}5461}54625463void GL_APIENTRY GL_TexCoord1sv(const GLshort *v)5464{5465Context *context = GetValidGlobalContext();5466EVENT(context, GLTexCoord1sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5467(uintptr_t)v);54685469if (context)5470{5471std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5472bool isCallValid = (context->skipValidation() || ValidateTexCoord1sv(context, v));5473if (isCallValid)5474{5475context->texCoord1sv(v);5476}5477ANGLE_CAPTURE(TexCoord1sv, isCallValid, context, v);5478}5479else5480{5481GenerateContextLostErrorOnCurrentGlobalContext();5482}5483}54845485void GL_APIENTRY GL_TexCoord2d(GLdouble s, GLdouble t)5486{5487Context *context = GetValidGlobalContext();5488EVENT(context, GLTexCoord2d, "context = %d, s = %f, t = %f", CID(context), s, t);54895490if (context)5491{5492std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5493bool isCallValid = (context->skipValidation() || ValidateTexCoord2d(context, s, t));5494if (isCallValid)5495{5496context->texCoord2d(s, t);5497}5498ANGLE_CAPTURE(TexCoord2d, isCallValid, context, s, t);5499}5500else5501{5502GenerateContextLostErrorOnCurrentGlobalContext();5503}5504}55055506void GL_APIENTRY GL_TexCoord2dv(const GLdouble *v)5507{5508Context *context = GetValidGlobalContext();5509EVENT(context, GLTexCoord2dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5510(uintptr_t)v);55115512if (context)5513{5514std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5515bool isCallValid = (context->skipValidation() || ValidateTexCoord2dv(context, v));5516if (isCallValid)5517{5518context->texCoord2dv(v);5519}5520ANGLE_CAPTURE(TexCoord2dv, isCallValid, context, v);5521}5522else5523{5524GenerateContextLostErrorOnCurrentGlobalContext();5525}5526}55275528void GL_APIENTRY GL_TexCoord2f(GLfloat s, GLfloat t)5529{5530Context *context = GetValidGlobalContext();5531EVENT(context, GLTexCoord2f, "context = %d, s = %f, t = %f", CID(context), s, t);55325533if (context)5534{5535std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5536bool isCallValid = (context->skipValidation() || ValidateTexCoord2f(context, s, t));5537if (isCallValid)5538{5539context->texCoord2f(s, t);5540}5541ANGLE_CAPTURE(TexCoord2f, isCallValid, context, s, t);5542}5543else5544{5545GenerateContextLostErrorOnCurrentGlobalContext();5546}5547}55485549void GL_APIENTRY GL_TexCoord2fv(const GLfloat *v)5550{5551Context *context = GetValidGlobalContext();5552EVENT(context, GLTexCoord2fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5553(uintptr_t)v);55545555if (context)5556{5557std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5558bool isCallValid = (context->skipValidation() || ValidateTexCoord2fv(context, v));5559if (isCallValid)5560{5561context->texCoord2fv(v);5562}5563ANGLE_CAPTURE(TexCoord2fv, isCallValid, context, v);5564}5565else5566{5567GenerateContextLostErrorOnCurrentGlobalContext();5568}5569}55705571void GL_APIENTRY GL_TexCoord2i(GLint s, GLint t)5572{5573Context *context = GetValidGlobalContext();5574EVENT(context, GLTexCoord2i, "context = %d, s = %d, t = %d", CID(context), s, t);55755576if (context)5577{5578std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5579bool isCallValid = (context->skipValidation() || ValidateTexCoord2i(context, s, t));5580if (isCallValid)5581{5582context->texCoord2i(s, t);5583}5584ANGLE_CAPTURE(TexCoord2i, isCallValid, context, s, t);5585}5586else5587{5588GenerateContextLostErrorOnCurrentGlobalContext();5589}5590}55915592void GL_APIENTRY GL_TexCoord2iv(const GLint *v)5593{5594Context *context = GetValidGlobalContext();5595EVENT(context, GLTexCoord2iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5596(uintptr_t)v);55975598if (context)5599{5600std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5601bool isCallValid = (context->skipValidation() || ValidateTexCoord2iv(context, v));5602if (isCallValid)5603{5604context->texCoord2iv(v);5605}5606ANGLE_CAPTURE(TexCoord2iv, isCallValid, context, v);5607}5608else5609{5610GenerateContextLostErrorOnCurrentGlobalContext();5611}5612}56135614void GL_APIENTRY GL_TexCoord2s(GLshort s, GLshort t)5615{5616Context *context = GetValidGlobalContext();5617EVENT(context, GLTexCoord2s, "context = %d, s = %d, t = %d", CID(context), s, t);56185619if (context)5620{5621std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5622bool isCallValid = (context->skipValidation() || ValidateTexCoord2s(context, s, t));5623if (isCallValid)5624{5625context->texCoord2s(s, t);5626}5627ANGLE_CAPTURE(TexCoord2s, isCallValid, context, s, t);5628}5629else5630{5631GenerateContextLostErrorOnCurrentGlobalContext();5632}5633}56345635void GL_APIENTRY GL_TexCoord2sv(const GLshort *v)5636{5637Context *context = GetValidGlobalContext();5638EVENT(context, GLTexCoord2sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5639(uintptr_t)v);56405641if (context)5642{5643std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5644bool isCallValid = (context->skipValidation() || ValidateTexCoord2sv(context, v));5645if (isCallValid)5646{5647context->texCoord2sv(v);5648}5649ANGLE_CAPTURE(TexCoord2sv, isCallValid, context, v);5650}5651else5652{5653GenerateContextLostErrorOnCurrentGlobalContext();5654}5655}56565657void GL_APIENTRY GL_TexCoord3d(GLdouble s, GLdouble t, GLdouble r)5658{5659Context *context = GetValidGlobalContext();5660EVENT(context, GLTexCoord3d, "context = %d, s = %f, t = %f, r = %f", CID(context), s, t, r);56615662if (context)5663{5664std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5665bool isCallValid = (context->skipValidation() || ValidateTexCoord3d(context, s, t, r));5666if (isCallValid)5667{5668context->texCoord3d(s, t, r);5669}5670ANGLE_CAPTURE(TexCoord3d, isCallValid, context, s, t, r);5671}5672else5673{5674GenerateContextLostErrorOnCurrentGlobalContext();5675}5676}56775678void GL_APIENTRY GL_TexCoord3dv(const GLdouble *v)5679{5680Context *context = GetValidGlobalContext();5681EVENT(context, GLTexCoord3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5682(uintptr_t)v);56835684if (context)5685{5686std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5687bool isCallValid = (context->skipValidation() || ValidateTexCoord3dv(context, v));5688if (isCallValid)5689{5690context->texCoord3dv(v);5691}5692ANGLE_CAPTURE(TexCoord3dv, isCallValid, context, v);5693}5694else5695{5696GenerateContextLostErrorOnCurrentGlobalContext();5697}5698}56995700void GL_APIENTRY GL_TexCoord3f(GLfloat s, GLfloat t, GLfloat r)5701{5702Context *context = GetValidGlobalContext();5703EVENT(context, GLTexCoord3f, "context = %d, s = %f, t = %f, r = %f", CID(context), s, t, r);57045705if (context)5706{5707std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5708bool isCallValid = (context->skipValidation() || ValidateTexCoord3f(context, s, t, r));5709if (isCallValid)5710{5711context->texCoord3f(s, t, r);5712}5713ANGLE_CAPTURE(TexCoord3f, isCallValid, context, s, t, r);5714}5715else5716{5717GenerateContextLostErrorOnCurrentGlobalContext();5718}5719}57205721void GL_APIENTRY GL_TexCoord3fv(const GLfloat *v)5722{5723Context *context = GetValidGlobalContext();5724EVENT(context, GLTexCoord3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5725(uintptr_t)v);57265727if (context)5728{5729std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5730bool isCallValid = (context->skipValidation() || ValidateTexCoord3fv(context, v));5731if (isCallValid)5732{5733context->texCoord3fv(v);5734}5735ANGLE_CAPTURE(TexCoord3fv, isCallValid, context, v);5736}5737else5738{5739GenerateContextLostErrorOnCurrentGlobalContext();5740}5741}57425743void GL_APIENTRY GL_TexCoord3i(GLint s, GLint t, GLint r)5744{5745Context *context = GetValidGlobalContext();5746EVENT(context, GLTexCoord3i, "context = %d, s = %d, t = %d, r = %d", CID(context), s, t, r);57475748if (context)5749{5750std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5751bool isCallValid = (context->skipValidation() || ValidateTexCoord3i(context, s, t, r));5752if (isCallValid)5753{5754context->texCoord3i(s, t, r);5755}5756ANGLE_CAPTURE(TexCoord3i, isCallValid, context, s, t, r);5757}5758else5759{5760GenerateContextLostErrorOnCurrentGlobalContext();5761}5762}57635764void GL_APIENTRY GL_TexCoord3iv(const GLint *v)5765{5766Context *context = GetValidGlobalContext();5767EVENT(context, GLTexCoord3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5768(uintptr_t)v);57695770if (context)5771{5772std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5773bool isCallValid = (context->skipValidation() || ValidateTexCoord3iv(context, v));5774if (isCallValid)5775{5776context->texCoord3iv(v);5777}5778ANGLE_CAPTURE(TexCoord3iv, isCallValid, context, v);5779}5780else5781{5782GenerateContextLostErrorOnCurrentGlobalContext();5783}5784}57855786void GL_APIENTRY GL_TexCoord3s(GLshort s, GLshort t, GLshort r)5787{5788Context *context = GetValidGlobalContext();5789EVENT(context, GLTexCoord3s, "context = %d, s = %d, t = %d, r = %d", CID(context), s, t, r);57905791if (context)5792{5793std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5794bool isCallValid = (context->skipValidation() || ValidateTexCoord3s(context, s, t, r));5795if (isCallValid)5796{5797context->texCoord3s(s, t, r);5798}5799ANGLE_CAPTURE(TexCoord3s, isCallValid, context, s, t, r);5800}5801else5802{5803GenerateContextLostErrorOnCurrentGlobalContext();5804}5805}58065807void GL_APIENTRY GL_TexCoord3sv(const GLshort *v)5808{5809Context *context = GetValidGlobalContext();5810EVENT(context, GLTexCoord3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5811(uintptr_t)v);58125813if (context)5814{5815std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5816bool isCallValid = (context->skipValidation() || ValidateTexCoord3sv(context, v));5817if (isCallValid)5818{5819context->texCoord3sv(v);5820}5821ANGLE_CAPTURE(TexCoord3sv, isCallValid, context, v);5822}5823else5824{5825GenerateContextLostErrorOnCurrentGlobalContext();5826}5827}58285829void GL_APIENTRY GL_TexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q)5830{5831Context *context = GetValidGlobalContext();5832EVENT(context, GLTexCoord4d, "context = %d, s = %f, t = %f, r = %f, q = %f", CID(context), s, t,5833r, q);58345835if (context)5836{5837std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5838bool isCallValid = (context->skipValidation() || ValidateTexCoord4d(context, s, t, r, q));5839if (isCallValid)5840{5841context->texCoord4d(s, t, r, q);5842}5843ANGLE_CAPTURE(TexCoord4d, isCallValid, context, s, t, r, q);5844}5845else5846{5847GenerateContextLostErrorOnCurrentGlobalContext();5848}5849}58505851void GL_APIENTRY GL_TexCoord4dv(const GLdouble *v)5852{5853Context *context = GetValidGlobalContext();5854EVENT(context, GLTexCoord4dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5855(uintptr_t)v);58565857if (context)5858{5859std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5860bool isCallValid = (context->skipValidation() || ValidateTexCoord4dv(context, v));5861if (isCallValid)5862{5863context->texCoord4dv(v);5864}5865ANGLE_CAPTURE(TexCoord4dv, isCallValid, context, v);5866}5867else5868{5869GenerateContextLostErrorOnCurrentGlobalContext();5870}5871}58725873void GL_APIENTRY GL_TexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q)5874{5875Context *context = GetValidGlobalContext();5876EVENT(context, GLTexCoord4f, "context = %d, s = %f, t = %f, r = %f, q = %f", CID(context), s, t,5877r, q);58785879if (context)5880{5881std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5882bool isCallValid = (context->skipValidation() || ValidateTexCoord4f(context, s, t, r, q));5883if (isCallValid)5884{5885context->texCoord4f(s, t, r, q);5886}5887ANGLE_CAPTURE(TexCoord4f, isCallValid, context, s, t, r, q);5888}5889else5890{5891GenerateContextLostErrorOnCurrentGlobalContext();5892}5893}58945895void GL_APIENTRY GL_TexCoord4fv(const GLfloat *v)5896{5897Context *context = GetValidGlobalContext();5898EVENT(context, GLTexCoord4fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5899(uintptr_t)v);59005901if (context)5902{5903std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5904bool isCallValid = (context->skipValidation() || ValidateTexCoord4fv(context, v));5905if (isCallValid)5906{5907context->texCoord4fv(v);5908}5909ANGLE_CAPTURE(TexCoord4fv, isCallValid, context, v);5910}5911else5912{5913GenerateContextLostErrorOnCurrentGlobalContext();5914}5915}59165917void GL_APIENTRY GL_TexCoord4i(GLint s, GLint t, GLint r, GLint q)5918{5919Context *context = GetValidGlobalContext();5920EVENT(context, GLTexCoord4i, "context = %d, s = %d, t = %d, r = %d, q = %d", CID(context), s, t,5921r, q);59225923if (context)5924{5925std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5926bool isCallValid = (context->skipValidation() || ValidateTexCoord4i(context, s, t, r, q));5927if (isCallValid)5928{5929context->texCoord4i(s, t, r, q);5930}5931ANGLE_CAPTURE(TexCoord4i, isCallValid, context, s, t, r, q);5932}5933else5934{5935GenerateContextLostErrorOnCurrentGlobalContext();5936}5937}59385939void GL_APIENTRY GL_TexCoord4iv(const GLint *v)5940{5941Context *context = GetValidGlobalContext();5942EVENT(context, GLTexCoord4iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5943(uintptr_t)v);59445945if (context)5946{5947std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5948bool isCallValid = (context->skipValidation() || ValidateTexCoord4iv(context, v));5949if (isCallValid)5950{5951context->texCoord4iv(v);5952}5953ANGLE_CAPTURE(TexCoord4iv, isCallValid, context, v);5954}5955else5956{5957GenerateContextLostErrorOnCurrentGlobalContext();5958}5959}59605961void GL_APIENTRY GL_TexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q)5962{5963Context *context = GetValidGlobalContext();5964EVENT(context, GLTexCoord4s, "context = %d, s = %d, t = %d, r = %d, q = %d", CID(context), s, t,5965r, q);59665967if (context)5968{5969std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5970bool isCallValid = (context->skipValidation() || ValidateTexCoord4s(context, s, t, r, q));5971if (isCallValid)5972{5973context->texCoord4s(s, t, r, q);5974}5975ANGLE_CAPTURE(TexCoord4s, isCallValid, context, s, t, r, q);5976}5977else5978{5979GenerateContextLostErrorOnCurrentGlobalContext();5980}5981}59825983void GL_APIENTRY GL_TexCoord4sv(const GLshort *v)5984{5985Context *context = GetValidGlobalContext();5986EVENT(context, GLTexCoord4sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),5987(uintptr_t)v);59885989if (context)5990{5991std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);5992bool isCallValid = (context->skipValidation() || ValidateTexCoord4sv(context, v));5993if (isCallValid)5994{5995context->texCoord4sv(v);5996}5997ANGLE_CAPTURE(TexCoord4sv, isCallValid, context, v);5998}5999else6000{6001GenerateContextLostErrorOnCurrentGlobalContext();6002}6003}60046005void GL_APIENTRY GL_TexEnvf(GLenum target, GLenum pname, GLfloat param)6006{6007Context *context = GetValidGlobalContext();6008EVENT(context, GLTexEnvf, "context = %d, target = %s, pname = %s, param = %f", CID(context),6009GLenumToString(GLenumGroup::TextureEnvTarget, target),6010GLenumToString(GLenumGroup::TextureEnvParameter, pname), param);60116012if (context)6013{6014TextureEnvTarget targetPacked = PackParam<TextureEnvTarget>(target);6015TextureEnvParameter pnamePacked = PackParam<TextureEnvParameter>(pname);6016std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6017bool isCallValid = (context->skipValidation() ||6018ValidateTexEnvf(context, targetPacked, pnamePacked, param));6019if (isCallValid)6020{6021context->texEnvf(targetPacked, pnamePacked, param);6022}6023ANGLE_CAPTURE(TexEnvf, isCallValid, context, targetPacked, pnamePacked, param);6024}6025else6026{6027GenerateContextLostErrorOnCurrentGlobalContext();6028}6029}60306031void GL_APIENTRY GL_TexEnvfv(GLenum target, GLenum pname, const GLfloat *params)6032{6033Context *context = GetValidGlobalContext();6034EVENT(context, GLTexEnvfv, "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "",6035CID(context), GLenumToString(GLenumGroup::TextureEnvTarget, target),6036GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params);60376038if (context)6039{6040TextureEnvTarget targetPacked = PackParam<TextureEnvTarget>(target);6041TextureEnvParameter pnamePacked = PackParam<TextureEnvParameter>(pname);6042std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6043bool isCallValid = (context->skipValidation() ||6044ValidateTexEnvfv(context, targetPacked, pnamePacked, params));6045if (isCallValid)6046{6047context->texEnvfv(targetPacked, pnamePacked, params);6048}6049ANGLE_CAPTURE(TexEnvfv, isCallValid, context, targetPacked, pnamePacked, params);6050}6051else6052{6053GenerateContextLostErrorOnCurrentGlobalContext();6054}6055}60566057void GL_APIENTRY GL_TexEnvi(GLenum target, GLenum pname, GLint param)6058{6059Context *context = GetValidGlobalContext();6060EVENT(context, GLTexEnvi, "context = %d, target = %s, pname = %s, param = %d", CID(context),6061GLenumToString(GLenumGroup::TextureEnvTarget, target),6062GLenumToString(GLenumGroup::TextureEnvParameter, pname), param);60636064if (context)6065{6066TextureEnvTarget targetPacked = PackParam<TextureEnvTarget>(target);6067TextureEnvParameter pnamePacked = PackParam<TextureEnvParameter>(pname);6068std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6069bool isCallValid = (context->skipValidation() ||6070ValidateTexEnvi(context, targetPacked, pnamePacked, param));6071if (isCallValid)6072{6073context->texEnvi(targetPacked, pnamePacked, param);6074}6075ANGLE_CAPTURE(TexEnvi, isCallValid, context, targetPacked, pnamePacked, param);6076}6077else6078{6079GenerateContextLostErrorOnCurrentGlobalContext();6080}6081}60826083void GL_APIENTRY GL_TexEnviv(GLenum target, GLenum pname, const GLint *params)6084{6085Context *context = GetValidGlobalContext();6086EVENT(context, GLTexEnviv, "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "",6087CID(context), GLenumToString(GLenumGroup::TextureEnvTarget, target),6088GLenumToString(GLenumGroup::TextureEnvParameter, pname), (uintptr_t)params);60896090if (context)6091{6092TextureEnvTarget targetPacked = PackParam<TextureEnvTarget>(target);6093TextureEnvParameter pnamePacked = PackParam<TextureEnvParameter>(pname);6094std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6095bool isCallValid = (context->skipValidation() ||6096ValidateTexEnviv(context, targetPacked, pnamePacked, params));6097if (isCallValid)6098{6099context->texEnviv(targetPacked, pnamePacked, params);6100}6101ANGLE_CAPTURE(TexEnviv, isCallValid, context, targetPacked, pnamePacked, params);6102}6103else6104{6105GenerateContextLostErrorOnCurrentGlobalContext();6106}6107}61086109void GL_APIENTRY GL_TexGend(GLenum coord, GLenum pname, GLdouble param)6110{6111Context *context = GetValidGlobalContext();6112EVENT(context, GLTexGend, "context = %d, coord = %s, pname = %s, param = %f", CID(context),6113GLenumToString(GLenumGroup::TextureCoordName, coord),6114GLenumToString(GLenumGroup::TextureGenParameter, pname), param);61156116if (context)6117{6118std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6119bool isCallValid =6120(context->skipValidation() || ValidateTexGend(context, coord, pname, param));6121if (isCallValid)6122{6123context->texGend(coord, pname, param);6124}6125ANGLE_CAPTURE(TexGend, isCallValid, context, coord, pname, param);6126}6127else6128{6129GenerateContextLostErrorOnCurrentGlobalContext();6130}6131}61326133void GL_APIENTRY GL_TexGendv(GLenum coord, GLenum pname, const GLdouble *params)6134{6135Context *context = GetValidGlobalContext();6136EVENT(context, GLTexGendv, "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "",6137CID(context), GLenumToString(GLenumGroup::TextureCoordName, coord),6138GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params);61396140if (context)6141{6142std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6143bool isCallValid =6144(context->skipValidation() || ValidateTexGendv(context, coord, pname, params));6145if (isCallValid)6146{6147context->texGendv(coord, pname, params);6148}6149ANGLE_CAPTURE(TexGendv, isCallValid, context, coord, pname, params);6150}6151else6152{6153GenerateContextLostErrorOnCurrentGlobalContext();6154}6155}61566157void GL_APIENTRY GL_TexGenf(GLenum coord, GLenum pname, GLfloat param)6158{6159Context *context = GetValidGlobalContext();6160EVENT(context, GLTexGenf, "context = %d, coord = %s, pname = %s, param = %f", CID(context),6161GLenumToString(GLenumGroup::TextureCoordName, coord),6162GLenumToString(GLenumGroup::TextureGenParameter, pname), param);61636164if (context)6165{6166std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6167bool isCallValid =6168(context->skipValidation() || ValidateTexGenf(context, coord, pname, param));6169if (isCallValid)6170{6171context->texGenf(coord, pname, param);6172}6173ANGLE_CAPTURE(TexGenf, isCallValid, context, coord, pname, param);6174}6175else6176{6177GenerateContextLostErrorOnCurrentGlobalContext();6178}6179}61806181void GL_APIENTRY GL_TexGenfv(GLenum coord, GLenum pname, const GLfloat *params)6182{6183Context *context = GetValidGlobalContext();6184EVENT(context, GLTexGenfv, "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "",6185CID(context), GLenumToString(GLenumGroup::TextureCoordName, coord),6186GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params);61876188if (context)6189{6190std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6191bool isCallValid =6192(context->skipValidation() || ValidateTexGenfv(context, coord, pname, params));6193if (isCallValid)6194{6195context->texGenfv(coord, pname, params);6196}6197ANGLE_CAPTURE(TexGenfv, isCallValid, context, coord, pname, params);6198}6199else6200{6201GenerateContextLostErrorOnCurrentGlobalContext();6202}6203}62046205void GL_APIENTRY GL_TexGeni(GLenum coord, GLenum pname, GLint param)6206{6207Context *context = GetValidGlobalContext();6208EVENT(context, GLTexGeni, "context = %d, coord = %s, pname = %s, param = %d", CID(context),6209GLenumToString(GLenumGroup::TextureCoordName, coord),6210GLenumToString(GLenumGroup::TextureGenParameter, pname), param);62116212if (context)6213{6214std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6215bool isCallValid =6216(context->skipValidation() || ValidateTexGeni(context, coord, pname, param));6217if (isCallValid)6218{6219context->texGeni(coord, pname, param);6220}6221ANGLE_CAPTURE(TexGeni, isCallValid, context, coord, pname, param);6222}6223else6224{6225GenerateContextLostErrorOnCurrentGlobalContext();6226}6227}62286229void GL_APIENTRY GL_TexGeniv(GLenum coord, GLenum pname, const GLint *params)6230{6231Context *context = GetValidGlobalContext();6232EVENT(context, GLTexGeniv, "context = %d, coord = %s, pname = %s, params = 0x%016" PRIxPTR "",6233CID(context), GLenumToString(GLenumGroup::TextureCoordName, coord),6234GLenumToString(GLenumGroup::TextureGenParameter, pname), (uintptr_t)params);62356236if (context)6237{6238std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6239bool isCallValid =6240(context->skipValidation() || ValidateTexGeniv(context, coord, pname, params));6241if (isCallValid)6242{6243context->texGeniv(coord, pname, params);6244}6245ANGLE_CAPTURE(TexGeniv, isCallValid, context, coord, pname, params);6246}6247else6248{6249GenerateContextLostErrorOnCurrentGlobalContext();6250}6251}62526253void GL_APIENTRY GL_TexImage1D(GLenum target,6254GLint level,6255GLint internalformat,6256GLsizei width,6257GLint border,6258GLenum format,6259GLenum type,6260const void *pixels)6261{6262Context *context = GetValidGlobalContext();6263EVENT(context, GLTexImage1D,6264"context = %d, target = %s, level = %d, internalformat = %d, width = %d, border = %d, "6265"format = %s, type = %s, pixels = 0x%016" PRIxPTR "",6266CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, internalformat,6267width, border, GLenumToString(GLenumGroup::PixelFormat, format),6268GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);62696270if (context)6271{6272std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6273bool isCallValid =6274(context->skipValidation() || ValidateTexImage1D(context, target, level, internalformat,6275width, border, format, type, pixels));6276if (isCallValid)6277{6278context->texImage1D(target, level, internalformat, width, border, format, type, pixels);6279}6280ANGLE_CAPTURE(TexImage1D, isCallValid, context, target, level, internalformat, width,6281border, format, type, pixels);6282}6283else6284{6285GenerateContextLostErrorOnCurrentGlobalContext();6286}6287}62886289void GL_APIENTRY GL_TexImage2D(GLenum target,6290GLint level,6291GLint internalformat,6292GLsizei width,6293GLsizei height,6294GLint border,6295GLenum format,6296GLenum type,6297const void *pixels)6298{6299Context *context = GetValidGlobalContext();6300EVENT(context, GLTexImage2D,6301"context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, "6302"border = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "",6303CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, internalformat,6304width, height, border, GLenumToString(GLenumGroup::PixelFormat, format),6305GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);63066307if (context)6308{6309TextureTarget targetPacked = PackParam<TextureTarget>(target);6310std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6311bool isCallValid = (context->skipValidation() ||6312ValidateTexImage2D(context, targetPacked, level, internalformat, width,6313height, border, format, type, pixels));6314if (isCallValid)6315{6316context->texImage2D(targetPacked, level, internalformat, width, height, border, format,6317type, pixels);6318}6319ANGLE_CAPTURE(TexImage2D, isCallValid, context, targetPacked, level, internalformat, width,6320height, border, format, type, pixels);6321}6322else6323{6324GenerateContextLostErrorOnCurrentGlobalContext();6325}6326}63276328void GL_APIENTRY GL_TexParameterf(GLenum target, GLenum pname, GLfloat param)6329{6330Context *context = GetValidGlobalContext();6331EVENT(context, GLTexParameterf, "context = %d, target = %s, pname = %s, param = %f",6332CID(context), GLenumToString(GLenumGroup::TextureTarget, target),6333GLenumToString(GLenumGroup::TextureParameterName, pname), param);63346335if (context)6336{6337TextureType targetPacked = PackParam<TextureType>(target);6338std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6339bool isCallValid = (context->skipValidation() ||6340ValidateTexParameterf(context, targetPacked, pname, param));6341if (isCallValid)6342{6343context->texParameterf(targetPacked, pname, param);6344}6345ANGLE_CAPTURE(TexParameterf, isCallValid, context, targetPacked, pname, param);6346}6347else6348{6349GenerateContextLostErrorOnCurrentGlobalContext();6350}6351}63526353void GL_APIENTRY GL_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)6354{6355Context *context = GetValidGlobalContext();6356EVENT(context, GLTexParameterfv,6357"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),6358GLenumToString(GLenumGroup::TextureTarget, target),6359GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params);63606361if (context)6362{6363TextureType targetPacked = PackParam<TextureType>(target);6364std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6365bool isCallValid = (context->skipValidation() ||6366ValidateTexParameterfv(context, targetPacked, pname, params));6367if (isCallValid)6368{6369context->texParameterfv(targetPacked, pname, params);6370}6371ANGLE_CAPTURE(TexParameterfv, isCallValid, context, targetPacked, pname, params);6372}6373else6374{6375GenerateContextLostErrorOnCurrentGlobalContext();6376}6377}63786379void GL_APIENTRY GL_TexParameteri(GLenum target, GLenum pname, GLint param)6380{6381Context *context = GetValidGlobalContext();6382EVENT(context, GLTexParameteri, "context = %d, target = %s, pname = %s, param = %d",6383CID(context), GLenumToString(GLenumGroup::TextureTarget, target),6384GLenumToString(GLenumGroup::TextureParameterName, pname), param);63856386if (context)6387{6388TextureType targetPacked = PackParam<TextureType>(target);6389std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6390bool isCallValid = (context->skipValidation() ||6391ValidateTexParameteri(context, targetPacked, pname, param));6392if (isCallValid)6393{6394context->texParameteri(targetPacked, pname, param);6395}6396ANGLE_CAPTURE(TexParameteri, isCallValid, context, targetPacked, pname, param);6397}6398else6399{6400GenerateContextLostErrorOnCurrentGlobalContext();6401}6402}64036404void GL_APIENTRY GL_TexParameteriv(GLenum target, GLenum pname, const GLint *params)6405{6406Context *context = GetValidGlobalContext();6407EVENT(context, GLTexParameteriv,6408"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),6409GLenumToString(GLenumGroup::TextureTarget, target),6410GLenumToString(GLenumGroup::TextureParameterName, pname), (uintptr_t)params);64116412if (context)6413{6414TextureType targetPacked = PackParam<TextureType>(target);6415std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6416bool isCallValid = (context->skipValidation() ||6417ValidateTexParameteriv(context, targetPacked, pname, params));6418if (isCallValid)6419{6420context->texParameteriv(targetPacked, pname, params);6421}6422ANGLE_CAPTURE(TexParameteriv, isCallValid, context, targetPacked, pname, params);6423}6424else6425{6426GenerateContextLostErrorOnCurrentGlobalContext();6427}6428}64296430void GL_APIENTRY GL_Translated(GLdouble x, GLdouble y, GLdouble z)6431{6432Context *context = GetValidGlobalContext();6433EVENT(context, GLTranslated, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);64346435if (context)6436{6437std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6438bool isCallValid = (context->skipValidation() || ValidateTranslated(context, x, y, z));6439if (isCallValid)6440{6441context->translated(x, y, z);6442}6443ANGLE_CAPTURE(Translated, isCallValid, context, x, y, z);6444}6445else6446{6447GenerateContextLostErrorOnCurrentGlobalContext();6448}6449}64506451void GL_APIENTRY GL_Translatef(GLfloat x, GLfloat y, GLfloat z)6452{6453Context *context = GetValidGlobalContext();6454EVENT(context, GLTranslatef, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);64556456if (context)6457{6458std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6459bool isCallValid = (context->skipValidation() || ValidateTranslatef(context, x, y, z));6460if (isCallValid)6461{6462context->translatef(x, y, z);6463}6464ANGLE_CAPTURE(Translatef, isCallValid, context, x, y, z);6465}6466else6467{6468GenerateContextLostErrorOnCurrentGlobalContext();6469}6470}64716472void GL_APIENTRY GL_Vertex2d(GLdouble x, GLdouble y)6473{6474Context *context = GetValidGlobalContext();6475EVENT(context, GLVertex2d, "context = %d, x = %f, y = %f", CID(context), x, y);64766477if (context)6478{6479std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6480bool isCallValid = (context->skipValidation() || ValidateVertex2d(context, x, y));6481if (isCallValid)6482{6483context->vertex2d(x, y);6484}6485ANGLE_CAPTURE(Vertex2d, isCallValid, context, x, y);6486}6487else6488{6489GenerateContextLostErrorOnCurrentGlobalContext();6490}6491}64926493void GL_APIENTRY GL_Vertex2dv(const GLdouble *v)6494{6495Context *context = GetValidGlobalContext();6496EVENT(context, GLVertex2dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);64976498if (context)6499{6500std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6501bool isCallValid = (context->skipValidation() || ValidateVertex2dv(context, v));6502if (isCallValid)6503{6504context->vertex2dv(v);6505}6506ANGLE_CAPTURE(Vertex2dv, isCallValid, context, v);6507}6508else6509{6510GenerateContextLostErrorOnCurrentGlobalContext();6511}6512}65136514void GL_APIENTRY GL_Vertex2f(GLfloat x, GLfloat y)6515{6516Context *context = GetValidGlobalContext();6517EVENT(context, GLVertex2f, "context = %d, x = %f, y = %f", CID(context), x, y);65186519if (context)6520{6521std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6522bool isCallValid = (context->skipValidation() || ValidateVertex2f(context, x, y));6523if (isCallValid)6524{6525context->vertex2f(x, y);6526}6527ANGLE_CAPTURE(Vertex2f, isCallValid, context, x, y);6528}6529else6530{6531GenerateContextLostErrorOnCurrentGlobalContext();6532}6533}65346535void GL_APIENTRY GL_Vertex2fv(const GLfloat *v)6536{6537Context *context = GetValidGlobalContext();6538EVENT(context, GLVertex2fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);65396540if (context)6541{6542std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6543bool isCallValid = (context->skipValidation() || ValidateVertex2fv(context, v));6544if (isCallValid)6545{6546context->vertex2fv(v);6547}6548ANGLE_CAPTURE(Vertex2fv, isCallValid, context, v);6549}6550else6551{6552GenerateContextLostErrorOnCurrentGlobalContext();6553}6554}65556556void GL_APIENTRY GL_Vertex2i(GLint x, GLint y)6557{6558Context *context = GetValidGlobalContext();6559EVENT(context, GLVertex2i, "context = %d, x = %d, y = %d", CID(context), x, y);65606561if (context)6562{6563std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6564bool isCallValid = (context->skipValidation() || ValidateVertex2i(context, x, y));6565if (isCallValid)6566{6567context->vertex2i(x, y);6568}6569ANGLE_CAPTURE(Vertex2i, isCallValid, context, x, y);6570}6571else6572{6573GenerateContextLostErrorOnCurrentGlobalContext();6574}6575}65766577void GL_APIENTRY GL_Vertex2iv(const GLint *v)6578{6579Context *context = GetValidGlobalContext();6580EVENT(context, GLVertex2iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);65816582if (context)6583{6584std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6585bool isCallValid = (context->skipValidation() || ValidateVertex2iv(context, v));6586if (isCallValid)6587{6588context->vertex2iv(v);6589}6590ANGLE_CAPTURE(Vertex2iv, isCallValid, context, v);6591}6592else6593{6594GenerateContextLostErrorOnCurrentGlobalContext();6595}6596}65976598void GL_APIENTRY GL_Vertex2s(GLshort x, GLshort y)6599{6600Context *context = GetValidGlobalContext();6601EVENT(context, GLVertex2s, "context = %d, x = %d, y = %d", CID(context), x, y);66026603if (context)6604{6605std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6606bool isCallValid = (context->skipValidation() || ValidateVertex2s(context, x, y));6607if (isCallValid)6608{6609context->vertex2s(x, y);6610}6611ANGLE_CAPTURE(Vertex2s, isCallValid, context, x, y);6612}6613else6614{6615GenerateContextLostErrorOnCurrentGlobalContext();6616}6617}66186619void GL_APIENTRY GL_Vertex2sv(const GLshort *v)6620{6621Context *context = GetValidGlobalContext();6622EVENT(context, GLVertex2sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);66236624if (context)6625{6626std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6627bool isCallValid = (context->skipValidation() || ValidateVertex2sv(context, v));6628if (isCallValid)6629{6630context->vertex2sv(v);6631}6632ANGLE_CAPTURE(Vertex2sv, isCallValid, context, v);6633}6634else6635{6636GenerateContextLostErrorOnCurrentGlobalContext();6637}6638}66396640void GL_APIENTRY GL_Vertex3d(GLdouble x, GLdouble y, GLdouble z)6641{6642Context *context = GetValidGlobalContext();6643EVENT(context, GLVertex3d, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);66446645if (context)6646{6647std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6648bool isCallValid = (context->skipValidation() || ValidateVertex3d(context, x, y, z));6649if (isCallValid)6650{6651context->vertex3d(x, y, z);6652}6653ANGLE_CAPTURE(Vertex3d, isCallValid, context, x, y, z);6654}6655else6656{6657GenerateContextLostErrorOnCurrentGlobalContext();6658}6659}66606661void GL_APIENTRY GL_Vertex3dv(const GLdouble *v)6662{6663Context *context = GetValidGlobalContext();6664EVENT(context, GLVertex3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);66656666if (context)6667{6668std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6669bool isCallValid = (context->skipValidation() || ValidateVertex3dv(context, v));6670if (isCallValid)6671{6672context->vertex3dv(v);6673}6674ANGLE_CAPTURE(Vertex3dv, isCallValid, context, v);6675}6676else6677{6678GenerateContextLostErrorOnCurrentGlobalContext();6679}6680}66816682void GL_APIENTRY GL_Vertex3f(GLfloat x, GLfloat y, GLfloat z)6683{6684Context *context = GetValidGlobalContext();6685EVENT(context, GLVertex3f, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);66866687if (context)6688{6689std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6690bool isCallValid = (context->skipValidation() || ValidateVertex3f(context, x, y, z));6691if (isCallValid)6692{6693context->vertex3f(x, y, z);6694}6695ANGLE_CAPTURE(Vertex3f, isCallValid, context, x, y, z);6696}6697else6698{6699GenerateContextLostErrorOnCurrentGlobalContext();6700}6701}67026703void GL_APIENTRY GL_Vertex3fv(const GLfloat *v)6704{6705Context *context = GetValidGlobalContext();6706EVENT(context, GLVertex3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);67076708if (context)6709{6710std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6711bool isCallValid = (context->skipValidation() || ValidateVertex3fv(context, v));6712if (isCallValid)6713{6714context->vertex3fv(v);6715}6716ANGLE_CAPTURE(Vertex3fv, isCallValid, context, v);6717}6718else6719{6720GenerateContextLostErrorOnCurrentGlobalContext();6721}6722}67236724void GL_APIENTRY GL_Vertex3i(GLint x, GLint y, GLint z)6725{6726Context *context = GetValidGlobalContext();6727EVENT(context, GLVertex3i, "context = %d, x = %d, y = %d, z = %d", CID(context), x, y, z);67286729if (context)6730{6731std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6732bool isCallValid = (context->skipValidation() || ValidateVertex3i(context, x, y, z));6733if (isCallValid)6734{6735context->vertex3i(x, y, z);6736}6737ANGLE_CAPTURE(Vertex3i, isCallValid, context, x, y, z);6738}6739else6740{6741GenerateContextLostErrorOnCurrentGlobalContext();6742}6743}67446745void GL_APIENTRY GL_Vertex3iv(const GLint *v)6746{6747Context *context = GetValidGlobalContext();6748EVENT(context, GLVertex3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);67496750if (context)6751{6752std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6753bool isCallValid = (context->skipValidation() || ValidateVertex3iv(context, v));6754if (isCallValid)6755{6756context->vertex3iv(v);6757}6758ANGLE_CAPTURE(Vertex3iv, isCallValid, context, v);6759}6760else6761{6762GenerateContextLostErrorOnCurrentGlobalContext();6763}6764}67656766void GL_APIENTRY GL_Vertex3s(GLshort x, GLshort y, GLshort z)6767{6768Context *context = GetValidGlobalContext();6769EVENT(context, GLVertex3s, "context = %d, x = %d, y = %d, z = %d", CID(context), x, y, z);67706771if (context)6772{6773std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6774bool isCallValid = (context->skipValidation() || ValidateVertex3s(context, x, y, z));6775if (isCallValid)6776{6777context->vertex3s(x, y, z);6778}6779ANGLE_CAPTURE(Vertex3s, isCallValid, context, x, y, z);6780}6781else6782{6783GenerateContextLostErrorOnCurrentGlobalContext();6784}6785}67866787void GL_APIENTRY GL_Vertex3sv(const GLshort *v)6788{6789Context *context = GetValidGlobalContext();6790EVENT(context, GLVertex3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);67916792if (context)6793{6794std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6795bool isCallValid = (context->skipValidation() || ValidateVertex3sv(context, v));6796if (isCallValid)6797{6798context->vertex3sv(v);6799}6800ANGLE_CAPTURE(Vertex3sv, isCallValid, context, v);6801}6802else6803{6804GenerateContextLostErrorOnCurrentGlobalContext();6805}6806}68076808void GL_APIENTRY GL_Vertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)6809{6810Context *context = GetValidGlobalContext();6811EVENT(context, GLVertex4d, "context = %d, x = %f, y = %f, z = %f, w = %f", CID(context), x, y,6812z, w);68136814if (context)6815{6816std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6817bool isCallValid = (context->skipValidation() || ValidateVertex4d(context, x, y, z, w));6818if (isCallValid)6819{6820context->vertex4d(x, y, z, w);6821}6822ANGLE_CAPTURE(Vertex4d, isCallValid, context, x, y, z, w);6823}6824else6825{6826GenerateContextLostErrorOnCurrentGlobalContext();6827}6828}68296830void GL_APIENTRY GL_Vertex4dv(const GLdouble *v)6831{6832Context *context = GetValidGlobalContext();6833EVENT(context, GLVertex4dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);68346835if (context)6836{6837std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6838bool isCallValid = (context->skipValidation() || ValidateVertex4dv(context, v));6839if (isCallValid)6840{6841context->vertex4dv(v);6842}6843ANGLE_CAPTURE(Vertex4dv, isCallValid, context, v);6844}6845else6846{6847GenerateContextLostErrorOnCurrentGlobalContext();6848}6849}68506851void GL_APIENTRY GL_Vertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)6852{6853Context *context = GetValidGlobalContext();6854EVENT(context, GLVertex4f, "context = %d, x = %f, y = %f, z = %f, w = %f", CID(context), x, y,6855z, w);68566857if (context)6858{6859std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6860bool isCallValid = (context->skipValidation() || ValidateVertex4f(context, x, y, z, w));6861if (isCallValid)6862{6863context->vertex4f(x, y, z, w);6864}6865ANGLE_CAPTURE(Vertex4f, isCallValid, context, x, y, z, w);6866}6867else6868{6869GenerateContextLostErrorOnCurrentGlobalContext();6870}6871}68726873void GL_APIENTRY GL_Vertex4fv(const GLfloat *v)6874{6875Context *context = GetValidGlobalContext();6876EVENT(context, GLVertex4fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);68776878if (context)6879{6880std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6881bool isCallValid = (context->skipValidation() || ValidateVertex4fv(context, v));6882if (isCallValid)6883{6884context->vertex4fv(v);6885}6886ANGLE_CAPTURE(Vertex4fv, isCallValid, context, v);6887}6888else6889{6890GenerateContextLostErrorOnCurrentGlobalContext();6891}6892}68936894void GL_APIENTRY GL_Vertex4i(GLint x, GLint y, GLint z, GLint w)6895{6896Context *context = GetValidGlobalContext();6897EVENT(context, GLVertex4i, "context = %d, x = %d, y = %d, z = %d, w = %d", CID(context), x, y,6898z, w);68996900if (context)6901{6902std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6903bool isCallValid = (context->skipValidation() || ValidateVertex4i(context, x, y, z, w));6904if (isCallValid)6905{6906context->vertex4i(x, y, z, w);6907}6908ANGLE_CAPTURE(Vertex4i, isCallValid, context, x, y, z, w);6909}6910else6911{6912GenerateContextLostErrorOnCurrentGlobalContext();6913}6914}69156916void GL_APIENTRY GL_Vertex4iv(const GLint *v)6917{6918Context *context = GetValidGlobalContext();6919EVENT(context, GLVertex4iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);69206921if (context)6922{6923std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6924bool isCallValid = (context->skipValidation() || ValidateVertex4iv(context, v));6925if (isCallValid)6926{6927context->vertex4iv(v);6928}6929ANGLE_CAPTURE(Vertex4iv, isCallValid, context, v);6930}6931else6932{6933GenerateContextLostErrorOnCurrentGlobalContext();6934}6935}69366937void GL_APIENTRY GL_Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w)6938{6939Context *context = GetValidGlobalContext();6940EVENT(context, GLVertex4s, "context = %d, x = %d, y = %d, z = %d, w = %d", CID(context), x, y,6941z, w);69426943if (context)6944{6945std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6946bool isCallValid = (context->skipValidation() || ValidateVertex4s(context, x, y, z, w));6947if (isCallValid)6948{6949context->vertex4s(x, y, z, w);6950}6951ANGLE_CAPTURE(Vertex4s, isCallValid, context, x, y, z, w);6952}6953else6954{6955GenerateContextLostErrorOnCurrentGlobalContext();6956}6957}69586959void GL_APIENTRY GL_Vertex4sv(const GLshort *v)6960{6961Context *context = GetValidGlobalContext();6962EVENT(context, GLVertex4sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context), (uintptr_t)v);69636964if (context)6965{6966std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6967bool isCallValid = (context->skipValidation() || ValidateVertex4sv(context, v));6968if (isCallValid)6969{6970context->vertex4sv(v);6971}6972ANGLE_CAPTURE(Vertex4sv, isCallValid, context, v);6973}6974else6975{6976GenerateContextLostErrorOnCurrentGlobalContext();6977}6978}69796980void GL_APIENTRY GL_Viewport(GLint x, GLint y, GLsizei width, GLsizei height)6981{6982Context *context = GetValidGlobalContext();6983EVENT(context, GLViewport, "context = %d, x = %d, y = %d, width = %d, height = %d",6984CID(context), x, y, width, height);69856986if (context)6987{6988std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);6989bool isCallValid =6990(context->skipValidation() || ValidateViewport(context, x, y, width, height));6991if (isCallValid)6992{6993context->viewport(x, y, width, height);6994}6995ANGLE_CAPTURE(Viewport, isCallValid, context, x, y, width, height);6996}6997else6998{6999GenerateContextLostErrorOnCurrentGlobalContext();7000}7001}70027003// GL 1.17004GLboolean GL_APIENTRY GL_AreTexturesResident(GLsizei n,7005const GLuint *textures,7006GLboolean *residences)7007{7008Context *context = GetValidGlobalContext();7009EVENT(context, GLAreTexturesResident,7010"context = %d, n = %d, textures = 0x%016" PRIxPTR ", residences = 0x%016" PRIxPTR "",7011CID(context), n, (uintptr_t)textures, (uintptr_t)residences);70127013GLboolean returnValue;7014if (context)7015{7016std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7017bool isCallValid = (context->skipValidation() ||7018ValidateAreTexturesResident(context, n, textures, residences));7019if (isCallValid)7020{7021returnValue = context->areTexturesResident(n, textures, residences);7022}7023else7024{7025returnValue =7026GetDefaultReturnValue<angle::EntryPoint::GLAreTexturesResident, GLboolean>();7027}7028ANGLE_CAPTURE(AreTexturesResident, isCallValid, context, n, textures, residences,7029returnValue);7030}7031else7032{7033GenerateContextLostErrorOnCurrentGlobalContext();7034returnValue = GetDefaultReturnValue<angle::EntryPoint::GLAreTexturesResident, GLboolean>();7035}7036return returnValue;7037}70387039void GL_APIENTRY GL_ArrayElement(GLint i)7040{7041Context *context = GetValidGlobalContext();7042EVENT(context, GLArrayElement, "context = %d, i = %d", CID(context), i);70437044if (context)7045{7046std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7047bool isCallValid = (context->skipValidation() || ValidateArrayElement(context, i));7048if (isCallValid)7049{7050context->arrayElement(i);7051}7052ANGLE_CAPTURE(ArrayElement, isCallValid, context, i);7053}7054else7055{7056GenerateContextLostErrorOnCurrentGlobalContext();7057}7058}70597060void GL_APIENTRY GL_BindTexture(GLenum target, GLuint texture)7061{7062Context *context = GetValidGlobalContext();7063EVENT(context, GLBindTexture, "context = %d, target = %s, texture = %u", CID(context),7064GLenumToString(GLenumGroup::TextureTarget, target), texture);70657066if (context)7067{7068TextureType targetPacked = PackParam<TextureType>(target);7069TextureID texturePacked = PackParam<TextureID>(texture);7070std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7071bool isCallValid = (context->skipValidation() ||7072ValidateBindTexture(context, targetPacked, texturePacked));7073if (isCallValid)7074{7075context->bindTexture(targetPacked, texturePacked);7076}7077ANGLE_CAPTURE(BindTexture, isCallValid, context, targetPacked, texturePacked);7078}7079else7080{7081GenerateContextLostErrorOnCurrentGlobalContext();7082}7083}70847085void GL_APIENTRY GL_ColorPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)7086{7087Context *context = GetValidGlobalContext();7088EVENT(context, GLColorPointer,7089"context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "",7090CID(context), size, GLenumToString(GLenumGroup::ColorPointerType, type), stride,7091(uintptr_t)pointer);70927093if (context)7094{7095VertexAttribType typePacked = PackParam<VertexAttribType>(type);7096std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7097bool isCallValid = (context->skipValidation() ||7098ValidateColorPointer(context, size, typePacked, stride, pointer));7099if (isCallValid)7100{7101context->colorPointer(size, typePacked, stride, pointer);7102}7103ANGLE_CAPTURE(ColorPointer, isCallValid, context, size, typePacked, stride, pointer);7104}7105else7106{7107GenerateContextLostErrorOnCurrentGlobalContext();7108}7109}71107111void GL_APIENTRY GL_CopyTexImage1D(GLenum target,7112GLint level,7113GLenum internalformat,7114GLint x,7115GLint y,7116GLsizei width,7117GLint border)7118{7119Context *context = GetValidGlobalContext();7120EVENT(context, GLCopyTexImage1D,7121"context = %d, target = %s, level = %d, internalformat = %s, x = %d, y = %d, width = %d, "7122"border = %d",7123CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,7124GLenumToString(GLenumGroup::InternalFormat, internalformat), x, y, width, border);71257126if (context)7127{7128std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7129bool isCallValid =7130(context->skipValidation() ||7131ValidateCopyTexImage1D(context, target, level, internalformat, x, y, width, border));7132if (isCallValid)7133{7134context->copyTexImage1D(target, level, internalformat, x, y, width, border);7135}7136ANGLE_CAPTURE(CopyTexImage1D, isCallValid, context, target, level, internalformat, x, y,7137width, border);7138}7139else7140{7141GenerateContextLostErrorOnCurrentGlobalContext();7142}7143}71447145void GL_APIENTRY GL_CopyTexImage2D(GLenum target,7146GLint level,7147GLenum internalformat,7148GLint x,7149GLint y,7150GLsizei width,7151GLsizei height,7152GLint border)7153{7154Context *context = GetValidGlobalContext();7155EVENT(context, GLCopyTexImage2D,7156"context = %d, target = %s, level = %d, internalformat = %s, x = %d, y = %d, width = %d, "7157"height = %d, border = %d",7158CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,7159GLenumToString(GLenumGroup::InternalFormat, internalformat), x, y, width, height, border);71607161if (context)7162{7163TextureTarget targetPacked = PackParam<TextureTarget>(target);7164std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7165bool isCallValid = (context->skipValidation() ||7166ValidateCopyTexImage2D(context, targetPacked, level, internalformat, x,7167y, width, height, border));7168if (isCallValid)7169{7170context->copyTexImage2D(targetPacked, level, internalformat, x, y, width, height,7171border);7172}7173ANGLE_CAPTURE(CopyTexImage2D, isCallValid, context, targetPacked, level, internalformat, x,7174y, width, height, border);7175}7176else7177{7178GenerateContextLostErrorOnCurrentGlobalContext();7179}7180}71817182void GL_APIENTRY7183GL_CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)7184{7185Context *context = GetValidGlobalContext();7186EVENT(context, GLCopyTexSubImage1D,7187"context = %d, target = %s, level = %d, xoffset = %d, x = %d, y = %d, width = %d",7188CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, x, y,7189width);71907191if (context)7192{7193std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7194bool isCallValid =7195(context->skipValidation() ||7196ValidateCopyTexSubImage1D(context, target, level, xoffset, x, y, width));7197if (isCallValid)7198{7199context->copyTexSubImage1D(target, level, xoffset, x, y, width);7200}7201ANGLE_CAPTURE(CopyTexSubImage1D, isCallValid, context, target, level, xoffset, x, y, width);7202}7203else7204{7205GenerateContextLostErrorOnCurrentGlobalContext();7206}7207}72087209void GL_APIENTRY GL_CopyTexSubImage2D(GLenum target,7210GLint level,7211GLint xoffset,7212GLint yoffset,7213GLint x,7214GLint y,7215GLsizei width,7216GLsizei height)7217{7218Context *context = GetValidGlobalContext();7219EVENT(context, GLCopyTexSubImage2D,7220"context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, x = %d, y = %d, "7221"width = %d, height = %d",7222CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset,7223x, y, width, height);72247225if (context)7226{7227TextureTarget targetPacked = PackParam<TextureTarget>(target);7228std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7229bool isCallValid = (context->skipValidation() ||7230ValidateCopyTexSubImage2D(context, targetPacked, level, xoffset,7231yoffset, x, y, width, height));7232if (isCallValid)7233{7234context->copyTexSubImage2D(targetPacked, level, xoffset, yoffset, x, y, width, height);7235}7236ANGLE_CAPTURE(CopyTexSubImage2D, isCallValid, context, targetPacked, level, xoffset,7237yoffset, x, y, width, height);7238}7239else7240{7241GenerateContextLostErrorOnCurrentGlobalContext();7242}7243}72447245void GL_APIENTRY GL_DeleteTextures(GLsizei n, const GLuint *textures)7246{7247Context *context = GetValidGlobalContext();7248EVENT(context, GLDeleteTextures, "context = %d, n = %d, textures = 0x%016" PRIxPTR "",7249CID(context), n, (uintptr_t)textures);72507251if (context)7252{7253const TextureID *texturesPacked = PackParam<const TextureID *>(textures);7254std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7255bool isCallValid =7256(context->skipValidation() || ValidateDeleteTextures(context, n, texturesPacked));7257if (isCallValid)7258{7259context->deleteTextures(n, texturesPacked);7260}7261ANGLE_CAPTURE(DeleteTextures, isCallValid, context, n, texturesPacked);7262}7263else7264{7265GenerateContextLostErrorOnCurrentGlobalContext();7266}7267}72687269void GL_APIENTRY GL_DisableClientState(GLenum array)7270{7271Context *context = GetValidGlobalContext();7272EVENT(context, GLDisableClientState, "context = %d, array = %s", CID(context),7273GLenumToString(GLenumGroup::EnableCap, array));72747275if (context)7276{7277ClientVertexArrayType arrayPacked = PackParam<ClientVertexArrayType>(array);7278std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7279bool isCallValid =7280(context->skipValidation() || ValidateDisableClientState(context, arrayPacked));7281if (isCallValid)7282{7283context->disableClientState(arrayPacked);7284}7285ANGLE_CAPTURE(DisableClientState, isCallValid, context, arrayPacked);7286}7287else7288{7289GenerateContextLostErrorOnCurrentGlobalContext();7290}7291}72927293void GL_APIENTRY GL_DrawArrays(GLenum mode, GLint first, GLsizei count)7294{7295Context *context = GetValidGlobalContext();7296EVENT(context, GLDrawArrays, "context = %d, mode = %s, first = %d, count = %d", CID(context),7297GLenumToString(GLenumGroup::PrimitiveType, mode), first, count);72987299if (context)7300{7301PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);7302std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7303bool isCallValid =7304(context->skipValidation() || ValidateDrawArrays(context, modePacked, first, count));7305if (isCallValid)7306{7307context->drawArrays(modePacked, first, count);7308}7309ANGLE_CAPTURE(DrawArrays, isCallValid, context, modePacked, first, count);7310}7311else7312{7313GenerateContextLostErrorOnCurrentGlobalContext();7314}7315}73167317void GL_APIENTRY GL_DrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)7318{7319Context *context = GetValidGlobalContext();7320EVENT(context, GLDrawElements,7321"context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR "",7322CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,7323GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices);73247325if (context)7326{7327PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);7328DrawElementsType typePacked = PackParam<DrawElementsType>(type);7329std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7330bool isCallValid = (context->skipValidation() ||7331ValidateDrawElements(context, modePacked, count, typePacked, indices));7332if (isCallValid)7333{7334context->drawElements(modePacked, count, typePacked, indices);7335}7336ANGLE_CAPTURE(DrawElements, isCallValid, context, modePacked, count, typePacked, indices);7337}7338else7339{7340GenerateContextLostErrorOnCurrentGlobalContext();7341}7342}73437344void GL_APIENTRY GL_EdgeFlagPointer(GLsizei stride, const void *pointer)7345{7346Context *context = GetValidGlobalContext();7347EVENT(context, GLEdgeFlagPointer, "context = %d, stride = %d, pointer = 0x%016" PRIxPTR "",7348CID(context), stride, (uintptr_t)pointer);73497350if (context)7351{7352std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7353bool isCallValid =7354(context->skipValidation() || ValidateEdgeFlagPointer(context, stride, pointer));7355if (isCallValid)7356{7357context->edgeFlagPointer(stride, pointer);7358}7359ANGLE_CAPTURE(EdgeFlagPointer, isCallValid, context, stride, pointer);7360}7361else7362{7363GenerateContextLostErrorOnCurrentGlobalContext();7364}7365}73667367void GL_APIENTRY GL_EnableClientState(GLenum array)7368{7369Context *context = GetValidGlobalContext();7370EVENT(context, GLEnableClientState, "context = %d, array = %s", CID(context),7371GLenumToString(GLenumGroup::EnableCap, array));73727373if (context)7374{7375ClientVertexArrayType arrayPacked = PackParam<ClientVertexArrayType>(array);7376std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7377bool isCallValid =7378(context->skipValidation() || ValidateEnableClientState(context, arrayPacked));7379if (isCallValid)7380{7381context->enableClientState(arrayPacked);7382}7383ANGLE_CAPTURE(EnableClientState, isCallValid, context, arrayPacked);7384}7385else7386{7387GenerateContextLostErrorOnCurrentGlobalContext();7388}7389}73907391void GL_APIENTRY GL_GenTextures(GLsizei n, GLuint *textures)7392{7393Context *context = GetValidGlobalContext();7394EVENT(context, GLGenTextures, "context = %d, n = %d, textures = 0x%016" PRIxPTR "",7395CID(context), n, (uintptr_t)textures);73967397if (context)7398{7399TextureID *texturesPacked = PackParam<TextureID *>(textures);7400std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7401bool isCallValid =7402(context->skipValidation() || ValidateGenTextures(context, n, texturesPacked));7403if (isCallValid)7404{7405context->genTextures(n, texturesPacked);7406}7407ANGLE_CAPTURE(GenTextures, isCallValid, context, n, texturesPacked);7408}7409else7410{7411GenerateContextLostErrorOnCurrentGlobalContext();7412}7413}74147415void GL_APIENTRY GL_GetPointerv(GLenum pname, void **params)7416{7417Context *context = GetValidGlobalContext();7418EVENT(context, GLGetPointerv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",7419CID(context), GLenumToString(GLenumGroup::GetPointervPName, pname), (uintptr_t)params);74207421if (context)7422{7423std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7424bool isCallValid =7425(context->skipValidation() || ValidateGetPointerv(context, pname, params));7426if (isCallValid)7427{7428context->getPointerv(pname, params);7429}7430ANGLE_CAPTURE(GetPointerv, isCallValid, context, pname, params);7431}7432else7433{7434GenerateContextLostErrorOnCurrentGlobalContext();7435}7436}74377438void GL_APIENTRY GL_IndexPointer(GLenum type, GLsizei stride, const void *pointer)7439{7440Context *context = GetValidGlobalContext();7441EVENT(context, GLIndexPointer,7442"context = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", CID(context),7443GLenumToString(GLenumGroup::IndexPointerType, type), stride, (uintptr_t)pointer);74447445if (context)7446{7447std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7448bool isCallValid =7449(context->skipValidation() || ValidateIndexPointer(context, type, stride, pointer));7450if (isCallValid)7451{7452context->indexPointer(type, stride, pointer);7453}7454ANGLE_CAPTURE(IndexPointer, isCallValid, context, type, stride, pointer);7455}7456else7457{7458GenerateContextLostErrorOnCurrentGlobalContext();7459}7460}74617462void GL_APIENTRY GL_Indexub(GLubyte c)7463{7464Context *context = GetValidGlobalContext();7465EVENT(context, GLIndexub, "context = %d, c = %d", CID(context), c);74667467if (context)7468{7469std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7470bool isCallValid = (context->skipValidation() || ValidateIndexub(context, c));7471if (isCallValid)7472{7473context->indexub(c);7474}7475ANGLE_CAPTURE(Indexub, isCallValid, context, c);7476}7477else7478{7479GenerateContextLostErrorOnCurrentGlobalContext();7480}7481}74827483void GL_APIENTRY GL_Indexubv(const GLubyte *c)7484{7485Context *context = GetValidGlobalContext();7486EVENT(context, GLIndexubv, "context = %d, c = 0x%016" PRIxPTR "", CID(context), (uintptr_t)c);74877488if (context)7489{7490std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7491bool isCallValid = (context->skipValidation() || ValidateIndexubv(context, c));7492if (isCallValid)7493{7494context->indexubv(c);7495}7496ANGLE_CAPTURE(Indexubv, isCallValid, context, c);7497}7498else7499{7500GenerateContextLostErrorOnCurrentGlobalContext();7501}7502}75037504void GL_APIENTRY GL_InterleavedArrays(GLenum format, GLsizei stride, const void *pointer)7505{7506Context *context = GetValidGlobalContext();7507EVENT(context, GLInterleavedArrays,7508"context = %d, format = %s, stride = %d, pointer = 0x%016" PRIxPTR "", CID(context),7509GLenumToString(GLenumGroup::InterleavedArrayFormat, format), stride, (uintptr_t)pointer);75107511if (context)7512{7513std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7514bool isCallValid = (context->skipValidation() ||7515ValidateInterleavedArrays(context, format, stride, pointer));7516if (isCallValid)7517{7518context->interleavedArrays(format, stride, pointer);7519}7520ANGLE_CAPTURE(InterleavedArrays, isCallValid, context, format, stride, pointer);7521}7522else7523{7524GenerateContextLostErrorOnCurrentGlobalContext();7525}7526}75277528GLboolean GL_APIENTRY GL_IsTexture(GLuint texture)7529{7530Context *context = GetValidGlobalContext();7531EVENT(context, GLIsTexture, "context = %d, texture = %u", CID(context), texture);75327533GLboolean returnValue;7534if (context)7535{7536TextureID texturePacked = PackParam<TextureID>(texture);7537std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7538bool isCallValid = (context->skipValidation() || ValidateIsTexture(context, texturePacked));7539if (isCallValid)7540{7541returnValue = context->isTexture(texturePacked);7542}7543else7544{7545returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsTexture, GLboolean>();7546}7547ANGLE_CAPTURE(IsTexture, isCallValid, context, texturePacked, returnValue);7548}7549else7550{7551GenerateContextLostErrorOnCurrentGlobalContext();7552returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsTexture, GLboolean>();7553}7554return returnValue;7555}75567557void GL_APIENTRY GL_NormalPointer(GLenum type, GLsizei stride, const void *pointer)7558{7559Context *context = GetValidGlobalContext();7560EVENT(context, GLNormalPointer,7561"context = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", CID(context),7562GLenumToString(GLenumGroup::NormalPointerType, type), stride, (uintptr_t)pointer);75637564if (context)7565{7566VertexAttribType typePacked = PackParam<VertexAttribType>(type);7567std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7568bool isCallValid = (context->skipValidation() ||7569ValidateNormalPointer(context, typePacked, stride, pointer));7570if (isCallValid)7571{7572context->normalPointer(typePacked, stride, pointer);7573}7574ANGLE_CAPTURE(NormalPointer, isCallValid, context, typePacked, stride, pointer);7575}7576else7577{7578GenerateContextLostErrorOnCurrentGlobalContext();7579}7580}75817582void GL_APIENTRY GL_PolygonOffset(GLfloat factor, GLfloat units)7583{7584Context *context = GetValidGlobalContext();7585EVENT(context, GLPolygonOffset, "context = %d, factor = %f, units = %f", CID(context), factor,7586units);75877588if (context)7589{7590std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7591bool isCallValid =7592(context->skipValidation() || ValidatePolygonOffset(context, factor, units));7593if (isCallValid)7594{7595context->polygonOffset(factor, units);7596}7597ANGLE_CAPTURE(PolygonOffset, isCallValid, context, factor, units);7598}7599else7600{7601GenerateContextLostErrorOnCurrentGlobalContext();7602}7603}76047605void GL_APIENTRY GL_PopClientAttrib()7606{7607Context *context = GetValidGlobalContext();7608EVENT(context, GLPopClientAttrib, "context = %d", CID(context));76097610if (context)7611{7612std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7613bool isCallValid = (context->skipValidation() || ValidatePopClientAttrib(context));7614if (isCallValid)7615{7616context->popClientAttrib();7617}7618ANGLE_CAPTURE(PopClientAttrib, isCallValid, context);7619}7620else7621{7622GenerateContextLostErrorOnCurrentGlobalContext();7623}7624}76257626void GL_APIENTRY GL_PrioritizeTextures(GLsizei n, const GLuint *textures, const GLfloat *priorities)7627{7628Context *context = GetValidGlobalContext();7629EVENT(context, GLPrioritizeTextures,7630"context = %d, n = %d, textures = 0x%016" PRIxPTR ", priorities = 0x%016" PRIxPTR "",7631CID(context), n, (uintptr_t)textures, (uintptr_t)priorities);76327633if (context)7634{7635std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7636bool isCallValid = (context->skipValidation() ||7637ValidatePrioritizeTextures(context, n, textures, priorities));7638if (isCallValid)7639{7640context->prioritizeTextures(n, textures, priorities);7641}7642ANGLE_CAPTURE(PrioritizeTextures, isCallValid, context, n, textures, priorities);7643}7644else7645{7646GenerateContextLostErrorOnCurrentGlobalContext();7647}7648}76497650void GL_APIENTRY GL_PushClientAttrib(GLbitfield mask)7651{7652Context *context = GetValidGlobalContext();7653EVENT(context, GLPushClientAttrib, "context = %d, mask = %s", CID(context),7654GLbitfieldToString(GLenumGroup::ClientAttribMask, mask).c_str());76557656if (context)7657{7658std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7659bool isCallValid = (context->skipValidation() || ValidatePushClientAttrib(context, mask));7660if (isCallValid)7661{7662context->pushClientAttrib(mask);7663}7664ANGLE_CAPTURE(PushClientAttrib, isCallValid, context, mask);7665}7666else7667{7668GenerateContextLostErrorOnCurrentGlobalContext();7669}7670}76717672void GL_APIENTRY GL_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)7673{7674Context *context = GetValidGlobalContext();7675EVENT(context, GLTexCoordPointer,7676"context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "",7677CID(context), size, GLenumToString(GLenumGroup::TexCoordPointerType, type), stride,7678(uintptr_t)pointer);76797680if (context)7681{7682VertexAttribType typePacked = PackParam<VertexAttribType>(type);7683std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7684bool isCallValid = (context->skipValidation() ||7685ValidateTexCoordPointer(context, size, typePacked, stride, pointer));7686if (isCallValid)7687{7688context->texCoordPointer(size, typePacked, stride, pointer);7689}7690ANGLE_CAPTURE(TexCoordPointer, isCallValid, context, size, typePacked, stride, pointer);7691}7692else7693{7694GenerateContextLostErrorOnCurrentGlobalContext();7695}7696}76977698void GL_APIENTRY GL_TexSubImage1D(GLenum target,7699GLint level,7700GLint xoffset,7701GLsizei width,7702GLenum format,7703GLenum type,7704const void *pixels)7705{7706Context *context = GetValidGlobalContext();7707EVENT(context, GLTexSubImage1D,7708"context = %d, target = %s, level = %d, xoffset = %d, width = %d, format = %s, type = "7709"%s, pixels = 0x%016" PRIxPTR "",7710CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, width,7711GLenumToString(GLenumGroup::PixelFormat, format),7712GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);77137714if (context)7715{7716std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7717bool isCallValid =7718(context->skipValidation() ||7719ValidateTexSubImage1D(context, target, level, xoffset, width, format, type, pixels));7720if (isCallValid)7721{7722context->texSubImage1D(target, level, xoffset, width, format, type, pixels);7723}7724ANGLE_CAPTURE(TexSubImage1D, isCallValid, context, target, level, xoffset, width, format,7725type, pixels);7726}7727else7728{7729GenerateContextLostErrorOnCurrentGlobalContext();7730}7731}77327733void GL_APIENTRY GL_TexSubImage2D(GLenum target,7734GLint level,7735GLint xoffset,7736GLint yoffset,7737GLsizei width,7738GLsizei height,7739GLenum format,7740GLenum type,7741const void *pixels)7742{7743Context *context = GetValidGlobalContext();7744EVENT(context, GLTexSubImage2D,7745"context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, width = %d, height = "7746"%d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "",7747CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset,7748width, height, GLenumToString(GLenumGroup::PixelFormat, format),7749GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);77507751if (context)7752{7753TextureTarget targetPacked = PackParam<TextureTarget>(target);7754std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7755bool isCallValid = (context->skipValidation() ||7756ValidateTexSubImage2D(context, targetPacked, level, xoffset, yoffset,7757width, height, format, type, pixels));7758if (isCallValid)7759{7760context->texSubImage2D(targetPacked, level, xoffset, yoffset, width, height, format,7761type, pixels);7762}7763ANGLE_CAPTURE(TexSubImage2D, isCallValid, context, targetPacked, level, xoffset, yoffset,7764width, height, format, type, pixels);7765}7766else7767{7768GenerateContextLostErrorOnCurrentGlobalContext();7769}7770}77717772void GL_APIENTRY GL_VertexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)7773{7774Context *context = GetValidGlobalContext();7775EVENT(context, GLVertexPointer,7776"context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "",7777CID(context), size, GLenumToString(GLenumGroup::VertexPointerType, type), stride,7778(uintptr_t)pointer);77797780if (context)7781{7782VertexAttribType typePacked = PackParam<VertexAttribType>(type);7783std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7784bool isCallValid = (context->skipValidation() ||7785ValidateVertexPointer(context, size, typePacked, stride, pointer));7786if (isCallValid)7787{7788context->vertexPointer(size, typePacked, stride, pointer);7789}7790ANGLE_CAPTURE(VertexPointer, isCallValid, context, size, typePacked, stride, pointer);7791}7792else7793{7794GenerateContextLostErrorOnCurrentGlobalContext();7795}7796}77977798// GL 1.27799void GL_APIENTRY GL_CopyTexSubImage3D(GLenum target,7800GLint level,7801GLint xoffset,7802GLint yoffset,7803GLint zoffset,7804GLint x,7805GLint y,7806GLsizei width,7807GLsizei height)7808{7809Context *context = GetValidGlobalContext();7810EVENT(context, GLCopyTexSubImage3D,7811"context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, x = "7812"%d, y = %d, width = %d, height = %d",7813CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset,7814zoffset, x, y, width, height);78157816if (context)7817{7818TextureTarget targetPacked = PackParam<TextureTarget>(target);7819std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7820bool isCallValid = (context->skipValidation() ||7821ValidateCopyTexSubImage3D(context, targetPacked, level, xoffset,7822yoffset, zoffset, x, y, width, height));7823if (isCallValid)7824{7825context->copyTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, x, y, width,7826height);7827}7828ANGLE_CAPTURE(CopyTexSubImage3D, isCallValid, context, targetPacked, level, xoffset,7829yoffset, zoffset, x, y, width, height);7830}7831else7832{7833GenerateContextLostErrorOnCurrentGlobalContext();7834}7835}78367837void GL_APIENTRY GL_DrawRangeElements(GLenum mode,7838GLuint start,7839GLuint end,7840GLsizei count,7841GLenum type,7842const void *indices)7843{7844Context *context = GetValidGlobalContext();7845EVENT(context, GLDrawRangeElements,7846"context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = "7847"0x%016" PRIxPTR "",7848CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), start, end, count,7849GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices);78507851if (context)7852{7853PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);7854DrawElementsType typePacked = PackParam<DrawElementsType>(type);7855std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7856bool isCallValid =7857(context->skipValidation() || ValidateDrawRangeElements(context, modePacked, start, end,7858count, typePacked, indices));7859if (isCallValid)7860{7861context->drawRangeElements(modePacked, start, end, count, typePacked, indices);7862}7863ANGLE_CAPTURE(DrawRangeElements, isCallValid, context, modePacked, start, end, count,7864typePacked, indices);7865}7866else7867{7868GenerateContextLostErrorOnCurrentGlobalContext();7869}7870}78717872void GL_APIENTRY GL_TexImage3D(GLenum target,7873GLint level,7874GLint internalformat,7875GLsizei width,7876GLsizei height,7877GLsizei depth,7878GLint border,7879GLenum format,7880GLenum type,7881const void *pixels)7882{7883Context *context = GetValidGlobalContext();7884EVENT(context, GLTexImage3D,7885"context = %d, target = %s, level = %d, internalformat = %d, width = %d, height = %d, "7886"depth = %d, border = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "",7887CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, internalformat,7888width, height, depth, border, GLenumToString(GLenumGroup::PixelFormat, format),7889GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);78907891if (context)7892{7893TextureTarget targetPacked = PackParam<TextureTarget>(target);7894std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7895bool isCallValid = (context->skipValidation() ||7896ValidateTexImage3D(context, targetPacked, level, internalformat, width,7897height, depth, border, format, type, pixels));7898if (isCallValid)7899{7900context->texImage3D(targetPacked, level, internalformat, width, height, depth, border,7901format, type, pixels);7902}7903ANGLE_CAPTURE(TexImage3D, isCallValid, context, targetPacked, level, internalformat, width,7904height, depth, border, format, type, pixels);7905}7906else7907{7908GenerateContextLostErrorOnCurrentGlobalContext();7909}7910}79117912void GL_APIENTRY GL_TexSubImage3D(GLenum target,7913GLint level,7914GLint xoffset,7915GLint yoffset,7916GLint zoffset,7917GLsizei width,7918GLsizei height,7919GLsizei depth,7920GLenum format,7921GLenum type,7922const void *pixels)7923{7924Context *context = GetValidGlobalContext();7925EVENT(context, GLTexSubImage3D,7926"context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width "7927"= %d, height = %d, depth = %d, format = %s, type = %s, pixels = 0x%016" PRIxPTR "",7928CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset,7929zoffset, width, height, depth, GLenumToString(GLenumGroup::PixelFormat, format),7930GLenumToString(GLenumGroup::PixelType, type), (uintptr_t)pixels);79317932if (context)7933{7934TextureTarget targetPacked = PackParam<TextureTarget>(target);7935std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7936bool isCallValid =7937(context->skipValidation() ||7938ValidateTexSubImage3D(context, targetPacked, level, xoffset, yoffset, zoffset, width,7939height, depth, format, type, pixels));7940if (isCallValid)7941{7942context->texSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width, height,7943depth, format, type, pixels);7944}7945ANGLE_CAPTURE(TexSubImage3D, isCallValid, context, targetPacked, level, xoffset, yoffset,7946zoffset, width, height, depth, format, type, pixels);7947}7948else7949{7950GenerateContextLostErrorOnCurrentGlobalContext();7951}7952}79537954// GL 1.37955void GL_APIENTRY GL_ActiveTexture(GLenum texture)7956{7957Context *context = GetValidGlobalContext();7958EVENT(context, GLActiveTexture, "context = %d, texture = %s", CID(context),7959GLenumToString(GLenumGroup::TextureUnit, texture));79607961if (context)7962{7963std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7964bool isCallValid = (context->skipValidation() || ValidateActiveTexture(context, texture));7965if (isCallValid)7966{7967context->activeTexture(texture);7968}7969ANGLE_CAPTURE(ActiveTexture, isCallValid, context, texture);7970}7971else7972{7973GenerateContextLostErrorOnCurrentGlobalContext();7974}7975}79767977void GL_APIENTRY GL_ClientActiveTexture(GLenum texture)7978{7979Context *context = GetValidGlobalContext();7980EVENT(context, GLClientActiveTexture, "context = %d, texture = %s", CID(context),7981GLenumToString(GLenumGroup::TextureUnit, texture));79827983if (context)7984{7985std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);7986bool isCallValid =7987(context->skipValidation() || ValidateClientActiveTexture(context, texture));7988if (isCallValid)7989{7990context->clientActiveTexture(texture);7991}7992ANGLE_CAPTURE(ClientActiveTexture, isCallValid, context, texture);7993}7994else7995{7996GenerateContextLostErrorOnCurrentGlobalContext();7997}7998}79998000void GL_APIENTRY GL_CompressedTexImage1D(GLenum target,8001GLint level,8002GLenum internalformat,8003GLsizei width,8004GLint border,8005GLsizei imageSize,8006const void *data)8007{8008Context *context = GetValidGlobalContext();8009EVENT(context, GLCompressedTexImage1D,8010"context = %d, target = %s, level = %d, internalformat = %s, width = %d, border = %d, "8011"imageSize = %d, data = 0x%016" PRIxPTR "",8012CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,8013GLenumToString(GLenumGroup::InternalFormat, internalformat), width, border, imageSize,8014(uintptr_t)data);80158016if (context)8017{8018std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8019bool isCallValid = (context->skipValidation() ||8020ValidateCompressedTexImage1D(context, target, level, internalformat,8021width, border, imageSize, data));8022if (isCallValid)8023{8024context->compressedTexImage1D(target, level, internalformat, width, border, imageSize,8025data);8026}8027ANGLE_CAPTURE(CompressedTexImage1D, isCallValid, context, target, level, internalformat,8028width, border, imageSize, data);8029}8030else8031{8032GenerateContextLostErrorOnCurrentGlobalContext();8033}8034}80358036void GL_APIENTRY GL_CompressedTexImage2D(GLenum target,8037GLint level,8038GLenum internalformat,8039GLsizei width,8040GLsizei height,8041GLint border,8042GLsizei imageSize,8043const void *data)8044{8045Context *context = GetValidGlobalContext();8046EVENT(context, GLCompressedTexImage2D,8047"context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, "8048"border = %d, imageSize = %d, data = 0x%016" PRIxPTR "",8049CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,8050GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, border,8051imageSize, (uintptr_t)data);80528053if (context)8054{8055TextureTarget targetPacked = PackParam<TextureTarget>(target);8056std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8057bool isCallValid =8058(context->skipValidation() ||8059ValidateCompressedTexImage2D(context, targetPacked, level, internalformat, width,8060height, border, imageSize, data));8061if (isCallValid)8062{8063context->compressedTexImage2D(targetPacked, level, internalformat, width, height,8064border, imageSize, data);8065}8066ANGLE_CAPTURE(CompressedTexImage2D, isCallValid, context, targetPacked, level,8067internalformat, width, height, border, imageSize, data);8068}8069else8070{8071GenerateContextLostErrorOnCurrentGlobalContext();8072}8073}80748075void GL_APIENTRY GL_CompressedTexImage3D(GLenum target,8076GLint level,8077GLenum internalformat,8078GLsizei width,8079GLsizei height,8080GLsizei depth,8081GLint border,8082GLsizei imageSize,8083const void *data)8084{8085Context *context = GetValidGlobalContext();8086EVENT(context, GLCompressedTexImage3D,8087"context = %d, target = %s, level = %d, internalformat = %s, width = %d, height = %d, "8088"depth = %d, border = %d, imageSize = %d, data = 0x%016" PRIxPTR "",8089CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level,8090GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth, border,8091imageSize, (uintptr_t)data);80928093if (context)8094{8095TextureTarget targetPacked = PackParam<TextureTarget>(target);8096std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8097bool isCallValid =8098(context->skipValidation() ||8099ValidateCompressedTexImage3D(context, targetPacked, level, internalformat, width,8100height, depth, border, imageSize, data));8101if (isCallValid)8102{8103context->compressedTexImage3D(targetPacked, level, internalformat, width, height, depth,8104border, imageSize, data);8105}8106ANGLE_CAPTURE(CompressedTexImage3D, isCallValid, context, targetPacked, level,8107internalformat, width, height, depth, border, imageSize, data);8108}8109else8110{8111GenerateContextLostErrorOnCurrentGlobalContext();8112}8113}81148115void GL_APIENTRY GL_CompressedTexSubImage1D(GLenum target,8116GLint level,8117GLint xoffset,8118GLsizei width,8119GLenum format,8120GLsizei imageSize,8121const void *data)8122{8123Context *context = GetValidGlobalContext();8124EVENT(context, GLCompressedTexSubImage1D,8125"context = %d, target = %s, level = %d, xoffset = %d, width = %d, format = %s, imageSize "8126"= %d, data = 0x%016" PRIxPTR "",8127CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, width,8128GLenumToString(GLenumGroup::PixelFormat, format), imageSize, (uintptr_t)data);81298130if (context)8131{8132std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8133bool isCallValid = (context->skipValidation() ||8134ValidateCompressedTexSubImage1D(context, target, level, xoffset, width,8135format, imageSize, data));8136if (isCallValid)8137{8138context->compressedTexSubImage1D(target, level, xoffset, width, format, imageSize,8139data);8140}8141ANGLE_CAPTURE(CompressedTexSubImage1D, isCallValid, context, target, level, xoffset, width,8142format, imageSize, data);8143}8144else8145{8146GenerateContextLostErrorOnCurrentGlobalContext();8147}8148}81498150void GL_APIENTRY GL_CompressedTexSubImage2D(GLenum target,8151GLint level,8152GLint xoffset,8153GLint yoffset,8154GLsizei width,8155GLsizei height,8156GLenum format,8157GLsizei imageSize,8158const void *data)8159{8160Context *context = GetValidGlobalContext();8161EVENT(context, GLCompressedTexSubImage2D,8162"context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, width = %d, height = "8163"%d, format = %s, imageSize = %d, data = 0x%016" PRIxPTR "",8164CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset,8165width, height, GLenumToString(GLenumGroup::PixelFormat, format), imageSize,8166(uintptr_t)data);81678168if (context)8169{8170TextureTarget targetPacked = PackParam<TextureTarget>(target);8171std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8172bool isCallValid =8173(context->skipValidation() ||8174ValidateCompressedTexSubImage2D(context, targetPacked, level, xoffset, yoffset, width,8175height, format, imageSize, data));8176if (isCallValid)8177{8178context->compressedTexSubImage2D(targetPacked, level, xoffset, yoffset, width, height,8179format, imageSize, data);8180}8181ANGLE_CAPTURE(CompressedTexSubImage2D, isCallValid, context, targetPacked, level, xoffset,8182yoffset, width, height, format, imageSize, data);8183}8184else8185{8186GenerateContextLostErrorOnCurrentGlobalContext();8187}8188}81898190void GL_APIENTRY GL_CompressedTexSubImage3D(GLenum target,8191GLint level,8192GLint xoffset,8193GLint yoffset,8194GLint zoffset,8195GLsizei width,8196GLsizei height,8197GLsizei depth,8198GLenum format,8199GLsizei imageSize,8200const void *data)8201{8202Context *context = GetValidGlobalContext();8203EVENT(context, GLCompressedTexSubImage3D,8204"context = %d, target = %s, level = %d, xoffset = %d, yoffset = %d, zoffset = %d, width "8205"= %d, height = %d, depth = %d, format = %s, imageSize = %d, data = 0x%016" PRIxPTR "",8206CID(context), GLenumToString(GLenumGroup::TextureTarget, target), level, xoffset, yoffset,8207zoffset, width, height, depth, GLenumToString(GLenumGroup::PixelFormat, format),8208imageSize, (uintptr_t)data);82098210if (context)8211{8212TextureTarget targetPacked = PackParam<TextureTarget>(target);8213std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8214bool isCallValid = (context->skipValidation() ||8215ValidateCompressedTexSubImage3D(context, targetPacked, level, xoffset,8216yoffset, zoffset, width, height, depth,8217format, imageSize, data));8218if (isCallValid)8219{8220context->compressedTexSubImage3D(targetPacked, level, xoffset, yoffset, zoffset, width,8221height, depth, format, imageSize, data);8222}8223ANGLE_CAPTURE(CompressedTexSubImage3D, isCallValid, context, targetPacked, level, xoffset,8224yoffset, zoffset, width, height, depth, format, imageSize, data);8225}8226else8227{8228GenerateContextLostErrorOnCurrentGlobalContext();8229}8230}82318232void GL_APIENTRY GL_GetCompressedTexImage(GLenum target, GLint level, void *img)8233{8234Context *context = GetValidGlobalContext();8235EVENT(context, GLGetCompressedTexImage,8236"context = %d, target = %s, level = %d, img = 0x%016" PRIxPTR "", CID(context),8237GLenumToString(GLenumGroup::TextureTarget, target), level, (uintptr_t)img);82388239if (context)8240{8241std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8242bool isCallValid = (context->skipValidation() ||8243ValidateGetCompressedTexImage(context, target, level, img));8244if (isCallValid)8245{8246context->getCompressedTexImage(target, level, img);8247}8248ANGLE_CAPTURE(GetCompressedTexImage, isCallValid, context, target, level, img);8249}8250else8251{8252GenerateContextLostErrorOnCurrentGlobalContext();8253}8254}82558256void GL_APIENTRY GL_LoadTransposeMatrixd(const GLdouble *m)8257{8258Context *context = GetValidGlobalContext();8259EVENT(context, GLLoadTransposeMatrixd, "context = %d, m = 0x%016" PRIxPTR "", CID(context),8260(uintptr_t)m);82618262if (context)8263{8264std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8265bool isCallValid = (context->skipValidation() || ValidateLoadTransposeMatrixd(context, m));8266if (isCallValid)8267{8268context->loadTransposeMatrixd(m);8269}8270ANGLE_CAPTURE(LoadTransposeMatrixd, isCallValid, context, m);8271}8272else8273{8274GenerateContextLostErrorOnCurrentGlobalContext();8275}8276}82778278void GL_APIENTRY GL_LoadTransposeMatrixf(const GLfloat *m)8279{8280Context *context = GetValidGlobalContext();8281EVENT(context, GLLoadTransposeMatrixf, "context = %d, m = 0x%016" PRIxPTR "", CID(context),8282(uintptr_t)m);82838284if (context)8285{8286std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8287bool isCallValid = (context->skipValidation() || ValidateLoadTransposeMatrixf(context, m));8288if (isCallValid)8289{8290context->loadTransposeMatrixf(m);8291}8292ANGLE_CAPTURE(LoadTransposeMatrixf, isCallValid, context, m);8293}8294else8295{8296GenerateContextLostErrorOnCurrentGlobalContext();8297}8298}82998300void GL_APIENTRY GL_MultTransposeMatrixd(const GLdouble *m)8301{8302Context *context = GetValidGlobalContext();8303EVENT(context, GLMultTransposeMatrixd, "context = %d, m = 0x%016" PRIxPTR "", CID(context),8304(uintptr_t)m);83058306if (context)8307{8308std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8309bool isCallValid = (context->skipValidation() || ValidateMultTransposeMatrixd(context, m));8310if (isCallValid)8311{8312context->multTransposeMatrixd(m);8313}8314ANGLE_CAPTURE(MultTransposeMatrixd, isCallValid, context, m);8315}8316else8317{8318GenerateContextLostErrorOnCurrentGlobalContext();8319}8320}83218322void GL_APIENTRY GL_MultTransposeMatrixf(const GLfloat *m)8323{8324Context *context = GetValidGlobalContext();8325EVENT(context, GLMultTransposeMatrixf, "context = %d, m = 0x%016" PRIxPTR "", CID(context),8326(uintptr_t)m);83278328if (context)8329{8330std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8331bool isCallValid = (context->skipValidation() || ValidateMultTransposeMatrixf(context, m));8332if (isCallValid)8333{8334context->multTransposeMatrixf(m);8335}8336ANGLE_CAPTURE(MultTransposeMatrixf, isCallValid, context, m);8337}8338else8339{8340GenerateContextLostErrorOnCurrentGlobalContext();8341}8342}83438344void GL_APIENTRY GL_MultiTexCoord1d(GLenum target, GLdouble s)8345{8346Context *context = GetValidGlobalContext();8347EVENT(context, GLMultiTexCoord1d, "context = %d, target = %s, s = %f", CID(context),8348GLenumToString(GLenumGroup::TextureUnit, target), s);83498350if (context)8351{8352std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8353bool isCallValid =8354(context->skipValidation() || ValidateMultiTexCoord1d(context, target, s));8355if (isCallValid)8356{8357context->multiTexCoord1d(target, s);8358}8359ANGLE_CAPTURE(MultiTexCoord1d, isCallValid, context, target, s);8360}8361else8362{8363GenerateContextLostErrorOnCurrentGlobalContext();8364}8365}83668367void GL_APIENTRY GL_MultiTexCoord1dv(GLenum target, const GLdouble *v)8368{8369Context *context = GetValidGlobalContext();8370EVENT(context, GLMultiTexCoord1dv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8371CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);83728373if (context)8374{8375std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8376bool isCallValid =8377(context->skipValidation() || ValidateMultiTexCoord1dv(context, target, v));8378if (isCallValid)8379{8380context->multiTexCoord1dv(target, v);8381}8382ANGLE_CAPTURE(MultiTexCoord1dv, isCallValid, context, target, v);8383}8384else8385{8386GenerateContextLostErrorOnCurrentGlobalContext();8387}8388}83898390void GL_APIENTRY GL_MultiTexCoord1f(GLenum target, GLfloat s)8391{8392Context *context = GetValidGlobalContext();8393EVENT(context, GLMultiTexCoord1f, "context = %d, target = %s, s = %f", CID(context),8394GLenumToString(GLenumGroup::TextureUnit, target), s);83958396if (context)8397{8398std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8399bool isCallValid =8400(context->skipValidation() || ValidateMultiTexCoord1f(context, target, s));8401if (isCallValid)8402{8403context->multiTexCoord1f(target, s);8404}8405ANGLE_CAPTURE(MultiTexCoord1f, isCallValid, context, target, s);8406}8407else8408{8409GenerateContextLostErrorOnCurrentGlobalContext();8410}8411}84128413void GL_APIENTRY GL_MultiTexCoord1fv(GLenum target, const GLfloat *v)8414{8415Context *context = GetValidGlobalContext();8416EVENT(context, GLMultiTexCoord1fv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8417CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);84188419if (context)8420{8421std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8422bool isCallValid =8423(context->skipValidation() || ValidateMultiTexCoord1fv(context, target, v));8424if (isCallValid)8425{8426context->multiTexCoord1fv(target, v);8427}8428ANGLE_CAPTURE(MultiTexCoord1fv, isCallValid, context, target, v);8429}8430else8431{8432GenerateContextLostErrorOnCurrentGlobalContext();8433}8434}84358436void GL_APIENTRY GL_MultiTexCoord1i(GLenum target, GLint s)8437{8438Context *context = GetValidGlobalContext();8439EVENT(context, GLMultiTexCoord1i, "context = %d, target = %s, s = %d", CID(context),8440GLenumToString(GLenumGroup::TextureUnit, target), s);84418442if (context)8443{8444std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8445bool isCallValid =8446(context->skipValidation() || ValidateMultiTexCoord1i(context, target, s));8447if (isCallValid)8448{8449context->multiTexCoord1i(target, s);8450}8451ANGLE_CAPTURE(MultiTexCoord1i, isCallValid, context, target, s);8452}8453else8454{8455GenerateContextLostErrorOnCurrentGlobalContext();8456}8457}84588459void GL_APIENTRY GL_MultiTexCoord1iv(GLenum target, const GLint *v)8460{8461Context *context = GetValidGlobalContext();8462EVENT(context, GLMultiTexCoord1iv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8463CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);84648465if (context)8466{8467std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8468bool isCallValid =8469(context->skipValidation() || ValidateMultiTexCoord1iv(context, target, v));8470if (isCallValid)8471{8472context->multiTexCoord1iv(target, v);8473}8474ANGLE_CAPTURE(MultiTexCoord1iv, isCallValid, context, target, v);8475}8476else8477{8478GenerateContextLostErrorOnCurrentGlobalContext();8479}8480}84818482void GL_APIENTRY GL_MultiTexCoord1s(GLenum target, GLshort s)8483{8484Context *context = GetValidGlobalContext();8485EVENT(context, GLMultiTexCoord1s, "context = %d, target = %s, s = %d", CID(context),8486GLenumToString(GLenumGroup::TextureUnit, target), s);84878488if (context)8489{8490std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8491bool isCallValid =8492(context->skipValidation() || ValidateMultiTexCoord1s(context, target, s));8493if (isCallValid)8494{8495context->multiTexCoord1s(target, s);8496}8497ANGLE_CAPTURE(MultiTexCoord1s, isCallValid, context, target, s);8498}8499else8500{8501GenerateContextLostErrorOnCurrentGlobalContext();8502}8503}85048505void GL_APIENTRY GL_MultiTexCoord1sv(GLenum target, const GLshort *v)8506{8507Context *context = GetValidGlobalContext();8508EVENT(context, GLMultiTexCoord1sv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8509CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);85108511if (context)8512{8513std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8514bool isCallValid =8515(context->skipValidation() || ValidateMultiTexCoord1sv(context, target, v));8516if (isCallValid)8517{8518context->multiTexCoord1sv(target, v);8519}8520ANGLE_CAPTURE(MultiTexCoord1sv, isCallValid, context, target, v);8521}8522else8523{8524GenerateContextLostErrorOnCurrentGlobalContext();8525}8526}85278528void GL_APIENTRY GL_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t)8529{8530Context *context = GetValidGlobalContext();8531EVENT(context, GLMultiTexCoord2d, "context = %d, target = %s, s = %f, t = %f", CID(context),8532GLenumToString(GLenumGroup::TextureUnit, target), s, t);85338534if (context)8535{8536std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8537bool isCallValid =8538(context->skipValidation() || ValidateMultiTexCoord2d(context, target, s, t));8539if (isCallValid)8540{8541context->multiTexCoord2d(target, s, t);8542}8543ANGLE_CAPTURE(MultiTexCoord2d, isCallValid, context, target, s, t);8544}8545else8546{8547GenerateContextLostErrorOnCurrentGlobalContext();8548}8549}85508551void GL_APIENTRY GL_MultiTexCoord2dv(GLenum target, const GLdouble *v)8552{8553Context *context = GetValidGlobalContext();8554EVENT(context, GLMultiTexCoord2dv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8555CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);85568557if (context)8558{8559std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8560bool isCallValid =8561(context->skipValidation() || ValidateMultiTexCoord2dv(context, target, v));8562if (isCallValid)8563{8564context->multiTexCoord2dv(target, v);8565}8566ANGLE_CAPTURE(MultiTexCoord2dv, isCallValid, context, target, v);8567}8568else8569{8570GenerateContextLostErrorOnCurrentGlobalContext();8571}8572}85738574void GL_APIENTRY GL_MultiTexCoord2f(GLenum target, GLfloat s, GLfloat t)8575{8576Context *context = GetValidGlobalContext();8577EVENT(context, GLMultiTexCoord2f, "context = %d, target = %s, s = %f, t = %f", CID(context),8578GLenumToString(GLenumGroup::TextureUnit, target), s, t);85798580if (context)8581{8582std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8583bool isCallValid =8584(context->skipValidation() || ValidateMultiTexCoord2f(context, target, s, t));8585if (isCallValid)8586{8587context->multiTexCoord2f(target, s, t);8588}8589ANGLE_CAPTURE(MultiTexCoord2f, isCallValid, context, target, s, t);8590}8591else8592{8593GenerateContextLostErrorOnCurrentGlobalContext();8594}8595}85968597void GL_APIENTRY GL_MultiTexCoord2fv(GLenum target, const GLfloat *v)8598{8599Context *context = GetValidGlobalContext();8600EVENT(context, GLMultiTexCoord2fv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8601CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);86028603if (context)8604{8605std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8606bool isCallValid =8607(context->skipValidation() || ValidateMultiTexCoord2fv(context, target, v));8608if (isCallValid)8609{8610context->multiTexCoord2fv(target, v);8611}8612ANGLE_CAPTURE(MultiTexCoord2fv, isCallValid, context, target, v);8613}8614else8615{8616GenerateContextLostErrorOnCurrentGlobalContext();8617}8618}86198620void GL_APIENTRY GL_MultiTexCoord2i(GLenum target, GLint s, GLint t)8621{8622Context *context = GetValidGlobalContext();8623EVENT(context, GLMultiTexCoord2i, "context = %d, target = %s, s = %d, t = %d", CID(context),8624GLenumToString(GLenumGroup::TextureUnit, target), s, t);86258626if (context)8627{8628std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8629bool isCallValid =8630(context->skipValidation() || ValidateMultiTexCoord2i(context, target, s, t));8631if (isCallValid)8632{8633context->multiTexCoord2i(target, s, t);8634}8635ANGLE_CAPTURE(MultiTexCoord2i, isCallValid, context, target, s, t);8636}8637else8638{8639GenerateContextLostErrorOnCurrentGlobalContext();8640}8641}86428643void GL_APIENTRY GL_MultiTexCoord2iv(GLenum target, const GLint *v)8644{8645Context *context = GetValidGlobalContext();8646EVENT(context, GLMultiTexCoord2iv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8647CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);86488649if (context)8650{8651std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8652bool isCallValid =8653(context->skipValidation() || ValidateMultiTexCoord2iv(context, target, v));8654if (isCallValid)8655{8656context->multiTexCoord2iv(target, v);8657}8658ANGLE_CAPTURE(MultiTexCoord2iv, isCallValid, context, target, v);8659}8660else8661{8662GenerateContextLostErrorOnCurrentGlobalContext();8663}8664}86658666void GL_APIENTRY GL_MultiTexCoord2s(GLenum target, GLshort s, GLshort t)8667{8668Context *context = GetValidGlobalContext();8669EVENT(context, GLMultiTexCoord2s, "context = %d, target = %s, s = %d, t = %d", CID(context),8670GLenumToString(GLenumGroup::TextureUnit, target), s, t);86718672if (context)8673{8674std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8675bool isCallValid =8676(context->skipValidation() || ValidateMultiTexCoord2s(context, target, s, t));8677if (isCallValid)8678{8679context->multiTexCoord2s(target, s, t);8680}8681ANGLE_CAPTURE(MultiTexCoord2s, isCallValid, context, target, s, t);8682}8683else8684{8685GenerateContextLostErrorOnCurrentGlobalContext();8686}8687}86888689void GL_APIENTRY GL_MultiTexCoord2sv(GLenum target, const GLshort *v)8690{8691Context *context = GetValidGlobalContext();8692EVENT(context, GLMultiTexCoord2sv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8693CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);86948695if (context)8696{8697std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8698bool isCallValid =8699(context->skipValidation() || ValidateMultiTexCoord2sv(context, target, v));8700if (isCallValid)8701{8702context->multiTexCoord2sv(target, v);8703}8704ANGLE_CAPTURE(MultiTexCoord2sv, isCallValid, context, target, v);8705}8706else8707{8708GenerateContextLostErrorOnCurrentGlobalContext();8709}8710}87118712void GL_APIENTRY GL_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r)8713{8714Context *context = GetValidGlobalContext();8715EVENT(context, GLMultiTexCoord3d, "context = %d, target = %s, s = %f, t = %f, r = %f",8716CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r);87178718if (context)8719{8720std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8721bool isCallValid =8722(context->skipValidation() || ValidateMultiTexCoord3d(context, target, s, t, r));8723if (isCallValid)8724{8725context->multiTexCoord3d(target, s, t, r);8726}8727ANGLE_CAPTURE(MultiTexCoord3d, isCallValid, context, target, s, t, r);8728}8729else8730{8731GenerateContextLostErrorOnCurrentGlobalContext();8732}8733}87348735void GL_APIENTRY GL_MultiTexCoord3dv(GLenum target, const GLdouble *v)8736{8737Context *context = GetValidGlobalContext();8738EVENT(context, GLMultiTexCoord3dv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8739CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);87408741if (context)8742{8743std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8744bool isCallValid =8745(context->skipValidation() || ValidateMultiTexCoord3dv(context, target, v));8746if (isCallValid)8747{8748context->multiTexCoord3dv(target, v);8749}8750ANGLE_CAPTURE(MultiTexCoord3dv, isCallValid, context, target, v);8751}8752else8753{8754GenerateContextLostErrorOnCurrentGlobalContext();8755}8756}87578758void GL_APIENTRY GL_MultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r)8759{8760Context *context = GetValidGlobalContext();8761EVENT(context, GLMultiTexCoord3f, "context = %d, target = %s, s = %f, t = %f, r = %f",8762CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r);87638764if (context)8765{8766std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8767bool isCallValid =8768(context->skipValidation() || ValidateMultiTexCoord3f(context, target, s, t, r));8769if (isCallValid)8770{8771context->multiTexCoord3f(target, s, t, r);8772}8773ANGLE_CAPTURE(MultiTexCoord3f, isCallValid, context, target, s, t, r);8774}8775else8776{8777GenerateContextLostErrorOnCurrentGlobalContext();8778}8779}87808781void GL_APIENTRY GL_MultiTexCoord3fv(GLenum target, const GLfloat *v)8782{8783Context *context = GetValidGlobalContext();8784EVENT(context, GLMultiTexCoord3fv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8785CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);87868787if (context)8788{8789std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8790bool isCallValid =8791(context->skipValidation() || ValidateMultiTexCoord3fv(context, target, v));8792if (isCallValid)8793{8794context->multiTexCoord3fv(target, v);8795}8796ANGLE_CAPTURE(MultiTexCoord3fv, isCallValid, context, target, v);8797}8798else8799{8800GenerateContextLostErrorOnCurrentGlobalContext();8801}8802}88038804void GL_APIENTRY GL_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r)8805{8806Context *context = GetValidGlobalContext();8807EVENT(context, GLMultiTexCoord3i, "context = %d, target = %s, s = %d, t = %d, r = %d",8808CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r);88098810if (context)8811{8812std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8813bool isCallValid =8814(context->skipValidation() || ValidateMultiTexCoord3i(context, target, s, t, r));8815if (isCallValid)8816{8817context->multiTexCoord3i(target, s, t, r);8818}8819ANGLE_CAPTURE(MultiTexCoord3i, isCallValid, context, target, s, t, r);8820}8821else8822{8823GenerateContextLostErrorOnCurrentGlobalContext();8824}8825}88268827void GL_APIENTRY GL_MultiTexCoord3iv(GLenum target, const GLint *v)8828{8829Context *context = GetValidGlobalContext();8830EVENT(context, GLMultiTexCoord3iv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8831CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);88328833if (context)8834{8835std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8836bool isCallValid =8837(context->skipValidation() || ValidateMultiTexCoord3iv(context, target, v));8838if (isCallValid)8839{8840context->multiTexCoord3iv(target, v);8841}8842ANGLE_CAPTURE(MultiTexCoord3iv, isCallValid, context, target, v);8843}8844else8845{8846GenerateContextLostErrorOnCurrentGlobalContext();8847}8848}88498850void GL_APIENTRY GL_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r)8851{8852Context *context = GetValidGlobalContext();8853EVENT(context, GLMultiTexCoord3s, "context = %d, target = %s, s = %d, t = %d, r = %d",8854CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r);88558856if (context)8857{8858std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8859bool isCallValid =8860(context->skipValidation() || ValidateMultiTexCoord3s(context, target, s, t, r));8861if (isCallValid)8862{8863context->multiTexCoord3s(target, s, t, r);8864}8865ANGLE_CAPTURE(MultiTexCoord3s, isCallValid, context, target, s, t, r);8866}8867else8868{8869GenerateContextLostErrorOnCurrentGlobalContext();8870}8871}88728873void GL_APIENTRY GL_MultiTexCoord3sv(GLenum target, const GLshort *v)8874{8875Context *context = GetValidGlobalContext();8876EVENT(context, GLMultiTexCoord3sv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8877CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);88788879if (context)8880{8881std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8882bool isCallValid =8883(context->skipValidation() || ValidateMultiTexCoord3sv(context, target, v));8884if (isCallValid)8885{8886context->multiTexCoord3sv(target, v);8887}8888ANGLE_CAPTURE(MultiTexCoord3sv, isCallValid, context, target, v);8889}8890else8891{8892GenerateContextLostErrorOnCurrentGlobalContext();8893}8894}88958896void GL_APIENTRY GL_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)8897{8898Context *context = GetValidGlobalContext();8899EVENT(context, GLMultiTexCoord4d, "context = %d, target = %s, s = %f, t = %f, r = %f, q = %f",8900CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r, q);89018902if (context)8903{8904std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8905bool isCallValid =8906(context->skipValidation() || ValidateMultiTexCoord4d(context, target, s, t, r, q));8907if (isCallValid)8908{8909context->multiTexCoord4d(target, s, t, r, q);8910}8911ANGLE_CAPTURE(MultiTexCoord4d, isCallValid, context, target, s, t, r, q);8912}8913else8914{8915GenerateContextLostErrorOnCurrentGlobalContext();8916}8917}89188919void GL_APIENTRY GL_MultiTexCoord4dv(GLenum target, const GLdouble *v)8920{8921Context *context = GetValidGlobalContext();8922EVENT(context, GLMultiTexCoord4dv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8923CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);89248925if (context)8926{8927std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8928bool isCallValid =8929(context->skipValidation() || ValidateMultiTexCoord4dv(context, target, v));8930if (isCallValid)8931{8932context->multiTexCoord4dv(target, v);8933}8934ANGLE_CAPTURE(MultiTexCoord4dv, isCallValid, context, target, v);8935}8936else8937{8938GenerateContextLostErrorOnCurrentGlobalContext();8939}8940}89418942void GL_APIENTRY GL_MultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)8943{8944Context *context = GetValidGlobalContext();8945EVENT(context, GLMultiTexCoord4f, "context = %d, target = %s, s = %f, t = %f, r = %f, q = %f",8946CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r, q);89478948if (context)8949{8950std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8951bool isCallValid =8952(context->skipValidation() || ValidateMultiTexCoord4f(context, target, s, t, r, q));8953if (isCallValid)8954{8955context->multiTexCoord4f(target, s, t, r, q);8956}8957ANGLE_CAPTURE(MultiTexCoord4f, isCallValid, context, target, s, t, r, q);8958}8959else8960{8961GenerateContextLostErrorOnCurrentGlobalContext();8962}8963}89648965void GL_APIENTRY GL_MultiTexCoord4fv(GLenum target, const GLfloat *v)8966{8967Context *context = GetValidGlobalContext();8968EVENT(context, GLMultiTexCoord4fv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",8969CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);89708971if (context)8972{8973std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8974bool isCallValid =8975(context->skipValidation() || ValidateMultiTexCoord4fv(context, target, v));8976if (isCallValid)8977{8978context->multiTexCoord4fv(target, v);8979}8980ANGLE_CAPTURE(MultiTexCoord4fv, isCallValid, context, target, v);8981}8982else8983{8984GenerateContextLostErrorOnCurrentGlobalContext();8985}8986}89878988void GL_APIENTRY GL_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q)8989{8990Context *context = GetValidGlobalContext();8991EVENT(context, GLMultiTexCoord4i, "context = %d, target = %s, s = %d, t = %d, r = %d, q = %d",8992CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r, q);89938994if (context)8995{8996std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);8997bool isCallValid =8998(context->skipValidation() || ValidateMultiTexCoord4i(context, target, s, t, r, q));8999if (isCallValid)9000{9001context->multiTexCoord4i(target, s, t, r, q);9002}9003ANGLE_CAPTURE(MultiTexCoord4i, isCallValid, context, target, s, t, r, q);9004}9005else9006{9007GenerateContextLostErrorOnCurrentGlobalContext();9008}9009}90109011void GL_APIENTRY GL_MultiTexCoord4iv(GLenum target, const GLint *v)9012{9013Context *context = GetValidGlobalContext();9014EVENT(context, GLMultiTexCoord4iv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",9015CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);90169017if (context)9018{9019std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9020bool isCallValid =9021(context->skipValidation() || ValidateMultiTexCoord4iv(context, target, v));9022if (isCallValid)9023{9024context->multiTexCoord4iv(target, v);9025}9026ANGLE_CAPTURE(MultiTexCoord4iv, isCallValid, context, target, v);9027}9028else9029{9030GenerateContextLostErrorOnCurrentGlobalContext();9031}9032}90339034void GL_APIENTRY GL_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)9035{9036Context *context = GetValidGlobalContext();9037EVENT(context, GLMultiTexCoord4s, "context = %d, target = %s, s = %d, t = %d, r = %d, q = %d",9038CID(context), GLenumToString(GLenumGroup::TextureUnit, target), s, t, r, q);90399040if (context)9041{9042std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9043bool isCallValid =9044(context->skipValidation() || ValidateMultiTexCoord4s(context, target, s, t, r, q));9045if (isCallValid)9046{9047context->multiTexCoord4s(target, s, t, r, q);9048}9049ANGLE_CAPTURE(MultiTexCoord4s, isCallValid, context, target, s, t, r, q);9050}9051else9052{9053GenerateContextLostErrorOnCurrentGlobalContext();9054}9055}90569057void GL_APIENTRY GL_MultiTexCoord4sv(GLenum target, const GLshort *v)9058{9059Context *context = GetValidGlobalContext();9060EVENT(context, GLMultiTexCoord4sv, "context = %d, target = %s, v = 0x%016" PRIxPTR "",9061CID(context), GLenumToString(GLenumGroup::TextureUnit, target), (uintptr_t)v);90629063if (context)9064{9065std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9066bool isCallValid =9067(context->skipValidation() || ValidateMultiTexCoord4sv(context, target, v));9068if (isCallValid)9069{9070context->multiTexCoord4sv(target, v);9071}9072ANGLE_CAPTURE(MultiTexCoord4sv, isCallValid, context, target, v);9073}9074else9075{9076GenerateContextLostErrorOnCurrentGlobalContext();9077}9078}90799080void GL_APIENTRY GL_SampleCoverage(GLfloat value, GLboolean invert)9081{9082Context *context = GetValidGlobalContext();9083EVENT(context, GLSampleCoverage, "context = %d, value = %f, invert = %s", CID(context), value,9084GLbooleanToString(invert));90859086if (context)9087{9088std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9089bool isCallValid =9090(context->skipValidation() || ValidateSampleCoverage(context, value, invert));9091if (isCallValid)9092{9093context->sampleCoverage(value, invert);9094}9095ANGLE_CAPTURE(SampleCoverage, isCallValid, context, value, invert);9096}9097else9098{9099GenerateContextLostErrorOnCurrentGlobalContext();9100}9101}91029103// GL 1.49104void GL_APIENTRY GL_BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)9105{9106Context *context = GetValidGlobalContext();9107EVENT(context, GLBlendColor, "context = %d, red = %f, green = %f, blue = %f, alpha = %f",9108CID(context), red, green, blue, alpha);91099110if (context)9111{9112std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9113bool isCallValid =9114(context->skipValidation() || ValidateBlendColor(context, red, green, blue, alpha));9115if (isCallValid)9116{9117context->blendColor(red, green, blue, alpha);9118}9119ANGLE_CAPTURE(BlendColor, isCallValid, context, red, green, blue, alpha);9120}9121else9122{9123GenerateContextLostErrorOnCurrentGlobalContext();9124}9125}91269127void GL_APIENTRY GL_BlendEquation(GLenum mode)9128{9129Context *context = GetValidGlobalContext();9130EVENT(context, GLBlendEquation, "context = %d, mode = %s", CID(context),9131GLenumToString(GLenumGroup::BlendEquationModeEXT, mode));91329133if (context)9134{9135std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9136bool isCallValid = (context->skipValidation() || ValidateBlendEquation(context, mode));9137if (isCallValid)9138{9139context->blendEquation(mode);9140}9141ANGLE_CAPTURE(BlendEquation, isCallValid, context, mode);9142}9143else9144{9145GenerateContextLostErrorOnCurrentGlobalContext();9146}9147}91489149void GL_APIENTRY GL_BlendFuncSeparate(GLenum sfactorRGB,9150GLenum dfactorRGB,9151GLenum sfactorAlpha,9152GLenum dfactorAlpha)9153{9154Context *context = GetValidGlobalContext();9155EVENT(context, GLBlendFuncSeparate,9156"context = %d, sfactorRGB = %s, dfactorRGB = %s, sfactorAlpha = %s, dfactorAlpha = %s",9157CID(context), GLenumToString(GLenumGroup::BlendingFactor, sfactorRGB),9158GLenumToString(GLenumGroup::BlendingFactor, dfactorRGB),9159GLenumToString(GLenumGroup::BlendingFactor, sfactorAlpha),9160GLenumToString(GLenumGroup::BlendingFactor, dfactorAlpha));91619162if (context)9163{9164std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9165bool isCallValid =9166(context->skipValidation() || ValidateBlendFuncSeparate(context, sfactorRGB, dfactorRGB,9167sfactorAlpha, dfactorAlpha));9168if (isCallValid)9169{9170context->blendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);9171}9172ANGLE_CAPTURE(BlendFuncSeparate, isCallValid, context, sfactorRGB, dfactorRGB, sfactorAlpha,9173dfactorAlpha);9174}9175else9176{9177GenerateContextLostErrorOnCurrentGlobalContext();9178}9179}91809181void GL_APIENTRY GL_FogCoordPointer(GLenum type, GLsizei stride, const void *pointer)9182{9183Context *context = GetValidGlobalContext();9184EVENT(context, GLFogCoordPointer,9185"context = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "", CID(context),9186GLenumToString(GLenumGroup::FogPointerTypeEXT, type), stride, (uintptr_t)pointer);91879188if (context)9189{9190std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9191bool isCallValid =9192(context->skipValidation() || ValidateFogCoordPointer(context, type, stride, pointer));9193if (isCallValid)9194{9195context->fogCoordPointer(type, stride, pointer);9196}9197ANGLE_CAPTURE(FogCoordPointer, isCallValid, context, type, stride, pointer);9198}9199else9200{9201GenerateContextLostErrorOnCurrentGlobalContext();9202}9203}92049205void GL_APIENTRY GL_FogCoordd(GLdouble coord)9206{9207Context *context = GetValidGlobalContext();9208EVENT(context, GLFogCoordd, "context = %d, coord = %f", CID(context), coord);92099210if (context)9211{9212std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9213bool isCallValid = (context->skipValidation() || ValidateFogCoordd(context, coord));9214if (isCallValid)9215{9216context->fogCoordd(coord);9217}9218ANGLE_CAPTURE(FogCoordd, isCallValid, context, coord);9219}9220else9221{9222GenerateContextLostErrorOnCurrentGlobalContext();9223}9224}92259226void GL_APIENTRY GL_FogCoorddv(const GLdouble *coord)9227{9228Context *context = GetValidGlobalContext();9229EVENT(context, GLFogCoorddv, "context = %d, coord = 0x%016" PRIxPTR "", CID(context),9230(uintptr_t)coord);92319232if (context)9233{9234std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9235bool isCallValid = (context->skipValidation() || ValidateFogCoorddv(context, coord));9236if (isCallValid)9237{9238context->fogCoorddv(coord);9239}9240ANGLE_CAPTURE(FogCoorddv, isCallValid, context, coord);9241}9242else9243{9244GenerateContextLostErrorOnCurrentGlobalContext();9245}9246}92479248void GL_APIENTRY GL_FogCoordf(GLfloat coord)9249{9250Context *context = GetValidGlobalContext();9251EVENT(context, GLFogCoordf, "context = %d, coord = %f", CID(context), coord);92529253if (context)9254{9255std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9256bool isCallValid = (context->skipValidation() || ValidateFogCoordf(context, coord));9257if (isCallValid)9258{9259context->fogCoordf(coord);9260}9261ANGLE_CAPTURE(FogCoordf, isCallValid, context, coord);9262}9263else9264{9265GenerateContextLostErrorOnCurrentGlobalContext();9266}9267}92689269void GL_APIENTRY GL_FogCoordfv(const GLfloat *coord)9270{9271Context *context = GetValidGlobalContext();9272EVENT(context, GLFogCoordfv, "context = %d, coord = 0x%016" PRIxPTR "", CID(context),9273(uintptr_t)coord);92749275if (context)9276{9277std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9278bool isCallValid = (context->skipValidation() || ValidateFogCoordfv(context, coord));9279if (isCallValid)9280{9281context->fogCoordfv(coord);9282}9283ANGLE_CAPTURE(FogCoordfv, isCallValid, context, coord);9284}9285else9286{9287GenerateContextLostErrorOnCurrentGlobalContext();9288}9289}92909291void GL_APIENTRY GL_MultiDrawArrays(GLenum mode,9292const GLint *first,9293const GLsizei *count,9294GLsizei drawcount)9295{9296Context *context = GetValidGlobalContext();9297EVENT(context, GLMultiDrawArrays,9298"context = %d, mode = %s, first = 0x%016" PRIxPTR ", count = 0x%016" PRIxPTR9299", drawcount = %d",9300CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)first,9301(uintptr_t)count, drawcount);93029303if (context)9304{9305PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);9306std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9307bool isCallValid = (context->skipValidation() ||9308ValidateMultiDrawArrays(context, modePacked, first, count, drawcount));9309if (isCallValid)9310{9311context->multiDrawArrays(modePacked, first, count, drawcount);9312}9313ANGLE_CAPTURE(MultiDrawArrays, isCallValid, context, modePacked, first, count, drawcount);9314}9315else9316{9317GenerateContextLostErrorOnCurrentGlobalContext();9318}9319}93209321void GL_APIENTRY GL_MultiDrawElements(GLenum mode,9322const GLsizei *count,9323GLenum type,9324const void *const *indices,9325GLsizei drawcount)9326{9327Context *context = GetValidGlobalContext();9328EVENT(context, GLMultiDrawElements,9329"context = %d, mode = %s, count = 0x%016" PRIxPTR ", type = %s, indices = 0x%016" PRIxPTR9330", drawcount = %d",9331CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), (uintptr_t)count,9332GLenumToString(GLenumGroup::DrawElementsType, type), (uintptr_t)indices, drawcount);93339334if (context)9335{9336PrimitiveMode modePacked = PackParam<PrimitiveMode>(mode);9337DrawElementsType typePacked = PackParam<DrawElementsType>(type);9338std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9339bool isCallValid =9340(context->skipValidation() ||9341ValidateMultiDrawElements(context, modePacked, count, typePacked, indices, drawcount));9342if (isCallValid)9343{9344context->multiDrawElements(modePacked, count, typePacked, indices, drawcount);9345}9346ANGLE_CAPTURE(MultiDrawElements, isCallValid, context, modePacked, count, typePacked,9347indices, drawcount);9348}9349else9350{9351GenerateContextLostErrorOnCurrentGlobalContext();9352}9353}93549355void GL_APIENTRY GL_PointParameterf(GLenum pname, GLfloat param)9356{9357Context *context = GetValidGlobalContext();9358EVENT(context, GLPointParameterf, "context = %d, pname = %s, param = %f", CID(context),9359GLenumToString(GLenumGroup::DefaultGroup, pname), param);93609361if (context)9362{9363PointParameter pnamePacked = PackParam<PointParameter>(pname);9364std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9365bool isCallValid =9366(context->skipValidation() || ValidatePointParameterf(context, pnamePacked, param));9367if (isCallValid)9368{9369context->pointParameterf(pnamePacked, param);9370}9371ANGLE_CAPTURE(PointParameterf, isCallValid, context, pnamePacked, param);9372}9373else9374{9375GenerateContextLostErrorOnCurrentGlobalContext();9376}9377}93789379void GL_APIENTRY GL_PointParameterfv(GLenum pname, const GLfloat *params)9380{9381Context *context = GetValidGlobalContext();9382EVENT(context, GLPointParameterfv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",9383CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params);93849385if (context)9386{9387PointParameter pnamePacked = PackParam<PointParameter>(pname);9388std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9389bool isCallValid =9390(context->skipValidation() || ValidatePointParameterfv(context, pnamePacked, params));9391if (isCallValid)9392{9393context->pointParameterfv(pnamePacked, params);9394}9395ANGLE_CAPTURE(PointParameterfv, isCallValid, context, pnamePacked, params);9396}9397else9398{9399GenerateContextLostErrorOnCurrentGlobalContext();9400}9401}94029403void GL_APIENTRY GL_PointParameteri(GLenum pname, GLint param)9404{9405Context *context = GetValidGlobalContext();9406EVENT(context, GLPointParameteri, "context = %d, pname = %s, param = %d", CID(context),9407GLenumToString(GLenumGroup::DefaultGroup, pname), param);94089409if (context)9410{9411std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9412bool isCallValid =9413(context->skipValidation() || ValidatePointParameteri(context, pname, param));9414if (isCallValid)9415{9416context->pointParameteri(pname, param);9417}9418ANGLE_CAPTURE(PointParameteri, isCallValid, context, pname, param);9419}9420else9421{9422GenerateContextLostErrorOnCurrentGlobalContext();9423}9424}94259426void GL_APIENTRY GL_PointParameteriv(GLenum pname, const GLint *params)9427{9428Context *context = GetValidGlobalContext();9429EVENT(context, GLPointParameteriv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",9430CID(context), GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params);94319432if (context)9433{9434std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9435bool isCallValid =9436(context->skipValidation() || ValidatePointParameteriv(context, pname, params));9437if (isCallValid)9438{9439context->pointParameteriv(pname, params);9440}9441ANGLE_CAPTURE(PointParameteriv, isCallValid, context, pname, params);9442}9443else9444{9445GenerateContextLostErrorOnCurrentGlobalContext();9446}9447}94489449void GL_APIENTRY GL_SecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue)9450{9451Context *context = GetValidGlobalContext();9452EVENT(context, GLSecondaryColor3b, "context = %d, red = %d, green = %d, blue = %d",9453CID(context), red, green, blue);94549455if (context)9456{9457std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9458bool isCallValid =9459(context->skipValidation() || ValidateSecondaryColor3b(context, red, green, blue));9460if (isCallValid)9461{9462context->secondaryColor3b(red, green, blue);9463}9464ANGLE_CAPTURE(SecondaryColor3b, isCallValid, context, red, green, blue);9465}9466else9467{9468GenerateContextLostErrorOnCurrentGlobalContext();9469}9470}94719472void GL_APIENTRY GL_SecondaryColor3bv(const GLbyte *v)9473{9474Context *context = GetValidGlobalContext();9475EVENT(context, GLSecondaryColor3bv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9476(uintptr_t)v);94779478if (context)9479{9480std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9481bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3bv(context, v));9482if (isCallValid)9483{9484context->secondaryColor3bv(v);9485}9486ANGLE_CAPTURE(SecondaryColor3bv, isCallValid, context, v);9487}9488else9489{9490GenerateContextLostErrorOnCurrentGlobalContext();9491}9492}94939494void GL_APIENTRY GL_SecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue)9495{9496Context *context = GetValidGlobalContext();9497EVENT(context, GLSecondaryColor3d, "context = %d, red = %f, green = %f, blue = %f",9498CID(context), red, green, blue);94999500if (context)9501{9502std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9503bool isCallValid =9504(context->skipValidation() || ValidateSecondaryColor3d(context, red, green, blue));9505if (isCallValid)9506{9507context->secondaryColor3d(red, green, blue);9508}9509ANGLE_CAPTURE(SecondaryColor3d, isCallValid, context, red, green, blue);9510}9511else9512{9513GenerateContextLostErrorOnCurrentGlobalContext();9514}9515}95169517void GL_APIENTRY GL_SecondaryColor3dv(const GLdouble *v)9518{9519Context *context = GetValidGlobalContext();9520EVENT(context, GLSecondaryColor3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9521(uintptr_t)v);95229523if (context)9524{9525std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9526bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3dv(context, v));9527if (isCallValid)9528{9529context->secondaryColor3dv(v);9530}9531ANGLE_CAPTURE(SecondaryColor3dv, isCallValid, context, v);9532}9533else9534{9535GenerateContextLostErrorOnCurrentGlobalContext();9536}9537}95389539void GL_APIENTRY GL_SecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue)9540{9541Context *context = GetValidGlobalContext();9542EVENT(context, GLSecondaryColor3f, "context = %d, red = %f, green = %f, blue = %f",9543CID(context), red, green, blue);95449545if (context)9546{9547std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9548bool isCallValid =9549(context->skipValidation() || ValidateSecondaryColor3f(context, red, green, blue));9550if (isCallValid)9551{9552context->secondaryColor3f(red, green, blue);9553}9554ANGLE_CAPTURE(SecondaryColor3f, isCallValid, context, red, green, blue);9555}9556else9557{9558GenerateContextLostErrorOnCurrentGlobalContext();9559}9560}95619562void GL_APIENTRY GL_SecondaryColor3fv(const GLfloat *v)9563{9564Context *context = GetValidGlobalContext();9565EVENT(context, GLSecondaryColor3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9566(uintptr_t)v);95679568if (context)9569{9570std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9571bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3fv(context, v));9572if (isCallValid)9573{9574context->secondaryColor3fv(v);9575}9576ANGLE_CAPTURE(SecondaryColor3fv, isCallValid, context, v);9577}9578else9579{9580GenerateContextLostErrorOnCurrentGlobalContext();9581}9582}95839584void GL_APIENTRY GL_SecondaryColor3i(GLint red, GLint green, GLint blue)9585{9586Context *context = GetValidGlobalContext();9587EVENT(context, GLSecondaryColor3i, "context = %d, red = %d, green = %d, blue = %d",9588CID(context), red, green, blue);95899590if (context)9591{9592std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9593bool isCallValid =9594(context->skipValidation() || ValidateSecondaryColor3i(context, red, green, blue));9595if (isCallValid)9596{9597context->secondaryColor3i(red, green, blue);9598}9599ANGLE_CAPTURE(SecondaryColor3i, isCallValid, context, red, green, blue);9600}9601else9602{9603GenerateContextLostErrorOnCurrentGlobalContext();9604}9605}96069607void GL_APIENTRY GL_SecondaryColor3iv(const GLint *v)9608{9609Context *context = GetValidGlobalContext();9610EVENT(context, GLSecondaryColor3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9611(uintptr_t)v);96129613if (context)9614{9615std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9616bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3iv(context, v));9617if (isCallValid)9618{9619context->secondaryColor3iv(v);9620}9621ANGLE_CAPTURE(SecondaryColor3iv, isCallValid, context, v);9622}9623else9624{9625GenerateContextLostErrorOnCurrentGlobalContext();9626}9627}96289629void GL_APIENTRY GL_SecondaryColor3s(GLshort red, GLshort green, GLshort blue)9630{9631Context *context = GetValidGlobalContext();9632EVENT(context, GLSecondaryColor3s, "context = %d, red = %d, green = %d, blue = %d",9633CID(context), red, green, blue);96349635if (context)9636{9637std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9638bool isCallValid =9639(context->skipValidation() || ValidateSecondaryColor3s(context, red, green, blue));9640if (isCallValid)9641{9642context->secondaryColor3s(red, green, blue);9643}9644ANGLE_CAPTURE(SecondaryColor3s, isCallValid, context, red, green, blue);9645}9646else9647{9648GenerateContextLostErrorOnCurrentGlobalContext();9649}9650}96519652void GL_APIENTRY GL_SecondaryColor3sv(const GLshort *v)9653{9654Context *context = GetValidGlobalContext();9655EVENT(context, GLSecondaryColor3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9656(uintptr_t)v);96579658if (context)9659{9660std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9661bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3sv(context, v));9662if (isCallValid)9663{9664context->secondaryColor3sv(v);9665}9666ANGLE_CAPTURE(SecondaryColor3sv, isCallValid, context, v);9667}9668else9669{9670GenerateContextLostErrorOnCurrentGlobalContext();9671}9672}96739674void GL_APIENTRY GL_SecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue)9675{9676Context *context = GetValidGlobalContext();9677EVENT(context, GLSecondaryColor3ub, "context = %d, red = %d, green = %d, blue = %d",9678CID(context), red, green, blue);96799680if (context)9681{9682std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9683bool isCallValid =9684(context->skipValidation() || ValidateSecondaryColor3ub(context, red, green, blue));9685if (isCallValid)9686{9687context->secondaryColor3ub(red, green, blue);9688}9689ANGLE_CAPTURE(SecondaryColor3ub, isCallValid, context, red, green, blue);9690}9691else9692{9693GenerateContextLostErrorOnCurrentGlobalContext();9694}9695}96969697void GL_APIENTRY GL_SecondaryColor3ubv(const GLubyte *v)9698{9699Context *context = GetValidGlobalContext();9700EVENT(context, GLSecondaryColor3ubv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9701(uintptr_t)v);97029703if (context)9704{9705std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9706bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3ubv(context, v));9707if (isCallValid)9708{9709context->secondaryColor3ubv(v);9710}9711ANGLE_CAPTURE(SecondaryColor3ubv, isCallValid, context, v);9712}9713else9714{9715GenerateContextLostErrorOnCurrentGlobalContext();9716}9717}97189719void GL_APIENTRY GL_SecondaryColor3ui(GLuint red, GLuint green, GLuint blue)9720{9721Context *context = GetValidGlobalContext();9722EVENT(context, GLSecondaryColor3ui, "context = %d, red = %u, green = %u, blue = %u",9723CID(context), red, green, blue);97249725if (context)9726{9727std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9728bool isCallValid =9729(context->skipValidation() || ValidateSecondaryColor3ui(context, red, green, blue));9730if (isCallValid)9731{9732context->secondaryColor3ui(red, green, blue);9733}9734ANGLE_CAPTURE(SecondaryColor3ui, isCallValid, context, red, green, blue);9735}9736else9737{9738GenerateContextLostErrorOnCurrentGlobalContext();9739}9740}97419742void GL_APIENTRY GL_SecondaryColor3uiv(const GLuint *v)9743{9744Context *context = GetValidGlobalContext();9745EVENT(context, GLSecondaryColor3uiv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9746(uintptr_t)v);97479748if (context)9749{9750std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9751bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3uiv(context, v));9752if (isCallValid)9753{9754context->secondaryColor3uiv(v);9755}9756ANGLE_CAPTURE(SecondaryColor3uiv, isCallValid, context, v);9757}9758else9759{9760GenerateContextLostErrorOnCurrentGlobalContext();9761}9762}97639764void GL_APIENTRY GL_SecondaryColor3us(GLushort red, GLushort green, GLushort blue)9765{9766Context *context = GetValidGlobalContext();9767EVENT(context, GLSecondaryColor3us, "context = %d, red = %u, green = %u, blue = %u",9768CID(context), red, green, blue);97699770if (context)9771{9772std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9773bool isCallValid =9774(context->skipValidation() || ValidateSecondaryColor3us(context, red, green, blue));9775if (isCallValid)9776{9777context->secondaryColor3us(red, green, blue);9778}9779ANGLE_CAPTURE(SecondaryColor3us, isCallValid, context, red, green, blue);9780}9781else9782{9783GenerateContextLostErrorOnCurrentGlobalContext();9784}9785}97869787void GL_APIENTRY GL_SecondaryColor3usv(const GLushort *v)9788{9789Context *context = GetValidGlobalContext();9790EVENT(context, GLSecondaryColor3usv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9791(uintptr_t)v);97929793if (context)9794{9795std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9796bool isCallValid = (context->skipValidation() || ValidateSecondaryColor3usv(context, v));9797if (isCallValid)9798{9799context->secondaryColor3usv(v);9800}9801ANGLE_CAPTURE(SecondaryColor3usv, isCallValid, context, v);9802}9803else9804{9805GenerateContextLostErrorOnCurrentGlobalContext();9806}9807}98089809void GL_APIENTRY GL_SecondaryColorPointer(GLint size,9810GLenum type,9811GLsizei stride,9812const void *pointer)9813{9814Context *context = GetValidGlobalContext();9815EVENT(context, GLSecondaryColorPointer,9816"context = %d, size = %d, type = %s, stride = %d, pointer = 0x%016" PRIxPTR "",9817CID(context), size, GLenumToString(GLenumGroup::ColorPointerType, type), stride,9818(uintptr_t)pointer);98199820if (context)9821{9822std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9823bool isCallValid = (context->skipValidation() ||9824ValidateSecondaryColorPointer(context, size, type, stride, pointer));9825if (isCallValid)9826{9827context->secondaryColorPointer(size, type, stride, pointer);9828}9829ANGLE_CAPTURE(SecondaryColorPointer, isCallValid, context, size, type, stride, pointer);9830}9831else9832{9833GenerateContextLostErrorOnCurrentGlobalContext();9834}9835}98369837void GL_APIENTRY GL_WindowPos2d(GLdouble x, GLdouble y)9838{9839Context *context = GetValidGlobalContext();9840EVENT(context, GLWindowPos2d, "context = %d, x = %f, y = %f", CID(context), x, y);98419842if (context)9843{9844std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9845bool isCallValid = (context->skipValidation() || ValidateWindowPos2d(context, x, y));9846if (isCallValid)9847{9848context->windowPos2d(x, y);9849}9850ANGLE_CAPTURE(WindowPos2d, isCallValid, context, x, y);9851}9852else9853{9854GenerateContextLostErrorOnCurrentGlobalContext();9855}9856}98579858void GL_APIENTRY GL_WindowPos2dv(const GLdouble *v)9859{9860Context *context = GetValidGlobalContext();9861EVENT(context, GLWindowPos2dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9862(uintptr_t)v);98639864if (context)9865{9866std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9867bool isCallValid = (context->skipValidation() || ValidateWindowPos2dv(context, v));9868if (isCallValid)9869{9870context->windowPos2dv(v);9871}9872ANGLE_CAPTURE(WindowPos2dv, isCallValid, context, v);9873}9874else9875{9876GenerateContextLostErrorOnCurrentGlobalContext();9877}9878}98799880void GL_APIENTRY GL_WindowPos2f(GLfloat x, GLfloat y)9881{9882Context *context = GetValidGlobalContext();9883EVENT(context, GLWindowPos2f, "context = %d, x = %f, y = %f", CID(context), x, y);98849885if (context)9886{9887std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9888bool isCallValid = (context->skipValidation() || ValidateWindowPos2f(context, x, y));9889if (isCallValid)9890{9891context->windowPos2f(x, y);9892}9893ANGLE_CAPTURE(WindowPos2f, isCallValid, context, x, y);9894}9895else9896{9897GenerateContextLostErrorOnCurrentGlobalContext();9898}9899}99009901void GL_APIENTRY GL_WindowPos2fv(const GLfloat *v)9902{9903Context *context = GetValidGlobalContext();9904EVENT(context, GLWindowPos2fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9905(uintptr_t)v);99069907if (context)9908{9909std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9910bool isCallValid = (context->skipValidation() || ValidateWindowPos2fv(context, v));9911if (isCallValid)9912{9913context->windowPos2fv(v);9914}9915ANGLE_CAPTURE(WindowPos2fv, isCallValid, context, v);9916}9917else9918{9919GenerateContextLostErrorOnCurrentGlobalContext();9920}9921}99229923void GL_APIENTRY GL_WindowPos2i(GLint x, GLint y)9924{9925Context *context = GetValidGlobalContext();9926EVENT(context, GLWindowPos2i, "context = %d, x = %d, y = %d", CID(context), x, y);99279928if (context)9929{9930std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9931bool isCallValid = (context->skipValidation() || ValidateWindowPos2i(context, x, y));9932if (isCallValid)9933{9934context->windowPos2i(x, y);9935}9936ANGLE_CAPTURE(WindowPos2i, isCallValid, context, x, y);9937}9938else9939{9940GenerateContextLostErrorOnCurrentGlobalContext();9941}9942}99439944void GL_APIENTRY GL_WindowPos2iv(const GLint *v)9945{9946Context *context = GetValidGlobalContext();9947EVENT(context, GLWindowPos2iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9948(uintptr_t)v);99499950if (context)9951{9952std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9953bool isCallValid = (context->skipValidation() || ValidateWindowPos2iv(context, v));9954if (isCallValid)9955{9956context->windowPos2iv(v);9957}9958ANGLE_CAPTURE(WindowPos2iv, isCallValid, context, v);9959}9960else9961{9962GenerateContextLostErrorOnCurrentGlobalContext();9963}9964}99659966void GL_APIENTRY GL_WindowPos2s(GLshort x, GLshort y)9967{9968Context *context = GetValidGlobalContext();9969EVENT(context, GLWindowPos2s, "context = %d, x = %d, y = %d", CID(context), x, y);99709971if (context)9972{9973std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9974bool isCallValid = (context->skipValidation() || ValidateWindowPos2s(context, x, y));9975if (isCallValid)9976{9977context->windowPos2s(x, y);9978}9979ANGLE_CAPTURE(WindowPos2s, isCallValid, context, x, y);9980}9981else9982{9983GenerateContextLostErrorOnCurrentGlobalContext();9984}9985}99869987void GL_APIENTRY GL_WindowPos2sv(const GLshort *v)9988{9989Context *context = GetValidGlobalContext();9990EVENT(context, GLWindowPos2sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),9991(uintptr_t)v);99929993if (context)9994{9995std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);9996bool isCallValid = (context->skipValidation() || ValidateWindowPos2sv(context, v));9997if (isCallValid)9998{9999context->windowPos2sv(v);10000}10001ANGLE_CAPTURE(WindowPos2sv, isCallValid, context, v);10002}10003else10004{10005GenerateContextLostErrorOnCurrentGlobalContext();10006}10007}1000810009void GL_APIENTRY GL_WindowPos3d(GLdouble x, GLdouble y, GLdouble z)10010{10011Context *context = GetValidGlobalContext();10012EVENT(context, GLWindowPos3d, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);1001310014if (context)10015{10016std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10017bool isCallValid = (context->skipValidation() || ValidateWindowPos3d(context, x, y, z));10018if (isCallValid)10019{10020context->windowPos3d(x, y, z);10021}10022ANGLE_CAPTURE(WindowPos3d, isCallValid, context, x, y, z);10023}10024else10025{10026GenerateContextLostErrorOnCurrentGlobalContext();10027}10028}1002910030void GL_APIENTRY GL_WindowPos3dv(const GLdouble *v)10031{10032Context *context = GetValidGlobalContext();10033EVENT(context, GLWindowPos3dv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),10034(uintptr_t)v);1003510036if (context)10037{10038std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10039bool isCallValid = (context->skipValidation() || ValidateWindowPos3dv(context, v));10040if (isCallValid)10041{10042context->windowPos3dv(v);10043}10044ANGLE_CAPTURE(WindowPos3dv, isCallValid, context, v);10045}10046else10047{10048GenerateContextLostErrorOnCurrentGlobalContext();10049}10050}1005110052void GL_APIENTRY GL_WindowPos3f(GLfloat x, GLfloat y, GLfloat z)10053{10054Context *context = GetValidGlobalContext();10055EVENT(context, GLWindowPos3f, "context = %d, x = %f, y = %f, z = %f", CID(context), x, y, z);1005610057if (context)10058{10059std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10060bool isCallValid = (context->skipValidation() || ValidateWindowPos3f(context, x, y, z));10061if (isCallValid)10062{10063context->windowPos3f(x, y, z);10064}10065ANGLE_CAPTURE(WindowPos3f, isCallValid, context, x, y, z);10066}10067else10068{10069GenerateContextLostErrorOnCurrentGlobalContext();10070}10071}1007210073void GL_APIENTRY GL_WindowPos3fv(const GLfloat *v)10074{10075Context *context = GetValidGlobalContext();10076EVENT(context, GLWindowPos3fv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),10077(uintptr_t)v);1007810079if (context)10080{10081std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10082bool isCallValid = (context->skipValidation() || ValidateWindowPos3fv(context, v));10083if (isCallValid)10084{10085context->windowPos3fv(v);10086}10087ANGLE_CAPTURE(WindowPos3fv, isCallValid, context, v);10088}10089else10090{10091GenerateContextLostErrorOnCurrentGlobalContext();10092}10093}1009410095void GL_APIENTRY GL_WindowPos3i(GLint x, GLint y, GLint z)10096{10097Context *context = GetValidGlobalContext();10098EVENT(context, GLWindowPos3i, "context = %d, x = %d, y = %d, z = %d", CID(context), x, y, z);1009910100if (context)10101{10102std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10103bool isCallValid = (context->skipValidation() || ValidateWindowPos3i(context, x, y, z));10104if (isCallValid)10105{10106context->windowPos3i(x, y, z);10107}10108ANGLE_CAPTURE(WindowPos3i, isCallValid, context, x, y, z);10109}10110else10111{10112GenerateContextLostErrorOnCurrentGlobalContext();10113}10114}1011510116void GL_APIENTRY GL_WindowPos3iv(const GLint *v)10117{10118Context *context = GetValidGlobalContext();10119EVENT(context, GLWindowPos3iv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),10120(uintptr_t)v);1012110122if (context)10123{10124std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10125bool isCallValid = (context->skipValidation() || ValidateWindowPos3iv(context, v));10126if (isCallValid)10127{10128context->windowPos3iv(v);10129}10130ANGLE_CAPTURE(WindowPos3iv, isCallValid, context, v);10131}10132else10133{10134GenerateContextLostErrorOnCurrentGlobalContext();10135}10136}1013710138void GL_APIENTRY GL_WindowPos3s(GLshort x, GLshort y, GLshort z)10139{10140Context *context = GetValidGlobalContext();10141EVENT(context, GLWindowPos3s, "context = %d, x = %d, y = %d, z = %d", CID(context), x, y, z);1014210143if (context)10144{10145std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10146bool isCallValid = (context->skipValidation() || ValidateWindowPos3s(context, x, y, z));10147if (isCallValid)10148{10149context->windowPos3s(x, y, z);10150}10151ANGLE_CAPTURE(WindowPos3s, isCallValid, context, x, y, z);10152}10153else10154{10155GenerateContextLostErrorOnCurrentGlobalContext();10156}10157}1015810159void GL_APIENTRY GL_WindowPos3sv(const GLshort *v)10160{10161Context *context = GetValidGlobalContext();10162EVENT(context, GLWindowPos3sv, "context = %d, v = 0x%016" PRIxPTR "", CID(context),10163(uintptr_t)v);1016410165if (context)10166{10167std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10168bool isCallValid = (context->skipValidation() || ValidateWindowPos3sv(context, v));10169if (isCallValid)10170{10171context->windowPos3sv(v);10172}10173ANGLE_CAPTURE(WindowPos3sv, isCallValid, context, v);10174}10175else10176{10177GenerateContextLostErrorOnCurrentGlobalContext();10178}10179}1018010181// GL 1.510182void GL_APIENTRY GL_BeginQuery(GLenum target, GLuint id)10183{10184Context *context = GetValidGlobalContext();10185EVENT(context, GLBeginQuery, "context = %d, target = %s, id = %u", CID(context),10186GLenumToString(GLenumGroup::QueryTarget, target), id);1018710188if (context)10189{10190QueryType targetPacked = PackParam<QueryType>(target);10191QueryID idPacked = PackParam<QueryID>(id);10192std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10193bool isCallValid =10194(context->skipValidation() || ValidateBeginQuery(context, targetPacked, idPacked));10195if (isCallValid)10196{10197context->beginQuery(targetPacked, idPacked);10198}10199ANGLE_CAPTURE(BeginQuery, isCallValid, context, targetPacked, idPacked);10200}10201else10202{10203GenerateContextLostErrorOnCurrentGlobalContext();10204}10205}1020610207void GL_APIENTRY GL_BindBuffer(GLenum target, GLuint buffer)10208{10209Context *context = GetValidGlobalContext();10210EVENT(context, GLBindBuffer, "context = %d, target = %s, buffer = %u", CID(context),10211GLenumToString(GLenumGroup::BufferTargetARB, target), buffer);1021210213if (context)10214{10215BufferBinding targetPacked = PackParam<BufferBinding>(target);10216BufferID bufferPacked = PackParam<BufferID>(buffer);10217std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10218bool isCallValid =10219(context->skipValidation() || ValidateBindBuffer(context, targetPacked, bufferPacked));10220if (isCallValid)10221{10222context->bindBuffer(targetPacked, bufferPacked);10223}10224ANGLE_CAPTURE(BindBuffer, isCallValid, context, targetPacked, bufferPacked);10225}10226else10227{10228GenerateContextLostErrorOnCurrentGlobalContext();10229}10230}1023110232void GL_APIENTRY GL_BufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)10233{10234Context *context = GetValidGlobalContext();10235EVENT(context, GLBufferData,10236"context = %d, target = %s, size = %llu, data = 0x%016" PRIxPTR ", usage = %s",10237CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target),10238static_cast<unsigned long long>(size), (uintptr_t)data,10239GLenumToString(GLenumGroup::BufferUsageARB, usage));1024010241if (context)10242{10243BufferBinding targetPacked = PackParam<BufferBinding>(target);10244BufferUsage usagePacked = PackParam<BufferUsage>(usage);10245std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10246bool isCallValid = (context->skipValidation() ||10247ValidateBufferData(context, targetPacked, size, data, usagePacked));10248if (isCallValid)10249{10250context->bufferData(targetPacked, size, data, usagePacked);10251}10252ANGLE_CAPTURE(BufferData, isCallValid, context, targetPacked, size, data, usagePacked);10253}10254else10255{10256GenerateContextLostErrorOnCurrentGlobalContext();10257}10258}1025910260void GL_APIENTRY GL_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data)10261{10262Context *context = GetValidGlobalContext();10263EVENT(context, GLBufferSubData,10264"context = %d, target = %s, offset = %llu, size = %llu, data = 0x%016" PRIxPTR "",10265CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target),10266static_cast<unsigned long long>(offset), static_cast<unsigned long long>(size),10267(uintptr_t)data);1026810269if (context)10270{10271BufferBinding targetPacked = PackParam<BufferBinding>(target);10272std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10273bool isCallValid = (context->skipValidation() ||10274ValidateBufferSubData(context, targetPacked, offset, size, data));10275if (isCallValid)10276{10277context->bufferSubData(targetPacked, offset, size, data);10278}10279ANGLE_CAPTURE(BufferSubData, isCallValid, context, targetPacked, offset, size, data);10280}10281else10282{10283GenerateContextLostErrorOnCurrentGlobalContext();10284}10285}1028610287void GL_APIENTRY GL_DeleteBuffers(GLsizei n, const GLuint *buffers)10288{10289Context *context = GetValidGlobalContext();10290EVENT(context, GLDeleteBuffers, "context = %d, n = %d, buffers = 0x%016" PRIxPTR "",10291CID(context), n, (uintptr_t)buffers);1029210293if (context)10294{10295const BufferID *buffersPacked = PackParam<const BufferID *>(buffers);10296std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10297bool isCallValid =10298(context->skipValidation() || ValidateDeleteBuffers(context, n, buffersPacked));10299if (isCallValid)10300{10301context->deleteBuffers(n, buffersPacked);10302}10303ANGLE_CAPTURE(DeleteBuffers, isCallValid, context, n, buffersPacked);10304}10305else10306{10307GenerateContextLostErrorOnCurrentGlobalContext();10308}10309}1031010311void GL_APIENTRY GL_DeleteQueries(GLsizei n, const GLuint *ids)10312{10313Context *context = GetValidGlobalContext();10314EVENT(context, GLDeleteQueries, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", CID(context),10315n, (uintptr_t)ids);1031610317if (context)10318{10319const QueryID *idsPacked = PackParam<const QueryID *>(ids);10320std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10321bool isCallValid =10322(context->skipValidation() || ValidateDeleteQueries(context, n, idsPacked));10323if (isCallValid)10324{10325context->deleteQueries(n, idsPacked);10326}10327ANGLE_CAPTURE(DeleteQueries, isCallValid, context, n, idsPacked);10328}10329else10330{10331GenerateContextLostErrorOnCurrentGlobalContext();10332}10333}1033410335void GL_APIENTRY GL_EndQuery(GLenum target)10336{10337Context *context = GetValidGlobalContext();10338EVENT(context, GLEndQuery, "context = %d, target = %s", CID(context),10339GLenumToString(GLenumGroup::QueryTarget, target));1034010341if (context)10342{10343QueryType targetPacked = PackParam<QueryType>(target);10344std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10345bool isCallValid = (context->skipValidation() || ValidateEndQuery(context, targetPacked));10346if (isCallValid)10347{10348context->endQuery(targetPacked);10349}10350ANGLE_CAPTURE(EndQuery, isCallValid, context, targetPacked);10351}10352else10353{10354GenerateContextLostErrorOnCurrentGlobalContext();10355}10356}1035710358void GL_APIENTRY GL_GenBuffers(GLsizei n, GLuint *buffers)10359{10360Context *context = GetValidGlobalContext();10361EVENT(context, GLGenBuffers, "context = %d, n = %d, buffers = 0x%016" PRIxPTR "", CID(context),10362n, (uintptr_t)buffers);1036310364if (context)10365{10366BufferID *buffersPacked = PackParam<BufferID *>(buffers);10367std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10368bool isCallValid =10369(context->skipValidation() || ValidateGenBuffers(context, n, buffersPacked));10370if (isCallValid)10371{10372context->genBuffers(n, buffersPacked);10373}10374ANGLE_CAPTURE(GenBuffers, isCallValid, context, n, buffersPacked);10375}10376else10377{10378GenerateContextLostErrorOnCurrentGlobalContext();10379}10380}1038110382void GL_APIENTRY GL_GenQueries(GLsizei n, GLuint *ids)10383{10384Context *context = GetValidGlobalContext();10385EVENT(context, GLGenQueries, "context = %d, n = %d, ids = 0x%016" PRIxPTR "", CID(context), n,10386(uintptr_t)ids);1038710388if (context)10389{10390QueryID *idsPacked = PackParam<QueryID *>(ids);10391std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10392bool isCallValid = (context->skipValidation() || ValidateGenQueries(context, n, idsPacked));10393if (isCallValid)10394{10395context->genQueries(n, idsPacked);10396}10397ANGLE_CAPTURE(GenQueries, isCallValid, context, n, idsPacked);10398}10399else10400{10401GenerateContextLostErrorOnCurrentGlobalContext();10402}10403}1040410405void GL_APIENTRY GL_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params)10406{10407Context *context = GetValidGlobalContext();10408EVENT(context, GLGetBufferParameteriv,10409"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),10410GLenumToString(GLenumGroup::BufferTargetARB, target),10411GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params);1041210413if (context)10414{10415BufferBinding targetPacked = PackParam<BufferBinding>(target);10416std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10417bool isCallValid = (context->skipValidation() ||10418ValidateGetBufferParameteriv(context, targetPacked, pname, params));10419if (isCallValid)10420{10421context->getBufferParameteriv(targetPacked, pname, params);10422}10423ANGLE_CAPTURE(GetBufferParameteriv, isCallValid, context, targetPacked, pname, params);10424}10425else10426{10427GenerateContextLostErrorOnCurrentGlobalContext();10428}10429}1043010431void GL_APIENTRY GL_GetBufferPointerv(GLenum target, GLenum pname, void **params)10432{10433Context *context = GetValidGlobalContext();10434EVENT(context, GLGetBufferPointerv,10435"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),10436GLenumToString(GLenumGroup::BufferTargetARB, target),10437GLenumToString(GLenumGroup::DefaultGroup, pname), (uintptr_t)params);1043810439if (context)10440{10441BufferBinding targetPacked = PackParam<BufferBinding>(target);10442std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10443bool isCallValid = (context->skipValidation() ||10444ValidateGetBufferPointerv(context, targetPacked, pname, params));10445if (isCallValid)10446{10447context->getBufferPointerv(targetPacked, pname, params);10448}10449ANGLE_CAPTURE(GetBufferPointerv, isCallValid, context, targetPacked, pname, params);10450}10451else10452{10453GenerateContextLostErrorOnCurrentGlobalContext();10454}10455}1045610457void GL_APIENTRY GL_GetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data)10458{10459Context *context = GetValidGlobalContext();10460EVENT(context, GLGetBufferSubData,10461"context = %d, target = %s, offset = %llu, size = %llu, data = 0x%016" PRIxPTR "",10462CID(context), GLenumToString(GLenumGroup::BufferTargetARB, target),10463static_cast<unsigned long long>(offset), static_cast<unsigned long long>(size),10464(uintptr_t)data);1046510466if (context)10467{10468std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10469bool isCallValid = (context->skipValidation() ||10470ValidateGetBufferSubData(context, target, offset, size, data));10471if (isCallValid)10472{10473context->getBufferSubData(target, offset, size, data);10474}10475ANGLE_CAPTURE(GetBufferSubData, isCallValid, context, target, offset, size, data);10476}10477else10478{10479GenerateContextLostErrorOnCurrentGlobalContext();10480}10481}1048210483void GL_APIENTRY GL_GetQueryObjectiv(GLuint id, GLenum pname, GLint *params)10484{10485Context *context = GetGlobalContext();10486EVENT(context, GLGetQueryObjectiv,10487"context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id,10488GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params);1048910490if (context)10491{10492QueryID idPacked = PackParam<QueryID>(id);10493std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10494bool isCallValid = (context->skipValidation() ||10495ValidateGetQueryObjectiv(context, idPacked, pname, params));10496if (isCallValid)10497{10498context->getQueryObjectiv(idPacked, pname, params);10499}10500ANGLE_CAPTURE(GetQueryObjectiv, isCallValid, context, idPacked, pname, params);10501}10502else10503{}10504}1050510506void GL_APIENTRY GL_GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)10507{10508Context *context = GetValidGlobalContext();10509EVENT(context, GLGetQueryObjectuiv,10510"context = %d, id = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context), id,10511GLenumToString(GLenumGroup::QueryObjectParameterName, pname), (uintptr_t)params);1051210513if (context)10514{10515QueryID idPacked = PackParam<QueryID>(id);10516std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10517bool isCallValid = (context->skipValidation() ||10518ValidateGetQueryObjectuiv(context, idPacked, pname, params));10519if (isCallValid)10520{10521context->getQueryObjectuiv(idPacked, pname, params);10522}10523ANGLE_CAPTURE(GetQueryObjectuiv, isCallValid, context, idPacked, pname, params);10524}10525else10526{10527GenerateContextLostErrorOnCurrentGlobalContext();10528}10529}1053010531void GL_APIENTRY GL_GetQueryiv(GLenum target, GLenum pname, GLint *params)10532{10533Context *context = GetValidGlobalContext();10534EVENT(context, GLGetQueryiv,10535"context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),10536GLenumToString(GLenumGroup::QueryTarget, target),10537GLenumToString(GLenumGroup::QueryParameterName, pname), (uintptr_t)params);1053810539if (context)10540{10541QueryType targetPacked = PackParam<QueryType>(target);10542std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10543bool isCallValid =10544(context->skipValidation() || ValidateGetQueryiv(context, targetPacked, pname, params));10545if (isCallValid)10546{10547context->getQueryiv(targetPacked, pname, params);10548}10549ANGLE_CAPTURE(GetQueryiv, isCallValid, context, targetPacked, pname, params);10550}10551else10552{10553GenerateContextLostErrorOnCurrentGlobalContext();10554}10555}1055610557GLboolean GL_APIENTRY GL_IsBuffer(GLuint buffer)10558{10559Context *context = GetValidGlobalContext();10560EVENT(context, GLIsBuffer, "context = %d, buffer = %u", CID(context), buffer);1056110562GLboolean returnValue;10563if (context)10564{10565BufferID bufferPacked = PackParam<BufferID>(buffer);10566std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10567bool isCallValid = (context->skipValidation() || ValidateIsBuffer(context, bufferPacked));10568if (isCallValid)10569{10570returnValue = context->isBuffer(bufferPacked);10571}10572else10573{10574returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsBuffer, GLboolean>();10575}10576ANGLE_CAPTURE(IsBuffer, isCallValid, context, bufferPacked, returnValue);10577}10578else10579{10580GenerateContextLostErrorOnCurrentGlobalContext();10581returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsBuffer, GLboolean>();10582}10583return returnValue;10584}1058510586GLboolean GL_APIENTRY GL_IsQuery(GLuint id)10587{10588Context *context = GetValidGlobalContext();10589EVENT(context, GLIsQuery, "context = %d, id = %u", CID(context), id);1059010591GLboolean returnValue;10592if (context)10593{10594QueryID idPacked = PackParam<QueryID>(id);10595std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10596bool isCallValid = (context->skipValidation() || ValidateIsQuery(context, idPacked));10597if (isCallValid)10598{10599returnValue = context->isQuery(idPacked);10600}10601else10602{10603returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsQuery, GLboolean>();10604}10605ANGLE_CAPTURE(IsQuery, isCallValid, context, idPacked, returnValue);10606}10607else10608{10609GenerateContextLostErrorOnCurrentGlobalContext();10610returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsQuery, GLboolean>();10611}10612return returnValue;10613}1061410615void *GL_APIENTRY GL_MapBuffer(GLenum target, GLenum access)10616{10617Context *context = GetValidGlobalContext();10618EVENT(context, GLMapBuffer, "context = %d, target = %s, access = %s", CID(context),10619GLenumToString(GLenumGroup::BufferTargetARB, target),10620GLenumToString(GLenumGroup::BufferAccessARB, access));1062110622void *returnValue;10623if (context)10624{10625BufferBinding targetPacked = PackParam<BufferBinding>(target);10626std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10627bool isCallValid =10628(context->skipValidation() || ValidateMapBuffer(context, targetPacked, access));10629if (isCallValid)10630{10631returnValue = context->mapBuffer(targetPacked, access);10632}10633else10634{10635returnValue = GetDefaultReturnValue<angle::EntryPoint::GLMapBuffer, void *>();10636}10637ANGLE_CAPTURE(MapBuffer, isCallValid, context, targetPacked, access, returnValue);10638}10639else10640{10641GenerateContextLostErrorOnCurrentGlobalContext();10642returnValue = GetDefaultReturnValue<angle::EntryPoint::GLMapBuffer, void *>();10643}10644return returnValue;10645}1064610647GLboolean GL_APIENTRY GL_UnmapBuffer(GLenum target)10648{10649Context *context = GetValidGlobalContext();10650EVENT(context, GLUnmapBuffer, "context = %d, target = %s", CID(context),10651GLenumToString(GLenumGroup::BufferTargetARB, target));1065210653GLboolean returnValue;10654if (context)10655{10656BufferBinding targetPacked = PackParam<BufferBinding>(target);10657std::unique_lock<angle::GlobalMutex> shareContextLock = GetContextLock(context);10658bool isCallValid =10659(context->skipValidation() || ValidateUnmapBuffer(context, targetPacked));10660if (isCallValid)10661{10662returnValue = context->unmapBuffer(targetPacked);10663}10664else10665{10666returnValue = GetDefaultReturnValue<angle::EntryPoint::GLUnmapBuffer, GLboolean>();10667}10668ANGLE_CAPTURE(UnmapBuffer, isCallValid, context, targetPacked, returnValue);10669}10670else10671{10672GenerateContextLostErrorOnCurrentGlobalContext();10673returnValue = GetDefaultReturnValue<angle::EntryPoint::GLUnmapBuffer, GLboolean>();10674}10675return returnValue;10676}1067710678} // extern "C"106791068010681