// GENERATED FILE - DO NOT EDIT. // Generated by generate_entry_points.py using data from gl.xml. // // Copyright 2017 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // entry_points_gles_3_0_autogen.cpp: // Defines the GLES 3.0 entry points. #include "libANGLE/Context.h" #include "libANGLE/validationES3.h" #include "libGLESv2/global_state.h" namespace gl { void GL_APIENTRY ReadBuffer(GLenum src) { EVENT("(GLenum src = 0x%X)", src); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(src); if (context->skipValidation() || ValidateReadBuffer(context, src)) { context->readBuffer(src); } } } void GL_APIENTRY DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices) { EVENT( "(GLenum mode = 0x%X, GLuint start = %u, GLuint end = %u, GLsizei count = %d, GLenum type " "= 0x%X, const void *indices = 0x%0.8p)", mode, start, end, count, type, indices); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(mode, start, end, count, type, indices); if (context->skipValidation() || ValidateDrawRangeElements(context, mode, start, end, count, type, indices)) { context->drawRangeElements(mode, start, end, count, type, indices); } } } void GL_APIENTRY TexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels) { EVENT( "(GLenum target = 0x%X, GLint level = %d, GLint internalformat = %d, GLsizei width = %d, " "GLsizei height = %d, GLsizei depth = %d, GLint border = %d, GLenum format = 0x%X, GLenum " "type = 0x%X, const void *pixels = 0x%0.8p)", target, level, internalformat, width, height, depth, border, format, type, pixels); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, level, internalformat, width, height, depth, border, format, type, pixels); if (context->skipValidation() || ValidateTexImage3D(context, target, level, internalformat, width, height, depth, border, format, type, pixels)) { context->texImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels); } } } void GL_APIENTRY TexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels) { EVENT( "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint " "zoffset = %d, GLsizei width = %d, GLsizei height = %d, GLsizei depth = %d, GLenum format " "= 0x%X, GLenum type = 0x%X, const void *pixels = 0x%0.8p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams( target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); if (context->skipValidation() || ValidateTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels)) { context->texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); } } } void GL_APIENTRY CopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { EVENT( "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint " "zoffset = %d, GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", target, level, xoffset, yoffset, zoffset, x, y, width, height); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, level, xoffset, yoffset, zoffset, x, y, width, height); if (context->skipValidation() || ValidateCopyTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, x, y, width, height)) { context->copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height); } } } void GL_APIENTRY CompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data) { EVENT( "(GLenum target = 0x%X, GLint level = %d, GLenum internalformat = 0x%X, GLsizei width = " "%d, GLsizei height = %d, GLsizei depth = %d, GLint border = %d, GLsizei imageSize = %d, " "const void *data = 0x%0.8p)", target, level, internalformat, width, height, depth, border, imageSize, data); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams( target, level, internalformat, width, height, depth, border, imageSize, data); if (context->skipValidation() || ValidateCompressedTexImage3D(context, target, level, internalformat, width, height, depth, border, imageSize, data)) { context->compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data); } } } void GL_APIENTRY CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data) { EVENT( "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint " "zoffset = %d, GLsizei width = %d, GLsizei height = %d, GLsizei depth = %d, GLenum format " "= 0x%X, GLsizei imageSize = %d, const void *data = 0x%0.8p)", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); if (context->skipValidation() || ValidateCompressedTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)) { context->compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } } } void GL_APIENTRY GenQueries(GLsizei n, GLuint *ids) { EVENT("(GLsizei n = %d, GLuint *ids = 0x%0.8p)", n, ids); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, ids); if (context->skipValidation() || ValidateGenQueries(context, n, ids)) { context->genQueries(n, ids); } } } void GL_APIENTRY DeleteQueries(GLsizei n, const GLuint *ids) { EVENT("(GLsizei n = %d, const GLuint *ids = 0x%0.8p)", n, ids); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, ids); if (context->skipValidation() || ValidateDeleteQueries(context, n, ids)) { context->deleteQueries(n, ids); } } } GLboolean GL_APIENTRY IsQuery(GLuint id) { EVENT("(GLuint id = %u)", id); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(id); if (context->skipValidation() || ValidateIsQuery(context, id)) { return context->isQuery(id); } } return GetDefaultReturnValue(); } void GL_APIENTRY BeginQuery(GLenum target, GLuint id) { EVENT("(GLenum target = 0x%X, GLuint id = %u)", target, id); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, id); if (context->skipValidation() || ValidateBeginQuery(context, target, id)) { context->beginQuery(target, id); } } } void GL_APIENTRY EndQuery(GLenum target) { EVENT("(GLenum target = 0x%X)", target); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target); if (context->skipValidation() || ValidateEndQuery(context, target)) { context->endQuery(target); } } } void GL_APIENTRY GetQueryiv(GLenum target, GLenum pname, GLint *params) { EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint *params = 0x%0.8p)", target, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, pname, params); if (context->skipValidation() || ValidateGetQueryiv(context, target, pname, params)) { context->getQueryiv(target, pname, params); } } } void GL_APIENTRY GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params) { EVENT("(GLuint id = %u, GLenum pname = 0x%X, GLuint *params = 0x%0.8p)", id, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(id, pname, params); if (context->skipValidation() || ValidateGetQueryObjectuiv(context, id, pname, params)) { context->getQueryObjectuiv(id, pname, params); } } } GLboolean GL_APIENTRY UnmapBuffer(GLenum target) { EVENT("(GLenum target = 0x%X)", target); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked); if (context->skipValidation() || ValidateUnmapBuffer(context, targetPacked)) { return context->unmapBuffer(targetPacked); } } return GetDefaultReturnValue(); } void GL_APIENTRY GetBufferPointerv(GLenum target, GLenum pname, void **params) { EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, void **params = 0x%0.8p)", target, pname, params); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked, pname, params); if (context->skipValidation() || ValidateGetBufferPointerv(context, targetPacked, pname, params)) { context->getBufferPointerv(targetPacked, pname, params); } } } void GL_APIENTRY DrawBuffers(GLsizei n, const GLenum *bufs) { EVENT("(GLsizei n = %d, const GLenum *bufs = 0x%0.8p)", n, bufs); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, bufs); if (context->skipValidation() || ValidateDrawBuffers(context, n, bufs)) { context->drawBuffers(n, bufs); } } } void GL_APIENTRY UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { EVENT( "(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value " "= 0x%0.8p)", location, count, transpose, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, transpose, value); if (context->skipValidation() || ValidateUniformMatrix2x3fv(context, location, count, transpose, value)) { context->uniformMatrix2x3fv(location, count, transpose, value); } } } void GL_APIENTRY UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { EVENT( "(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value " "= 0x%0.8p)", location, count, transpose, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, transpose, value); if (context->skipValidation() || ValidateUniformMatrix3x2fv(context, location, count, transpose, value)) { context->uniformMatrix3x2fv(location, count, transpose, value); } } } void GL_APIENTRY UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { EVENT( "(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value " "= 0x%0.8p)", location, count, transpose, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, transpose, value); if (context->skipValidation() || ValidateUniformMatrix2x4fv(context, location, count, transpose, value)) { context->uniformMatrix2x4fv(location, count, transpose, value); } } } void GL_APIENTRY UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { EVENT( "(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value " "= 0x%0.8p)", location, count, transpose, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, transpose, value); if (context->skipValidation() || ValidateUniformMatrix4x2fv(context, location, count, transpose, value)) { context->uniformMatrix4x2fv(location, count, transpose, value); } } } void GL_APIENTRY UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { EVENT( "(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value " "= 0x%0.8p)", location, count, transpose, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, transpose, value); if (context->skipValidation() || ValidateUniformMatrix3x4fv(context, location, count, transpose, value)) { context->uniformMatrix3x4fv(location, count, transpose, value); } } } void GL_APIENTRY UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { EVENT( "(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat *value " "= 0x%0.8p)", location, count, transpose, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, transpose, value); if (context->skipValidation() || ValidateUniformMatrix4x3fv(context, location, count, transpose, value)) { context->uniformMatrix4x3fv(location, count, transpose, value); } } } void GL_APIENTRY BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { EVENT( "(GLint srcX0 = %d, GLint srcY0 = %d, GLint srcX1 = %d, GLint srcY1 = %d, GLint dstX0 = " "%d, GLint dstY0 = %d, GLint dstX1 = %d, GLint dstY1 = %d, GLbitfield mask = 0x%X, GLenum " "filter = 0x%X)", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); if (context->skipValidation() || ValidateBlitFramebuffer(context, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)) { context->blitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } } } void GL_APIENTRY RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { EVENT( "(GLenum target = 0x%X, GLsizei samples = %d, GLenum internalformat = 0x%X, GLsizei width " "= %d, GLsizei height = %d)", target, samples, internalformat, width, height); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams( target, samples, internalformat, width, height); if (context->skipValidation() || ValidateRenderbufferStorageMultisample(context, target, samples, internalformat, width, height)) { context->renderbufferStorageMultisample(target, samples, internalformat, width, height); } } } void GL_APIENTRY FramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) { EVENT( "(GLenum target = 0x%X, GLenum attachment = 0x%X, GLuint texture = %u, GLint level = %d, " "GLint layer = %d)", target, attachment, texture, level, layer); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, attachment, texture, level, layer); if (context->skipValidation() || ValidateFramebufferTextureLayer(context, target, attachment, texture, level, layer)) { context->framebufferTextureLayer(target, attachment, texture, level, layer); } } } void *GL_APIENTRY MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) { EVENT( "(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr length = %d, GLbitfield access = " "0x%X)", target, offset, length, access); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked, offset, length, access); if (context->skipValidation() || ValidateMapBufferRange(context, targetPacked, offset, length, access)) { return context->mapBufferRange(targetPacked, offset, length, access); } } return GetDefaultReturnValue(); } void GL_APIENTRY FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) { EVENT("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr length = %d)", target, offset, length); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked, offset, length); if (context->skipValidation() || ValidateFlushMappedBufferRange(context, targetPacked, offset, length)) { context->flushMappedBufferRange(targetPacked, offset, length); } } } void GL_APIENTRY BindVertexArray(GLuint array) { EVENT("(GLuint array = %u)", array); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(array); if (context->skipValidation() || ValidateBindVertexArray(context, array)) { context->bindVertexArray(array); } } } void GL_APIENTRY DeleteVertexArrays(GLsizei n, const GLuint *arrays) { EVENT("(GLsizei n = %d, const GLuint *arrays = 0x%0.8p)", n, arrays); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, arrays); if (context->skipValidation() || ValidateDeleteVertexArrays(context, n, arrays)) { context->deleteVertexArrays(n, arrays); } } } void GL_APIENTRY GenVertexArrays(GLsizei n, GLuint *arrays) { EVENT("(GLsizei n = %d, GLuint *arrays = 0x%0.8p)", n, arrays); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, arrays); if (context->skipValidation() || ValidateGenVertexArrays(context, n, arrays)) { context->genVertexArrays(n, arrays); } } } GLboolean GL_APIENTRY IsVertexArray(GLuint array) { EVENT("(GLuint array = %u)", array); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(array); if (context->skipValidation() || ValidateIsVertexArray(context, array)) { return context->isVertexArray(array); } } return GetDefaultReturnValue(); } void GL_APIENTRY GetIntegeri_v(GLenum target, GLuint index, GLint *data) { EVENT("(GLenum target = 0x%X, GLuint index = %u, GLint *data = 0x%0.8p)", target, index, data); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, index, data); if (context->skipValidation() || ValidateGetIntegeri_v(context, target, index, data)) { context->getIntegeri_v(target, index, data); } } } void GL_APIENTRY BeginTransformFeedback(GLenum primitiveMode) { EVENT("(GLenum primitiveMode = 0x%X)", primitiveMode); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(primitiveMode); if (context->skipValidation() || ValidateBeginTransformFeedback(context, primitiveMode)) { context->beginTransformFeedback(primitiveMode); } } } void GL_APIENTRY EndTransformFeedback() { EVENT("()"); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(); if (context->skipValidation() || ValidateEndTransformFeedback(context)) { context->endTransformFeedback(); } } } void GL_APIENTRY BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) { EVENT( "(GLenum target = 0x%X, GLuint index = %u, GLuint buffer = %u, GLintptr offset = %d, " "GLsizeiptr size = %d)", target, index, buffer, offset, size); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked, index, buffer, offset, size); if (context->skipValidation() || ValidateBindBufferRange(context, targetPacked, index, buffer, offset, size)) { context->bindBufferRange(targetPacked, index, buffer, offset, size); } } } void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer) { EVENT("(GLenum target = 0x%X, GLuint index = %u, GLuint buffer = %u)", target, index, buffer); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked, index, buffer); if (context->skipValidation() || ValidateBindBufferBase(context, targetPacked, index, buffer)) { context->bindBufferBase(targetPacked, index, buffer); } } } void GL_APIENTRY TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const *varyings, GLenum bufferMode) { EVENT( "(GLuint program = %u, GLsizei count = %d, const GLchar *const*varyings = 0x%0.8p, GLenum " "bufferMode = 0x%X)", program, count, varyings, bufferMode); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, count, varyings, bufferMode); if (context->skipValidation() || ValidateTransformFeedbackVaryings(context, program, count, varyings, bufferMode)) { context->transformFeedbackVaryings(program, count, varyings, bufferMode); } } } void GL_APIENTRY GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name) { EVENT( "(GLuint program = %u, GLuint index = %u, GLsizei bufSize = %d, GLsizei *length = 0x%0.8p, " "GLsizei *size = 0x%0.8p, GLenum *type = 0x%0.8p, GLchar *name = 0x%0.8p)", program, index, bufSize, length, size, type, name); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, index, bufSize, length, size, type, name); if (context->skipValidation() || ValidateGetTransformFeedbackVarying(context, program, index, bufSize, length, size, type, name)) { context->getTransformFeedbackVarying(program, index, bufSize, length, size, type, name); } } } void GL_APIENTRY VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer) { EVENT( "(GLuint index = %u, GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void " "*pointer = 0x%0.8p)", index, size, type, stride, pointer); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, size, type, stride, pointer); if (context->skipValidation() || ValidateVertexAttribIPointer(context, index, size, type, stride, pointer)) { context->vertexAttribIPointer(index, size, type, stride, pointer); } } } void GL_APIENTRY GetVertexAttribIiv(GLuint index, GLenum pname, GLint *params) { EVENT("(GLuint index = %u, GLenum pname = 0x%X, GLint *params = 0x%0.8p)", index, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, pname, params); if (context->skipValidation() || ValidateGetVertexAttribIiv(context, index, pname, params)) { context->getVertexAttribIiv(index, pname, params); } } } void GL_APIENTRY GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params) { EVENT("(GLuint index = %u, GLenum pname = 0x%X, GLuint *params = 0x%0.8p)", index, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, pname, params); if (context->skipValidation() || ValidateGetVertexAttribIuiv(context, index, pname, params)) { context->getVertexAttribIuiv(index, pname, params); } } } void GL_APIENTRY VertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w) { EVENT("(GLuint index = %u, GLint x = %d, GLint y = %d, GLint z = %d, GLint w = %d)", index, x, y, z, w); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, x, y, z, w); if (context->skipValidation() || ValidateVertexAttribI4i(context, index, x, y, z, w)) { context->vertexAttribI4i(index, x, y, z, w); } } } void GL_APIENTRY VertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) { EVENT("(GLuint index = %u, GLuint x = %u, GLuint y = %u, GLuint z = %u, GLuint w = %u)", index, x, y, z, w); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, x, y, z, w); if (context->skipValidation() || ValidateVertexAttribI4ui(context, index, x, y, z, w)) { context->vertexAttribI4ui(index, x, y, z, w); } } } void GL_APIENTRY VertexAttribI4iv(GLuint index, const GLint *v) { EVENT("(GLuint index = %u, const GLint *v = 0x%0.8p)", index, v); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, v); if (context->skipValidation() || ValidateVertexAttribI4iv(context, index, v)) { context->vertexAttribI4iv(index, v); } } } void GL_APIENTRY VertexAttribI4uiv(GLuint index, const GLuint *v) { EVENT("(GLuint index = %u, const GLuint *v = 0x%0.8p)", index, v); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, v); if (context->skipValidation() || ValidateVertexAttribI4uiv(context, index, v)) { context->vertexAttribI4uiv(index, v); } } } void GL_APIENTRY GetUniformuiv(GLuint program, GLint location, GLuint *params) { EVENT("(GLuint program = %u, GLint location = %d, GLuint *params = 0x%0.8p)", program, location, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, location, params); if (context->skipValidation() || ValidateGetUniformuiv(context, program, location, params)) { context->getUniformuiv(program, location, params); } } } GLint GL_APIENTRY GetFragDataLocation(GLuint program, const GLchar *name) { EVENT("(GLuint program = %u, const GLchar *name = 0x%0.8p)", program, name); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, name); if (context->skipValidation() || ValidateGetFragDataLocation(context, program, name)) { return context->getFragDataLocation(program, name); } } return GetDefaultReturnValue(); } void GL_APIENTRY Uniform1ui(GLint location, GLuint v0) { EVENT("(GLint location = %d, GLuint v0 = %u)", location, v0); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, v0); if (context->skipValidation() || ValidateUniform1ui(context, location, v0)) { context->uniform1ui(location, v0); } } } void GL_APIENTRY Uniform2ui(GLint location, GLuint v0, GLuint v1) { EVENT("(GLint location = %d, GLuint v0 = %u, GLuint v1 = %u)", location, v0, v1); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, v0, v1); if (context->skipValidation() || ValidateUniform2ui(context, location, v0, v1)) { context->uniform2ui(location, v0, v1); } } } void GL_APIENTRY Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) { EVENT("(GLint location = %d, GLuint v0 = %u, GLuint v1 = %u, GLuint v2 = %u)", location, v0, v1, v2); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, v0, v1, v2); if (context->skipValidation() || ValidateUniform3ui(context, location, v0, v1, v2)) { context->uniform3ui(location, v0, v1, v2); } } } void GL_APIENTRY Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { EVENT("(GLint location = %d, GLuint v0 = %u, GLuint v1 = %u, GLuint v2 = %u, GLuint v3 = %u)", location, v0, v1, v2, v3); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, v0, v1, v2, v3); if (context->skipValidation() || ValidateUniform4ui(context, location, v0, v1, v2, v3)) { context->uniform4ui(location, v0, v1, v2, v3); } } } void GL_APIENTRY Uniform1uiv(GLint location, GLsizei count, const GLuint *value) { EVENT("(GLint location = %d, GLsizei count = %d, const GLuint *value = 0x%0.8p)", location, count, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, value); if (context->skipValidation() || ValidateUniform1uiv(context, location, count, value)) { context->uniform1uiv(location, count, value); } } } void GL_APIENTRY Uniform2uiv(GLint location, GLsizei count, const GLuint *value) { EVENT("(GLint location = %d, GLsizei count = %d, const GLuint *value = 0x%0.8p)", location, count, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, value); if (context->skipValidation() || ValidateUniform2uiv(context, location, count, value)) { context->uniform2uiv(location, count, value); } } } void GL_APIENTRY Uniform3uiv(GLint location, GLsizei count, const GLuint *value) { EVENT("(GLint location = %d, GLsizei count = %d, const GLuint *value = 0x%0.8p)", location, count, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, value); if (context->skipValidation() || ValidateUniform3uiv(context, location, count, value)) { context->uniform3uiv(location, count, value); } } } void GL_APIENTRY Uniform4uiv(GLint location, GLsizei count, const GLuint *value) { EVENT("(GLint location = %d, GLsizei count = %d, const GLuint *value = 0x%0.8p)", location, count, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(location, count, value); if (context->skipValidation() || ValidateUniform4uiv(context, location, count, value)) { context->uniform4uiv(location, count, value); } } } void GL_APIENTRY ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value) { EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLint *value = 0x%0.8p)", buffer, drawbuffer, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(buffer, drawbuffer, value); if (context->skipValidation() || ValidateClearBufferiv(context, buffer, drawbuffer, value)) { context->clearBufferiv(buffer, drawbuffer, value); } } } void GL_APIENTRY ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value) { EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLuint *value = 0x%0.8p)", buffer, drawbuffer, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(buffer, drawbuffer, value); if (context->skipValidation() || ValidateClearBufferuiv(context, buffer, drawbuffer, value)) { context->clearBufferuiv(buffer, drawbuffer, value); } } } void GL_APIENTRY ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value) { EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLfloat *value = 0x%0.8p)", buffer, drawbuffer, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(buffer, drawbuffer, value); if (context->skipValidation() || ValidateClearBufferfv(context, buffer, drawbuffer, value)) { context->clearBufferfv(buffer, drawbuffer, value); } } } void GL_APIENTRY ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, GLfloat depth = %f, GLint stencil = %d)", buffer, drawbuffer, depth, stencil); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(buffer, drawbuffer, depth, stencil); if (context->skipValidation() || ValidateClearBufferfi(context, buffer, drawbuffer, depth, stencil)) { context->clearBufferfi(buffer, drawbuffer, depth, stencil); } } } const GLubyte *GL_APIENTRY GetStringi(GLenum name, GLuint index) { EVENT("(GLenum name = 0x%X, GLuint index = %u)", name, index); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(name, index); if (context->skipValidation() || ValidateGetStringi(context, name, index)) { return context->getStringi(name, index); } } return GetDefaultReturnValue(); } void GL_APIENTRY CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { EVENT( "(GLenum readTarget = 0x%X, GLenum writeTarget = 0x%X, GLintptr readOffset = %d, GLintptr " "writeOffset = %d, GLsizeiptr size = %d)", readTarget, writeTarget, readOffset, writeOffset, size); Context *context = GetValidGlobalContext(); if (context) { BufferBinding readTargetPacked = FromGLenum(readTarget); BufferBinding writeTargetPacked = FromGLenum(writeTarget); context->gatherParams(readTargetPacked, writeTargetPacked, readOffset, writeOffset, size); if (context->skipValidation() || ValidateCopyBufferSubData(context, readTargetPacked, writeTargetPacked, readOffset, writeOffset, size)) { context->copyBufferSubData(readTargetPacked, writeTargetPacked, readOffset, writeOffset, size); } } } void GL_APIENTRY GetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices) { EVENT( "(GLuint program = %u, GLsizei uniformCount = %d, const GLchar *const*uniformNames = " "0x%0.8p, GLuint *uniformIndices = 0x%0.8p)", program, uniformCount, uniformNames, uniformIndices); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, uniformCount, uniformNames, uniformIndices); if (context->skipValidation() || ValidateGetUniformIndices(context, program, uniformCount, uniformNames, uniformIndices)) { context->getUniformIndices(program, uniformCount, uniformNames, uniformIndices); } } } void GL_APIENTRY GetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params) { EVENT( "(GLuint program = %u, GLsizei uniformCount = %d, const GLuint *uniformIndices = 0x%0.8p, " "GLenum pname = 0x%X, GLint *params = 0x%0.8p)", program, uniformCount, uniformIndices, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, uniformCount, uniformIndices, pname, params); if (context->skipValidation() || ValidateGetActiveUniformsiv(context, program, uniformCount, uniformIndices, pname, params)) { context->getActiveUniformsiv(program, uniformCount, uniformIndices, pname, params); } } } GLuint GL_APIENTRY GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName) { EVENT("(GLuint program = %u, const GLchar *uniformBlockName = 0x%0.8p)", program, uniformBlockName); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, uniformBlockName); if (context->skipValidation() || ValidateGetUniformBlockIndex(context, program, uniformBlockName)) { return context->getUniformBlockIndex(program, uniformBlockName); } } return GetDefaultReturnValue(); } void GL_APIENTRY GetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params) { EVENT( "(GLuint program = %u, GLuint uniformBlockIndex = %u, GLenum pname = 0x%X, GLint *params = " "0x%0.8p)", program, uniformBlockIndex, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, uniformBlockIndex, pname, params); if (context->skipValidation() || ValidateGetActiveUniformBlockiv(context, program, uniformBlockIndex, pname, params)) { context->getActiveUniformBlockiv(program, uniformBlockIndex, pname, params); } } } void GL_APIENTRY GetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName) { EVENT( "(GLuint program = %u, GLuint uniformBlockIndex = %u, GLsizei bufSize = %d, GLsizei " "*length = 0x%0.8p, GLchar *uniformBlockName = 0x%0.8p)", program, uniformBlockIndex, bufSize, length, uniformBlockName); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams( program, uniformBlockIndex, bufSize, length, uniformBlockName); if (context->skipValidation() || ValidateGetActiveUniformBlockName(context, program, uniformBlockIndex, bufSize, length, uniformBlockName)) { context->getActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName); } } } void GL_APIENTRY UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) { EVENT("(GLuint program = %u, GLuint uniformBlockIndex = %u, GLuint uniformBlockBinding = %u)", program, uniformBlockIndex, uniformBlockBinding); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, uniformBlockIndex, uniformBlockBinding); if (context->skipValidation() || ValidateUniformBlockBinding(context, program, uniformBlockIndex, uniformBlockBinding)) { context->uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding); } } } void GL_APIENTRY DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) { EVENT("(GLenum mode = 0x%X, GLint first = %d, GLsizei count = %d, GLsizei instancecount = %d)", mode, first, count, instancecount); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(mode, first, count, instancecount); if (context->skipValidation() || ValidateDrawArraysInstanced(context, mode, first, count, instancecount)) { context->drawArraysInstanced(mode, first, count, instancecount); } } } void GL_APIENTRY DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount) { EVENT( "(GLenum mode = 0x%X, GLsizei count = %d, GLenum type = 0x%X, const void *indices = " "0x%0.8p, GLsizei instancecount = %d)", mode, count, type, indices, instancecount); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(mode, count, type, indices, instancecount); if (context->skipValidation() || ValidateDrawElementsInstanced(context, mode, count, type, indices, instancecount)) { context->drawElementsInstanced(mode, count, type, indices, instancecount); } } } GLsync GL_APIENTRY FenceSync(GLenum condition, GLbitfield flags) { EVENT("(GLenum condition = 0x%X, GLbitfield flags = 0x%X)", condition, flags); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(condition, flags); if (context->skipValidation() || ValidateFenceSync(context, condition, flags)) { return context->fenceSync(condition, flags); } } return GetDefaultReturnValue(); } GLboolean GL_APIENTRY IsSync(GLsync sync) { EVENT("(GLsync sync = 0x%0.8p)", sync); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sync); if (context->skipValidation() || ValidateIsSync(context, sync)) { return context->isSync(sync); } } return GetDefaultReturnValue(); } void GL_APIENTRY DeleteSync(GLsync sync) { EVENT("(GLsync sync = 0x%0.8p)", sync); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sync); if (context->skipValidation() || ValidateDeleteSync(context, sync)) { context->deleteSync(sync); } } } GLenum GL_APIENTRY ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) { EVENT("(GLsync sync = 0x%0.8p, GLbitfield flags = 0x%X, GLuint64 timeout = %llu)", sync, flags, timeout); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sync, flags, timeout); if (context->skipValidation() || ValidateClientWaitSync(context, sync, flags, timeout)) { return context->clientWaitSync(sync, flags, timeout); } } return GetDefaultReturnValue(); } void GL_APIENTRY WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) { EVENT("(GLsync sync = 0x%0.8p, GLbitfield flags = 0x%X, GLuint64 timeout = %llu)", sync, flags, timeout); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sync, flags, timeout); if (context->skipValidation() || ValidateWaitSync(context, sync, flags, timeout)) { context->waitSync(sync, flags, timeout); } } } void GL_APIENTRY GetInteger64v(GLenum pname, GLint64 *data) { EVENT("(GLenum pname = 0x%X, GLint64 *data = 0x%0.8p)", pname, data); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(pname, data); if (context->skipValidation() || ValidateGetInteger64v(context, pname, data)) { context->getInteger64v(pname, data); } } } void GL_APIENTRY GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values) { EVENT( "(GLsync sync = 0x%0.8p, GLenum pname = 0x%X, GLsizei bufSize = %d, GLsizei *length = " "0x%0.8p, GLint *values = 0x%0.8p)", sync, pname, bufSize, length, values); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sync, pname, bufSize, length, values); if (context->skipValidation() || ValidateGetSynciv(context, sync, pname, bufSize, length, values)) { context->getSynciv(sync, pname, bufSize, length, values); } } } void GL_APIENTRY GetInteger64i_v(GLenum target, GLuint index, GLint64 *data) { EVENT("(GLenum target = 0x%X, GLuint index = %u, GLint64 *data = 0x%0.8p)", target, index, data); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, index, data); if (context->skipValidation() || ValidateGetInteger64i_v(context, target, index, data)) { context->getInteger64i_v(target, index, data); } } } void GL_APIENTRY GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params) { EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint64 *params = 0x%0.8p)", target, pname, params); Context *context = GetValidGlobalContext(); if (context) { BufferBinding targetPacked = FromGLenum(target); context->gatherParams(targetPacked, pname, params); if (context->skipValidation() || ValidateGetBufferParameteri64v(context, targetPacked, pname, params)) { context->getBufferParameteri64v(targetPacked, pname, params); } } } void GL_APIENTRY GenSamplers(GLsizei count, GLuint *samplers) { EVENT("(GLsizei count = %d, GLuint *samplers = 0x%0.8p)", count, samplers); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(count, samplers); if (context->skipValidation() || ValidateGenSamplers(context, count, samplers)) { context->genSamplers(count, samplers); } } } void GL_APIENTRY DeleteSamplers(GLsizei count, const GLuint *samplers) { EVENT("(GLsizei count = %d, const GLuint *samplers = 0x%0.8p)", count, samplers); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(count, samplers); if (context->skipValidation() || ValidateDeleteSamplers(context, count, samplers)) { context->deleteSamplers(count, samplers); } } } GLboolean GL_APIENTRY IsSampler(GLuint sampler) { EVENT("(GLuint sampler = %u)", sampler); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler); if (context->skipValidation() || ValidateIsSampler(context, sampler)) { return context->isSampler(sampler); } } return GetDefaultReturnValue(); } void GL_APIENTRY BindSampler(GLuint unit, GLuint sampler) { EVENT("(GLuint unit = %u, GLuint sampler = %u)", unit, sampler); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(unit, sampler); if (context->skipValidation() || ValidateBindSampler(context, unit, sampler)) { context->bindSampler(unit, sampler); } } } void GL_APIENTRY SamplerParameteri(GLuint sampler, GLenum pname, GLint param) { EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLint param = %d)", sampler, pname, param); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler, pname, param); if (context->skipValidation() || ValidateSamplerParameteri(context, sampler, pname, param)) { context->samplerParameteri(sampler, pname, param); } } } void GL_APIENTRY SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param) { EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, const GLint *param = 0x%0.8p)", sampler, pname, param); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler, pname, param); if (context->skipValidation() || ValidateSamplerParameteriv(context, sampler, pname, param)) { context->samplerParameteriv(sampler, pname, param); } } } void GL_APIENTRY SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) { EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLfloat param = %f)", sampler, pname, param); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler, pname, param); if (context->skipValidation() || ValidateSamplerParameterf(context, sampler, pname, param)) { context->samplerParameterf(sampler, pname, param); } } } void GL_APIENTRY SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param) { EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, const GLfloat *param = 0x%0.8p)", sampler, pname, param); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler, pname, param); if (context->skipValidation() || ValidateSamplerParameterfv(context, sampler, pname, param)) { context->samplerParameterfv(sampler, pname, param); } } } void GL_APIENTRY GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params) { EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLint *params = 0x%0.8p)", sampler, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler, pname, params); if (context->skipValidation() || ValidateGetSamplerParameteriv(context, sampler, pname, params)) { context->getSamplerParameteriv(sampler, pname, params); } } } void GL_APIENTRY GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params) { EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLfloat *params = 0x%0.8p)", sampler, pname, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(sampler, pname, params); if (context->skipValidation() || ValidateGetSamplerParameterfv(context, sampler, pname, params)) { context->getSamplerParameterfv(sampler, pname, params); } } } void GL_APIENTRY VertexAttribDivisor(GLuint index, GLuint divisor) { EVENT("(GLuint index = %u, GLuint divisor = %u)", index, divisor); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(index, divisor); if (context->skipValidation() || ValidateVertexAttribDivisor(context, index, divisor)) { context->vertexAttribDivisor(index, divisor); } } } void GL_APIENTRY BindTransformFeedback(GLenum target, GLuint id) { EVENT("(GLenum target = 0x%X, GLuint id = %u)", target, id); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, id); if (context->skipValidation() || ValidateBindTransformFeedback(context, target, id)) { context->bindTransformFeedback(target, id); } } } void GL_APIENTRY DeleteTransformFeedbacks(GLsizei n, const GLuint *ids) { EVENT("(GLsizei n = %d, const GLuint *ids = 0x%0.8p)", n, ids); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, ids); if (context->skipValidation() || ValidateDeleteTransformFeedbacks(context, n, ids)) { context->deleteTransformFeedbacks(n, ids); } } } void GL_APIENTRY GenTransformFeedbacks(GLsizei n, GLuint *ids) { EVENT("(GLsizei n = %d, GLuint *ids = 0x%0.8p)", n, ids); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(n, ids); if (context->skipValidation() || ValidateGenTransformFeedbacks(context, n, ids)) { context->genTransformFeedbacks(n, ids); } } } GLboolean GL_APIENTRY IsTransformFeedback(GLuint id) { EVENT("(GLuint id = %u)", id); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(id); if (context->skipValidation() || ValidateIsTransformFeedback(context, id)) { return context->isTransformFeedback(id); } } return GetDefaultReturnValue(); } void GL_APIENTRY PauseTransformFeedback() { EVENT("()"); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(); if (context->skipValidation() || ValidatePauseTransformFeedback(context)) { context->pauseTransformFeedback(); } } } void GL_APIENTRY ResumeTransformFeedback() { EVENT("()"); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(); if (context->skipValidation() || ValidateResumeTransformFeedback(context)) { context->resumeTransformFeedback(); } } } void GL_APIENTRY GetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary) { EVENT( "(GLuint program = %u, GLsizei bufSize = %d, GLsizei *length = 0x%0.8p, GLenum " "*binaryFormat = 0x%0.8p, void *binary = 0x%0.8p)", program, bufSize, length, binaryFormat, binary); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, bufSize, length, binaryFormat, binary); if (context->skipValidation() || ValidateGetProgramBinary(context, program, bufSize, length, binaryFormat, binary)) { context->getProgramBinary(program, bufSize, length, binaryFormat, binary); } } } void GL_APIENTRY ProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length) { EVENT( "(GLuint program = %u, GLenum binaryFormat = 0x%X, const void *binary = 0x%0.8p, GLsizei " "length = %d)", program, binaryFormat, binary, length); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, binaryFormat, binary, length); if (context->skipValidation() || ValidateProgramBinary(context, program, binaryFormat, binary, length)) { context->programBinary(program, binaryFormat, binary, length); } } } void GL_APIENTRY ProgramParameteri(GLuint program, GLenum pname, GLint value) { EVENT("(GLuint program = %u, GLenum pname = 0x%X, GLint value = %d)", program, pname, value); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(program, pname, value); if (context->skipValidation() || ValidateProgramParameteri(context, program, pname, value)) { context->programParameteri(program, pname, value); } } } void GL_APIENTRY InvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments) { EVENT( "(GLenum target = 0x%X, GLsizei numAttachments = %d, const GLenum *attachments = 0x%0.8p)", target, numAttachments, attachments); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, numAttachments, attachments); if (context->skipValidation() || ValidateInvalidateFramebuffer(context, target, numAttachments, attachments)) { context->invalidateFramebuffer(target, numAttachments, attachments); } } } void GL_APIENTRY InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height) { EVENT( "(GLenum target = 0x%X, GLsizei numAttachments = %d, const GLenum *attachments = 0x%0.8p, " "GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", target, numAttachments, attachments, x, y, width, height); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams( target, numAttachments, attachments, x, y, width, height); if (context->skipValidation() || ValidateInvalidateSubFramebuffer(context, target, numAttachments, attachments, x, y, width, height)) { context->invalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height); } } } void GL_APIENTRY TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { EVENT( "(GLenum target = 0x%X, GLsizei levels = %d, GLenum internalformat = 0x%X, GLsizei width = " "%d, GLsizei height = %d)", target, levels, internalformat, width, height); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, levels, internalformat, width, height); if (context->skipValidation() || ValidateTexStorage2D(context, target, levels, internalformat, width, height)) { context->texStorage2D(target, levels, internalformat, width, height); } } } void GL_APIENTRY TexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { EVENT( "(GLenum target = 0x%X, GLsizei levels = %d, GLenum internalformat = 0x%X, GLsizei width = " "%d, GLsizei height = %d, GLsizei depth = %d)", target, levels, internalformat, width, height, depth); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, levels, internalformat, width, height, depth); if (context->skipValidation() || ValidateTexStorage3D(context, target, levels, internalformat, width, height, depth)) { context->texStorage3D(target, levels, internalformat, width, height, depth); } } } void GL_APIENTRY GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params) { EVENT( "(GLenum target = 0x%X, GLenum internalformat = 0x%X, GLenum pname = 0x%X, GLsizei bufSize " "= %d, GLint *params = 0x%0.8p)", target, internalformat, pname, bufSize, params); Context *context = GetValidGlobalContext(); if (context) { context->gatherParams(target, internalformat, pname, bufSize, params); if (context->skipValidation() || ValidateGetInternalformativ(context, target, internalformat, pname, bufSize, params)) { context->getInternalformativ(target, internalformat, pname, bufSize, params); } } } } // namespace gl