tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

entry_points_gles_3_2_autogen.cpp (51897B)


      1 // GENERATED FILE - DO NOT EDIT.
      2 // Generated by generate_entry_points.py using data from gl.xml.
      3 //
      4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
      5 // Use of this source code is governed by a BSD-style license that can be
      6 // found in the LICENSE file.
      7 //
      8 // entry_points_gles_3_2_autogen.cpp:
      9 //   Defines the GLES 3.2 entry points.
     10 
     11 #include "libGLESv2/entry_points_gles_3_2_autogen.h"
     12 
     13 #include "common/entry_points_enum_autogen.h"
     14 #include "libANGLE/Context.h"
     15 #include "libANGLE/Context.inl.h"
     16 #include "libANGLE/capture/capture_gles_3_2_autogen.h"
     17 #include "libANGLE/capture/gl_enum_utils.h"
     18 #include "libANGLE/entry_points_utils.h"
     19 #include "libANGLE/validationES32.h"
     20 #include "libGLESv2/global_state.h"
     21 
     22 using namespace gl;
     23 
     24 extern "C" {
     25 void GL_APIENTRY GL_BlendBarrier()
     26 {
     27    Context *context = GetValidGlobalContext();
     28    EVENT(context, GLBlendBarrier, "context = %d", CID(context));
     29 
     30    if (context)
     31    {
     32        SCOPED_SHARE_CONTEXT_LOCK(context);
     33        bool isCallValid = (context->skipValidation() ||
     34                            ValidateBlendBarrier(context, angle::EntryPoint::GLBlendBarrier));
     35        if (isCallValid)
     36        {
     37            context->blendBarrier();
     38        }
     39        ANGLE_CAPTURE_GL(BlendBarrier, isCallValid, context);
     40    }
     41    else
     42    {
     43        GenerateContextLostErrorOnCurrentGlobalContext();
     44    }
     45 }
     46 
     47 void GL_APIENTRY GL_BlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
     48 {
     49    Context *context = GetValidGlobalContext();
     50    EVENT(context, GLBlendEquationSeparatei, "context = %d, buf = %u, modeRGB = %s, modeAlpha = %s",
     51          CID(context), buf, GLenumToString(GLESEnum::BlendEquationModeEXT, modeRGB),
     52          GLenumToString(GLESEnum::BlendEquationModeEXT, modeAlpha));
     53 
     54    if (context)
     55    {
     56        SCOPED_SHARE_CONTEXT_LOCK(context);
     57        bool isCallValid =
     58            (context->skipValidation() ||
     59             ValidateBlendEquationSeparatei(context, angle::EntryPoint::GLBlendEquationSeparatei,
     60                                            buf, modeRGB, modeAlpha));
     61        if (isCallValid)
     62        {
     63            context->blendEquationSeparatei(buf, modeRGB, modeAlpha);
     64        }
     65        ANGLE_CAPTURE_GL(BlendEquationSeparatei, isCallValid, context, buf, modeRGB, modeAlpha);
     66    }
     67    else
     68    {
     69        GenerateContextLostErrorOnCurrentGlobalContext();
     70    }
     71 }
     72 
     73 void GL_APIENTRY GL_BlendEquationi(GLuint buf, GLenum mode)
     74 {
     75    Context *context = GetValidGlobalContext();
     76    EVENT(context, GLBlendEquationi, "context = %d, buf = %u, mode = %s", CID(context), buf,
     77          GLenumToString(GLESEnum::BlendEquationModeEXT, mode));
     78 
     79    if (context)
     80    {
     81        SCOPED_SHARE_CONTEXT_LOCK(context);
     82        bool isCallValid =
     83            (context->skipValidation() ||
     84             ValidateBlendEquationi(context, angle::EntryPoint::GLBlendEquationi, buf, mode));
     85        if (isCallValid)
     86        {
     87            context->blendEquationi(buf, mode);
     88        }
     89        ANGLE_CAPTURE_GL(BlendEquationi, isCallValid, context, buf, mode);
     90    }
     91    else
     92    {
     93        GenerateContextLostErrorOnCurrentGlobalContext();
     94    }
     95 }
     96 
     97 void GL_APIENTRY
     98 GL_BlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
     99 {
    100    Context *context = GetValidGlobalContext();
    101    EVENT(context, GLBlendFuncSeparatei,
    102          "context = %d, buf = %u, srcRGB = %s, dstRGB = %s, srcAlpha = %s, dstAlpha = %s",
    103          CID(context), buf, GLenumToString(GLESEnum::BlendingFactor, srcRGB),
    104          GLenumToString(GLESEnum::BlendingFactor, dstRGB),
    105          GLenumToString(GLESEnum::BlendingFactor, srcAlpha),
    106          GLenumToString(GLESEnum::BlendingFactor, dstAlpha));
    107 
    108    if (context)
    109    {
    110        SCOPED_SHARE_CONTEXT_LOCK(context);
    111        bool isCallValid =
    112            (context->skipValidation() ||
    113             ValidateBlendFuncSeparatei(context, angle::EntryPoint::GLBlendFuncSeparatei, buf,
    114                                        srcRGB, dstRGB, srcAlpha, dstAlpha));
    115        if (isCallValid)
    116        {
    117            context->blendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
    118        }
    119        ANGLE_CAPTURE_GL(BlendFuncSeparatei, isCallValid, context, buf, srcRGB, dstRGB, srcAlpha,
    120                         dstAlpha);
    121    }
    122    else
    123    {
    124        GenerateContextLostErrorOnCurrentGlobalContext();
    125    }
    126 }
    127 
    128 void GL_APIENTRY GL_BlendFunci(GLuint buf, GLenum src, GLenum dst)
    129 {
    130    Context *context = GetValidGlobalContext();
    131    EVENT(context, GLBlendFunci, "context = %d, buf = %u, src = %s, dst = %s", CID(context), buf,
    132          GLenumToString(GLESEnum::BlendingFactor, src),
    133          GLenumToString(GLESEnum::BlendingFactor, dst));
    134 
    135    if (context)
    136    {
    137        SCOPED_SHARE_CONTEXT_LOCK(context);
    138        bool isCallValid =
    139            (context->skipValidation() ||
    140             ValidateBlendFunci(context, angle::EntryPoint::GLBlendFunci, buf, src, dst));
    141        if (isCallValid)
    142        {
    143            context->blendFunci(buf, src, dst);
    144        }
    145        ANGLE_CAPTURE_GL(BlendFunci, isCallValid, context, buf, src, dst);
    146    }
    147    else
    148    {
    149        GenerateContextLostErrorOnCurrentGlobalContext();
    150    }
    151 }
    152 
    153 void GL_APIENTRY GL_ColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
    154 {
    155    Context *context = GetValidGlobalContext();
    156    EVENT(context, GLColorMaski, "context = %d, index = %u, r = %s, g = %s, b = %s, a = %s",
    157          CID(context), index, GLbooleanToString(r), GLbooleanToString(g), GLbooleanToString(b),
    158          GLbooleanToString(a));
    159 
    160    if (context)
    161    {
    162        SCOPED_SHARE_CONTEXT_LOCK(context);
    163        bool isCallValid =
    164            (context->skipValidation() ||
    165             ValidateColorMaski(context, angle::EntryPoint::GLColorMaski, index, r, g, b, a));
    166        if (isCallValid)
    167        {
    168            context->colorMaski(index, r, g, b, a);
    169        }
    170        ANGLE_CAPTURE_GL(ColorMaski, isCallValid, context, index, r, g, b, a);
    171    }
    172    else
    173    {
    174        GenerateContextLostErrorOnCurrentGlobalContext();
    175    }
    176 }
    177 
    178 void GL_APIENTRY GL_CopyImageSubData(GLuint srcName,
    179                                     GLenum srcTarget,
    180                                     GLint srcLevel,
    181                                     GLint srcX,
    182                                     GLint srcY,
    183                                     GLint srcZ,
    184                                     GLuint dstName,
    185                                     GLenum dstTarget,
    186                                     GLint dstLevel,
    187                                     GLint dstX,
    188                                     GLint dstY,
    189                                     GLint dstZ,
    190                                     GLsizei srcWidth,
    191                                     GLsizei srcHeight,
    192                                     GLsizei srcDepth)
    193 {
    194    Context *context = GetValidGlobalContext();
    195    EVENT(context, GLCopyImageSubData,
    196          "context = %d, srcName = %u, srcTarget = %s, srcLevel = %d, srcX = %d, srcY = %d, srcZ = "
    197          "%d, dstName = %u, dstTarget = %s, dstLevel = %d, dstX = %d, dstY = %d, dstZ = %d, "
    198          "srcWidth = %d, srcHeight = %d, srcDepth = %d",
    199          CID(context), srcName, GLenumToString(GLESEnum::CopyImageSubDataTarget, srcTarget),
    200          srcLevel, srcX, srcY, srcZ, dstName,
    201          GLenumToString(GLESEnum::CopyImageSubDataTarget, dstTarget), dstLevel, dstX, dstY, dstZ,
    202          srcWidth, srcHeight, srcDepth);
    203 
    204    if (context)
    205    {
    206        SCOPED_SHARE_CONTEXT_LOCK(context);
    207        bool isCallValid =
    208            (context->skipValidation() ||
    209             ValidateCopyImageSubData(context, angle::EntryPoint::GLCopyImageSubData, srcName,
    210                                      srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget,
    211                                      dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth));
    212        if (isCallValid)
    213        {
    214            context->copyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName,
    215                                      dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight,
    216                                      srcDepth);
    217        }
    218        ANGLE_CAPTURE_GL(CopyImageSubData, isCallValid, context, srcName, srcTarget, srcLevel, srcX,
    219                         srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth,
    220                         srcHeight, srcDepth);
    221    }
    222    else
    223    {
    224        GenerateContextLostErrorOnCurrentGlobalContext();
    225    }
    226 }
    227 
    228 void GL_APIENTRY GL_DebugMessageCallback(GLDEBUGPROC callback, const void *userParam)
    229 {
    230    Context *context = GetValidGlobalContext();
    231    EVENT(context, GLDebugMessageCallback,
    232          "context = %d, callback = 0x%016" PRIxPTR ", userParam = 0x%016" PRIxPTR "", CID(context),
    233          (uintptr_t)callback, (uintptr_t)userParam);
    234 
    235    if (context)
    236    {
    237        SCOPED_SHARE_CONTEXT_LOCK(context);
    238        bool isCallValid =
    239            (context->skipValidation() ||
    240             ValidateDebugMessageCallback(context, angle::EntryPoint::GLDebugMessageCallback,
    241                                          callback, userParam));
    242        if (isCallValid)
    243        {
    244            context->debugMessageCallback(callback, userParam);
    245        }
    246        ANGLE_CAPTURE_GL(DebugMessageCallback, isCallValid, context, callback, userParam);
    247    }
    248    else
    249    {
    250        GenerateContextLostErrorOnCurrentGlobalContext();
    251    }
    252 }
    253 
    254 void GL_APIENTRY GL_DebugMessageControl(GLenum source,
    255                                        GLenum type,
    256                                        GLenum severity,
    257                                        GLsizei count,
    258                                        const GLuint *ids,
    259                                        GLboolean enabled)
    260 {
    261    Context *context = GetValidGlobalContext();
    262    EVENT(context, GLDebugMessageControl,
    263          "context = %d, source = %s, type = %s, severity = %s, count = %d, ids = 0x%016" PRIxPTR
    264          ", enabled = %s",
    265          CID(context), GLenumToString(GLESEnum::DebugSource, source),
    266          GLenumToString(GLESEnum::DebugType, type),
    267          GLenumToString(GLESEnum::DebugSeverity, severity), count, (uintptr_t)ids,
    268          GLbooleanToString(enabled));
    269 
    270    if (context)
    271    {
    272        SCOPED_SHARE_CONTEXT_LOCK(context);
    273        bool isCallValid =
    274            (context->skipValidation() ||
    275             ValidateDebugMessageControl(context, angle::EntryPoint::GLDebugMessageControl, source,
    276                                         type, severity, count, ids, enabled));
    277        if (isCallValid)
    278        {
    279            context->debugMessageControl(source, type, severity, count, ids, enabled);
    280        }
    281        ANGLE_CAPTURE_GL(DebugMessageControl, isCallValid, context, source, type, severity, count,
    282                         ids, enabled);
    283    }
    284    else
    285    {
    286        GenerateContextLostErrorOnCurrentGlobalContext();
    287    }
    288 }
    289 
    290 void GL_APIENTRY GL_DebugMessageInsert(GLenum source,
    291                                       GLenum type,
    292                                       GLuint id,
    293                                       GLenum severity,
    294                                       GLsizei length,
    295                                       const GLchar *buf)
    296 {
    297    Context *context = GetValidGlobalContext();
    298    EVENT(context, GLDebugMessageInsert,
    299          "context = %d, source = %s, type = %s, id = %u, severity = %s, length = %d, buf = "
    300          "0x%016" PRIxPTR "",
    301          CID(context), GLenumToString(GLESEnum::DebugSource, source),
    302          GLenumToString(GLESEnum::DebugType, type), id,
    303          GLenumToString(GLESEnum::DebugSeverity, severity), length, (uintptr_t)buf);
    304 
    305    if (context)
    306    {
    307        SCOPED_SHARE_CONTEXT_LOCK(context);
    308        bool isCallValid =
    309            (context->skipValidation() ||
    310             ValidateDebugMessageInsert(context, angle::EntryPoint::GLDebugMessageInsert, source,
    311                                        type, id, severity, length, buf));
    312        if (isCallValid)
    313        {
    314            context->debugMessageInsert(source, type, id, severity, length, buf);
    315        }
    316        ANGLE_CAPTURE_GL(DebugMessageInsert, isCallValid, context, source, type, id, severity,
    317                         length, buf);
    318    }
    319    else
    320    {
    321        GenerateContextLostErrorOnCurrentGlobalContext();
    322    }
    323 }
    324 
    325 void GL_APIENTRY GL_Disablei(GLenum target, GLuint index)
    326 {
    327    Context *context = GetValidGlobalContext();
    328    EVENT(context, GLDisablei, "context = %d, target = %s, index = %u", CID(context),
    329          GLenumToString(GLESEnum::EnableCap, target), index);
    330 
    331    if (context)
    332    {
    333        SCOPED_SHARE_CONTEXT_LOCK(context);
    334        bool isCallValid =
    335            (context->skipValidation() ||
    336             ValidateDisablei(context, angle::EntryPoint::GLDisablei, target, index));
    337        if (isCallValid)
    338        {
    339            context->disablei(target, index);
    340        }
    341        ANGLE_CAPTURE_GL(Disablei, isCallValid, context, target, index);
    342    }
    343    else
    344    {
    345        GenerateContextLostErrorOnCurrentGlobalContext();
    346    }
    347 }
    348 
    349 void GL_APIENTRY GL_DrawElementsBaseVertex(GLenum mode,
    350                                           GLsizei count,
    351                                           GLenum type,
    352                                           const void *indices,
    353                                           GLint basevertex)
    354 {
    355    Context *context = GetValidGlobalContext();
    356    EVENT(context, GLDrawElementsBaseVertex,
    357          "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR
    358          ", basevertex = %d",
    359          CID(context), GLenumToString(GLESEnum::PrimitiveType, mode), count,
    360          GLenumToString(GLESEnum::DrawElementsType, type), (uintptr_t)indices, basevertex);
    361 
    362    if (context)
    363    {
    364        PrimitiveMode modePacked    = PackParam<PrimitiveMode>(mode);
    365        DrawElementsType typePacked = PackParam<DrawElementsType>(type);
    366        SCOPED_SHARE_CONTEXT_LOCK(context);
    367        bool isCallValid =
    368            (context->skipValidation() ||
    369             ValidateDrawElementsBaseVertex(context, angle::EntryPoint::GLDrawElementsBaseVertex,
    370                                            modePacked, count, typePacked, indices, basevertex));
    371        if (isCallValid)
    372        {
    373            context->drawElementsBaseVertex(modePacked, count, typePacked, indices, basevertex);
    374        }
    375        ANGLE_CAPTURE_GL(DrawElementsBaseVertex, isCallValid, context, modePacked, count,
    376                         typePacked, indices, basevertex);
    377    }
    378    else
    379    {
    380        GenerateContextLostErrorOnCurrentGlobalContext();
    381    }
    382 }
    383 
    384 void GL_APIENTRY GL_DrawElementsInstancedBaseVertex(GLenum mode,
    385                                                    GLsizei count,
    386                                                    GLenum type,
    387                                                    const void *indices,
    388                                                    GLsizei instancecount,
    389                                                    GLint basevertex)
    390 {
    391    Context *context = GetValidGlobalContext();
    392    EVENT(context, GLDrawElementsInstancedBaseVertex,
    393          "context = %d, mode = %s, count = %d, type = %s, indices = 0x%016" PRIxPTR
    394          ", instancecount = %d, basevertex = %d",
    395          CID(context), GLenumToString(GLESEnum::PrimitiveType, mode), count,
    396          GLenumToString(GLESEnum::DrawElementsType, type), (uintptr_t)indices, instancecount,
    397          basevertex);
    398 
    399    if (context)
    400    {
    401        PrimitiveMode modePacked    = PackParam<PrimitiveMode>(mode);
    402        DrawElementsType typePacked = PackParam<DrawElementsType>(type);
    403        SCOPED_SHARE_CONTEXT_LOCK(context);
    404        bool isCallValid = (context->skipValidation() ||
    405                            ValidateDrawElementsInstancedBaseVertex(
    406                                context, angle::EntryPoint::GLDrawElementsInstancedBaseVertex,
    407                                modePacked, count, typePacked, indices, instancecount, basevertex));
    408        if (isCallValid)
    409        {
    410            context->drawElementsInstancedBaseVertex(modePacked, count, typePacked, indices,
    411                                                     instancecount, basevertex);
    412        }
    413        ANGLE_CAPTURE_GL(DrawElementsInstancedBaseVertex, isCallValid, context, modePacked, count,
    414                         typePacked, indices, instancecount, basevertex);
    415    }
    416    else
    417    {
    418        GenerateContextLostErrorOnCurrentGlobalContext();
    419    }
    420 }
    421 
    422 void GL_APIENTRY GL_DrawRangeElementsBaseVertex(GLenum mode,
    423                                                GLuint start,
    424                                                GLuint end,
    425                                                GLsizei count,
    426                                                GLenum type,
    427                                                const void *indices,
    428                                                GLint basevertex)
    429 {
    430    Context *context = GetValidGlobalContext();
    431    EVENT(context, GLDrawRangeElementsBaseVertex,
    432          "context = %d, mode = %s, start = %u, end = %u, count = %d, type = %s, indices = "
    433          "0x%016" PRIxPTR ", basevertex = %d",
    434          CID(context), GLenumToString(GLESEnum::PrimitiveType, mode), start, end, count,
    435          GLenumToString(GLESEnum::DrawElementsType, type), (uintptr_t)indices, basevertex);
    436 
    437    if (context)
    438    {
    439        PrimitiveMode modePacked    = PackParam<PrimitiveMode>(mode);
    440        DrawElementsType typePacked = PackParam<DrawElementsType>(type);
    441        SCOPED_SHARE_CONTEXT_LOCK(context);
    442        bool isCallValid = (context->skipValidation() ||
    443                            ValidateDrawRangeElementsBaseVertex(
    444                                context, angle::EntryPoint::GLDrawRangeElementsBaseVertex,
    445                                modePacked, start, end, count, typePacked, indices, basevertex));
    446        if (isCallValid)
    447        {
    448            context->drawRangeElementsBaseVertex(modePacked, start, end, count, typePacked, indices,
    449                                                 basevertex);
    450        }
    451        ANGLE_CAPTURE_GL(DrawRangeElementsBaseVertex, isCallValid, context, modePacked, start, end,
    452                         count, typePacked, indices, basevertex);
    453    }
    454    else
    455    {
    456        GenerateContextLostErrorOnCurrentGlobalContext();
    457    }
    458 }
    459 
    460 void GL_APIENTRY GL_Enablei(GLenum target, GLuint index)
    461 {
    462    Context *context = GetValidGlobalContext();
    463    EVENT(context, GLEnablei, "context = %d, target = %s, index = %u", CID(context),
    464          GLenumToString(GLESEnum::EnableCap, target), index);
    465 
    466    if (context)
    467    {
    468        SCOPED_SHARE_CONTEXT_LOCK(context);
    469        bool isCallValid = (context->skipValidation() ||
    470                            ValidateEnablei(context, angle::EntryPoint::GLEnablei, target, index));
    471        if (isCallValid)
    472        {
    473            context->enablei(target, index);
    474        }
    475        ANGLE_CAPTURE_GL(Enablei, isCallValid, context, target, index);
    476    }
    477    else
    478    {
    479        GenerateContextLostErrorOnCurrentGlobalContext();
    480    }
    481 }
    482 
    483 void GL_APIENTRY GL_FramebufferTexture(GLenum target,
    484                                       GLenum attachment,
    485                                       GLuint texture,
    486                                       GLint level)
    487 {
    488    Context *context = GetValidGlobalContext();
    489    EVENT(context, GLFramebufferTexture,
    490          "context = %d, target = %s, attachment = %s, texture = %u, level = %d", CID(context),
    491          GLenumToString(GLESEnum::FramebufferTarget, target),
    492          GLenumToString(GLESEnum::FramebufferAttachment, attachment), texture, level);
    493 
    494    if (context)
    495    {
    496        TextureID texturePacked = PackParam<TextureID>(texture);
    497        SCOPED_SHARE_CONTEXT_LOCK(context);
    498        bool isCallValid =
    499            (context->skipValidation() ||
    500             ValidateFramebufferTexture(context, angle::EntryPoint::GLFramebufferTexture, target,
    501                                        attachment, texturePacked, level));
    502        if (isCallValid)
    503        {
    504            context->framebufferTexture(target, attachment, texturePacked, level);
    505        }
    506        ANGLE_CAPTURE_GL(FramebufferTexture, isCallValid, context, target, attachment,
    507                         texturePacked, level);
    508    }
    509    else
    510    {
    511        GenerateContextLostErrorOnCurrentGlobalContext();
    512    }
    513 }
    514 
    515 GLuint GL_APIENTRY GL_GetDebugMessageLog(GLuint count,
    516                                         GLsizei bufSize,
    517                                         GLenum *sources,
    518                                         GLenum *types,
    519                                         GLuint *ids,
    520                                         GLenum *severities,
    521                                         GLsizei *lengths,
    522                                         GLchar *messageLog)
    523 {
    524    Context *context = GetValidGlobalContext();
    525    EVENT(context, GLGetDebugMessageLog,
    526          "context = %d, count = %u, bufSize = %d, sources = 0x%016" PRIxPTR
    527          ", types = 0x%016" PRIxPTR ", ids = 0x%016" PRIxPTR ", severities = 0x%016" PRIxPTR
    528          ", lengths = 0x%016" PRIxPTR ", messageLog = 0x%016" PRIxPTR "",
    529          CID(context), count, bufSize, (uintptr_t)sources, (uintptr_t)types, (uintptr_t)ids,
    530          (uintptr_t)severities, (uintptr_t)lengths, (uintptr_t)messageLog);
    531 
    532    GLuint returnValue;
    533    if (context)
    534    {
    535        SCOPED_SHARE_CONTEXT_LOCK(context);
    536        bool isCallValid = (context->skipValidation() ||
    537                            ValidateGetDebugMessageLog(
    538                                context, angle::EntryPoint::GLGetDebugMessageLog, count, bufSize,
    539                                sources, types, ids, severities, lengths, messageLog));
    540        if (isCallValid)
    541        {
    542            returnValue = context->getDebugMessageLog(count, bufSize, sources, types, ids,
    543                                                      severities, lengths, messageLog);
    544        }
    545        else
    546        {
    547            returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetDebugMessageLog, GLuint>();
    548        }
    549        ANGLE_CAPTURE_GL(GetDebugMessageLog, isCallValid, context, count, bufSize, sources, types,
    550                         ids, severities, lengths, messageLog, returnValue);
    551    }
    552    else
    553    {
    554        GenerateContextLostErrorOnCurrentGlobalContext();
    555        returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetDebugMessageLog, GLuint>();
    556    }
    557    return returnValue;
    558 }
    559 
    560 GLenum GL_APIENTRY GL_GetGraphicsResetStatus()
    561 {
    562    Context *context = GetGlobalContext();
    563    EVENT(context, GLGetGraphicsResetStatus, "context = %d", CID(context));
    564 
    565    GLenum returnValue;
    566    if (context)
    567    {
    568        SCOPED_SHARE_CONTEXT_LOCK(context);
    569        bool isCallValid =
    570            (context->skipValidation() ||
    571             ValidateGetGraphicsResetStatus(context, angle::EntryPoint::GLGetGraphicsResetStatus));
    572        if (isCallValid)
    573        {
    574            returnValue = context->getGraphicsResetStatus();
    575        }
    576        else
    577        {
    578            returnValue =
    579                GetDefaultReturnValue<angle::EntryPoint::GLGetGraphicsResetStatus, GLenum>();
    580        }
    581        ANGLE_CAPTURE_GL(GetGraphicsResetStatus, isCallValid, context, returnValue);
    582    }
    583    else
    584    {
    585 
    586        returnValue = GetDefaultReturnValue<angle::EntryPoint::GLGetGraphicsResetStatus, GLenum>();
    587    }
    588    return returnValue;
    589 }
    590 
    591 void GL_APIENTRY
    592 GL_GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
    593 {
    594    Context *context = GetValidGlobalContext();
    595    EVENT(context, GLGetObjectLabel,
    596          "context = %d, identifier = %s, name = %u, bufSize = %d, length = 0x%016" PRIxPTR
    597          ", label = 0x%016" PRIxPTR "",
    598          CID(context), GLenumToString(GLESEnum::ObjectIdentifier, identifier), name, bufSize,
    599          (uintptr_t)length, (uintptr_t)label);
    600 
    601    if (context)
    602    {
    603        SCOPED_SHARE_CONTEXT_LOCK(context);
    604        bool isCallValid = (context->skipValidation() ||
    605                            ValidateGetObjectLabel(context, angle::EntryPoint::GLGetObjectLabel,
    606                                                   identifier, name, bufSize, length, label));
    607        if (isCallValid)
    608        {
    609            context->getObjectLabel(identifier, name, bufSize, length, label);
    610        }
    611        ANGLE_CAPTURE_GL(GetObjectLabel, isCallValid, context, identifier, name, bufSize, length,
    612                         label);
    613    }
    614    else
    615    {
    616        GenerateContextLostErrorOnCurrentGlobalContext();
    617    }
    618 }
    619 
    620 void GL_APIENTRY GL_GetObjectPtrLabel(const void *ptr,
    621                                      GLsizei bufSize,
    622                                      GLsizei *length,
    623                                      GLchar *label)
    624 {
    625    Context *context = GetValidGlobalContext();
    626    EVENT(context, GLGetObjectPtrLabel,
    627          "context = %d, ptr = 0x%016" PRIxPTR ", bufSize = %d, length = 0x%016" PRIxPTR
    628          ", label = 0x%016" PRIxPTR "",
    629          CID(context), (uintptr_t)ptr, bufSize, (uintptr_t)length, (uintptr_t)label);
    630 
    631    if (context)
    632    {
    633        SCOPED_SHARE_CONTEXT_LOCK(context);
    634        bool isCallValid =
    635            (context->skipValidation() ||
    636             ValidateGetObjectPtrLabel(context, angle::EntryPoint::GLGetObjectPtrLabel, ptr,
    637                                       bufSize, length, label));
    638        if (isCallValid)
    639        {
    640            context->getObjectPtrLabel(ptr, bufSize, length, label);
    641        }
    642        ANGLE_CAPTURE_GL(GetObjectPtrLabel, isCallValid, context, ptr, bufSize, length, label);
    643    }
    644    else
    645    {
    646        GenerateContextLostErrorOnCurrentGlobalContext();
    647    }
    648 }
    649 
    650 void GL_APIENTRY GL_GetPointerv(GLenum pname, void **params)
    651 {
    652    Context *context = GetValidGlobalContext();
    653    EVENT(context, GLGetPointerv, "context = %d, pname = %s, params = 0x%016" PRIxPTR "",
    654          CID(context), GLenumToString(GLESEnum::GetPointervPName, pname), (uintptr_t)params);
    655 
    656    if (context)
    657    {
    658        SCOPED_SHARE_CONTEXT_LOCK(context);
    659        bool isCallValid =
    660            (context->skipValidation() ||
    661             ValidateGetPointerv(context, angle::EntryPoint::GLGetPointerv, pname, params));
    662        if (isCallValid)
    663        {
    664            context->getPointerv(pname, params);
    665        }
    666        ANGLE_CAPTURE_GL(GetPointerv, isCallValid, context, pname, params);
    667    }
    668    else
    669    {
    670        GenerateContextLostErrorOnCurrentGlobalContext();
    671    }
    672 }
    673 
    674 void GL_APIENTRY GL_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params)
    675 {
    676    Context *context = GetValidGlobalContext();
    677    EVENT(context, GLGetSamplerParameterIiv,
    678          "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
    679          sampler, GLenumToString(GLESEnum::SamplerParameterI, pname), (uintptr_t)params);
    680 
    681    if (context)
    682    {
    683        SamplerID samplerPacked = PackParam<SamplerID>(sampler);
    684        SCOPED_SHARE_CONTEXT_LOCK(context);
    685        bool isCallValid =
    686            (context->skipValidation() ||
    687             ValidateGetSamplerParameterIiv(context, angle::EntryPoint::GLGetSamplerParameterIiv,
    688                                            samplerPacked, pname, params));
    689        if (isCallValid)
    690        {
    691            context->getSamplerParameterIiv(samplerPacked, pname, params);
    692        }
    693        ANGLE_CAPTURE_GL(GetSamplerParameterIiv, isCallValid, context, samplerPacked, pname,
    694                         params);
    695    }
    696    else
    697    {
    698        GenerateContextLostErrorOnCurrentGlobalContext();
    699    }
    700 }
    701 
    702 void GL_APIENTRY GL_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params)
    703 {
    704    Context *context = GetValidGlobalContext();
    705    EVENT(context, GLGetSamplerParameterIuiv,
    706          "context = %d, sampler = %u, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
    707          sampler, GLenumToString(GLESEnum::SamplerParameterI, pname), (uintptr_t)params);
    708 
    709    if (context)
    710    {
    711        SamplerID samplerPacked = PackParam<SamplerID>(sampler);
    712        SCOPED_SHARE_CONTEXT_LOCK(context);
    713        bool isCallValid =
    714            (context->skipValidation() ||
    715             ValidateGetSamplerParameterIuiv(context, angle::EntryPoint::GLGetSamplerParameterIuiv,
    716                                             samplerPacked, pname, params));
    717        if (isCallValid)
    718        {
    719            context->getSamplerParameterIuiv(samplerPacked, pname, params);
    720        }
    721        ANGLE_CAPTURE_GL(GetSamplerParameterIuiv, isCallValid, context, samplerPacked, pname,
    722                         params);
    723    }
    724    else
    725    {
    726        GenerateContextLostErrorOnCurrentGlobalContext();
    727    }
    728 }
    729 
    730 void GL_APIENTRY GL_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params)
    731 {
    732    Context *context = GetValidGlobalContext();
    733    EVENT(context, GLGetTexParameterIiv,
    734          "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
    735          GLenumToString(GLESEnum::TextureTarget, target),
    736          GLenumToString(GLESEnum::GetTextureParameter, pname), (uintptr_t)params);
    737 
    738    if (context)
    739    {
    740        TextureType targetPacked = PackParam<TextureType>(target);
    741        SCOPED_SHARE_CONTEXT_LOCK(context);
    742        bool isCallValid =
    743            (context->skipValidation() ||
    744             ValidateGetTexParameterIiv(context, angle::EntryPoint::GLGetTexParameterIiv,
    745                                        targetPacked, pname, params));
    746        if (isCallValid)
    747        {
    748            context->getTexParameterIiv(targetPacked, pname, params);
    749        }
    750        ANGLE_CAPTURE_GL(GetTexParameterIiv, isCallValid, context, targetPacked, pname, params);
    751    }
    752    else
    753    {
    754        GenerateContextLostErrorOnCurrentGlobalContext();
    755    }
    756 }
    757 
    758 void GL_APIENTRY GL_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params)
    759 {
    760    Context *context = GetValidGlobalContext();
    761    EVENT(context, GLGetTexParameterIuiv,
    762          "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
    763          GLenumToString(GLESEnum::TextureTarget, target),
    764          GLenumToString(GLESEnum::GetTextureParameter, pname), (uintptr_t)params);
    765 
    766    if (context)
    767    {
    768        TextureType targetPacked = PackParam<TextureType>(target);
    769        SCOPED_SHARE_CONTEXT_LOCK(context);
    770        bool isCallValid =
    771            (context->skipValidation() ||
    772             ValidateGetTexParameterIuiv(context, angle::EntryPoint::GLGetTexParameterIuiv,
    773                                         targetPacked, pname, params));
    774        if (isCallValid)
    775        {
    776            context->getTexParameterIuiv(targetPacked, pname, params);
    777        }
    778        ANGLE_CAPTURE_GL(GetTexParameterIuiv, isCallValid, context, targetPacked, pname, params);
    779    }
    780    else
    781    {
    782        GenerateContextLostErrorOnCurrentGlobalContext();
    783    }
    784 }
    785 
    786 void GL_APIENTRY GL_GetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
    787 {
    788    Context *context = GetValidGlobalContext();
    789    EVENT(context, GLGetnUniformfv,
    790          "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "",
    791          CID(context), program, location, bufSize, (uintptr_t)params);
    792 
    793    if (context)
    794    {
    795        ShaderProgramID programPacked  = PackParam<ShaderProgramID>(program);
    796        UniformLocation locationPacked = PackParam<UniformLocation>(location);
    797        SCOPED_SHARE_CONTEXT_LOCK(context);
    798        bool isCallValid = (context->skipValidation() ||
    799                            ValidateGetnUniformfv(context, angle::EntryPoint::GLGetnUniformfv,
    800                                                  programPacked, locationPacked, bufSize, params));
    801        if (isCallValid)
    802        {
    803            context->getnUniformfv(programPacked, locationPacked, bufSize, params);
    804        }
    805        ANGLE_CAPTURE_GL(GetnUniformfv, isCallValid, context, programPacked, locationPacked,
    806                         bufSize, params);
    807    }
    808    else
    809    {
    810        GenerateContextLostErrorOnCurrentGlobalContext();
    811    }
    812 }
    813 
    814 void GL_APIENTRY GL_GetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params)
    815 {
    816    Context *context = GetValidGlobalContext();
    817    EVENT(context, GLGetnUniformiv,
    818          "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "",
    819          CID(context), program, location, bufSize, (uintptr_t)params);
    820 
    821    if (context)
    822    {
    823        ShaderProgramID programPacked  = PackParam<ShaderProgramID>(program);
    824        UniformLocation locationPacked = PackParam<UniformLocation>(location);
    825        SCOPED_SHARE_CONTEXT_LOCK(context);
    826        bool isCallValid = (context->skipValidation() ||
    827                            ValidateGetnUniformiv(context, angle::EntryPoint::GLGetnUniformiv,
    828                                                  programPacked, locationPacked, bufSize, params));
    829        if (isCallValid)
    830        {
    831            context->getnUniformiv(programPacked, locationPacked, bufSize, params);
    832        }
    833        ANGLE_CAPTURE_GL(GetnUniformiv, isCallValid, context, programPacked, locationPacked,
    834                         bufSize, params);
    835    }
    836    else
    837    {
    838        GenerateContextLostErrorOnCurrentGlobalContext();
    839    }
    840 }
    841 
    842 void GL_APIENTRY GL_GetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params)
    843 {
    844    Context *context = GetValidGlobalContext();
    845    EVENT(context, GLGetnUniformuiv,
    846          "context = %d, program = %u, location = %d, bufSize = %d, params = 0x%016" PRIxPTR "",
    847          CID(context), program, location, bufSize, (uintptr_t)params);
    848 
    849    if (context)
    850    {
    851        ShaderProgramID programPacked  = PackParam<ShaderProgramID>(program);
    852        UniformLocation locationPacked = PackParam<UniformLocation>(location);
    853        SCOPED_SHARE_CONTEXT_LOCK(context);
    854        bool isCallValid = (context->skipValidation() ||
    855                            ValidateGetnUniformuiv(context, angle::EntryPoint::GLGetnUniformuiv,
    856                                                   programPacked, locationPacked, bufSize, params));
    857        if (isCallValid)
    858        {
    859            context->getnUniformuiv(programPacked, locationPacked, bufSize, params);
    860        }
    861        ANGLE_CAPTURE_GL(GetnUniformuiv, isCallValid, context, programPacked, locationPacked,
    862                         bufSize, params);
    863    }
    864    else
    865    {
    866        GenerateContextLostErrorOnCurrentGlobalContext();
    867    }
    868 }
    869 
    870 GLboolean GL_APIENTRY GL_IsEnabledi(GLenum target, GLuint index)
    871 {
    872    Context *context = GetValidGlobalContext();
    873    EVENT(context, GLIsEnabledi, "context = %d, target = %s, index = %u", CID(context),
    874          GLenumToString(GLESEnum::EnableCap, target), index);
    875 
    876    GLboolean returnValue;
    877    if (context)
    878    {
    879        SCOPED_SHARE_CONTEXT_LOCK(context);
    880        bool isCallValid =
    881            (context->skipValidation() ||
    882             ValidateIsEnabledi(context, angle::EntryPoint::GLIsEnabledi, target, index));
    883        if (isCallValid)
    884        {
    885            returnValue = context->isEnabledi(target, index);
    886        }
    887        else
    888        {
    889            returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsEnabledi, GLboolean>();
    890        }
    891        ANGLE_CAPTURE_GL(IsEnabledi, isCallValid, context, target, index, returnValue);
    892    }
    893    else
    894    {
    895        GenerateContextLostErrorOnCurrentGlobalContext();
    896        returnValue = GetDefaultReturnValue<angle::EntryPoint::GLIsEnabledi, GLboolean>();
    897    }
    898    return returnValue;
    899 }
    900 
    901 void GL_APIENTRY GL_MinSampleShading(GLfloat value)
    902 {
    903    Context *context = GetValidGlobalContext();
    904    EVENT(context, GLMinSampleShading, "context = %d, value = %f", CID(context), value);
    905 
    906    if (context)
    907    {
    908        SCOPED_SHARE_CONTEXT_LOCK(context);
    909        bool isCallValid =
    910            (context->skipValidation() ||
    911             ValidateMinSampleShading(context, angle::EntryPoint::GLMinSampleShading, value));
    912        if (isCallValid)
    913        {
    914            context->minSampleShading(value);
    915        }
    916        ANGLE_CAPTURE_GL(MinSampleShading, isCallValid, context, value);
    917    }
    918    else
    919    {
    920        GenerateContextLostErrorOnCurrentGlobalContext();
    921    }
    922 }
    923 
    924 void GL_APIENTRY GL_ObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
    925 {
    926    Context *context = GetValidGlobalContext();
    927    EVENT(context, GLObjectLabel,
    928          "context = %d, identifier = %s, name = %u, length = %d, label = 0x%016" PRIxPTR "",
    929          CID(context), GLenumToString(GLESEnum::ObjectIdentifier, identifier), name, length,
    930          (uintptr_t)label);
    931 
    932    if (context)
    933    {
    934        SCOPED_SHARE_CONTEXT_LOCK(context);
    935        bool isCallValid = (context->skipValidation() ||
    936                            ValidateObjectLabel(context, angle::EntryPoint::GLObjectLabel,
    937                                                identifier, name, length, label));
    938        if (isCallValid)
    939        {
    940            context->objectLabel(identifier, name, length, label);
    941        }
    942        ANGLE_CAPTURE_GL(ObjectLabel, isCallValid, context, identifier, name, length, label);
    943    }
    944    else
    945    {
    946        GenerateContextLostErrorOnCurrentGlobalContext();
    947    }
    948 }
    949 
    950 void GL_APIENTRY GL_ObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label)
    951 {
    952    Context *context = GetValidGlobalContext();
    953    EVENT(context, GLObjectPtrLabel,
    954          "context = %d, ptr = 0x%016" PRIxPTR ", length = %d, label = 0x%016" PRIxPTR "",
    955          CID(context), (uintptr_t)ptr, length, (uintptr_t)label);
    956 
    957    if (context)
    958    {
    959        SCOPED_SHARE_CONTEXT_LOCK(context);
    960        bool isCallValid = (context->skipValidation() ||
    961                            ValidateObjectPtrLabel(context, angle::EntryPoint::GLObjectPtrLabel,
    962                                                   ptr, length, label));
    963        if (isCallValid)
    964        {
    965            context->objectPtrLabel(ptr, length, label);
    966        }
    967        ANGLE_CAPTURE_GL(ObjectPtrLabel, isCallValid, context, ptr, length, label);
    968    }
    969    else
    970    {
    971        GenerateContextLostErrorOnCurrentGlobalContext();
    972    }
    973 }
    974 
    975 void GL_APIENTRY GL_PatchParameteri(GLenum pname, GLint value)
    976 {
    977    Context *context = GetValidGlobalContext();
    978    EVENT(context, GLPatchParameteri, "context = %d, pname = %s, value = %d", CID(context),
    979          GLenumToString(GLESEnum::PatchParameterName, pname), value);
    980 
    981    if (context)
    982    {
    983        SCOPED_SHARE_CONTEXT_LOCK(context);
    984        bool isCallValid =
    985            (context->skipValidation() ||
    986             ValidatePatchParameteri(context, angle::EntryPoint::GLPatchParameteri, pname, value));
    987        if (isCallValid)
    988        {
    989            context->patchParameteri(pname, value);
    990        }
    991        ANGLE_CAPTURE_GL(PatchParameteri, isCallValid, context, pname, value);
    992    }
    993    else
    994    {
    995        GenerateContextLostErrorOnCurrentGlobalContext();
    996    }
    997 }
    998 
    999 void GL_APIENTRY GL_PopDebugGroup()
   1000 {
   1001    Context *context = GetValidGlobalContext();
   1002    EVENT(context, GLPopDebugGroup, "context = %d", CID(context));
   1003 
   1004    if (context)
   1005    {
   1006        SCOPED_SHARE_CONTEXT_LOCK(context);
   1007        bool isCallValid = (context->skipValidation() ||
   1008                            ValidatePopDebugGroup(context, angle::EntryPoint::GLPopDebugGroup));
   1009        if (isCallValid)
   1010        {
   1011            context->popDebugGroup();
   1012        }
   1013        ANGLE_CAPTURE_GL(PopDebugGroup, isCallValid, context);
   1014    }
   1015    else
   1016    {
   1017        GenerateContextLostErrorOnCurrentGlobalContext();
   1018    }
   1019 }
   1020 
   1021 void GL_APIENTRY GL_PrimitiveBoundingBox(GLfloat minX,
   1022                                         GLfloat minY,
   1023                                         GLfloat minZ,
   1024                                         GLfloat minW,
   1025                                         GLfloat maxX,
   1026                                         GLfloat maxY,
   1027                                         GLfloat maxZ,
   1028                                         GLfloat maxW)
   1029 {
   1030    Context *context = GetValidGlobalContext();
   1031    EVENT(context, GLPrimitiveBoundingBox,
   1032          "context = %d, minX = %f, minY = %f, minZ = %f, minW = %f, maxX = %f, maxY = %f, maxZ = "
   1033          "%f, maxW = %f",
   1034          CID(context), minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
   1035 
   1036    if (context)
   1037    {
   1038        SCOPED_SHARE_CONTEXT_LOCK(context);
   1039        bool isCallValid =
   1040            (context->skipValidation() ||
   1041             ValidatePrimitiveBoundingBox(context, angle::EntryPoint::GLPrimitiveBoundingBox, minX,
   1042                                          minY, minZ, minW, maxX, maxY, maxZ, maxW));
   1043        if (isCallValid)
   1044        {
   1045            context->primitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
   1046        }
   1047        ANGLE_CAPTURE_GL(PrimitiveBoundingBox, isCallValid, context, minX, minY, minZ, minW, maxX,
   1048                         maxY, maxZ, maxW);
   1049    }
   1050    else
   1051    {
   1052        GenerateContextLostErrorOnCurrentGlobalContext();
   1053    }
   1054 }
   1055 
   1056 void GL_APIENTRY GL_PushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message)
   1057 {
   1058    Context *context = GetValidGlobalContext();
   1059    EVENT(context, GLPushDebugGroup,
   1060          "context = %d, source = %s, id = %u, length = %d, message = 0x%016" PRIxPTR "",
   1061          CID(context), GLenumToString(GLESEnum::DebugSource, source), id, length,
   1062          (uintptr_t)message);
   1063 
   1064    if (context)
   1065    {
   1066        SCOPED_SHARE_CONTEXT_LOCK(context);
   1067        bool isCallValid = (context->skipValidation() ||
   1068                            ValidatePushDebugGroup(context, angle::EntryPoint::GLPushDebugGroup,
   1069                                                   source, id, length, message));
   1070        if (isCallValid)
   1071        {
   1072            context->pushDebugGroup(source, id, length, message);
   1073        }
   1074        ANGLE_CAPTURE_GL(PushDebugGroup, isCallValid, context, source, id, length, message);
   1075    }
   1076    else
   1077    {
   1078        GenerateContextLostErrorOnCurrentGlobalContext();
   1079    }
   1080 }
   1081 
   1082 void GL_APIENTRY GL_ReadnPixels(GLint x,
   1083                                GLint y,
   1084                                GLsizei width,
   1085                                GLsizei height,
   1086                                GLenum format,
   1087                                GLenum type,
   1088                                GLsizei bufSize,
   1089                                void *data)
   1090 {
   1091    Context *context = GetValidGlobalContext();
   1092    EVENT(context, GLReadnPixels,
   1093          "context = %d, x = %d, y = %d, width = %d, height = %d, format = %s, type = %s, bufSize "
   1094          "= %d, data = 0x%016" PRIxPTR "",
   1095          CID(context), x, y, width, height, GLenumToString(GLESEnum::PixelFormat, format),
   1096          GLenumToString(GLESEnum::PixelType, type), bufSize, (uintptr_t)data);
   1097 
   1098    if (context)
   1099    {
   1100        SCOPED_SHARE_CONTEXT_LOCK(context);
   1101        bool isCallValid = (context->skipValidation() ||
   1102                            ValidateReadnPixels(context, angle::EntryPoint::GLReadnPixels, x, y,
   1103                                                width, height, format, type, bufSize, data));
   1104        if (isCallValid)
   1105        {
   1106            context->readnPixels(x, y, width, height, format, type, bufSize, data);
   1107        }
   1108        ANGLE_CAPTURE_GL(ReadnPixels, isCallValid, context, x, y, width, height, format, type,
   1109                         bufSize, data);
   1110    }
   1111    else
   1112    {
   1113        GenerateContextLostErrorOnCurrentGlobalContext();
   1114    }
   1115 }
   1116 
   1117 void GL_APIENTRY GL_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param)
   1118 {
   1119    Context *context = GetValidGlobalContext();
   1120    EVENT(context, GLSamplerParameterIiv,
   1121          "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context),
   1122          sampler, GLenumToString(GLESEnum::SamplerParameterI, pname), (uintptr_t)param);
   1123 
   1124    if (context)
   1125    {
   1126        SamplerID samplerPacked = PackParam<SamplerID>(sampler);
   1127        SCOPED_SHARE_CONTEXT_LOCK(context);
   1128        bool isCallValid =
   1129            (context->skipValidation() ||
   1130             ValidateSamplerParameterIiv(context, angle::EntryPoint::GLSamplerParameterIiv,
   1131                                         samplerPacked, pname, param));
   1132        if (isCallValid)
   1133        {
   1134            context->samplerParameterIiv(samplerPacked, pname, param);
   1135        }
   1136        ANGLE_CAPTURE_GL(SamplerParameterIiv, isCallValid, context, samplerPacked, pname, param);
   1137    }
   1138    else
   1139    {
   1140        GenerateContextLostErrorOnCurrentGlobalContext();
   1141    }
   1142 }
   1143 
   1144 void GL_APIENTRY GL_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param)
   1145 {
   1146    Context *context = GetValidGlobalContext();
   1147    EVENT(context, GLSamplerParameterIuiv,
   1148          "context = %d, sampler = %u, pname = %s, param = 0x%016" PRIxPTR "", CID(context),
   1149          sampler, GLenumToString(GLESEnum::SamplerParameterI, pname), (uintptr_t)param);
   1150 
   1151    if (context)
   1152    {
   1153        SamplerID samplerPacked = PackParam<SamplerID>(sampler);
   1154        SCOPED_SHARE_CONTEXT_LOCK(context);
   1155        bool isCallValid =
   1156            (context->skipValidation() ||
   1157             ValidateSamplerParameterIuiv(context, angle::EntryPoint::GLSamplerParameterIuiv,
   1158                                          samplerPacked, pname, param));
   1159        if (isCallValid)
   1160        {
   1161            context->samplerParameterIuiv(samplerPacked, pname, param);
   1162        }
   1163        ANGLE_CAPTURE_GL(SamplerParameterIuiv, isCallValid, context, samplerPacked, pname, param);
   1164    }
   1165    else
   1166    {
   1167        GenerateContextLostErrorOnCurrentGlobalContext();
   1168    }
   1169 }
   1170 
   1171 void GL_APIENTRY GL_TexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
   1172 {
   1173    Context *context = GetValidGlobalContext();
   1174    EVENT(context, GLTexBuffer, "context = %d, target = %s, internalformat = %s, buffer = %u",
   1175          CID(context), GLenumToString(GLESEnum::TextureTarget, target),
   1176          GLenumToString(GLESEnum::SizedInternalFormat, internalformat), buffer);
   1177 
   1178    if (context)
   1179    {
   1180        TextureType targetPacked = PackParam<TextureType>(target);
   1181        BufferID bufferPacked    = PackParam<BufferID>(buffer);
   1182        SCOPED_SHARE_CONTEXT_LOCK(context);
   1183        bool isCallValid = (context->skipValidation() ||
   1184                            ValidateTexBuffer(context, angle::EntryPoint::GLTexBuffer, targetPacked,
   1185                                              internalformat, bufferPacked));
   1186        if (isCallValid)
   1187        {
   1188            context->texBuffer(targetPacked, internalformat, bufferPacked);
   1189        }
   1190        ANGLE_CAPTURE_GL(TexBuffer, isCallValid, context, targetPacked, internalformat,
   1191                         bufferPacked);
   1192    }
   1193    else
   1194    {
   1195        GenerateContextLostErrorOnCurrentGlobalContext();
   1196    }
   1197 }
   1198 
   1199 void GL_APIENTRY GL_TexBufferRange(GLenum target,
   1200                                   GLenum internalformat,
   1201                                   GLuint buffer,
   1202                                   GLintptr offset,
   1203                                   GLsizeiptr size)
   1204 {
   1205    Context *context = GetValidGlobalContext();
   1206    EVENT(context, GLTexBufferRange,
   1207          "context = %d, target = %s, internalformat = %s, buffer = %u, offset = %llu, size = %llu",
   1208          CID(context), GLenumToString(GLESEnum::TextureTarget, target),
   1209          GLenumToString(GLESEnum::SizedInternalFormat, internalformat), buffer,
   1210          static_cast<unsigned long long>(offset), static_cast<unsigned long long>(size));
   1211 
   1212    if (context)
   1213    {
   1214        TextureType targetPacked = PackParam<TextureType>(target);
   1215        BufferID bufferPacked    = PackParam<BufferID>(buffer);
   1216        SCOPED_SHARE_CONTEXT_LOCK(context);
   1217        bool isCallValid =
   1218            (context->skipValidation() ||
   1219             ValidateTexBufferRange(context, angle::EntryPoint::GLTexBufferRange, targetPacked,
   1220                                    internalformat, bufferPacked, offset, size));
   1221        if (isCallValid)
   1222        {
   1223            context->texBufferRange(targetPacked, internalformat, bufferPacked, offset, size);
   1224        }
   1225        ANGLE_CAPTURE_GL(TexBufferRange, isCallValid, context, targetPacked, internalformat,
   1226                         bufferPacked, offset, size);
   1227    }
   1228    else
   1229    {
   1230        GenerateContextLostErrorOnCurrentGlobalContext();
   1231    }
   1232 }
   1233 
   1234 void GL_APIENTRY GL_TexParameterIiv(GLenum target, GLenum pname, const GLint *params)
   1235 {
   1236    Context *context = GetValidGlobalContext();
   1237    EVENT(context, GLTexParameterIiv,
   1238          "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
   1239          GLenumToString(GLESEnum::TextureTarget, target),
   1240          GLenumToString(GLESEnum::TextureParameterName, pname), (uintptr_t)params);
   1241 
   1242    if (context)
   1243    {
   1244        TextureType targetPacked = PackParam<TextureType>(target);
   1245        SCOPED_SHARE_CONTEXT_LOCK(context);
   1246        bool isCallValid = (context->skipValidation() ||
   1247                            ValidateTexParameterIiv(context, angle::EntryPoint::GLTexParameterIiv,
   1248                                                    targetPacked, pname, params));
   1249        if (isCallValid)
   1250        {
   1251            context->texParameterIiv(targetPacked, pname, params);
   1252        }
   1253        ANGLE_CAPTURE_GL(TexParameterIiv, isCallValid, context, targetPacked, pname, params);
   1254    }
   1255    else
   1256    {
   1257        GenerateContextLostErrorOnCurrentGlobalContext();
   1258    }
   1259 }
   1260 
   1261 void GL_APIENTRY GL_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params)
   1262 {
   1263    Context *context = GetValidGlobalContext();
   1264    EVENT(context, GLTexParameterIuiv,
   1265          "context = %d, target = %s, pname = %s, params = 0x%016" PRIxPTR "", CID(context),
   1266          GLenumToString(GLESEnum::TextureTarget, target),
   1267          GLenumToString(GLESEnum::TextureParameterName, pname), (uintptr_t)params);
   1268 
   1269    if (context)
   1270    {
   1271        TextureType targetPacked = PackParam<TextureType>(target);
   1272        SCOPED_SHARE_CONTEXT_LOCK(context);
   1273        bool isCallValid = (context->skipValidation() ||
   1274                            ValidateTexParameterIuiv(context, angle::EntryPoint::GLTexParameterIuiv,
   1275                                                     targetPacked, pname, params));
   1276        if (isCallValid)
   1277        {
   1278            context->texParameterIuiv(targetPacked, pname, params);
   1279        }
   1280        ANGLE_CAPTURE_GL(TexParameterIuiv, isCallValid, context, targetPacked, pname, params);
   1281    }
   1282    else
   1283    {
   1284        GenerateContextLostErrorOnCurrentGlobalContext();
   1285    }
   1286 }
   1287 
   1288 void GL_APIENTRY GL_TexStorage3DMultisample(GLenum target,
   1289                                            GLsizei samples,
   1290                                            GLenum internalformat,
   1291                                            GLsizei width,
   1292                                            GLsizei height,
   1293                                            GLsizei depth,
   1294                                            GLboolean fixedsamplelocations)
   1295 {
   1296    Context *context = GetValidGlobalContext();
   1297    EVENT(context, GLTexStorage3DMultisample,
   1298          "context = %d, target = %s, samples = %d, internalformat = %s, width = %d, height = %d, "
   1299          "depth = %d, fixedsamplelocations = %s",
   1300          CID(context), GLenumToString(GLESEnum::TextureTarget, target), samples,
   1301          GLenumToString(GLESEnum::SizedInternalFormat, internalformat), width, height, depth,
   1302          GLbooleanToString(fixedsamplelocations));
   1303 
   1304    if (context)
   1305    {
   1306        TextureType targetPacked = PackParam<TextureType>(target);
   1307        SCOPED_SHARE_CONTEXT_LOCK(context);
   1308        bool isCallValid =
   1309            (context->skipValidation() ||
   1310             ValidateTexStorage3DMultisample(context, angle::EntryPoint::GLTexStorage3DMultisample,
   1311                                             targetPacked, samples, internalformat, width, height,
   1312                                             depth, fixedsamplelocations));
   1313        if (isCallValid)
   1314        {
   1315            context->texStorage3DMultisample(targetPacked, samples, internalformat, width, height,
   1316                                             depth, fixedsamplelocations);
   1317        }
   1318        ANGLE_CAPTURE_GL(TexStorage3DMultisample, isCallValid, context, targetPacked, samples,
   1319                         internalformat, width, height, depth, fixedsamplelocations);
   1320    }
   1321    else
   1322    {
   1323        GenerateContextLostErrorOnCurrentGlobalContext();
   1324    }
   1325 }
   1326 
   1327 }  // extern "C"