Add GLES1 targets and stub entry points.

 * Create a new libGLESv1_CM target.
 * Merge all autogenerated extension entry points into one file.
 * Allow creation of ES1 contexts.

BUG=angleproject:2306

Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78
Reviewed-on: https://chromium-review.googlesource.com/865718
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/entry_points_gles_1_0_autogen.cpp b/src/libGLESv2/entry_points_gles_1_0_autogen.cpp
new file mode 100644
index 0000000..ebee629
--- /dev/null
+++ b/src/libGLESv2/entry_points_gles_1_0_autogen.cpp
@@ -0,0 +1,2505 @@
+// GENERATED FILE - DO NOT EDIT.
+// Generated by generate_entry_points.py using data from gl.xml.
+//
+// Copyright 2018 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_1_0_autogen.cpp:
+//   Defines the GLES 1.0 entry points.
+
+#include "libGLESv2/entry_points_gles_1_0_autogen.h"
+
+#include "libANGLE/Context.h"
+#include "libANGLE/validationES1.h"
+#include "libGLESv2/global_state.h"
+
+namespace gl
+{
+void GL_APIENTRY ActiveTexture(GLenum texture)
+{
+    EVENT("(GLenum texture = 0x%X)", texture);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ActiveTexture>(texture);
+
+        if (context->skipValidation() || ValidateActiveTexture(context, texture))
+        {
+            context->activeTexture(texture);
+        }
+    }
+}
+
+void GL_APIENTRY AlphaFunc(GLenum func, GLfloat ref)
+{
+    EVENT("(GLenum func = 0x%X, GLfloat ref = %f)", func, ref);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::AlphaFunc>(func, ref);
+
+        if (context->skipValidation() || ValidateAlphaFunc(context, func, ref))
+        {
+            context->alphaFunc(func, ref);
+        }
+    }
+}
+
+void GL_APIENTRY AlphaFuncx(GLenum func, GLfixed ref)
+{
+    EVENT("(GLenum func = 0x%X, GLfixed ref = 0x%X)", func, ref);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::AlphaFuncx>(func, ref);
+
+        if (context->skipValidation() || ValidateAlphaFuncx(context, func, ref))
+        {
+            context->alphaFuncx(func, ref);
+        }
+    }
+}
+
+void GL_APIENTRY BindBuffer(GLenum target, GLuint buffer)
+{
+    EVENT("(GLenum target = 0x%X, GLuint buffer = %u)", target, buffer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
+        context->gatherParams<EntryPoint::BindBuffer>(targetPacked, buffer);
+
+        if (context->skipValidation() || ValidateBindBuffer(context, targetPacked, buffer))
+        {
+            context->bindBuffer(targetPacked, buffer);
+        }
+    }
+}
+
+void GL_APIENTRY BindTexture(GLenum target, GLuint texture)
+{
+    EVENT("(GLenum target = 0x%X, GLuint texture = %u)", target, texture);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::BindTexture>(target, texture);
+
+        if (context->skipValidation() || ValidateBindTexture(context, target, texture))
+        {
+            context->bindTexture(target, texture);
+        }
+    }
+}
+
+void GL_APIENTRY BlendFunc(GLenum sfactor, GLenum dfactor)
+{
+    EVENT("(GLenum sfactor = 0x%X, GLenum dfactor = 0x%X)", sfactor, dfactor);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::BlendFunc>(sfactor, dfactor);
+
+        if (context->skipValidation() || ValidateBlendFunc(context, sfactor, dfactor))
+        {
+            context->blendFunc(sfactor, dfactor);
+        }
+    }
+}
+
+void GL_APIENTRY BufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)
+{
+    EVENT(
+        "(GLenum target = 0x%X, GLsizeiptr size = %d, const void *data = 0x%0.8p, GLenum usage = "
+        "0x%X)",
+        target, size, data, usage);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
+        BufferUsage usagePacked    = FromGLenum<BufferUsage>(usage);
+        context->gatherParams<EntryPoint::BufferData>(targetPacked, size, data, usagePacked);
+
+        if (context->skipValidation() ||
+            ValidateBufferData(context, targetPacked, size, data, usagePacked))
+        {
+            context->bufferData(targetPacked, size, data, usagePacked);
+        }
+    }
+}
+
+void GL_APIENTRY BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data)
+{
+    EVENT(
+        "(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr size = %d, const void *data = "
+        "0x%0.8p)",
+        target, offset, size, data);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
+        context->gatherParams<EntryPoint::BufferSubData>(targetPacked, offset, size, data);
+
+        if (context->skipValidation() ||
+            ValidateBufferSubData(context, targetPacked, offset, size, data))
+        {
+            context->bufferSubData(targetPacked, offset, size, data);
+        }
+    }
+}
+
+void GL_APIENTRY Clear(GLbitfield mask)
+{
+    EVENT("(GLbitfield mask = 0x%X)", mask);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Clear>(mask);
+
+        if (context->skipValidation() || ValidateClear(context, mask))
+        {
+            context->clear(mask);
+        }
+    }
+}
+
+void GL_APIENTRY ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+    EVENT("(GLfloat red = %f, GLfloat green = %f, GLfloat blue = %f, GLfloat alpha = %f)", red,
+          green, blue, alpha);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClearColor>(red, green, blue, alpha);
+
+        if (context->skipValidation() || ValidateClearColor(context, red, green, blue, alpha))
+        {
+            context->clearColor(red, green, blue, alpha);
+        }
+    }
+}
+
+void GL_APIENTRY ClearColorx(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+    EVENT("(GLfixed red = 0x%X, GLfixed green = 0x%X, GLfixed blue = 0x%X, GLfixed alpha = 0x%X)",
+          red, green, blue, alpha);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClearColorx>(red, green, blue, alpha);
+
+        if (context->skipValidation() || ValidateClearColorx(context, red, green, blue, alpha))
+        {
+            context->clearColorx(red, green, blue, alpha);
+        }
+    }
+}
+
+void GL_APIENTRY ClearDepthf(GLfloat d)
+{
+    EVENT("(GLfloat d = %f)", d);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClearDepthf>(d);
+
+        if (context->skipValidation() || ValidateClearDepthf(context, d))
+        {
+            context->clearDepthf(d);
+        }
+    }
+}
+
+void GL_APIENTRY ClearDepthx(GLfixed depth)
+{
+    EVENT("(GLfixed depth = 0x%X)", depth);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClearDepthx>(depth);
+
+        if (context->skipValidation() || ValidateClearDepthx(context, depth))
+        {
+            context->clearDepthx(depth);
+        }
+    }
+}
+
+void GL_APIENTRY ClearStencil(GLint s)
+{
+    EVENT("(GLint s = %d)", s);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClearStencil>(s);
+
+        if (context->skipValidation() || ValidateClearStencil(context, s))
+        {
+            context->clearStencil(s);
+        }
+    }
+}
+
+void GL_APIENTRY ClientActiveTexture(GLenum texture)
+{
+    EVENT("(GLenum texture = 0x%X)", texture);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClientActiveTexture>(texture);
+
+        if (context->skipValidation() || ValidateClientActiveTexture(context, texture))
+        {
+            context->clientActiveTexture(texture);
+        }
+    }
+}
+
+void GL_APIENTRY ClipPlanef(GLenum p, const GLfloat *eqn)
+{
+    EVENT("(GLenum p = 0x%X, const GLfloat *eqn = 0x%0.8p)", p, eqn);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClipPlanef>(p, eqn);
+
+        if (context->skipValidation() || ValidateClipPlanef(context, p, eqn))
+        {
+            context->clipPlanef(p, eqn);
+        }
+    }
+}
+
+void GL_APIENTRY ClipPlanex(GLenum plane, const GLfixed *equation)
+{
+    EVENT("(GLenum plane = 0x%X, const GLfixed *equation = 0x%0.8p)", plane, equation);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ClipPlanex>(plane, equation);
+
+        if (context->skipValidation() || ValidateClipPlanex(context, plane, equation))
+        {
+            context->clipPlanex(plane, equation);
+        }
+    }
+}
+
+void GL_APIENTRY Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+    EVENT("(GLfloat red = %f, GLfloat green = %f, GLfloat blue = %f, GLfloat alpha = %f)", red,
+          green, blue, alpha);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Color4f>(red, green, blue, alpha);
+
+        if (context->skipValidation() || ValidateColor4f(context, red, green, blue, alpha))
+        {
+            context->color4f(red, green, blue, alpha);
+        }
+    }
+}
+
+void GL_APIENTRY Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+    EVENT("(GLubyte red = %d, GLubyte green = %d, GLubyte blue = %d, GLubyte alpha = %d)", red,
+          green, blue, alpha);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Color4ub>(red, green, blue, alpha);
+
+        if (context->skipValidation() || ValidateColor4ub(context, red, green, blue, alpha))
+        {
+            context->color4ub(red, green, blue, alpha);
+        }
+    }
+}
+
+void GL_APIENTRY Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+    EVENT("(GLfixed red = 0x%X, GLfixed green = 0x%X, GLfixed blue = 0x%X, GLfixed alpha = 0x%X)",
+          red, green, blue, alpha);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Color4x>(red, green, blue, alpha);
+
+        if (context->skipValidation() || ValidateColor4x(context, red, green, blue, alpha))
+        {
+            context->color4x(red, green, blue, alpha);
+        }
+    }
+}
+
+void GL_APIENTRY ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+    EVENT("(GLboolean red = %u, GLboolean green = %u, GLboolean blue = %u, GLboolean alpha = %u)",
+          red, green, blue, alpha);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ColorMask>(red, green, blue, alpha);
+
+        if (context->skipValidation() || ValidateColorMask(context, red, green, blue, alpha))
+        {
+            context->colorMask(red, green, blue, alpha);
+        }
+    }
+}
+
+void GL_APIENTRY ColorPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT(
+        "(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
+        size, type, stride, pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ColorPointer>(size, type, stride, pointer);
+
+        if (context->skipValidation() || ValidateColorPointer(context, size, type, stride, pointer))
+        {
+            context->colorPointer(size, type, stride, pointer);
+        }
+    }
+}
+
+void GL_APIENTRY CompressedTexImage2D(GLenum target,
+                                      GLint level,
+                                      GLenum internalformat,
+                                      GLsizei width,
+                                      GLsizei height,
+                                      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, GLint border = %d, GLsizei imageSize = %d, const void *data = "
+        "0x%0.8p)",
+        target, level, internalformat, width, height, border, imageSize, data);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::CompressedTexImage2D>(
+            target, level, internalformat, width, height, border, imageSize, data);
+
+        if (context->skipValidation() ||
+            ValidateCompressedTexImage2D(context, target, level, internalformat, width, height,
+                                         border, imageSize, data))
+        {
+            context->compressedTexImage2D(target, level, internalformat, width, height, border,
+                                          imageSize, data);
+        }
+    }
+}
+
+void GL_APIENTRY CompressedTexSubImage2D(GLenum target,
+                                         GLint level,
+                                         GLint xoffset,
+                                         GLint yoffset,
+                                         GLsizei width,
+                                         GLsizei height,
+                                         GLenum format,
+                                         GLsizei imageSize,
+                                         const void *data)
+{
+    EVENT(
+        "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLsizei "
+        "width = %d, GLsizei height = %d, GLenum format = 0x%X, GLsizei imageSize = %d, const void "
+        "*data = 0x%0.8p)",
+        target, level, xoffset, yoffset, width, height, format, imageSize, data);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::CompressedTexSubImage2D>(
+            target, level, xoffset, yoffset, width, height, format, imageSize, data);
+
+        if (context->skipValidation() ||
+            ValidateCompressedTexSubImage2D(context, target, level, xoffset, yoffset, width, height,
+                                            format, imageSize, data))
+        {
+            context->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format,
+                                             imageSize, data);
+        }
+    }
+}
+
+void GL_APIENTRY CopyTexImage2D(GLenum target,
+                                GLint level,
+                                GLenum internalformat,
+                                GLint x,
+                                GLint y,
+                                GLsizei width,
+                                GLsizei height,
+                                GLint border)
+{
+    EVENT(
+        "(GLenum target = 0x%X, GLint level = %d, GLenum internalformat = 0x%X, GLint x = %d, "
+        "GLint y = %d, GLsizei width = %d, GLsizei height = %d, GLint border = %d)",
+        target, level, internalformat, x, y, width, height, border);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::CopyTexImage2D>(target, level, internalformat, x, y,
+                                                          width, height, border);
+
+        if (context->skipValidation() ||
+            ValidateCopyTexImage2D(context, target, level, internalformat, x, y, width, height,
+                                   border))
+        {
+            context->copyTexImage2D(target, level, internalformat, x, y, width, height, border);
+        }
+    }
+}
+
+void GL_APIENTRY CopyTexSubImage2D(GLenum target,
+                                   GLint level,
+                                   GLint xoffset,
+                                   GLint yoffset,
+                                   GLint x,
+                                   GLint y,
+                                   GLsizei width,
+                                   GLsizei height)
+{
+    EVENT(
+        "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint x "
+        "= %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
+        target, level, xoffset, yoffset, x, y, width, height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::CopyTexSubImage2D>(target, level, xoffset, yoffset, x, y,
+                                                             width, height);
+
+        if (context->skipValidation() || ValidateCopyTexSubImage2D(context, target, level, xoffset,
+                                                                   yoffset, x, y, width, height))
+        {
+            context->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+        }
+    }
+}
+
+void GL_APIENTRY CullFace(GLenum mode)
+{
+    EVENT("(GLenum mode = 0x%X)", mode);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        CullFaceMode modePacked = FromGLenum<CullFaceMode>(mode);
+        context->gatherParams<EntryPoint::CullFace>(modePacked);
+
+        if (context->skipValidation() || ValidateCullFace(context, modePacked))
+        {
+            context->cullFace(modePacked);
+        }
+    }
+}
+
+void GL_APIENTRY DeleteBuffers(GLsizei n, const GLuint *buffers)
+{
+    EVENT("(GLsizei n = %d, const GLuint *buffers = 0x%0.8p)", n, buffers);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DeleteBuffers>(n, buffers);
+
+        if (context->skipValidation() || ValidateDeleteBuffers(context, n, buffers))
+        {
+            context->deleteBuffers(n, buffers);
+        }
+    }
+}
+
+void GL_APIENTRY DeleteTextures(GLsizei n, const GLuint *textures)
+{
+    EVENT("(GLsizei n = %d, const GLuint *textures = 0x%0.8p)", n, textures);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DeleteTextures>(n, textures);
+
+        if (context->skipValidation() || ValidateDeleteTextures(context, n, textures))
+        {
+            context->deleteTextures(n, textures);
+        }
+    }
+}
+
+void GL_APIENTRY DepthFunc(GLenum func)
+{
+    EVENT("(GLenum func = 0x%X)", func);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DepthFunc>(func);
+
+        if (context->skipValidation() || ValidateDepthFunc(context, func))
+        {
+            context->depthFunc(func);
+        }
+    }
+}
+
+void GL_APIENTRY DepthMask(GLboolean flag)
+{
+    EVENT("(GLboolean flag = %u)", flag);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DepthMask>(flag);
+
+        if (context->skipValidation() || ValidateDepthMask(context, flag))
+        {
+            context->depthMask(flag);
+        }
+    }
+}
+
+void GL_APIENTRY DepthRangef(GLfloat n, GLfloat f)
+{
+    EVENT("(GLfloat n = %f, GLfloat f = %f)", n, f);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DepthRangef>(n, f);
+
+        if (context->skipValidation() || ValidateDepthRangef(context, n, f))
+        {
+            context->depthRangef(n, f);
+        }
+    }
+}
+
+void GL_APIENTRY DepthRangex(GLfixed n, GLfixed f)
+{
+    EVENT("(GLfixed n = 0x%X, GLfixed f = 0x%X)", n, f);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DepthRangex>(n, f);
+
+        if (context->skipValidation() || ValidateDepthRangex(context, n, f))
+        {
+            context->depthRangex(n, f);
+        }
+    }
+}
+
+void GL_APIENTRY Disable(GLenum cap)
+{
+    EVENT("(GLenum cap = 0x%X)", cap);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Disable>(cap);
+
+        if (context->skipValidation() || ValidateDisable(context, cap))
+        {
+            context->disable(cap);
+        }
+    }
+}
+
+void GL_APIENTRY DisableClientState(GLenum array)
+{
+    EVENT("(GLenum array = 0x%X)", array);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DisableClientState>(array);
+
+        if (context->skipValidation() || ValidateDisableClientState(context, array))
+        {
+            context->disableClientState(array);
+        }
+    }
+}
+
+void GL_APIENTRY DrawArrays(GLenum mode, GLint first, GLsizei count)
+{
+    EVENT("(GLenum mode = 0x%X, GLint first = %d, GLsizei count = %d)", mode, first, count);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawArrays>(mode, first, count);
+
+        if (context->skipValidation() || ValidateDrawArrays(context, mode, first, count))
+        {
+            context->drawArrays(mode, first, count);
+        }
+    }
+}
+
+void GL_APIENTRY DrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)
+{
+    EVENT(
+        "(GLenum mode = 0x%X, GLsizei count = %d, GLenum type = 0x%X, const void *indices = "
+        "0x%0.8p)",
+        mode, count, type, indices);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawElements>(mode, count, type, indices);
+
+        if (context->skipValidation() || ValidateDrawElements(context, mode, count, type, indices))
+        {
+            context->drawElements(mode, count, type, indices);
+        }
+    }
+}
+
+void GL_APIENTRY Enable(GLenum cap)
+{
+    EVENT("(GLenum cap = 0x%X)", cap);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Enable>(cap);
+
+        if (context->skipValidation() || ValidateEnable(context, cap))
+        {
+            context->enable(cap);
+        }
+    }
+}
+
+void GL_APIENTRY EnableClientState(GLenum array)
+{
+    EVENT("(GLenum array = 0x%X)", array);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::EnableClientState>(array);
+
+        if (context->skipValidation() || ValidateEnableClientState(context, array))
+        {
+            context->enableClientState(array);
+        }
+    }
+}
+
+void GL_APIENTRY Finish()
+{
+    EVENT("()");
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Finish>();
+
+        if (context->skipValidation() || ValidateFinish(context))
+        {
+            context->finish();
+        }
+    }
+}
+
+void GL_APIENTRY Flush()
+{
+    EVENT("()");
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Flush>();
+
+        if (context->skipValidation() || ValidateFlush(context))
+        {
+            context->flush();
+        }
+    }
+}
+
+void GL_APIENTRY Fogf(GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum pname = 0x%X, GLfloat param = %f)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Fogf>(pname, param);
+
+        if (context->skipValidation() || ValidateFogf(context, pname, param))
+        {
+            context->fogf(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Fogfv(GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Fogfv>(pname, params);
+
+        if (context->skipValidation() || ValidateFogfv(context, pname, params))
+        {
+            context->fogfv(pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY Fogx(GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum pname = 0x%X, GLfixed param = 0x%X)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Fogx>(pname, param);
+
+        if (context->skipValidation() || ValidateFogx(context, pname, param))
+        {
+            context->fogx(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Fogxv(GLenum pname, const GLfixed *param)
+{
+    EVENT("(GLenum pname = 0x%X, const GLfixed *param = 0x%0.8p)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Fogxv>(pname, param);
+
+        if (context->skipValidation() || ValidateFogxv(context, pname, param))
+        {
+            context->fogxv(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY FrontFace(GLenum mode)
+{
+    EVENT("(GLenum mode = 0x%X)", mode);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::FrontFace>(mode);
+
+        if (context->skipValidation() || ValidateFrontFace(context, mode))
+        {
+            context->frontFace(mode);
+        }
+    }
+}
+
+void GL_APIENTRY Frustumf(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)
+{
+    EVENT(
+        "(GLfloat l = %f, GLfloat r = %f, GLfloat b = %f, GLfloat t = %f, GLfloat n = %f, GLfloat "
+        "f = %f)",
+        l, r, b, t, n, f);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Frustumf>(l, r, b, t, n, f);
+
+        if (context->skipValidation() || ValidateFrustumf(context, l, r, b, t, n, f))
+        {
+            context->frustumf(l, r, b, t, n, f);
+        }
+    }
+}
+
+void GL_APIENTRY Frustumx(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f)
+{
+    EVENT(
+        "(GLfixed l = 0x%X, GLfixed r = 0x%X, GLfixed b = 0x%X, GLfixed t = 0x%X, GLfixed n = "
+        "0x%X, GLfixed f = 0x%X)",
+        l, r, b, t, n, f);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Frustumx>(l, r, b, t, n, f);
+
+        if (context->skipValidation() || ValidateFrustumx(context, l, r, b, t, n, f))
+        {
+            context->frustumx(l, r, b, t, n, f);
+        }
+    }
+}
+
+void GL_APIENTRY GenBuffers(GLsizei n, GLuint *buffers)
+{
+    EVENT("(GLsizei n = %d, GLuint *buffers = 0x%0.8p)", n, buffers);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GenBuffers>(n, buffers);
+
+        if (context->skipValidation() || ValidateGenBuffers(context, n, buffers))
+        {
+            context->genBuffers(n, buffers);
+        }
+    }
+}
+
+void GL_APIENTRY GenTextures(GLsizei n, GLuint *textures)
+{
+    EVENT("(GLsizei n = %d, GLuint *textures = 0x%0.8p)", n, textures);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GenTextures>(n, textures);
+
+        if (context->skipValidation() || ValidateGenTextures(context, n, textures))
+        {
+            context->genTextures(n, textures);
+        }
+    }
+}
+
+void GL_APIENTRY GetBooleanv(GLenum pname, GLboolean *data)
+{
+    EVENT("(GLenum pname = 0x%X, GLboolean *data = 0x%0.8p)", pname, data);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetBooleanv>(pname, data);
+
+        if (context->skipValidation() || ValidateGetBooleanv(context, pname, data))
+        {
+            context->getBooleanv(pname, data);
+        }
+    }
+}
+
+void GL_APIENTRY GetBufferParameteriv(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)
+    {
+        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
+        context->gatherParams<EntryPoint::GetBufferParameteriv>(targetPacked, pname, params);
+
+        if (context->skipValidation() ||
+            ValidateGetBufferParameteriv(context, targetPacked, pname, params))
+        {
+            context->getBufferParameteriv(targetPacked, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetClipPlanef(GLenum plane, GLfloat *equation)
+{
+    EVENT("(GLenum plane = 0x%X, GLfloat *equation = 0x%0.8p)", plane, equation);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetClipPlanef>(plane, equation);
+
+        if (context->skipValidation() || ValidateGetClipPlanef(context, plane, equation))
+        {
+            context->getClipPlanef(plane, equation);
+        }
+    }
+}
+
+void GL_APIENTRY GetClipPlanex(GLenum plane, GLfixed *equation)
+{
+    EVENT("(GLenum plane = 0x%X, GLfixed *equation = 0x%0.8p)", plane, equation);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetClipPlanex>(plane, equation);
+
+        if (context->skipValidation() || ValidateGetClipPlanex(context, plane, equation))
+        {
+            context->getClipPlanex(plane, equation);
+        }
+    }
+}
+
+GLenum GL_APIENTRY GetError()
+{
+    EVENT("()");
+
+    Context *context = GetGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetError>();
+
+        if (context->skipValidation() || ValidateGetError(context))
+        {
+            return context->getError();
+        }
+    }
+
+    return GetDefaultReturnValue<EntryPoint::GetError, GLenum>();
+}
+
+void GL_APIENTRY GetFixedv(GLenum pname, GLfixed *params)
+{
+    EVENT("(GLenum pname = 0x%X, GLfixed *params = 0x%0.8p)", pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetFixedv>(pname, params);
+
+        if (context->skipValidation() || ValidateGetFixedv(context, pname, params))
+        {
+            context->getFixedv(pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetFloatv(GLenum pname, GLfloat *data)
+{
+    EVENT("(GLenum pname = 0x%X, GLfloat *data = 0x%0.8p)", pname, data);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetFloatv>(pname, data);
+
+        if (context->skipValidation() || ValidateGetFloatv(context, pname, data))
+        {
+            context->getFloatv(pname, data);
+        }
+    }
+}
+
+void GL_APIENTRY GetIntegerv(GLenum pname, GLint *data)
+{
+    EVENT("(GLenum pname = 0x%X, GLint *data = 0x%0.8p)", pname, data);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetIntegerv>(pname, data);
+
+        if (context->skipValidation() || ValidateGetIntegerv(context, pname, data))
+        {
+            context->getIntegerv(pname, data);
+        }
+    }
+}
+
+void GL_APIENTRY GetLightfv(GLenum light, GLenum pname, GLfloat *params)
+{
+    EVENT("(GLenum light = 0x%X, GLenum pname = 0x%X, GLfloat *params = 0x%0.8p)", light, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetLightfv>(light, pname, params);
+
+        if (context->skipValidation() || ValidateGetLightfv(context, light, pname, params))
+        {
+            context->getLightfv(light, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetLightxv(GLenum light, GLenum pname, GLfixed *params)
+{
+    EVENT("(GLenum light = 0x%X, GLenum pname = 0x%X, GLfixed *params = 0x%0.8p)", light, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetLightxv>(light, pname, params);
+
+        if (context->skipValidation() || ValidateGetLightxv(context, light, pname, params))
+        {
+            context->getLightxv(light, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
+{
+    EVENT("(GLenum face = 0x%X, GLenum pname = 0x%X, GLfloat *params = 0x%0.8p)", face, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetMaterialfv>(face, pname, params);
+
+        if (context->skipValidation() || ValidateGetMaterialfv(context, face, pname, params))
+        {
+            context->getMaterialfv(face, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
+{
+    EVENT("(GLenum face = 0x%X, GLenum pname = 0x%X, GLfixed *params = 0x%0.8p)", face, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetMaterialxv>(face, pname, params);
+
+        if (context->skipValidation() || ValidateGetMaterialxv(context, face, pname, params))
+        {
+            context->getMaterialxv(face, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetPointerv(GLenum pname, void **params)
+{
+    EVENT("(GLenum pname = 0x%X, void **params = 0x%0.8p)", pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetPointerv>(pname, params);
+
+        if (context->skipValidation() || ValidateGetPointerv(context, pname, params))
+        {
+            context->getPointerv(pname, params);
+        }
+    }
+}
+
+const GLubyte *GL_APIENTRY GetString(GLenum name)
+{
+    EVENT("(GLenum name = 0x%X)", name);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetString>(name);
+
+        if (context->skipValidation() || ValidateGetString(context, name))
+        {
+            return context->getString(name);
+        }
+    }
+
+    return GetDefaultReturnValue<EntryPoint::GetString, const GLubyte *>();
+}
+
+void GL_APIENTRY GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat *params = 0x%0.8p)", target, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetTexEnvfv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateGetTexEnvfv(context, target, pname, params))
+        {
+            context->getTexEnvfv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetTexEnviv(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<EntryPoint::GetTexEnviv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateGetTexEnviv(context, target, pname, params))
+        {
+            context->getTexEnviv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetTexEnvxv(GLenum target, GLenum pname, GLfixed *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfixed *params = 0x%0.8p)", target, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetTexEnvxv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateGetTexEnvxv(context, target, pname, params))
+        {
+            context->getTexEnvxv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat *params = 0x%0.8p)", target, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetTexParameterfv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateGetTexParameterfv(context, target, pname, params))
+        {
+            context->getTexParameterfv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetTexParameteriv(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<EntryPoint::GetTexParameteriv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateGetTexParameteriv(context, target, pname, params))
+        {
+            context->getTexParameteriv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfixed *params = 0x%0.8p)", target, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::GetTexParameterxv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateGetTexParameterxv(context, target, pname, params))
+        {
+            context->getTexParameterxv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY Hint(GLenum target, GLenum mode)
+{
+    EVENT("(GLenum target = 0x%X, GLenum mode = 0x%X)", target, mode);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Hint>(target, mode);
+
+        if (context->skipValidation() || ValidateHint(context, target, mode))
+        {
+            context->hint(target, mode);
+        }
+    }
+}
+
+GLboolean GL_APIENTRY IsBuffer(GLuint buffer)
+{
+    EVENT("(GLuint buffer = %u)", buffer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::IsBuffer>(buffer);
+
+        if (context->skipValidation() || ValidateIsBuffer(context, buffer))
+        {
+            return context->isBuffer(buffer);
+        }
+    }
+
+    return GetDefaultReturnValue<EntryPoint::IsBuffer, GLboolean>();
+}
+
+GLboolean GL_APIENTRY IsEnabled(GLenum cap)
+{
+    EVENT("(GLenum cap = 0x%X)", cap);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::IsEnabled>(cap);
+
+        if (context->skipValidation() || ValidateIsEnabled(context, cap))
+        {
+            return context->isEnabled(cap);
+        }
+    }
+
+    return GetDefaultReturnValue<EntryPoint::IsEnabled, GLboolean>();
+}
+
+GLboolean GL_APIENTRY IsTexture(GLuint texture)
+{
+    EVENT("(GLuint texture = %u)", texture);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::IsTexture>(texture);
+
+        if (context->skipValidation() || ValidateIsTexture(context, texture))
+        {
+            return context->isTexture(texture);
+        }
+    }
+
+    return GetDefaultReturnValue<EntryPoint::IsTexture, GLboolean>();
+}
+
+void GL_APIENTRY LightModelf(GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum pname = 0x%X, GLfloat param = %f)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LightModelf>(pname, param);
+
+        if (context->skipValidation() || ValidateLightModelf(context, pname, param))
+        {
+            context->lightModelf(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY LightModelfv(GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LightModelfv>(pname, params);
+
+        if (context->skipValidation() || ValidateLightModelfv(context, pname, params))
+        {
+            context->lightModelfv(pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY LightModelx(GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum pname = 0x%X, GLfixed param = 0x%X)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LightModelx>(pname, param);
+
+        if (context->skipValidation() || ValidateLightModelx(context, pname, param))
+        {
+            context->lightModelx(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY LightModelxv(GLenum pname, const GLfixed *param)
+{
+    EVENT("(GLenum pname = 0x%X, const GLfixed *param = 0x%0.8p)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LightModelxv>(pname, param);
+
+        if (context->skipValidation() || ValidateLightModelxv(context, pname, param))
+        {
+            context->lightModelxv(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Lightf(GLenum light, GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum light = 0x%X, GLenum pname = 0x%X, GLfloat param = %f)", light, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Lightf>(light, pname, param);
+
+        if (context->skipValidation() || ValidateLightf(context, light, pname, param))
+        {
+            context->lightf(light, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Lightfv(GLenum light, GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum light = 0x%X, GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", light,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Lightfv>(light, pname, params);
+
+        if (context->skipValidation() || ValidateLightfv(context, light, pname, params))
+        {
+            context->lightfv(light, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY Lightx(GLenum light, GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum light = 0x%X, GLenum pname = 0x%X, GLfixed param = 0x%X)", light, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Lightx>(light, pname, param);
+
+        if (context->skipValidation() || ValidateLightx(context, light, pname, param))
+        {
+            context->lightx(light, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Lightxv(GLenum light, GLenum pname, const GLfixed *params)
+{
+    EVENT("(GLenum light = 0x%X, GLenum pname = 0x%X, const GLfixed *params = 0x%0.8p)", light,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Lightxv>(light, pname, params);
+
+        if (context->skipValidation() || ValidateLightxv(context, light, pname, params))
+        {
+            context->lightxv(light, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY LineWidth(GLfloat width)
+{
+    EVENT("(GLfloat width = %f)", width);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LineWidth>(width);
+
+        if (context->skipValidation() || ValidateLineWidth(context, width))
+        {
+            context->lineWidth(width);
+        }
+    }
+}
+
+void GL_APIENTRY LineWidthx(GLfixed width)
+{
+    EVENT("(GLfixed width = 0x%X)", width);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LineWidthx>(width);
+
+        if (context->skipValidation() || ValidateLineWidthx(context, width))
+        {
+            context->lineWidthx(width);
+        }
+    }
+}
+
+void GL_APIENTRY LoadIdentity()
+{
+    EVENT("()");
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LoadIdentity>();
+
+        if (context->skipValidation() || ValidateLoadIdentity(context))
+        {
+            context->loadIdentity();
+        }
+    }
+}
+
+void GL_APIENTRY LoadMatrixf(const GLfloat *m)
+{
+    EVENT("(const GLfloat *m = 0x%0.8p)", m);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LoadMatrixf>(m);
+
+        if (context->skipValidation() || ValidateLoadMatrixf(context, m))
+        {
+            context->loadMatrixf(m);
+        }
+    }
+}
+
+void GL_APIENTRY LoadMatrixx(const GLfixed *m)
+{
+    EVENT("(const GLfixed *m = 0x%0.8p)", m);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LoadMatrixx>(m);
+
+        if (context->skipValidation() || ValidateLoadMatrixx(context, m))
+        {
+            context->loadMatrixx(m);
+        }
+    }
+}
+
+void GL_APIENTRY LogicOp(GLenum opcode)
+{
+    EVENT("(GLenum opcode = 0x%X)", opcode);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LogicOp>(opcode);
+
+        if (context->skipValidation() || ValidateLogicOp(context, opcode))
+        {
+            context->logicOp(opcode);
+        }
+    }
+}
+
+void GL_APIENTRY Materialf(GLenum face, GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum face = 0x%X, GLenum pname = 0x%X, GLfloat param = %f)", face, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Materialf>(face, pname, param);
+
+        if (context->skipValidation() || ValidateMaterialf(context, face, pname, param))
+        {
+            context->materialf(face, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Materialfv(GLenum face, GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum face = 0x%X, GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", face, pname,
+          params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Materialfv>(face, pname, params);
+
+        if (context->skipValidation() || ValidateMaterialfv(context, face, pname, params))
+        {
+            context->materialfv(face, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY Materialx(GLenum face, GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum face = 0x%X, GLenum pname = 0x%X, GLfixed param = 0x%X)", face, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Materialx>(face, pname, param);
+
+        if (context->skipValidation() || ValidateMaterialx(context, face, pname, param))
+        {
+            context->materialx(face, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY Materialxv(GLenum face, GLenum pname, const GLfixed *param)
+{
+    EVENT("(GLenum face = 0x%X, GLenum pname = 0x%X, const GLfixed *param = 0x%0.8p)", face, pname,
+          param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Materialxv>(face, pname, param);
+
+        if (context->skipValidation() || ValidateMaterialxv(context, face, pname, param))
+        {
+            context->materialxv(face, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY MatrixMode(GLenum mode)
+{
+    EVENT("(GLenum mode = 0x%X)", mode);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::MatrixMode>(mode);
+
+        if (context->skipValidation() || ValidateMatrixMode(context, mode))
+        {
+            context->matrixMode(mode);
+        }
+    }
+}
+
+void GL_APIENTRY MultMatrixf(const GLfloat *m)
+{
+    EVENT("(const GLfloat *m = 0x%0.8p)", m);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::MultMatrixf>(m);
+
+        if (context->skipValidation() || ValidateMultMatrixf(context, m))
+        {
+            context->multMatrixf(m);
+        }
+    }
+}
+
+void GL_APIENTRY MultMatrixx(const GLfixed *m)
+{
+    EVENT("(const GLfixed *m = 0x%0.8p)", m);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::MultMatrixx>(m);
+
+        if (context->skipValidation() || ValidateMultMatrixx(context, m))
+        {
+            context->multMatrixx(m);
+        }
+    }
+}
+
+void GL_APIENTRY MultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+    EVENT("(GLenum target = 0x%X, GLfloat s = %f, GLfloat t = %f, GLfloat r = %f, GLfloat q = %f)",
+          target, s, t, r, q);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::MultiTexCoord4f>(target, s, t, r, q);
+
+        if (context->skipValidation() || ValidateMultiTexCoord4f(context, target, s, t, r, q))
+        {
+            context->multiTexCoord4f(target, s, t, r, q);
+        }
+    }
+}
+
+void GL_APIENTRY MultiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+    EVENT(
+        "(GLenum texture = 0x%X, GLfixed s = 0x%X, GLfixed t = 0x%X, GLfixed r = 0x%X, GLfixed q = "
+        "0x%X)",
+        texture, s, t, r, q);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::MultiTexCoord4x>(texture, s, t, r, q);
+
+        if (context->skipValidation() || ValidateMultiTexCoord4x(context, texture, s, t, r, q))
+        {
+            context->multiTexCoord4x(texture, s, t, r, q);
+        }
+    }
+}
+
+void GL_APIENTRY Normal3f(GLfloat nx, GLfloat ny, GLfloat nz)
+{
+    EVENT("(GLfloat nx = %f, GLfloat ny = %f, GLfloat nz = %f)", nx, ny, nz);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Normal3f>(nx, ny, nz);
+
+        if (context->skipValidation() || ValidateNormal3f(context, nx, ny, nz))
+        {
+            context->normal3f(nx, ny, nz);
+        }
+    }
+}
+
+void GL_APIENTRY Normal3x(GLfixed nx, GLfixed ny, GLfixed nz)
+{
+    EVENT("(GLfixed nx = 0x%X, GLfixed ny = 0x%X, GLfixed nz = 0x%X)", nx, ny, nz);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Normal3x>(nx, ny, nz);
+
+        if (context->skipValidation() || ValidateNormal3x(context, nx, ny, nz))
+        {
+            context->normal3x(nx, ny, nz);
+        }
+    }
+}
+
+void GL_APIENTRY NormalPointer(GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT("(GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)", type, stride,
+          pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::NormalPointer>(type, stride, pointer);
+
+        if (context->skipValidation() || ValidateNormalPointer(context, type, stride, pointer))
+        {
+            context->normalPointer(type, stride, pointer);
+        }
+    }
+}
+
+void GL_APIENTRY Orthof(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)
+{
+    EVENT(
+        "(GLfloat l = %f, GLfloat r = %f, GLfloat b = %f, GLfloat t = %f, GLfloat n = %f, GLfloat "
+        "f = %f)",
+        l, r, b, t, n, f);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Orthof>(l, r, b, t, n, f);
+
+        if (context->skipValidation() || ValidateOrthof(context, l, r, b, t, n, f))
+        {
+            context->orthof(l, r, b, t, n, f);
+        }
+    }
+}
+
+void GL_APIENTRY Orthox(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f)
+{
+    EVENT(
+        "(GLfixed l = 0x%X, GLfixed r = 0x%X, GLfixed b = 0x%X, GLfixed t = 0x%X, GLfixed n = "
+        "0x%X, GLfixed f = 0x%X)",
+        l, r, b, t, n, f);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Orthox>(l, r, b, t, n, f);
+
+        if (context->skipValidation() || ValidateOrthox(context, l, r, b, t, n, f))
+        {
+            context->orthox(l, r, b, t, n, f);
+        }
+    }
+}
+
+void GL_APIENTRY PixelStorei(GLenum pname, GLint param)
+{
+    EVENT("(GLenum pname = 0x%X, GLint param = %d)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PixelStorei>(pname, param);
+
+        if (context->skipValidation() || ValidatePixelStorei(context, pname, param))
+        {
+            context->pixelStorei(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY PointParameterf(GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum pname = 0x%X, GLfloat param = %f)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointParameterf>(pname, param);
+
+        if (context->skipValidation() || ValidatePointParameterf(context, pname, param))
+        {
+            context->pointParameterf(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY PointParameterfv(GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointParameterfv>(pname, params);
+
+        if (context->skipValidation() || ValidatePointParameterfv(context, pname, params))
+        {
+            context->pointParameterfv(pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY PointParameterx(GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum pname = 0x%X, GLfixed param = 0x%X)", pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointParameterx>(pname, param);
+
+        if (context->skipValidation() || ValidatePointParameterx(context, pname, param))
+        {
+            context->pointParameterx(pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY PointParameterxv(GLenum pname, const GLfixed *params)
+{
+    EVENT("(GLenum pname = 0x%X, const GLfixed *params = 0x%0.8p)", pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointParameterxv>(pname, params);
+
+        if (context->skipValidation() || ValidatePointParameterxv(context, pname, params))
+        {
+            context->pointParameterxv(pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY PointSize(GLfloat size)
+{
+    EVENT("(GLfloat size = %f)", size);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointSize>(size);
+
+        if (context->skipValidation() || ValidatePointSize(context, size))
+        {
+            context->pointSize(size);
+        }
+    }
+}
+
+void GL_APIENTRY PointSizex(GLfixed size)
+{
+    EVENT("(GLfixed size = 0x%X)", size);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointSizex>(size);
+
+        if (context->skipValidation() || ValidatePointSizex(context, size))
+        {
+            context->pointSizex(size);
+        }
+    }
+}
+
+void GL_APIENTRY PolygonOffset(GLfloat factor, GLfloat units)
+{
+    EVENT("(GLfloat factor = %f, GLfloat units = %f)", factor, units);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PolygonOffset>(factor, units);
+
+        if (context->skipValidation() || ValidatePolygonOffset(context, factor, units))
+        {
+            context->polygonOffset(factor, units);
+        }
+    }
+}
+
+void GL_APIENTRY PolygonOffsetx(GLfixed factor, GLfixed units)
+{
+    EVENT("(GLfixed factor = 0x%X, GLfixed units = 0x%X)", factor, units);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PolygonOffsetx>(factor, units);
+
+        if (context->skipValidation() || ValidatePolygonOffsetx(context, factor, units))
+        {
+            context->polygonOffsetx(factor, units);
+        }
+    }
+}
+
+void GL_APIENTRY PopMatrix()
+{
+    EVENT("()");
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PopMatrix>();
+
+        if (context->skipValidation() || ValidatePopMatrix(context))
+        {
+            context->popMatrix();
+        }
+    }
+}
+
+void GL_APIENTRY PushMatrix()
+{
+    EVENT("()");
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PushMatrix>();
+
+        if (context->skipValidation() || ValidatePushMatrix(context))
+        {
+            context->pushMatrix();
+        }
+    }
+}
+
+void GL_APIENTRY ReadPixels(GLint x,
+                            GLint y,
+                            GLsizei width,
+                            GLsizei height,
+                            GLenum format,
+                            GLenum type,
+                            void *pixels)
+{
+    EVENT(
+        "(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d, GLenum format = "
+        "0x%X, GLenum type = 0x%X, void *pixels = 0x%0.8p)",
+        x, y, width, height, format, type, pixels);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ReadPixels>(x, y, width, height, format, type, pixels);
+
+        if (context->skipValidation() ||
+            ValidateReadPixels(context, x, y, width, height, format, type, pixels))
+        {
+            context->readPixels(x, y, width, height, format, type, pixels);
+        }
+    }
+}
+
+void GL_APIENTRY Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+    EVENT("(GLfloat angle = %f, GLfloat x = %f, GLfloat y = %f, GLfloat z = %f)", angle, x, y, z);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Rotatef>(angle, x, y, z);
+
+        if (context->skipValidation() || ValidateRotatef(context, angle, x, y, z))
+        {
+            context->rotatef(angle, x, y, z);
+        }
+    }
+}
+
+void GL_APIENTRY Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+    EVENT("(GLfixed angle = 0x%X, GLfixed x = 0x%X, GLfixed y = 0x%X, GLfixed z = 0x%X)", angle, x,
+          y, z);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Rotatex>(angle, x, y, z);
+
+        if (context->skipValidation() || ValidateRotatex(context, angle, x, y, z))
+        {
+            context->rotatex(angle, x, y, z);
+        }
+    }
+}
+
+void GL_APIENTRY SampleCoverage(GLfloat value, GLboolean invert)
+{
+    EVENT("(GLfloat value = %f, GLboolean invert = %u)", value, invert);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::SampleCoverage>(value, invert);
+
+        if (context->skipValidation() || ValidateSampleCoverage(context, value, invert))
+        {
+            context->sampleCoverage(value, invert);
+        }
+    }
+}
+
+void GL_APIENTRY SampleCoveragex(GLclampx value, GLboolean invert)
+{
+    EVENT("(GLclampx value = 0x%X, GLboolean invert = %u)", value, invert);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::SampleCoveragex>(value, invert);
+
+        if (context->skipValidation() || ValidateSampleCoveragex(context, value, invert))
+        {
+            context->sampleCoveragex(value, invert);
+        }
+    }
+}
+
+void GL_APIENTRY Scalef(GLfloat x, GLfloat y, GLfloat z)
+{
+    EVENT("(GLfloat x = %f, GLfloat y = %f, GLfloat z = %f)", x, y, z);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Scalef>(x, y, z);
+
+        if (context->skipValidation() || ValidateScalef(context, x, y, z))
+        {
+            context->scalef(x, y, z);
+        }
+    }
+}
+
+void GL_APIENTRY Scalex(GLfixed x, GLfixed y, GLfixed z)
+{
+    EVENT("(GLfixed x = 0x%X, GLfixed y = 0x%X, GLfixed z = 0x%X)", x, y, z);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Scalex>(x, y, z);
+
+        if (context->skipValidation() || ValidateScalex(context, x, y, z))
+        {
+            context->scalex(x, y, z);
+        }
+    }
+}
+
+void GL_APIENTRY Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+    EVENT("(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", x, y, width,
+          height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Scissor>(x, y, width, height);
+
+        if (context->skipValidation() || ValidateScissor(context, x, y, width, height))
+        {
+            context->scissor(x, y, width, height);
+        }
+    }
+}
+
+void GL_APIENTRY ShadeModel(GLenum mode)
+{
+    EVENT("(GLenum mode = 0x%X)", mode);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::ShadeModel>(mode);
+
+        if (context->skipValidation() || ValidateShadeModel(context, mode))
+        {
+            context->shadeModel(mode);
+        }
+    }
+}
+
+void GL_APIENTRY StencilFunc(GLenum func, GLint ref, GLuint mask)
+{
+    EVENT("(GLenum func = 0x%X, GLint ref = %d, GLuint mask = %u)", func, ref, mask);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::StencilFunc>(func, ref, mask);
+
+        if (context->skipValidation() || ValidateStencilFunc(context, func, ref, mask))
+        {
+            context->stencilFunc(func, ref, mask);
+        }
+    }
+}
+
+void GL_APIENTRY StencilMask(GLuint mask)
+{
+    EVENT("(GLuint mask = %u)", mask);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::StencilMask>(mask);
+
+        if (context->skipValidation() || ValidateStencilMask(context, mask))
+        {
+            context->stencilMask(mask);
+        }
+    }
+}
+
+void GL_APIENTRY StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+{
+    EVENT("(GLenum fail = 0x%X, GLenum zfail = 0x%X, GLenum zpass = 0x%X)", fail, zfail, zpass);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::StencilOp>(fail, zfail, zpass);
+
+        if (context->skipValidation() || ValidateStencilOp(context, fail, zfail, zpass))
+        {
+            context->stencilOp(fail, zfail, zpass);
+        }
+    }
+}
+
+void GL_APIENTRY TexCoordPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT(
+        "(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
+        size, type, stride, pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexCoordPointer>(size, type, stride, pointer);
+
+        if (context->skipValidation() ||
+            ValidateTexCoordPointer(context, size, type, stride, pointer))
+        {
+            context->texCoordPointer(size, type, stride, pointer);
+        }
+    }
+}
+
+void GL_APIENTRY TexEnvf(GLenum target, GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat param = %f)", target, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexEnvf>(target, pname, param);
+
+        if (context->skipValidation() || ValidateTexEnvf(context, target, pname, param))
+        {
+            context->texEnvf(target, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY TexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", target,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexEnvfv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateTexEnvfv(context, target, pname, params))
+        {
+            context->texEnvfv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY TexEnvi(GLenum target, GLenum pname, GLint param)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %d)", target, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexEnvi>(target, pname, param);
+
+        if (context->skipValidation() || ValidateTexEnvi(context, target, pname, param))
+        {
+            context->texEnvi(target, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY TexEnviv(GLenum target, GLenum pname, const GLint *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLint *params = 0x%0.8p)", target,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexEnviv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateTexEnviv(context, target, pname, params))
+        {
+            context->texEnviv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY TexEnvx(GLenum target, GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfixed param = 0x%X)", target, pname,
+          param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexEnvx>(target, pname, param);
+
+        if (context->skipValidation() || ValidateTexEnvx(context, target, pname, param))
+        {
+            context->texEnvx(target, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY TexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLfixed *params = 0x%0.8p)", target,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexEnvxv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateTexEnvxv(context, target, pname, params))
+        {
+            context->texEnvxv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY TexImage2D(GLenum target,
+                            GLint level,
+                            GLint internalformat,
+                            GLsizei width,
+                            GLsizei height,
+                            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, GLint border = %d, GLenum format = 0x%X, GLenum type = 0x%X, const "
+        "void *pixels = 0x%0.8p)",
+        target, level, internalformat, width, height, border, format, type, pixels);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexImage2D>(target, level, internalformat, width, height,
+                                                      border, format, type, pixels);
+
+        if (context->skipValidation() ||
+            ValidateTexImage2D(context, target, level, internalformat, width, height, border,
+                               format, type, pixels))
+        {
+            context->texImage2D(target, level, internalformat, width, height, border, format, type,
+                                pixels);
+        }
+    }
+}
+
+void GL_APIENTRY TexParameterf(GLenum target, GLenum pname, GLfloat param)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat param = %f)", target, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexParameterf>(target, pname, param);
+
+        if (context->skipValidation() || ValidateTexParameterf(context, target, pname, param))
+        {
+            context->texParameterf(target, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", target,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexParameterfv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateTexParameterfv(context, target, pname, params))
+        {
+            context->texParameterfv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY TexParameteri(GLenum target, GLenum pname, GLint param)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %d)", target, pname, param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexParameteri>(target, pname, param);
+
+        if (context->skipValidation() || ValidateTexParameteri(context, target, pname, param))
+        {
+            context->texParameteri(target, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY TexParameteriv(GLenum target, GLenum pname, const GLint *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLint *params = 0x%0.8p)", target,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexParameteriv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateTexParameteriv(context, target, pname, params))
+        {
+            context->texParameteriv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY TexParameterx(GLenum target, GLenum pname, GLfixed param)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfixed param = 0x%X)", target, pname,
+          param);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexParameterx>(target, pname, param);
+
+        if (context->skipValidation() || ValidateTexParameterx(context, target, pname, param))
+        {
+            context->texParameterx(target, pname, param);
+        }
+    }
+}
+
+void GL_APIENTRY TexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
+{
+    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLfixed *params = 0x%0.8p)", target,
+          pname, params);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexParameterxv>(target, pname, params);
+
+        if (context->skipValidation() || ValidateTexParameterxv(context, target, pname, params))
+        {
+            context->texParameterxv(target, pname, params);
+        }
+    }
+}
+
+void GL_APIENTRY TexSubImage2D(GLenum target,
+                               GLint level,
+                               GLint xoffset,
+                               GLint yoffset,
+                               GLsizei width,
+                               GLsizei height,
+                               GLenum format,
+                               GLenum type,
+                               const void *pixels)
+{
+    EVENT(
+        "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLsizei "
+        "width = %d, GLsizei height = %d, GLenum format = 0x%X, GLenum type = 0x%X, const void "
+        "*pixels = 0x%0.8p)",
+        target, level, xoffset, yoffset, width, height, format, type, pixels);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::TexSubImage2D>(target, level, xoffset, yoffset, width,
+                                                         height, format, type, pixels);
+
+        if (context->skipValidation() ||
+            ValidateTexSubImage2D(context, target, level, xoffset, yoffset, width, height, format,
+                                  type, pixels))
+        {
+            context->texSubImage2D(target, level, xoffset, yoffset, width, height, format, type,
+                                   pixels);
+        }
+    }
+}
+
+void GL_APIENTRY Translatef(GLfloat x, GLfloat y, GLfloat z)
+{
+    EVENT("(GLfloat x = %f, GLfloat y = %f, GLfloat z = %f)", x, y, z);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Translatef>(x, y, z);
+
+        if (context->skipValidation() || ValidateTranslatef(context, x, y, z))
+        {
+            context->translatef(x, y, z);
+        }
+    }
+}
+
+void GL_APIENTRY Translatex(GLfixed x, GLfixed y, GLfixed z)
+{
+    EVENT("(GLfixed x = 0x%X, GLfixed y = 0x%X, GLfixed z = 0x%X)", x, y, z);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Translatex>(x, y, z);
+
+        if (context->skipValidation() || ValidateTranslatex(context, x, y, z))
+        {
+            context->translatex(x, y, z);
+        }
+    }
+}
+
+void GL_APIENTRY VertexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT(
+        "(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
+        size, type, stride, pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::VertexPointer>(size, type, stride, pointer);
+
+        if (context->skipValidation() ||
+            ValidateVertexPointer(context, size, type, stride, pointer))
+        {
+            context->vertexPointer(size, type, stride, pointer);
+        }
+    }
+}
+
+void GL_APIENTRY Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+    EVENT("(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", x, y, width,
+          height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::Viewport>(x, y, width, height);
+
+        if (context->skipValidation() || ValidateViewport(context, x, y, width, height))
+        {
+            context->viewport(x, y, width, height);
+        }
+    }
+}
+}  // namespace gl
diff --git a/src/libGLESv2/entry_points_gles_1_0_autogen.h b/src/libGLESv2/entry_points_gles_1_0_autogen.h
new file mode 100644
index 0000000..a28ff85
--- /dev/null
+++ b/src/libGLESv2/entry_points_gles_1_0_autogen.h
@@ -0,0 +1,243 @@
+// GENERATED FILE - DO NOT EDIT.
+// Generated by generate_entry_points.py using data from gl.xml.
+//
+// Copyright 2018 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_1_0_autogen.h:
+//   Defines the GLES 1.0 entry points.
+
+#ifndef LIBGLESV2_ENTRY_POINTS_GLES_1_0_AUTOGEN_H_
+#define LIBGLESV2_ENTRY_POINTS_GLES_1_0_AUTOGEN_H_
+
+#include <GLES/gl.h>
+#include <export.h>
+
+namespace gl
+{
+ANGLE_EXPORT void GL_APIENTRY ActiveTexture(GLenum texture);
+ANGLE_EXPORT void GL_APIENTRY AlphaFunc(GLenum func, GLfloat ref);
+ANGLE_EXPORT void GL_APIENTRY AlphaFuncx(GLenum func, GLfixed ref);
+ANGLE_EXPORT void GL_APIENTRY BindBuffer(GLenum target, GLuint buffer);
+ANGLE_EXPORT void GL_APIENTRY BindTexture(GLenum target, GLuint texture);
+ANGLE_EXPORT void GL_APIENTRY BlendFunc(GLenum sfactor, GLenum dfactor);
+ANGLE_EXPORT void GL_APIENTRY BufferData(GLenum target,
+                                         GLsizeiptr size,
+                                         const void *data,
+                                         GLenum usage);
+ANGLE_EXPORT void GL_APIENTRY BufferSubData(GLenum target,
+                                            GLintptr offset,
+                                            GLsizeiptr size,
+                                            const void *data);
+ANGLE_EXPORT void GL_APIENTRY Clear(GLbitfield mask);
+ANGLE_EXPORT void GL_APIENTRY ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+ANGLE_EXPORT void GL_APIENTRY ClearColorx(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+ANGLE_EXPORT void GL_APIENTRY ClearDepthf(GLfloat d);
+ANGLE_EXPORT void GL_APIENTRY ClearDepthx(GLfixed depth);
+ANGLE_EXPORT void GL_APIENTRY ClearStencil(GLint s);
+ANGLE_EXPORT void GL_APIENTRY ClientActiveTexture(GLenum texture);
+ANGLE_EXPORT void GL_APIENTRY ClipPlanef(GLenum p, const GLfloat *eqn);
+ANGLE_EXPORT void GL_APIENTRY ClipPlanex(GLenum plane, const GLfixed *equation);
+ANGLE_EXPORT void GL_APIENTRY Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+ANGLE_EXPORT void GL_APIENTRY Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+ANGLE_EXPORT void GL_APIENTRY Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+ANGLE_EXPORT void GL_APIENTRY ColorMask(GLboolean red,
+                                        GLboolean green,
+                                        GLboolean blue,
+                                        GLboolean alpha);
+ANGLE_EXPORT void GL_APIENTRY ColorPointer(GLint size,
+                                           GLenum type,
+                                           GLsizei stride,
+                                           const void *pointer);
+ANGLE_EXPORT void GL_APIENTRY CompressedTexImage2D(GLenum target,
+                                                   GLint level,
+                                                   GLenum internalformat,
+                                                   GLsizei width,
+                                                   GLsizei height,
+                                                   GLint border,
+                                                   GLsizei imageSize,
+                                                   const void *data);
+ANGLE_EXPORT void GL_APIENTRY CompressedTexSubImage2D(GLenum target,
+                                                      GLint level,
+                                                      GLint xoffset,
+                                                      GLint yoffset,
+                                                      GLsizei width,
+                                                      GLsizei height,
+                                                      GLenum format,
+                                                      GLsizei imageSize,
+                                                      const void *data);
+ANGLE_EXPORT void GL_APIENTRY CopyTexImage2D(GLenum target,
+                                             GLint level,
+                                             GLenum internalformat,
+                                             GLint x,
+                                             GLint y,
+                                             GLsizei width,
+                                             GLsizei height,
+                                             GLint border);
+ANGLE_EXPORT void GL_APIENTRY CopyTexSubImage2D(GLenum target,
+                                                GLint level,
+                                                GLint xoffset,
+                                                GLint yoffset,
+                                                GLint x,
+                                                GLint y,
+                                                GLsizei width,
+                                                GLsizei height);
+ANGLE_EXPORT void GL_APIENTRY CullFace(GLenum mode);
+ANGLE_EXPORT void GL_APIENTRY DeleteBuffers(GLsizei n, const GLuint *buffers);
+ANGLE_EXPORT void GL_APIENTRY DeleteTextures(GLsizei n, const GLuint *textures);
+ANGLE_EXPORT void GL_APIENTRY DepthFunc(GLenum func);
+ANGLE_EXPORT void GL_APIENTRY DepthMask(GLboolean flag);
+ANGLE_EXPORT void GL_APIENTRY DepthRangef(GLfloat n, GLfloat f);
+ANGLE_EXPORT void GL_APIENTRY DepthRangex(GLfixed n, GLfixed f);
+ANGLE_EXPORT void GL_APIENTRY Disable(GLenum cap);
+ANGLE_EXPORT void GL_APIENTRY DisableClientState(GLenum array);
+ANGLE_EXPORT void GL_APIENTRY DrawArrays(GLenum mode, GLint first, GLsizei count);
+ANGLE_EXPORT void GL_APIENTRY DrawElements(GLenum mode,
+                                           GLsizei count,
+                                           GLenum type,
+                                           const void *indices);
+ANGLE_EXPORT void GL_APIENTRY Enable(GLenum cap);
+ANGLE_EXPORT void GL_APIENTRY EnableClientState(GLenum array);
+ANGLE_EXPORT void GL_APIENTRY Finish();
+ANGLE_EXPORT void GL_APIENTRY Flush();
+ANGLE_EXPORT void GL_APIENTRY Fogf(GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY Fogfv(GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY Fogx(GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY Fogxv(GLenum pname, const GLfixed *param);
+ANGLE_EXPORT void GL_APIENTRY FrontFace(GLenum mode);
+ANGLE_EXPORT void GL_APIENTRY
+Frustumf(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+ANGLE_EXPORT void GL_APIENTRY
+Frustumx(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+ANGLE_EXPORT void GL_APIENTRY GenBuffers(GLsizei n, GLuint *buffers);
+ANGLE_EXPORT void GL_APIENTRY GenTextures(GLsizei n, GLuint *textures);
+ANGLE_EXPORT void GL_APIENTRY GetBooleanv(GLenum pname, GLboolean *data);
+ANGLE_EXPORT void GL_APIENTRY GetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
+ANGLE_EXPORT void GL_APIENTRY GetClipPlanef(GLenum plane, GLfloat *equation);
+ANGLE_EXPORT void GL_APIENTRY GetClipPlanex(GLenum plane, GLfixed *equation);
+ANGLE_EXPORT GLenum GL_APIENTRY GetError();
+ANGLE_EXPORT void GL_APIENTRY GetFixedv(GLenum pname, GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY GetFloatv(GLenum pname, GLfloat *data);
+ANGLE_EXPORT void GL_APIENTRY GetIntegerv(GLenum pname, GLint *data);
+ANGLE_EXPORT void GL_APIENTRY GetLightfv(GLenum light, GLenum pname, GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY GetLightxv(GLenum light, GLenum pname, GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY GetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY GetMaterialxv(GLenum face, GLenum pname, GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY GetPointerv(GLenum pname, void **params);
+ANGLE_EXPORT const GLubyte *GL_APIENTRY GetString(GLenum name);
+ANGLE_EXPORT void GL_APIENTRY GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY GetTexEnviv(GLenum target, GLenum pname, GLint *params);
+ANGLE_EXPORT void GL_APIENTRY GetTexEnvxv(GLenum target, GLenum pname, GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY GetTexParameteriv(GLenum target, GLenum pname, GLint *params);
+ANGLE_EXPORT void GL_APIENTRY GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY Hint(GLenum target, GLenum mode);
+ANGLE_EXPORT GLboolean GL_APIENTRY IsBuffer(GLuint buffer);
+ANGLE_EXPORT GLboolean GL_APIENTRY IsEnabled(GLenum cap);
+ANGLE_EXPORT GLboolean GL_APIENTRY IsTexture(GLuint texture);
+ANGLE_EXPORT void GL_APIENTRY LightModelf(GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY LightModelfv(GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY LightModelx(GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY LightModelxv(GLenum pname, const GLfixed *param);
+ANGLE_EXPORT void GL_APIENTRY Lightf(GLenum light, GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY Lightfv(GLenum light, GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY Lightx(GLenum light, GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY Lightxv(GLenum light, GLenum pname, const GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY LineWidth(GLfloat width);
+ANGLE_EXPORT void GL_APIENTRY LineWidthx(GLfixed width);
+ANGLE_EXPORT void GL_APIENTRY LoadIdentity();
+ANGLE_EXPORT void GL_APIENTRY LoadMatrixf(const GLfloat *m);
+ANGLE_EXPORT void GL_APIENTRY LoadMatrixx(const GLfixed *m);
+ANGLE_EXPORT void GL_APIENTRY LogicOp(GLenum opcode);
+ANGLE_EXPORT void GL_APIENTRY Materialf(GLenum face, GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY Materialfv(GLenum face, GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY Materialx(GLenum face, GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY Materialxv(GLenum face, GLenum pname, const GLfixed *param);
+ANGLE_EXPORT void GL_APIENTRY MatrixMode(GLenum mode);
+ANGLE_EXPORT void GL_APIENTRY MultMatrixf(const GLfloat *m);
+ANGLE_EXPORT void GL_APIENTRY MultMatrixx(const GLfixed *m);
+ANGLE_EXPORT void GL_APIENTRY
+MultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+ANGLE_EXPORT void GL_APIENTRY
+MultiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+ANGLE_EXPORT void GL_APIENTRY Normal3f(GLfloat nx, GLfloat ny, GLfloat nz);
+ANGLE_EXPORT void GL_APIENTRY Normal3x(GLfixed nx, GLfixed ny, GLfixed nz);
+ANGLE_EXPORT void GL_APIENTRY NormalPointer(GLenum type, GLsizei stride, const void *pointer);
+ANGLE_EXPORT void GL_APIENTRY
+Orthof(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+ANGLE_EXPORT void GL_APIENTRY
+Orthox(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+ANGLE_EXPORT void GL_APIENTRY PixelStorei(GLenum pname, GLint param);
+ANGLE_EXPORT void GL_APIENTRY PointParameterf(GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY PointParameterfv(GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY PointParameterx(GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY PointParameterxv(GLenum pname, const GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY PointSize(GLfloat size);
+ANGLE_EXPORT void GL_APIENTRY PointSizex(GLfixed size);
+ANGLE_EXPORT void GL_APIENTRY PolygonOffset(GLfloat factor, GLfloat units);
+ANGLE_EXPORT void GL_APIENTRY PolygonOffsetx(GLfixed factor, GLfixed units);
+ANGLE_EXPORT void GL_APIENTRY PopMatrix();
+ANGLE_EXPORT void GL_APIENTRY PushMatrix();
+ANGLE_EXPORT void GL_APIENTRY ReadPixels(GLint x,
+                                         GLint y,
+                                         GLsizei width,
+                                         GLsizei height,
+                                         GLenum format,
+                                         GLenum type,
+                                         void *pixels);
+ANGLE_EXPORT void GL_APIENTRY Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+ANGLE_EXPORT void GL_APIENTRY Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+ANGLE_EXPORT void GL_APIENTRY SampleCoverage(GLfloat value, GLboolean invert);
+ANGLE_EXPORT void GL_APIENTRY SampleCoveragex(GLclampx value, GLboolean invert);
+ANGLE_EXPORT void GL_APIENTRY Scalef(GLfloat x, GLfloat y, GLfloat z);
+ANGLE_EXPORT void GL_APIENTRY Scalex(GLfixed x, GLfixed y, GLfixed z);
+ANGLE_EXPORT void GL_APIENTRY Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
+ANGLE_EXPORT void GL_APIENTRY ShadeModel(GLenum mode);
+ANGLE_EXPORT void GL_APIENTRY StencilFunc(GLenum func, GLint ref, GLuint mask);
+ANGLE_EXPORT void GL_APIENTRY StencilMask(GLuint mask);
+ANGLE_EXPORT void GL_APIENTRY StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
+ANGLE_EXPORT void GL_APIENTRY TexCoordPointer(GLint size,
+                                              GLenum type,
+                                              GLsizei stride,
+                                              const void *pointer);
+ANGLE_EXPORT void GL_APIENTRY TexEnvf(GLenum target, GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY TexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY TexEnvi(GLenum target, GLenum pname, GLint param);
+ANGLE_EXPORT void GL_APIENTRY TexEnviv(GLenum target, GLenum pname, const GLint *params);
+ANGLE_EXPORT void GL_APIENTRY TexEnvx(GLenum target, GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY TexEnvxv(GLenum target, GLenum pname, const GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY TexImage2D(GLenum target,
+                                         GLint level,
+                                         GLint internalformat,
+                                         GLsizei width,
+                                         GLsizei height,
+                                         GLint border,
+                                         GLenum format,
+                                         GLenum type,
+                                         const void *pixels);
+ANGLE_EXPORT void GL_APIENTRY TexParameterf(GLenum target, GLenum pname, GLfloat param);
+ANGLE_EXPORT void GL_APIENTRY TexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
+ANGLE_EXPORT void GL_APIENTRY TexParameteri(GLenum target, GLenum pname, GLint param);
+ANGLE_EXPORT void GL_APIENTRY TexParameteriv(GLenum target, GLenum pname, const GLint *params);
+ANGLE_EXPORT void GL_APIENTRY TexParameterx(GLenum target, GLenum pname, GLfixed param);
+ANGLE_EXPORT void GL_APIENTRY TexParameterxv(GLenum target, GLenum pname, const GLfixed *params);
+ANGLE_EXPORT void GL_APIENTRY TexSubImage2D(GLenum target,
+                                            GLint level,
+                                            GLint xoffset,
+                                            GLint yoffset,
+                                            GLsizei width,
+                                            GLsizei height,
+                                            GLenum format,
+                                            GLenum type,
+                                            const void *pixels);
+ANGLE_EXPORT void GL_APIENTRY Translatef(GLfloat x, GLfloat y, GLfloat z);
+ANGLE_EXPORT void GL_APIENTRY Translatex(GLfixed x, GLfixed y, GLfixed z);
+ANGLE_EXPORT void GL_APIENTRY VertexPointer(GLint size,
+                                            GLenum type,
+                                            GLsizei stride,
+                                            const void *pointer);
+ANGLE_EXPORT void GL_APIENTRY Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
+}  // namespace gl
+
+#endif  // LIBGLESV2_ENTRY_POINTS_GLES_1_0_AUTOGEN_H_
diff --git a/src/libGLESv2/entry_points_gles_2_0_autogen.cpp b/src/libGLESv2/entry_points_gles_2_0_autogen.cpp
index dfa0833..3b566a3 100644
--- a/src/libGLESv2/entry_points_gles_2_0_autogen.cpp
+++ b/src/libGLESv2/entry_points_gles_2_0_autogen.cpp
@@ -8,28 +8,14 @@
 // entry_points_gles_2_0_autogen.cpp:
 //   Defines the GLES 2.0 entry points.
 
+#include "libGLESv2/entry_points_gles_2_0_autogen.h"
+
 #include "libANGLE/Context.h"
 #include "libANGLE/validationES2.h"
 #include "libGLESv2/global_state.h"
 
 namespace gl
 {
-void GL_APIENTRY ActiveTexture(GLenum texture)
-{
-    EVENT("(GLenum texture = 0x%X)", texture);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::ActiveTexture>(texture);
-
-        if (context->skipValidation() || ValidateActiveTexture(context, texture))
-        {
-            context->activeTexture(texture);
-        }
-    }
-}
-
 void GL_APIENTRY AttachShader(GLuint program, GLuint shader)
 {
     EVENT("(GLuint program = %u, GLuint shader = %u)", program, shader);
@@ -63,23 +49,6 @@
     }
 }
 
-void GL_APIENTRY BindBuffer(GLenum target, GLuint buffer)
-{
-    EVENT("(GLenum target = 0x%X, GLuint buffer = %u)", target, buffer);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
-        context->gatherParams<EntryPoint::BindBuffer>(targetPacked, buffer);
-
-        if (context->skipValidation() || ValidateBindBuffer(context, targetPacked, buffer))
-        {
-            context->bindBuffer(targetPacked, buffer);
-        }
-    }
-}
-
 void GL_APIENTRY BindFramebuffer(GLenum target, GLuint framebuffer)
 {
     EVENT("(GLenum target = 0x%X, GLuint framebuffer = %u)", target, framebuffer);
@@ -112,22 +81,6 @@
     }
 }
 
-void GL_APIENTRY BindTexture(GLenum target, GLuint texture)
-{
-    EVENT("(GLenum target = 0x%X, GLuint texture = %u)", target, texture);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::BindTexture>(target, texture);
-
-        if (context->skipValidation() || ValidateBindTexture(context, target, texture))
-        {
-            context->bindTexture(target, texture);
-        }
-    }
-}
-
 void GL_APIENTRY BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
 {
     EVENT("(GLfloat red = %f, GLfloat green = %f, GLfloat blue = %f, GLfloat alpha = %f)", red,
@@ -177,22 +130,6 @@
     }
 }
 
-void GL_APIENTRY BlendFunc(GLenum sfactor, GLenum dfactor)
-{
-    EVENT("(GLenum sfactor = 0x%X, GLenum dfactor = 0x%X)", sfactor, dfactor);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::BlendFunc>(sfactor, dfactor);
-
-        if (context->skipValidation() || ValidateBlendFunc(context, sfactor, dfactor))
-        {
-            context->blendFunc(sfactor, dfactor);
-        }
-    }
-}
-
 void GL_APIENTRY BlendFuncSeparate(GLenum sfactorRGB,
                                    GLenum dfactorRGB,
                                    GLenum sfactorAlpha,
@@ -217,49 +154,6 @@
     }
 }
 
-void GL_APIENTRY BufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)
-{
-    EVENT(
-        "(GLenum target = 0x%X, GLsizeiptr size = %d, const void *data = 0x%0.8p, GLenum usage = "
-        "0x%X)",
-        target, size, data, usage);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
-        BufferUsage usagePacked = FromGLenum<BufferUsage>(usage);
-        context->gatherParams<EntryPoint::BufferData>(targetPacked, size, data, usagePacked);
-
-        if (context->skipValidation() ||
-            ValidateBufferData(context, targetPacked, size, data, usagePacked))
-        {
-            context->bufferData(targetPacked, size, data, usagePacked);
-        }
-    }
-}
-
-void GL_APIENTRY BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data)
-{
-    EVENT(
-        "(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr size = %d, const void *data = "
-        "0x%0.8p)",
-        target, offset, size, data);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
-        context->gatherParams<EntryPoint::BufferSubData>(targetPacked, offset, size, data);
-
-        if (context->skipValidation() ||
-            ValidateBufferSubData(context, targetPacked, offset, size, data))
-        {
-            context->bufferSubData(targetPacked, offset, size, data);
-        }
-    }
-}
-
 GLenum GL_APIENTRY CheckFramebufferStatus(GLenum target)
 {
     EVENT("(GLenum target = 0x%X)", target);
@@ -278,88 +172,6 @@
     return GetDefaultReturnValue<EntryPoint::CheckFramebufferStatus, GLenum>();
 }
 
-void GL_APIENTRY Clear(GLbitfield mask)
-{
-    EVENT("(GLbitfield mask = 0x%X)", mask);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Clear>(mask);
-
-        if (context->skipValidation() || ValidateClear(context, mask))
-        {
-            context->clear(mask);
-        }
-    }
-}
-
-void GL_APIENTRY ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-{
-    EVENT("(GLfloat red = %f, GLfloat green = %f, GLfloat blue = %f, GLfloat alpha = %f)", red,
-          green, blue, alpha);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::ClearColor>(red, green, blue, alpha);
-
-        if (context->skipValidation() || ValidateClearColor(context, red, green, blue, alpha))
-        {
-            context->clearColor(red, green, blue, alpha);
-        }
-    }
-}
-
-void GL_APIENTRY ClearDepthf(GLfloat d)
-{
-    EVENT("(GLfloat d = %f)", d);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::ClearDepthf>(d);
-
-        if (context->skipValidation() || ValidateClearDepthf(context, d))
-        {
-            context->clearDepthf(d);
-        }
-    }
-}
-
-void GL_APIENTRY ClearStencil(GLint s)
-{
-    EVENT("(GLint s = %d)", s);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::ClearStencil>(s);
-
-        if (context->skipValidation() || ValidateClearStencil(context, s))
-        {
-            context->clearStencil(s);
-        }
-    }
-}
-
-void GL_APIENTRY ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
-{
-    EVENT("(GLboolean red = %u, GLboolean green = %u, GLboolean blue = %u, GLboolean alpha = %u)",
-          red, green, blue, alpha);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::ColorMask>(red, green, blue, alpha);
-
-        if (context->skipValidation() || ValidateColorMask(context, red, green, blue, alpha))
-        {
-            context->colorMask(red, green, blue, alpha);
-        }
-    }
-}
-
 void GL_APIENTRY CompileShader(GLuint shader)
 {
     EVENT("(GLuint shader = %u)", shader);
@@ -376,126 +188,6 @@
     }
 }
 
-void GL_APIENTRY CompressedTexImage2D(GLenum target,
-                                      GLint level,
-                                      GLenum internalformat,
-                                      GLsizei width,
-                                      GLsizei height,
-                                      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, GLint border = %d, GLsizei imageSize = %d, const void *data = "
-        "0x%0.8p)",
-        target, level, internalformat, width, height, border, imageSize, data);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::CompressedTexImage2D>(
-            target, level, internalformat, width, height, border, imageSize, data);
-
-        if (context->skipValidation() ||
-            ValidateCompressedTexImage2D(context, target, level, internalformat, width, height,
-                                         border, imageSize, data))
-        {
-            context->compressedTexImage2D(target, level, internalformat, width, height, border,
-                                          imageSize, data);
-        }
-    }
-}
-
-void GL_APIENTRY CompressedTexSubImage2D(GLenum target,
-                                         GLint level,
-                                         GLint xoffset,
-                                         GLint yoffset,
-                                         GLsizei width,
-                                         GLsizei height,
-                                         GLenum format,
-                                         GLsizei imageSize,
-                                         const void *data)
-{
-    EVENT(
-        "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLsizei "
-        "width = %d, GLsizei height = %d, GLenum format = 0x%X, GLsizei imageSize = %d, const void "
-        "*data = 0x%0.8p)",
-        target, level, xoffset, yoffset, width, height, format, imageSize, data);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::CompressedTexSubImage2D>(
-            target, level, xoffset, yoffset, width, height, format, imageSize, data);
-
-        if (context->skipValidation() ||
-            ValidateCompressedTexSubImage2D(context, target, level, xoffset, yoffset, width, height,
-                                            format, imageSize, data))
-        {
-            context->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format,
-                                             imageSize, data);
-        }
-    }
-}
-
-void GL_APIENTRY CopyTexImage2D(GLenum target,
-                                GLint level,
-                                GLenum internalformat,
-                                GLint x,
-                                GLint y,
-                                GLsizei width,
-                                GLsizei height,
-                                GLint border)
-{
-    EVENT(
-        "(GLenum target = 0x%X, GLint level = %d, GLenum internalformat = 0x%X, GLint x = %d, "
-        "GLint y = %d, GLsizei width = %d, GLsizei height = %d, GLint border = %d)",
-        target, level, internalformat, x, y, width, height, border);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::CopyTexImage2D>(target, level, internalformat, x, y,
-                                                          width, height, border);
-
-        if (context->skipValidation() ||
-            ValidateCopyTexImage2D(context, target, level, internalformat, x, y, width, height,
-                                   border))
-        {
-            context->copyTexImage2D(target, level, internalformat, x, y, width, height, border);
-        }
-    }
-}
-
-void GL_APIENTRY CopyTexSubImage2D(GLenum target,
-                                   GLint level,
-                                   GLint xoffset,
-                                   GLint yoffset,
-                                   GLint x,
-                                   GLint y,
-                                   GLsizei width,
-                                   GLsizei height)
-{
-    EVENT(
-        "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLint x "
-        "= %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
-        target, level, xoffset, yoffset, x, y, width, height);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::CopyTexSubImage2D>(target, level, xoffset, yoffset, x, y,
-                                                             width, height);
-
-        if (context->skipValidation() || ValidateCopyTexSubImage2D(context, target, level, xoffset,
-                                                                   yoffset, x, y, width, height))
-        {
-            context->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
-        }
-    }
-}
-
 GLuint GL_APIENTRY CreateProgram()
 {
     EVENT("()");
@@ -532,39 +224,6 @@
     return GetDefaultReturnValue<EntryPoint::CreateShader, GLuint>();
 }
 
-void GL_APIENTRY CullFace(GLenum mode)
-{
-    EVENT("(GLenum mode = 0x%X)", mode);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        CullFaceMode modePacked = FromGLenum<CullFaceMode>(mode);
-        context->gatherParams<EntryPoint::CullFace>(modePacked);
-
-        if (context->skipValidation() || ValidateCullFace(context, modePacked))
-        {
-            context->cullFace(modePacked);
-        }
-    }
-}
-
-void GL_APIENTRY DeleteBuffers(GLsizei n, const GLuint *buffers)
-{
-    EVENT("(GLsizei n = %d, const GLuint *buffers = 0x%0.8p)", n, buffers);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DeleteBuffers>(n, buffers);
-
-        if (context->skipValidation() || ValidateDeleteBuffers(context, n, buffers))
-        {
-            context->deleteBuffers(n, buffers);
-        }
-    }
-}
-
 void GL_APIENTRY DeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
 {
     EVENT("(GLsizei n = %d, const GLuint *framebuffers = 0x%0.8p)", n, framebuffers);
@@ -629,70 +288,6 @@
     }
 }
 
-void GL_APIENTRY DeleteTextures(GLsizei n, const GLuint *textures)
-{
-    EVENT("(GLsizei n = %d, const GLuint *textures = 0x%0.8p)", n, textures);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DeleteTextures>(n, textures);
-
-        if (context->skipValidation() || ValidateDeleteTextures(context, n, textures))
-        {
-            context->deleteTextures(n, textures);
-        }
-    }
-}
-
-void GL_APIENTRY DepthFunc(GLenum func)
-{
-    EVENT("(GLenum func = 0x%X)", func);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DepthFunc>(func);
-
-        if (context->skipValidation() || ValidateDepthFunc(context, func))
-        {
-            context->depthFunc(func);
-        }
-    }
-}
-
-void GL_APIENTRY DepthMask(GLboolean flag)
-{
-    EVENT("(GLboolean flag = %u)", flag);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DepthMask>(flag);
-
-        if (context->skipValidation() || ValidateDepthMask(context, flag))
-        {
-            context->depthMask(flag);
-        }
-    }
-}
-
-void GL_APIENTRY DepthRangef(GLfloat n, GLfloat f)
-{
-    EVENT("(GLfloat n = %f, GLfloat f = %f)", n, f);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DepthRangef>(n, f);
-
-        if (context->skipValidation() || ValidateDepthRangef(context, n, f))
-        {
-            context->depthRangef(n, f);
-        }
-    }
-}
-
 void GL_APIENTRY DetachShader(GLuint program, GLuint shader)
 {
     EVENT("(GLuint program = %u, GLuint shader = %u)", program, shader);
@@ -709,22 +304,6 @@
     }
 }
 
-void GL_APIENTRY Disable(GLenum cap)
-{
-    EVENT("(GLenum cap = 0x%X)", cap);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Disable>(cap);
-
-        if (context->skipValidation() || ValidateDisable(context, cap))
-        {
-            context->disable(cap);
-        }
-    }
-}
-
 void GL_APIENTRY DisableVertexAttribArray(GLuint index)
 {
     EVENT("(GLuint index = %u)", index);
@@ -741,57 +320,6 @@
     }
 }
 
-void GL_APIENTRY DrawArrays(GLenum mode, GLint first, GLsizei count)
-{
-    EVENT("(GLenum mode = 0x%X, GLint first = %d, GLsizei count = %d)", mode, first, count);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DrawArrays>(mode, first, count);
-
-        if (context->skipValidation() || ValidateDrawArrays(context, mode, first, count))
-        {
-            context->drawArrays(mode, first, count);
-        }
-    }
-}
-
-void GL_APIENTRY DrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)
-{
-    EVENT(
-        "(GLenum mode = 0x%X, GLsizei count = %d, GLenum type = 0x%X, const void *indices = "
-        "0x%0.8p)",
-        mode, count, type, indices);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::DrawElements>(mode, count, type, indices);
-
-        if (context->skipValidation() || ValidateDrawElements(context, mode, count, type, indices))
-        {
-            context->drawElements(mode, count, type, indices);
-        }
-    }
-}
-
-void GL_APIENTRY Enable(GLenum cap)
-{
-    EVENT("(GLenum cap = 0x%X)", cap);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Enable>(cap);
-
-        if (context->skipValidation() || ValidateEnable(context, cap))
-        {
-            context->enable(cap);
-        }
-    }
-}
-
 void GL_APIENTRY EnableVertexAttribArray(GLuint index)
 {
     EVENT("(GLuint index = %u)", index);
@@ -808,38 +336,6 @@
     }
 }
 
-void GL_APIENTRY Finish()
-{
-    EVENT("()");
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Finish>();
-
-        if (context->skipValidation() || ValidateFinish(context))
-        {
-            context->finish();
-        }
-    }
-}
-
-void GL_APIENTRY Flush()
-{
-    EVENT("()");
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Flush>();
-
-        if (context->skipValidation() || ValidateFlush(context))
-        {
-            context->flush();
-        }
-    }
-}
-
 void GL_APIENTRY FramebufferRenderbuffer(GLenum target,
                                          GLenum attachment,
                                          GLenum renderbuffertarget,
@@ -890,38 +386,6 @@
     }
 }
 
-void GL_APIENTRY FrontFace(GLenum mode)
-{
-    EVENT("(GLenum mode = 0x%X)", mode);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::FrontFace>(mode);
-
-        if (context->skipValidation() || ValidateFrontFace(context, mode))
-        {
-            context->frontFace(mode);
-        }
-    }
-}
-
-void GL_APIENTRY GenBuffers(GLsizei n, GLuint *buffers)
-{
-    EVENT("(GLsizei n = %d, GLuint *buffers = 0x%0.8p)", n, buffers);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GenBuffers>(n, buffers);
-
-        if (context->skipValidation() || ValidateGenBuffers(context, n, buffers))
-        {
-            context->genBuffers(n, buffers);
-        }
-    }
-}
-
 void GL_APIENTRY GenFramebuffers(GLsizei n, GLuint *framebuffers)
 {
     EVENT("(GLsizei n = %d, GLuint *framebuffers = 0x%0.8p)", n, framebuffers);
@@ -954,22 +418,6 @@
     }
 }
 
-void GL_APIENTRY GenTextures(GLsizei n, GLuint *textures)
-{
-    EVENT("(GLsizei n = %d, GLuint *textures = 0x%0.8p)", n, textures);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GenTextures>(n, textures);
-
-        if (context->skipValidation() || ValidateGenTextures(context, n, textures))
-        {
-            context->genTextures(n, textures);
-        }
-    }
-}
-
 void GL_APIENTRY GenerateMipmap(GLenum target)
 {
     EVENT("(GLenum target = 0x%X)", target);
@@ -1081,75 +529,6 @@
     return GetDefaultReturnValue<EntryPoint::GetAttribLocation, GLint>();
 }
 
-void GL_APIENTRY GetBooleanv(GLenum pname, GLboolean *data)
-{
-    EVENT("(GLenum pname = 0x%X, GLboolean *data = 0x%0.8p)", pname, data);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GetBooleanv>(pname, data);
-
-        if (context->skipValidation() || ValidateGetBooleanv(context, pname, data))
-        {
-            context->getBooleanv(pname, data);
-        }
-    }
-}
-
-void GL_APIENTRY GetBufferParameteriv(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)
-    {
-        BufferBinding targetPacked = FromGLenum<BufferBinding>(target);
-        context->gatherParams<EntryPoint::GetBufferParameteriv>(targetPacked, pname, params);
-
-        if (context->skipValidation() ||
-            ValidateGetBufferParameteriv(context, targetPacked, pname, params))
-        {
-            context->getBufferParameteriv(targetPacked, pname, params);
-        }
-    }
-}
-
-GLenum GL_APIENTRY GetError()
-{
-    EVENT("()");
-
-    Context *context = GetGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GetError>();
-
-        if (context->skipValidation() || ValidateGetError(context))
-        {
-            return context->getError();
-        }
-    }
-
-    return GetDefaultReturnValue<EntryPoint::GetError, GLenum>();
-}
-
-void GL_APIENTRY GetFloatv(GLenum pname, GLfloat *data)
-{
-    EVENT("(GLenum pname = 0x%X, GLfloat *data = 0x%0.8p)", pname, data);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GetFloatv>(pname, data);
-
-        if (context->skipValidation() || ValidateGetFloatv(context, pname, data))
-        {
-            context->getFloatv(pname, data);
-        }
-    }
-}
-
 void GL_APIENTRY GetFramebufferAttachmentParameteriv(GLenum target,
                                                      GLenum attachment,
                                                      GLenum pname,
@@ -1174,22 +553,6 @@
     }
 }
 
-void GL_APIENTRY GetIntegerv(GLenum pname, GLint *data)
-{
-    EVENT("(GLenum pname = 0x%X, GLint *data = 0x%0.8p)", pname, data);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GetIntegerv>(pname, data);
-
-        if (context->skipValidation() || ValidateGetIntegerv(context, pname, data))
-        {
-            context->getIntegerv(pname, data);
-        }
-    }
-}
-
 void GL_APIENTRY GetProgramInfoLog(GLuint program,
                                    GLsizei bufSize,
                                    GLsizei *length,
@@ -1329,58 +692,6 @@
     }
 }
 
-const GLubyte *GL_APIENTRY GetString(GLenum name)
-{
-    EVENT("(GLenum name = 0x%X)", name);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GetString>(name);
-
-        if (context->skipValidation() || ValidateGetString(context, name))
-        {
-            return context->getString(name);
-        }
-    }
-
-    return GetDefaultReturnValue<EntryPoint::GetString, const GLubyte *>();
-}
-
-void GL_APIENTRY GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
-    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat *params = 0x%0.8p)", target, pname,
-          params);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::GetTexParameterfv>(target, pname, params);
-
-        if (context->skipValidation() || ValidateGetTexParameterfv(context, target, pname, params))
-        {
-            context->getTexParameterfv(target, pname, params);
-        }
-    }
-}
-
-void GL_APIENTRY GetTexParameteriv(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<EntryPoint::GetTexParameteriv>(target, pname, params);
-
-        if (context->skipValidation() || ValidateGetTexParameteriv(context, target, pname, params))
-        {
-            context->getTexParameteriv(target, pname, params);
-        }
-    }
-}
-
 GLint GL_APIENTRY GetUniformLocation(GLuint program, const GLchar *name)
 {
     EVENT("(GLuint program = %u, const GLchar *name = 0x%0.8p)", program, name);
@@ -1485,58 +796,6 @@
     }
 }
 
-void GL_APIENTRY Hint(GLenum target, GLenum mode)
-{
-    EVENT("(GLenum target = 0x%X, GLenum mode = 0x%X)", target, mode);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Hint>(target, mode);
-
-        if (context->skipValidation() || ValidateHint(context, target, mode))
-        {
-            context->hint(target, mode);
-        }
-    }
-}
-
-GLboolean GL_APIENTRY IsBuffer(GLuint buffer)
-{
-    EVENT("(GLuint buffer = %u)", buffer);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::IsBuffer>(buffer);
-
-        if (context->skipValidation() || ValidateIsBuffer(context, buffer))
-        {
-            return context->isBuffer(buffer);
-        }
-    }
-
-    return GetDefaultReturnValue<EntryPoint::IsBuffer, GLboolean>();
-}
-
-GLboolean GL_APIENTRY IsEnabled(GLenum cap)
-{
-    EVENT("(GLenum cap = 0x%X)", cap);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::IsEnabled>(cap);
-
-        if (context->skipValidation() || ValidateIsEnabled(context, cap))
-        {
-            return context->isEnabled(cap);
-        }
-    }
-
-    return GetDefaultReturnValue<EntryPoint::IsEnabled, GLboolean>();
-}
-
 GLboolean GL_APIENTRY IsFramebuffer(GLuint framebuffer)
 {
     EVENT("(GLuint framebuffer = %u)", framebuffer);
@@ -1609,40 +868,6 @@
     return GetDefaultReturnValue<EntryPoint::IsShader, GLboolean>();
 }
 
-GLboolean GL_APIENTRY IsTexture(GLuint texture)
-{
-    EVENT("(GLuint texture = %u)", texture);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::IsTexture>(texture);
-
-        if (context->skipValidation() || ValidateIsTexture(context, texture))
-        {
-            return context->isTexture(texture);
-        }
-    }
-
-    return GetDefaultReturnValue<EntryPoint::IsTexture, GLboolean>();
-}
-
-void GL_APIENTRY LineWidth(GLfloat width)
-{
-    EVENT("(GLfloat width = %f)", width);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::LineWidth>(width);
-
-        if (context->skipValidation() || ValidateLineWidth(context, width))
-        {
-            context->lineWidth(width);
-        }
-    }
-}
-
 void GL_APIENTRY LinkProgram(GLuint program)
 {
     EVENT("(GLuint program = %u)", program);
@@ -1659,64 +884,6 @@
     }
 }
 
-void GL_APIENTRY PixelStorei(GLenum pname, GLint param)
-{
-    EVENT("(GLenum pname = 0x%X, GLint param = %d)", pname, param);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::PixelStorei>(pname, param);
-
-        if (context->skipValidation() || ValidatePixelStorei(context, pname, param))
-        {
-            context->pixelStorei(pname, param);
-        }
-    }
-}
-
-void GL_APIENTRY PolygonOffset(GLfloat factor, GLfloat units)
-{
-    EVENT("(GLfloat factor = %f, GLfloat units = %f)", factor, units);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::PolygonOffset>(factor, units);
-
-        if (context->skipValidation() || ValidatePolygonOffset(context, factor, units))
-        {
-            context->polygonOffset(factor, units);
-        }
-    }
-}
-
-void GL_APIENTRY ReadPixels(GLint x,
-                            GLint y,
-                            GLsizei width,
-                            GLsizei height,
-                            GLenum format,
-                            GLenum type,
-                            void *pixels)
-{
-    EVENT(
-        "(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d, GLenum format = "
-        "0x%X, GLenum type = 0x%X, void *pixels = 0x%0.8p)",
-        x, y, width, height, format, type, pixels);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::ReadPixels>(x, y, width, height, format, type, pixels);
-
-        if (context->skipValidation() ||
-            ValidateReadPixels(context, x, y, width, height, format, type, pixels))
-        {
-            context->readPixels(x, y, width, height, format, type, pixels);
-        }
-    }
-}
-
 void GL_APIENTRY ReleaseShaderCompiler()
 {
     EVENT("()");
@@ -1757,39 +924,6 @@
     }
 }
 
-void GL_APIENTRY SampleCoverage(GLfloat value, GLboolean invert)
-{
-    EVENT("(GLfloat value = %f, GLboolean invert = %u)", value, invert);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::SampleCoverage>(value, invert);
-
-        if (context->skipValidation() || ValidateSampleCoverage(context, value, invert))
-        {
-            context->sampleCoverage(value, invert);
-        }
-    }
-}
-
-void GL_APIENTRY Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
-{
-    EVENT("(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", x, y, width,
-          height);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Scissor>(x, y, width, height);
-
-        if (context->skipValidation() || ValidateScissor(context, x, y, width, height))
-        {
-            context->scissor(x, y, width, height);
-        }
-    }
-}
-
 void GL_APIENTRY ShaderBinary(GLsizei count,
                               const GLuint *shaders,
                               GLenum binaryformat,
@@ -1838,22 +972,6 @@
     }
 }
 
-void GL_APIENTRY StencilFunc(GLenum func, GLint ref, GLuint mask)
-{
-    EVENT("(GLenum func = 0x%X, GLint ref = %d, GLuint mask = %u)", func, ref, mask);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::StencilFunc>(func, ref, mask);
-
-        if (context->skipValidation() || ValidateStencilFunc(context, func, ref, mask))
-        {
-            context->stencilFunc(func, ref, mask);
-        }
-    }
-}
-
 void GL_APIENTRY StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
 {
     EVENT("(GLenum face = 0x%X, GLenum func = 0x%X, GLint ref = %d, GLuint mask = %u)", face, func,
@@ -1872,22 +990,6 @@
     }
 }
 
-void GL_APIENTRY StencilMask(GLuint mask)
-{
-    EVENT("(GLuint mask = %u)", mask);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::StencilMask>(mask);
-
-        if (context->skipValidation() || ValidateStencilMask(context, mask))
-        {
-            context->stencilMask(mask);
-        }
-    }
-}
-
 void GL_APIENTRY StencilMaskSeparate(GLenum face, GLuint mask)
 {
     EVENT("(GLenum face = 0x%X, GLuint mask = %u)", face, mask);
@@ -1904,22 +1006,6 @@
     }
 }
 
-void GL_APIENTRY StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
-{
-    EVENT("(GLenum fail = 0x%X, GLenum zfail = 0x%X, GLenum zpass = 0x%X)", fail, zfail, zpass);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::StencilOp>(fail, zfail, zpass);
-
-        if (context->skipValidation() || ValidateStencilOp(context, fail, zfail, zpass))
-        {
-            context->stencilOp(fail, zfail, zpass);
-        }
-    }
-}
-
 void GL_APIENTRY StencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
 {
     EVENT("(GLenum face = 0x%X, GLenum sfail = 0x%X, GLenum dpfail = 0x%X, GLenum dppass = 0x%X)",
@@ -1938,136 +1024,6 @@
     }
 }
 
-void GL_APIENTRY TexImage2D(GLenum target,
-                            GLint level,
-                            GLint internalformat,
-                            GLsizei width,
-                            GLsizei height,
-                            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, GLint border = %d, GLenum format = 0x%X, GLenum type = 0x%X, const "
-        "void *pixels = 0x%0.8p)",
-        target, level, internalformat, width, height, border, format, type, pixels);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::TexImage2D>(target, level, internalformat, width, height,
-                                                      border, format, type, pixels);
-
-        if (context->skipValidation() ||
-            ValidateTexImage2D(context, target, level, internalformat, width, height, border,
-                               format, type, pixels))
-        {
-            context->texImage2D(target, level, internalformat, width, height, border, format, type,
-                                pixels);
-        }
-    }
-}
-
-void GL_APIENTRY TexParameterf(GLenum target, GLenum pname, GLfloat param)
-{
-    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat param = %f)", target, pname, param);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::TexParameterf>(target, pname, param);
-
-        if (context->skipValidation() || ValidateTexParameterf(context, target, pname, param))
-        {
-            context->texParameterf(target, pname, param);
-        }
-    }
-}
-
-void GL_APIENTRY TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
-{
-    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLfloat *params = 0x%0.8p)", target,
-          pname, params);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::TexParameterfv>(target, pname, params);
-
-        if (context->skipValidation() || ValidateTexParameterfv(context, target, pname, params))
-        {
-            context->texParameterfv(target, pname, params);
-        }
-    }
-}
-
-void GL_APIENTRY TexParameteri(GLenum target, GLenum pname, GLint param)
-{
-    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %d)", target, pname, param);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::TexParameteri>(target, pname, param);
-
-        if (context->skipValidation() || ValidateTexParameteri(context, target, pname, param))
-        {
-            context->texParameteri(target, pname, param);
-        }
-    }
-}
-
-void GL_APIENTRY TexParameteriv(GLenum target, GLenum pname, const GLint *params)
-{
-    EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, const GLint *params = 0x%0.8p)", target,
-          pname, params);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::TexParameteriv>(target, pname, params);
-
-        if (context->skipValidation() || ValidateTexParameteriv(context, target, pname, params))
-        {
-            context->texParameteriv(target, pname, params);
-        }
-    }
-}
-
-void GL_APIENTRY TexSubImage2D(GLenum target,
-                               GLint level,
-                               GLint xoffset,
-                               GLint yoffset,
-                               GLsizei width,
-                               GLsizei height,
-                               GLenum format,
-                               GLenum type,
-                               const void *pixels)
-{
-    EVENT(
-        "(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, GLsizei "
-        "width = %d, GLsizei height = %d, GLenum format = 0x%X, GLenum type = 0x%X, const void "
-        "*pixels = 0x%0.8p)",
-        target, level, xoffset, yoffset, width, height, format, type, pixels);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::TexSubImage2D>(target, level, xoffset, yoffset, width,
-                                                         height, format, type, pixels);
-
-        if (context->skipValidation() ||
-            ValidateTexSubImage2D(context, target, level, xoffset, yoffset, width, height, format,
-                                  type, pixels))
-        {
-            context->texSubImage2D(target, level, xoffset, yoffset, width, height, format, type,
-                                   pixels);
-        }
-    }
-}
-
 void GL_APIENTRY Uniform1f(GLint location, GLfloat v0)
 {
     EVENT("(GLint location = %d, GLfloat v0 = %f)", location, v0);
@@ -2592,21 +1548,4 @@
         }
     }
 }
-
-void GL_APIENTRY Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
-{
-    EVENT("(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", x, y, width,
-          height);
-
-    Context *context = GetValidGlobalContext();
-    if (context)
-    {
-        context->gatherParams<EntryPoint::Viewport>(x, y, width, height);
-
-        if (context->skipValidation() || ValidateViewport(context, x, y, width, height))
-        {
-            context->viewport(x, y, width, height);
-        }
-    }
-}
 }  // namespace gl
diff --git a/src/libGLESv2/entry_points_gles_2_0_autogen.h b/src/libGLESv2/entry_points_gles_2_0_autogen.h
index bfecd80..8cd776d 100644
--- a/src/libGLESv2/entry_points_gles_2_0_autogen.h
+++ b/src/libGLESv2/entry_points_gles_2_0_autogen.h
@@ -16,96 +16,28 @@
 
 namespace gl
 {
-ANGLE_EXPORT void GL_APIENTRY ActiveTexture(GLenum texture);
 ANGLE_EXPORT void GL_APIENTRY AttachShader(GLuint program, GLuint shader);
 ANGLE_EXPORT void GL_APIENTRY BindAttribLocation(GLuint program, GLuint index, const GLchar *name);
-ANGLE_EXPORT void GL_APIENTRY BindBuffer(GLenum target, GLuint buffer);
 ANGLE_EXPORT void GL_APIENTRY BindFramebuffer(GLenum target, GLuint framebuffer);
 ANGLE_EXPORT void GL_APIENTRY BindRenderbuffer(GLenum target, GLuint renderbuffer);
-ANGLE_EXPORT void GL_APIENTRY BindTexture(GLenum target, GLuint texture);
 ANGLE_EXPORT void GL_APIENTRY BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
 ANGLE_EXPORT void GL_APIENTRY BlendEquation(GLenum mode);
 ANGLE_EXPORT void GL_APIENTRY BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
-ANGLE_EXPORT void GL_APIENTRY BlendFunc(GLenum sfactor, GLenum dfactor);
 ANGLE_EXPORT void GL_APIENTRY BlendFuncSeparate(GLenum sfactorRGB,
                                                 GLenum dfactorRGB,
                                                 GLenum sfactorAlpha,
                                                 GLenum dfactorAlpha);
-ANGLE_EXPORT void GL_APIENTRY BufferData(GLenum target,
-                                         GLsizeiptr size,
-                                         const void *data,
-                                         GLenum usage);
-ANGLE_EXPORT void GL_APIENTRY BufferSubData(GLenum target,
-                                            GLintptr offset,
-                                            GLsizeiptr size,
-                                            const void *data);
 ANGLE_EXPORT GLenum GL_APIENTRY CheckFramebufferStatus(GLenum target);
-ANGLE_EXPORT void GL_APIENTRY Clear(GLbitfield mask);
-ANGLE_EXPORT void GL_APIENTRY ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-ANGLE_EXPORT void GL_APIENTRY ClearDepthf(GLfloat d);
-ANGLE_EXPORT void GL_APIENTRY ClearStencil(GLint s);
-ANGLE_EXPORT void GL_APIENTRY ColorMask(GLboolean red,
-                                        GLboolean green,
-                                        GLboolean blue,
-                                        GLboolean alpha);
 ANGLE_EXPORT void GL_APIENTRY CompileShader(GLuint shader);
-ANGLE_EXPORT void GL_APIENTRY CompressedTexImage2D(GLenum target,
-                                                   GLint level,
-                                                   GLenum internalformat,
-                                                   GLsizei width,
-                                                   GLsizei height,
-                                                   GLint border,
-                                                   GLsizei imageSize,
-                                                   const void *data);
-ANGLE_EXPORT void GL_APIENTRY CompressedTexSubImage2D(GLenum target,
-                                                      GLint level,
-                                                      GLint xoffset,
-                                                      GLint yoffset,
-                                                      GLsizei width,
-                                                      GLsizei height,
-                                                      GLenum format,
-                                                      GLsizei imageSize,
-                                                      const void *data);
-ANGLE_EXPORT void GL_APIENTRY CopyTexImage2D(GLenum target,
-                                             GLint level,
-                                             GLenum internalformat,
-                                             GLint x,
-                                             GLint y,
-                                             GLsizei width,
-                                             GLsizei height,
-                                             GLint border);
-ANGLE_EXPORT void GL_APIENTRY CopyTexSubImage2D(GLenum target,
-                                                GLint level,
-                                                GLint xoffset,
-                                                GLint yoffset,
-                                                GLint x,
-                                                GLint y,
-                                                GLsizei width,
-                                                GLsizei height);
 ANGLE_EXPORT GLuint GL_APIENTRY CreateProgram();
 ANGLE_EXPORT GLuint GL_APIENTRY CreateShader(GLenum type);
-ANGLE_EXPORT void GL_APIENTRY CullFace(GLenum mode);
-ANGLE_EXPORT void GL_APIENTRY DeleteBuffers(GLsizei n, const GLuint *buffers);
 ANGLE_EXPORT void GL_APIENTRY DeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
 ANGLE_EXPORT void GL_APIENTRY DeleteProgram(GLuint program);
 ANGLE_EXPORT void GL_APIENTRY DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
 ANGLE_EXPORT void GL_APIENTRY DeleteShader(GLuint shader);
-ANGLE_EXPORT void GL_APIENTRY DeleteTextures(GLsizei n, const GLuint *textures);
-ANGLE_EXPORT void GL_APIENTRY DepthFunc(GLenum func);
-ANGLE_EXPORT void GL_APIENTRY DepthMask(GLboolean flag);
-ANGLE_EXPORT void GL_APIENTRY DepthRangef(GLfloat n, GLfloat f);
 ANGLE_EXPORT void GL_APIENTRY DetachShader(GLuint program, GLuint shader);
-ANGLE_EXPORT void GL_APIENTRY Disable(GLenum cap);
 ANGLE_EXPORT void GL_APIENTRY DisableVertexAttribArray(GLuint index);
-ANGLE_EXPORT void GL_APIENTRY DrawArrays(GLenum mode, GLint first, GLsizei count);
-ANGLE_EXPORT void GL_APIENTRY DrawElements(GLenum mode,
-                                           GLsizei count,
-                                           GLenum type,
-                                           const void *indices);
-ANGLE_EXPORT void GL_APIENTRY Enable(GLenum cap);
 ANGLE_EXPORT void GL_APIENTRY EnableVertexAttribArray(GLuint index);
-ANGLE_EXPORT void GL_APIENTRY Finish();
-ANGLE_EXPORT void GL_APIENTRY Flush();
 ANGLE_EXPORT void GL_APIENTRY FramebufferRenderbuffer(GLenum target,
                                                       GLenum attachment,
                                                       GLenum renderbuffertarget,
@@ -115,11 +47,8 @@
                                                    GLenum textarget,
                                                    GLuint texture,
                                                    GLint level);
-ANGLE_EXPORT void GL_APIENTRY FrontFace(GLenum mode);
-ANGLE_EXPORT void GL_APIENTRY GenBuffers(GLsizei n, GLuint *buffers);
 ANGLE_EXPORT void GL_APIENTRY GenFramebuffers(GLsizei n, GLuint *framebuffers);
 ANGLE_EXPORT void GL_APIENTRY GenRenderbuffers(GLsizei n, GLuint *renderbuffers);
-ANGLE_EXPORT void GL_APIENTRY GenTextures(GLsizei n, GLuint *textures);
 ANGLE_EXPORT void GL_APIENTRY GenerateMipmap(GLenum target);
 ANGLE_EXPORT void GL_APIENTRY GetActiveAttrib(GLuint program,
                                               GLuint index,
@@ -140,15 +69,10 @@
                                                  GLsizei *count,
                                                  GLuint *shaders);
 ANGLE_EXPORT GLint GL_APIENTRY GetAttribLocation(GLuint program, const GLchar *name);
-ANGLE_EXPORT void GL_APIENTRY GetBooleanv(GLenum pname, GLboolean *data);
-ANGLE_EXPORT void GL_APIENTRY GetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
-ANGLE_EXPORT GLenum GL_APIENTRY GetError();
-ANGLE_EXPORT void GL_APIENTRY GetFloatv(GLenum pname, GLfloat *data);
 ANGLE_EXPORT void GL_APIENTRY GetFramebufferAttachmentParameteriv(GLenum target,
                                                                   GLenum attachment,
                                                                   GLenum pname,
                                                                   GLint *params);
-ANGLE_EXPORT void GL_APIENTRY GetIntegerv(GLenum pname, GLint *data);
 ANGLE_EXPORT void GL_APIENTRY GetProgramInfoLog(GLuint program,
                                                 GLsizei bufSize,
                                                 GLsizei *length,
@@ -170,41 +94,22 @@
                                               GLsizei *length,
                                               GLchar *source);
 ANGLE_EXPORT void GL_APIENTRY GetShaderiv(GLuint shader, GLenum pname, GLint *params);
-ANGLE_EXPORT const GLubyte *GL_APIENTRY GetString(GLenum name);
-ANGLE_EXPORT void GL_APIENTRY GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
-ANGLE_EXPORT void GL_APIENTRY GetTexParameteriv(GLenum target, GLenum pname, GLint *params);
 ANGLE_EXPORT GLint GL_APIENTRY GetUniformLocation(GLuint program, const GLchar *name);
 ANGLE_EXPORT void GL_APIENTRY GetUniformfv(GLuint program, GLint location, GLfloat *params);
 ANGLE_EXPORT void GL_APIENTRY GetUniformiv(GLuint program, GLint location, GLint *params);
 ANGLE_EXPORT void GL_APIENTRY GetVertexAttribPointerv(GLuint index, GLenum pname, void **pointer);
 ANGLE_EXPORT void GL_APIENTRY GetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
 ANGLE_EXPORT void GL_APIENTRY GetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
-ANGLE_EXPORT void GL_APIENTRY Hint(GLenum target, GLenum mode);
-ANGLE_EXPORT GLboolean GL_APIENTRY IsBuffer(GLuint buffer);
-ANGLE_EXPORT GLboolean GL_APIENTRY IsEnabled(GLenum cap);
 ANGLE_EXPORT GLboolean GL_APIENTRY IsFramebuffer(GLuint framebuffer);
 ANGLE_EXPORT GLboolean GL_APIENTRY IsProgram(GLuint program);
 ANGLE_EXPORT GLboolean GL_APIENTRY IsRenderbuffer(GLuint renderbuffer);
 ANGLE_EXPORT GLboolean GL_APIENTRY IsShader(GLuint shader);
-ANGLE_EXPORT GLboolean GL_APIENTRY IsTexture(GLuint texture);
-ANGLE_EXPORT void GL_APIENTRY LineWidth(GLfloat width);
 ANGLE_EXPORT void GL_APIENTRY LinkProgram(GLuint program);
-ANGLE_EXPORT void GL_APIENTRY PixelStorei(GLenum pname, GLint param);
-ANGLE_EXPORT void GL_APIENTRY PolygonOffset(GLfloat factor, GLfloat units);
-ANGLE_EXPORT void GL_APIENTRY ReadPixels(GLint x,
-                                         GLint y,
-                                         GLsizei width,
-                                         GLsizei height,
-                                         GLenum format,
-                                         GLenum type,
-                                         void *pixels);
 ANGLE_EXPORT void GL_APIENTRY ReleaseShaderCompiler();
 ANGLE_EXPORT void GL_APIENTRY RenderbufferStorage(GLenum target,
                                                   GLenum internalformat,
                                                   GLsizei width,
                                                   GLsizei height);
-ANGLE_EXPORT void GL_APIENTRY SampleCoverage(GLfloat value, GLboolean invert);
-ANGLE_EXPORT void GL_APIENTRY Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
 ANGLE_EXPORT void GL_APIENTRY ShaderBinary(GLsizei count,
                                            const GLuint *shaders,
                                            GLenum binaryformat,
@@ -214,37 +119,12 @@
                                            GLsizei count,
                                            const GLchar *const *string,
                                            const GLint *length);
-ANGLE_EXPORT void GL_APIENTRY StencilFunc(GLenum func, GLint ref, GLuint mask);
 ANGLE_EXPORT void GL_APIENTRY StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
-ANGLE_EXPORT void GL_APIENTRY StencilMask(GLuint mask);
 ANGLE_EXPORT void GL_APIENTRY StencilMaskSeparate(GLenum face, GLuint mask);
-ANGLE_EXPORT void GL_APIENTRY StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
 ANGLE_EXPORT void GL_APIENTRY StencilOpSeparate(GLenum face,
                                                 GLenum sfail,
                                                 GLenum dpfail,
                                                 GLenum dppass);
-ANGLE_EXPORT void GL_APIENTRY TexImage2D(GLenum target,
-                                         GLint level,
-                                         GLint internalformat,
-                                         GLsizei width,
-                                         GLsizei height,
-                                         GLint border,
-                                         GLenum format,
-                                         GLenum type,
-                                         const void *pixels);
-ANGLE_EXPORT void GL_APIENTRY TexParameterf(GLenum target, GLenum pname, GLfloat param);
-ANGLE_EXPORT void GL_APIENTRY TexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
-ANGLE_EXPORT void GL_APIENTRY TexParameteri(GLenum target, GLenum pname, GLint param);
-ANGLE_EXPORT void GL_APIENTRY TexParameteriv(GLenum target, GLenum pname, const GLint *params);
-ANGLE_EXPORT void GL_APIENTRY TexSubImage2D(GLenum target,
-                                            GLint level,
-                                            GLint xoffset,
-                                            GLint yoffset,
-                                            GLsizei width,
-                                            GLsizei height,
-                                            GLenum format,
-                                            GLenum type,
-                                            const void *pixels);
 ANGLE_EXPORT void GL_APIENTRY Uniform1f(GLint location, GLfloat v0);
 ANGLE_EXPORT void GL_APIENTRY Uniform1fv(GLint location, GLsizei count, const GLfloat *value);
 ANGLE_EXPORT void GL_APIENTRY Uniform1i(GLint location, GLint v0);
@@ -291,7 +171,6 @@
                                                   GLboolean normalized,
                                                   GLsizei stride,
                                                   const void *pointer);
-ANGLE_EXPORT void GL_APIENTRY Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
 }  // namespace gl
 
 #endif  // LIBGLESV2_ENTRY_POINTS_GLES_2_0_AUTOGEN_H_
diff --git a/src/libGLESv2/entry_points_gles_3_0_autogen.cpp b/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
index 7c5f4f5..08892e1 100644
--- a/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
+++ b/src/libGLESv2/entry_points_gles_3_0_autogen.cpp
@@ -8,6 +8,8 @@
 // entry_points_gles_3_0_autogen.cpp:
 //   Defines the GLES 3.0 entry points.
 
+#include "libGLESv2/entry_points_gles_3_0_autogen.h"
+
 #include "libANGLE/Context.h"
 #include "libANGLE/validationES3.h"
 #include "libGLESv2/global_state.h"
diff --git a/src/libGLESv2/entry_points_gles_3_1_autogen.cpp b/src/libGLESv2/entry_points_gles_3_1_autogen.cpp
index dd4fe5b..eb1be45 100644
--- a/src/libGLESv2/entry_points_gles_3_1_autogen.cpp
+++ b/src/libGLESv2/entry_points_gles_3_1_autogen.cpp
@@ -8,6 +8,8 @@
 // entry_points_gles_3_1_autogen.cpp:
 //   Defines the GLES 3.1 entry points.
 
+#include "libGLESv2/entry_points_gles_3_1_autogen.h"
+
 #include "libANGLE/Context.h"
 #include "libANGLE/validationES31.h"
 #include "libGLESv2/global_state.h"
diff --git a/src/libGLESv2/entry_points_gles_2_0_ext_autogen.cpp b/src/libGLESv2/entry_points_gles_ext_autogen.cpp
similarity index 84%
rename from src/libGLESv2/entry_points_gles_2_0_ext_autogen.cpp
rename to src/libGLESv2/entry_points_gles_ext_autogen.cpp
index 10689ea..a3b272b 100644
--- a/src/libGLESv2/entry_points_gles_2_0_ext_autogen.cpp
+++ b/src/libGLESv2/entry_points_gles_ext_autogen.cpp
@@ -5,15 +5,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// entry_points_gles_2_0_ext_autogen.cpp:
+// entry_points_gles_ext_autogen.cpp:
 //   Defines the GLES extension entry points.
 
+#include "libGLESv2/entry_points_gles_ext_autogen.h"
+
 #include "libANGLE/Context.h"
 #include "libANGLE/validationES.h"
-#include "libANGLE/validationES2.h"
+#include "libGLESv2/global_state.h"
+
+#include "libANGLE/validationES.h"
+#include "libANGLE/validationES1.h"
 #include "libANGLE/validationES3.h"
 #include "libANGLE/validationES31.h"
-#include "libGLESv2/global_state.h"
 
 namespace gl
 {
@@ -1051,6 +1055,143 @@
     }
 }
 
+// GL_OES_draw_texture
+void GL_APIENTRY DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
+{
+    EVENT(
+        "(GLfloat x = %f, GLfloat y = %f, GLfloat z = %f, GLfloat width = %f, GLfloat height = %f)",
+        x, y, z, width, height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexfOES>(x, y, z, width, height);
+
+        if (context->skipValidation() || ValidateDrawTexfOES(context, x, y, z, width, height))
+        {
+            context->drawTexf(x, y, z, width, height);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexfvOES(const GLfloat *coords)
+{
+    EVENT("(const GLfloat *coords = 0x%0.8p)", coords);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexfvOES>(coords);
+
+        if (context->skipValidation() || ValidateDrawTexfvOES(context, coords))
+        {
+            context->drawTexfv(coords);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
+{
+    EVENT("(GLint x = %d, GLint y = %d, GLint z = %d, GLint width = %d, GLint height = %d)", x, y,
+          z, width, height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexiOES>(x, y, z, width, height);
+
+        if (context->skipValidation() || ValidateDrawTexiOES(context, x, y, z, width, height))
+        {
+            context->drawTexi(x, y, z, width, height);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexivOES(const GLint *coords)
+{
+    EVENT("(const GLint *coords = 0x%0.8p)", coords);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexivOES>(coords);
+
+        if (context->skipValidation() || ValidateDrawTexivOES(context, coords))
+        {
+            context->drawTexiv(coords);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
+{
+    EVENT(
+        "(GLshort x = %d, GLshort y = %d, GLshort z = %d, GLshort width = %d, GLshort height = %d)",
+        x, y, z, width, height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexsOES>(x, y, z, width, height);
+
+        if (context->skipValidation() || ValidateDrawTexsOES(context, x, y, z, width, height))
+        {
+            context->drawTexs(x, y, z, width, height);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexsvOES(const GLshort *coords)
+{
+    EVENT("(const GLshort *coords = 0x%0.8p)", coords);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexsvOES>(coords);
+
+        if (context->skipValidation() || ValidateDrawTexsvOES(context, coords))
+        {
+            context->drawTexsv(coords);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
+{
+    EVENT(
+        "(GLfixed x = 0x%X, GLfixed y = 0x%X, GLfixed z = 0x%X, GLfixed width = 0x%X, GLfixed "
+        "height = 0x%X)",
+        x, y, z, width, height);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexxOES>(x, y, z, width, height);
+
+        if (context->skipValidation() || ValidateDrawTexxOES(context, x, y, z, width, height))
+        {
+            context->drawTexx(x, y, z, width, height);
+        }
+    }
+}
+
+void GL_APIENTRY DrawTexxvOES(const GLfixed *coords)
+{
+    EVENT("(const GLfixed *coords = 0x%0.8p)", coords);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::DrawTexxvOES>(coords);
+
+        if (context->skipValidation() || ValidateDrawTexxvOES(context, coords))
+        {
+            context->drawTexxv(coords);
+        }
+    }
+}
+
 // GL_OES_get_program_binary
 void GL_APIENTRY GetProgramBinaryOES(GLuint program,
                                      GLsizei bufSize,
@@ -1158,6 +1299,116 @@
     return GetDefaultReturnValue<EntryPoint::UnmapBufferOES, GLboolean>();
 }
 
+// GL_OES_matrix_palette
+void GL_APIENTRY CurrentPaletteMatrixOES(GLuint matrixpaletteindex)
+{
+    EVENT("(GLuint matrixpaletteindex = %u)", matrixpaletteindex);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::CurrentPaletteMatrixOES>(matrixpaletteindex);
+
+        if (context->skipValidation() ||
+            ValidateCurrentPaletteMatrixOES(context, matrixpaletteindex))
+        {
+            context->currentPaletteMatrix(matrixpaletteindex);
+        }
+    }
+}
+
+void GL_APIENTRY LoadPaletteFromModelViewMatrixOES()
+{
+    EVENT("()");
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::LoadPaletteFromModelViewMatrixOES>();
+
+        if (context->skipValidation() || ValidateLoadPaletteFromModelViewMatrixOES(context))
+        {
+            context->loadPaletteFromModelViewMatrix();
+        }
+    }
+}
+
+void GL_APIENTRY MatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT(
+        "(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
+        size, type, stride, pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::MatrixIndexPointerOES>(size, type, stride, pointer);
+
+        if (context->skipValidation() ||
+            ValidateMatrixIndexPointerOES(context, size, type, stride, pointer))
+        {
+            context->matrixIndexPointer(size, type, stride, pointer);
+        }
+    }
+}
+
+void GL_APIENTRY WeightPointerOES(GLint size, GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT(
+        "(GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)",
+        size, type, stride, pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::WeightPointerOES>(size, type, stride, pointer);
+
+        if (context->skipValidation() ||
+            ValidateWeightPointerOES(context, size, type, stride, pointer))
+        {
+            context->weightPointer(size, type, stride, pointer);
+        }
+    }
+}
+
+// GL_OES_point_size_array
+void GL_APIENTRY PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer)
+{
+    EVENT("(GLenum type = 0x%X, GLsizei stride = %d, const void *pointer = 0x%0.8p)", type, stride,
+          pointer);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::PointSizePointerOES>(type, stride, pointer);
+
+        if (context->skipValidation() ||
+            ValidatePointSizePointerOES(context, type, stride, pointer))
+        {
+            context->pointSizePointer(type, stride, pointer);
+        }
+    }
+}
+
+// GL_OES_query_matrix
+GLbitfield GL_APIENTRY QueryMatrixxOES(GLfixed *mantissa, GLint *exponent)
+{
+    EVENT("(GLfixed *mantissa = 0x%0.8p, GLint *exponent = 0x%0.8p)", mantissa, exponent);
+
+    Context *context = GetValidGlobalContext();
+    if (context)
+    {
+        context->gatherParams<EntryPoint::QueryMatrixxOES>(mantissa, exponent);
+
+        if (context->skipValidation() || ValidateQueryMatrixxOES(context, mantissa, exponent))
+        {
+            return context->queryMatrixx(mantissa, exponent);
+        }
+    }
+
+    return GetDefaultReturnValue<EntryPoint::QueryMatrixxOES, GLbitfield>();
+}
+
 // GL_OES_vertex_array_object
 void GL_APIENTRY BindVertexArrayOES(GLuint array)
 {
diff --git a/src/libGLESv2/entry_points_gles_2_0_ext_autogen.h b/src/libGLESv2/entry_points_gles_ext_autogen.h
similarity index 85%
rename from src/libGLESv2/entry_points_gles_2_0_ext_autogen.h
rename to src/libGLESv2/entry_points_gles_ext_autogen.h
index af25688..eac70fe 100644
--- a/src/libGLESv2/entry_points_gles_2_0_ext_autogen.h
+++ b/src/libGLESv2/entry_points_gles_ext_autogen.h
@@ -5,13 +5,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// entry_points_gles_2_0_ext_autogen.h:
+// entry_points_gles_ext_autogen.h:
 //   Defines the GLES extension entry points.
 
-#ifndef LIBGLESV2_ENTRY_POINTS_GLES_2_0_EXT_AUTOGEN_H_
-#define LIBGLESV2_ENTRY_POINTS_GLES_2_0_EXT_AUTOGEN_H_
+#ifndef LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
+#define LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
 
+#include <GLES/gl.h>
+#include <GLES/glext.h>
 #include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
 #include <export.h>
 
 namespace gl
@@ -184,6 +187,19 @@
                                                                    GLeglImageOES image);
 ANGLE_EXPORT void GL_APIENTRY EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
 
+// GL_OES_draw_texture
+ANGLE_EXPORT void GL_APIENTRY
+DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+ANGLE_EXPORT void GL_APIENTRY DrawTexfvOES(const GLfloat *coords);
+ANGLE_EXPORT void GL_APIENTRY DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height);
+ANGLE_EXPORT void GL_APIENTRY DrawTexivOES(const GLint *coords);
+ANGLE_EXPORT void GL_APIENTRY
+DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+ANGLE_EXPORT void GL_APIENTRY DrawTexsvOES(const GLshort *coords);
+ANGLE_EXPORT void GL_APIENTRY
+DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+ANGLE_EXPORT void GL_APIENTRY DrawTexxvOES(const GLfixed *coords);
+
 // GL_OES_get_program_binary
 ANGLE_EXPORT void GL_APIENTRY GetProgramBinaryOES(GLuint program,
                                                   GLsizei bufSize,
@@ -200,6 +216,24 @@
 ANGLE_EXPORT void *GL_APIENTRY MapBufferOES(GLenum target, GLenum access);
 ANGLE_EXPORT GLboolean GL_APIENTRY UnmapBufferOES(GLenum target);
 
+// GL_OES_matrix_palette
+ANGLE_EXPORT void GL_APIENTRY CurrentPaletteMatrixOES(GLuint matrixpaletteindex);
+ANGLE_EXPORT void GL_APIENTRY LoadPaletteFromModelViewMatrixOES();
+ANGLE_EXPORT void GL_APIENTRY MatrixIndexPointerOES(GLint size,
+                                                    GLenum type,
+                                                    GLsizei stride,
+                                                    const void *pointer);
+ANGLE_EXPORT void GL_APIENTRY WeightPointerOES(GLint size,
+                                               GLenum type,
+                                               GLsizei stride,
+                                               const void *pointer);
+
+// GL_OES_point_size_array
+ANGLE_EXPORT void GL_APIENTRY PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer);
+
+// GL_OES_query_matrix
+ANGLE_EXPORT GLbitfield GL_APIENTRY QueryMatrixxOES(GLfixed *mantissa, GLint *exponent);
+
 // GL_OES_vertex_array_object
 ANGLE_EXPORT void GL_APIENTRY BindVertexArrayOES(GLuint array);
 ANGLE_EXPORT void GL_APIENTRY DeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
@@ -207,4 +241,4 @@
 ANGLE_EXPORT GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array);
 }  // namespace gl
 
-#endif  // LIBGLESV2_ENTRY_POINTS_GLES_2_0_EXT_AUTOGEN_H_
+#endif  // LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
diff --git a/src/libGLESv2/gen_proc_table.py b/src/libGLESv2/gen_proc_table.py
index 1150a05..40d93d8 100644
--- a/src/libGLESv2/gen_proc_table.py
+++ b/src/libGLESv2/gen_proc_table.py
@@ -29,11 +29,12 @@
 
 #include "libGLESv2/entry_points_egl.h"
 #include "libGLESv2/entry_points_egl_ext.h"
+#include "libGLESv2/entry_points_gles_1_0_autogen.h"
 #include "libGLESv2/entry_points_gles_2_0_autogen.h"
 #include "libGLESv2/entry_points_gles_2_0_ext.h"
-#include "libGLESv2/entry_points_gles_2_0_ext_autogen.h"
 #include "libGLESv2/entry_points_gles_3_0_autogen.h"
 #include "libGLESv2/entry_points_gles_3_1_autogen.h"
+#include "libGLESv2/entry_points_gles_ext_autogen.h"
 #include "platform/Platform.h"
 
 #define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 57d2d81..9dce1ea 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -6,11 +6,14 @@
 
 // libGLESv2.cpp: Implements the exported OpenGL ES 2.0 functions.
 
+#include "angle_gl.h"
+
+#include "libGLESv2/entry_points_gles_1_0_autogen.h"
 #include "libGLESv2/entry_points_gles_2_0_autogen.h"
 #include "libGLESv2/entry_points_gles_2_0_ext.h"
-#include "libGLESv2/entry_points_gles_2_0_ext_autogen.h"
 #include "libGLESv2/entry_points_gles_3_0_autogen.h"
 #include "libGLESv2/entry_points_gles_3_1_autogen.h"
+#include "libGLESv2/entry_points_gles_ext_autogen.h"
 
 #include "common/event_tracer.h"
 
diff --git a/src/libGLESv2/proc_table_autogen.cpp b/src/libGLESv2/proc_table_autogen.cpp
index 9a4f263..d482648 100644
--- a/src/libGLESv2/proc_table_autogen.cpp
+++ b/src/libGLESv2/proc_table_autogen.cpp
@@ -1,7 +1,7 @@
 // GENERATED FILE - DO NOT EDIT.
 // Generated by gen_proc_table.py using data from proc_table_data.json.
 //
-// Copyright 2017 The ANGLE Project Authors. All rights reserved.
+// Copyright 2018 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.
 //
@@ -13,11 +13,12 @@
 
 #include "libGLESv2/entry_points_egl.h"
 #include "libGLESv2/entry_points_egl_ext.h"
+#include "libGLESv2/entry_points_gles_1_0_autogen.h"
 #include "libGLESv2/entry_points_gles_2_0_autogen.h"
 #include "libGLESv2/entry_points_gles_2_0_ext.h"
-#include "libGLESv2/entry_points_gles_2_0_ext_autogen.h"
 #include "libGLESv2/entry_points_gles_3_0_autogen.h"
 #include "libGLESv2/entry_points_gles_3_1_autogen.h"
+#include "libGLESv2/entry_points_gles_ext_autogen.h"
 #include "platform/Platform.h"
 
 #define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
@@ -101,6 +102,8 @@
     {"eglWaitSync", P(egl::WaitSync)},
     {"glActiveShaderProgram", P(gl::ActiveShaderProgram)},
     {"glActiveTexture", P(gl::ActiveTexture)},
+    {"glAlphaFunc", P(gl::AlphaFunc)},
+    {"glAlphaFuncx", P(gl::AlphaFuncx)},
     {"glAttachShader", P(gl::AttachShader)},
     {"glBeginQuery", P(gl::BeginQuery)},
     {"glBeginQueryEXT", P(gl::BeginQueryEXT)},
@@ -136,10 +139,19 @@
     {"glClearBufferiv", P(gl::ClearBufferiv)},
     {"glClearBufferuiv", P(gl::ClearBufferuiv)},
     {"glClearColor", P(gl::ClearColor)},
+    {"glClearColorx", P(gl::ClearColorx)},
     {"glClearDepthf", P(gl::ClearDepthf)},
+    {"glClearDepthx", P(gl::ClearDepthx)},
     {"glClearStencil", P(gl::ClearStencil)},
+    {"glClientActiveTexture", P(gl::ClientActiveTexture)},
     {"glClientWaitSync", P(gl::ClientWaitSync)},
+    {"glClipPlanef", P(gl::ClipPlanef)},
+    {"glClipPlanex", P(gl::ClipPlanex)},
+    {"glColor4f", P(gl::Color4f)},
+    {"glColor4ub", P(gl::Color4ub)},
+    {"glColor4x", P(gl::Color4x)},
     {"glColorMask", P(gl::ColorMask)},
+    {"glColorPointer", P(gl::ColorPointer)},
     {"glCompileShader", P(gl::CompileShader)},
     {"glCompressedCopyTextureCHROMIUM", P(gl::CompressedCopyTextureCHROMIUM)},
     {"glCompressedTexImage2D", P(gl::CompressedTexImage2D)},
@@ -160,6 +172,7 @@
     {"glCreateShader", P(gl::CreateShader)},
     {"glCreateShaderProgramv", P(gl::CreateShaderProgramv)},
     {"glCullFace", P(gl::CullFace)},
+    {"glCurrentPaletteMatrixOES", P(gl::CurrentPaletteMatrixOES)},
     {"glDebugMessageCallbackKHR", P(gl::DebugMessageCallbackKHR)},
     {"glDebugMessageControlKHR", P(gl::DebugMessageControlKHR)},
     {"glDebugMessageInsertKHR", P(gl::DebugMessageInsertKHR)},
@@ -181,8 +194,10 @@
     {"glDepthFunc", P(gl::DepthFunc)},
     {"glDepthMask", P(gl::DepthMask)},
     {"glDepthRangef", P(gl::DepthRangef)},
+    {"glDepthRangex", P(gl::DepthRangex)},
     {"glDetachShader", P(gl::DetachShader)},
     {"glDisable", P(gl::Disable)},
+    {"glDisableClientState", P(gl::DisableClientState)},
     {"glDisableVertexAttribArray", P(gl::DisableVertexAttribArray)},
     {"glDiscardFramebufferEXT", P(gl::DiscardFramebufferEXT)},
     {"glDispatchCompute", P(gl::DispatchCompute)},
@@ -198,9 +213,18 @@
     {"glDrawElementsInstanced", P(gl::DrawElementsInstanced)},
     {"glDrawElementsInstancedANGLE", P(gl::DrawElementsInstancedANGLE)},
     {"glDrawRangeElements", P(gl::DrawRangeElements)},
+    {"glDrawTexfOES", P(gl::DrawTexfOES)},
+    {"glDrawTexfvOES", P(gl::DrawTexfvOES)},
+    {"glDrawTexiOES", P(gl::DrawTexiOES)},
+    {"glDrawTexivOES", P(gl::DrawTexivOES)},
+    {"glDrawTexsOES", P(gl::DrawTexsOES)},
+    {"glDrawTexsvOES", P(gl::DrawTexsvOES)},
+    {"glDrawTexxOES", P(gl::DrawTexxOES)},
+    {"glDrawTexxvOES", P(gl::DrawTexxvOES)},
     {"glEGLImageTargetRenderbufferStorageOES", P(gl::EGLImageTargetRenderbufferStorageOES)},
     {"glEGLImageTargetTexture2DOES", P(gl::EGLImageTargetTexture2DOES)},
     {"glEnable", P(gl::Enable)},
+    {"glEnableClientState", P(gl::EnableClientState)},
     {"glEnableVertexAttribArray", P(gl::EnableVertexAttribArray)},
     {"glEndQuery", P(gl::EndQuery)},
     {"glEndQueryEXT", P(gl::EndQueryEXT)},
@@ -211,6 +235,10 @@
     {"glFlush", P(gl::Flush)},
     {"glFlushMappedBufferRange", P(gl::FlushMappedBufferRange)},
     {"glFlushMappedBufferRangeEXT", P(gl::FlushMappedBufferRangeEXT)},
+    {"glFogf", P(gl::Fogf)},
+    {"glFogfv", P(gl::Fogfv)},
+    {"glFogx", P(gl::Fogx)},
+    {"glFogxv", P(gl::Fogxv)},
     {"glFramebufferParameteri", P(gl::FramebufferParameteri)},
     {"glFramebufferRenderbuffer", P(gl::FramebufferRenderbuffer)},
     {"glFramebufferTexture2D", P(gl::FramebufferTexture2D)},
@@ -219,6 +247,8 @@
     {"glFramebufferTextureMultiviewSideBySideANGLE",
      P(gl::FramebufferTextureMultiviewSideBySideANGLE)},
     {"glFrontFace", P(gl::FrontFace)},
+    {"glFrustumf", P(gl::Frustumf)},
+    {"glFrustumx", P(gl::Frustumx)},
     {"glGenBuffers", P(gl::GenBuffers)},
     {"glGenFencesNV", P(gl::GenFencesNV)},
     {"glGenFramebuffers", P(gl::GenFramebuffers)},
@@ -251,9 +281,12 @@
     {"glGetBufferPointerv", P(gl::GetBufferPointerv)},
     {"glGetBufferPointervOES", P(gl::GetBufferPointervOES)},
     {"glGetBufferPointervRobustANGLE", P(gl::GetBufferPointervRobustANGLE)},
+    {"glGetClipPlanef", P(gl::GetClipPlanef)},
+    {"glGetClipPlanex", P(gl::GetClipPlanex)},
     {"glGetDebugMessageLogKHR", P(gl::GetDebugMessageLogKHR)},
     {"glGetError", P(gl::GetError)},
     {"glGetFenceivNV", P(gl::GetFenceivNV)},
+    {"glGetFixedv", P(gl::GetFixedv)},
     {"glGetFloatv", P(gl::GetFloatv)},
     {"glGetFloatvRobustANGLE", P(gl::GetFloatvRobustANGLE)},
     {"glGetFragDataLocation", P(gl::GetFragDataLocation)},
@@ -273,10 +306,15 @@
     {"glGetIntegervRobustANGLE", P(gl::GetIntegervRobustANGLE)},
     {"glGetInternalformativ", P(gl::GetInternalformativ)},
     {"glGetInternalformativRobustANGLE", P(gl::GetInternalformativRobustANGLE)},
+    {"glGetLightfv", P(gl::GetLightfv)},
+    {"glGetLightxv", P(gl::GetLightxv)},
+    {"glGetMaterialfv", P(gl::GetMaterialfv)},
+    {"glGetMaterialxv", P(gl::GetMaterialxv)},
     {"glGetMultisamplefv", P(gl::GetMultisamplefv)},
     {"glGetMultisamplefvRobustANGLE", P(gl::GetMultisamplefvRobustANGLE)},
     {"glGetObjectLabelKHR", P(gl::GetObjectLabelKHR)},
     {"glGetObjectPtrLabelKHR", P(gl::GetObjectPtrLabelKHR)},
+    {"glGetPointerv", P(gl::GetPointerv)},
     {"glGetPointervKHR", P(gl::GetPointervKHR)},
     {"glGetPointervRobustANGLERobustANGLE", P(gl::GetPointervRobustANGLERobustANGLE)},
     {"glGetProgramBinary", P(gl::GetProgramBinary)},
@@ -320,6 +358,9 @@
     {"glGetString", P(gl::GetString)},
     {"glGetStringi", P(gl::GetStringi)},
     {"glGetSynciv", P(gl::GetSynciv)},
+    {"glGetTexEnvfv", P(gl::GetTexEnvfv)},
+    {"glGetTexEnviv", P(gl::GetTexEnviv)},
+    {"glGetTexEnvxv", P(gl::GetTexEnvxv)},
     {"glGetTexLevelParameterfv", P(gl::GetTexLevelParameterfv)},
     {"glGetTexLevelParameterfvRobustANGLE", P(gl::GetTexLevelParameterfvRobustANGLE)},
     {"glGetTexLevelParameteriv", P(gl::GetTexLevelParameteriv)},
@@ -330,6 +371,7 @@
     {"glGetTexParameterfvRobustANGLE", P(gl::GetTexParameterfvRobustANGLE)},
     {"glGetTexParameteriv", P(gl::GetTexParameteriv)},
     {"glGetTexParameterivRobustANGLE", P(gl::GetTexParameterivRobustANGLE)},
+    {"glGetTexParameterxv", P(gl::GetTexParameterxv)},
     {"glGetTransformFeedbackVarying", P(gl::GetTransformFeedbackVarying)},
     {"glGetTranslatedShaderSourceANGLE", P(gl::GetTranslatedShaderSourceANGLE)},
     {"glGetUniformBlockIndex", P(gl::GetUniformBlockIndex)},
@@ -376,20 +418,58 @@
     {"glIsTransformFeedback", P(gl::IsTransformFeedback)},
     {"glIsVertexArray", P(gl::IsVertexArray)},
     {"glIsVertexArrayOES", P(gl::IsVertexArrayOES)},
+    {"glLightModelf", P(gl::LightModelf)},
+    {"glLightModelfv", P(gl::LightModelfv)},
+    {"glLightModelx", P(gl::LightModelx)},
+    {"glLightModelxv", P(gl::LightModelxv)},
+    {"glLightf", P(gl::Lightf)},
+    {"glLightfv", P(gl::Lightfv)},
+    {"glLightx", P(gl::Lightx)},
+    {"glLightxv", P(gl::Lightxv)},
     {"glLineWidth", P(gl::LineWidth)},
+    {"glLineWidthx", P(gl::LineWidthx)},
     {"glLinkProgram", P(gl::LinkProgram)},
+    {"glLoadIdentity", P(gl::LoadIdentity)},
+    {"glLoadMatrixf", P(gl::LoadMatrixf)},
+    {"glLoadMatrixx", P(gl::LoadMatrixx)},
+    {"glLoadPaletteFromModelViewMatrixOES", P(gl::LoadPaletteFromModelViewMatrixOES)},
+    {"glLogicOp", P(gl::LogicOp)},
     {"glMapBufferOES", P(gl::MapBufferOES)},
     {"glMapBufferRange", P(gl::MapBufferRange)},
     {"glMapBufferRangeEXT", P(gl::MapBufferRangeEXT)},
+    {"glMaterialf", P(gl::Materialf)},
+    {"glMaterialfv", P(gl::Materialfv)},
+    {"glMaterialx", P(gl::Materialx)},
+    {"glMaterialxv", P(gl::Materialxv)},
+    {"glMatrixIndexPointerOES", P(gl::MatrixIndexPointerOES)},
+    {"glMatrixMode", P(gl::MatrixMode)},
     {"glMemoryBarrier", P(gl::MemoryBarrier)},
     {"glMemoryBarrierByRegion", P(gl::MemoryBarrierByRegion)},
+    {"glMultMatrixf", P(gl::MultMatrixf)},
+    {"glMultMatrixx", P(gl::MultMatrixx)},
+    {"glMultiTexCoord4f", P(gl::MultiTexCoord4f)},
+    {"glMultiTexCoord4x", P(gl::MultiTexCoord4x)},
+    {"glNormal3f", P(gl::Normal3f)},
+    {"glNormal3x", P(gl::Normal3x)},
+    {"glNormalPointer", P(gl::NormalPointer)},
     {"glObjectLabelKHR", P(gl::ObjectLabelKHR)},
     {"glObjectPtrLabelKHR", P(gl::ObjectPtrLabelKHR)},
+    {"glOrthof", P(gl::Orthof)},
+    {"glOrthox", P(gl::Orthox)},
     {"glPauseTransformFeedback", P(gl::PauseTransformFeedback)},
     {"glPixelStorei", P(gl::PixelStorei)},
+    {"glPointParameterf", P(gl::PointParameterf)},
+    {"glPointParameterfv", P(gl::PointParameterfv)},
+    {"glPointParameterx", P(gl::PointParameterx)},
+    {"glPointParameterxv", P(gl::PointParameterxv)},
+    {"glPointSize", P(gl::PointSize)},
+    {"glPointSizePointerOES", P(gl::PointSizePointerOES)},
+    {"glPointSizex", P(gl::PointSizex)},
     {"glPolygonOffset", P(gl::PolygonOffset)},
+    {"glPolygonOffsetx", P(gl::PolygonOffsetx)},
     {"glPopDebugGroupKHR", P(gl::PopDebugGroupKHR)},
     {"glPopGroupMarkerEXT", P(gl::PopGroupMarkerEXT)},
+    {"glPopMatrix", P(gl::PopMatrix)},
     {"glProgramBinary", P(gl::ProgramBinary)},
     {"glProgramBinaryOES", P(gl::ProgramBinaryOES)},
     {"glProgramParameteri", P(gl::ProgramParameteri)},
@@ -428,7 +508,9 @@
     {"glProgramUniformMatrix4x3fv", P(gl::ProgramUniformMatrix4x3fv)},
     {"glPushDebugGroupKHR", P(gl::PushDebugGroupKHR)},
     {"glPushGroupMarkerEXT", P(gl::PushGroupMarkerEXT)},
+    {"glPushMatrix", P(gl::PushMatrix)},
     {"glQueryCounterEXT", P(gl::QueryCounterEXT)},
+    {"glQueryMatrixxOES", P(gl::QueryMatrixxOES)},
     {"glReadBuffer", P(gl::ReadBuffer)},
     {"glReadPixels", P(gl::ReadPixels)},
     {"glReadPixelsRobustANGLE", P(gl::ReadPixelsRobustANGLE)},
@@ -440,7 +522,10 @@
     {"glRenderbufferStorageMultisampleANGLE", P(gl::RenderbufferStorageMultisampleANGLE)},
     {"glRequestExtensionANGLE", P(gl::RequestExtensionANGLE)},
     {"glResumeTransformFeedback", P(gl::ResumeTransformFeedback)},
+    {"glRotatef", P(gl::Rotatef)},
+    {"glRotatex", P(gl::Rotatex)},
     {"glSampleCoverage", P(gl::SampleCoverage)},
+    {"glSampleCoveragex", P(gl::SampleCoveragex)},
     {"glSampleMaski", P(gl::SampleMaski)},
     {"glSamplerParameterIivRobustANGLE", P(gl::SamplerParameterIivRobustANGLE)},
     {"glSamplerParameterIuivRobustANGLE", P(gl::SamplerParameterIuivRobustANGLE)},
@@ -450,8 +535,11 @@
     {"glSamplerParameteri", P(gl::SamplerParameteri)},
     {"glSamplerParameteriv", P(gl::SamplerParameteriv)},
     {"glSamplerParameterivRobustANGLE", P(gl::SamplerParameterivRobustANGLE)},
+    {"glScalef", P(gl::Scalef)},
+    {"glScalex", P(gl::Scalex)},
     {"glScissor", P(gl::Scissor)},
     {"glSetFenceNV", P(gl::SetFenceNV)},
+    {"glShadeModel", P(gl::ShadeModel)},
     {"glShaderBinary", P(gl::ShaderBinary)},
     {"glShaderSource", P(gl::ShaderSource)},
     {"glStencilFunc", P(gl::StencilFunc)},
@@ -461,6 +549,13 @@
     {"glStencilOp", P(gl::StencilOp)},
     {"glStencilOpSeparate", P(gl::StencilOpSeparate)},
     {"glTestFenceNV", P(gl::TestFenceNV)},
+    {"glTexCoordPointer", P(gl::TexCoordPointer)},
+    {"glTexEnvf", P(gl::TexEnvf)},
+    {"glTexEnvfv", P(gl::TexEnvfv)},
+    {"glTexEnvi", P(gl::TexEnvi)},
+    {"glTexEnviv", P(gl::TexEnviv)},
+    {"glTexEnvx", P(gl::TexEnvx)},
+    {"glTexEnvxv", P(gl::TexEnvxv)},
     {"glTexImage2D", P(gl::TexImage2D)},
     {"glTexImage2DRobustANGLE", P(gl::TexImage2DRobustANGLE)},
     {"glTexImage3D", P(gl::TexImage3D)},
@@ -473,6 +568,8 @@
     {"glTexParameteri", P(gl::TexParameteri)},
     {"glTexParameteriv", P(gl::TexParameteriv)},
     {"glTexParameterivRobustANGLE", P(gl::TexParameterivRobustANGLE)},
+    {"glTexParameterx", P(gl::TexParameterx)},
+    {"glTexParameterxv", P(gl::TexParameterxv)},
     {"glTexStorage2D", P(gl::TexStorage2D)},
     {"glTexStorage2DEXT", P(gl::TexStorage2DEXT)},
     {"glTexStorage2DMultisample", P(gl::TexStorage2DMultisample)},
@@ -482,6 +579,8 @@
     {"glTexSubImage3D", P(gl::TexSubImage3D)},
     {"glTexSubImage3DRobustANGLE", P(gl::TexSubImage3DRobustANGLE)},
     {"glTransformFeedbackVaryings", P(gl::TransformFeedbackVaryings)},
+    {"glTranslatef", P(gl::Translatef)},
+    {"glTranslatex", P(gl::Translatex)},
     {"glUniform1f", P(gl::Uniform1f)},
     {"glUniform1fv", P(gl::Uniform1fv)},
     {"glUniform1i", P(gl::Uniform1i)},
@@ -542,8 +641,10 @@
     {"glVertexAttribIPointer", P(gl::VertexAttribIPointer)},
     {"glVertexAttribPointer", P(gl::VertexAttribPointer)},
     {"glVertexBindingDivisor", P(gl::VertexBindingDivisor)},
+    {"glVertexPointer", P(gl::VertexPointer)},
     {"glViewport", P(gl::Viewport)},
-    {"glWaitSync", P(gl::WaitSync)}};
+    {"glWaitSync", P(gl::WaitSync)},
+    {"glWeightPointerOES", P(gl::WeightPointerOES)}};
 
-size_t g_numProcs = 516;
+size_t g_numProcs = 616;
 }  // namespace egl
diff --git a/src/libGLESv2/proc_table_data.json b/src/libGLESv2/proc_table_data.json
index aca77a5..1781580 100644
--- a/src/libGLESv2/proc_table_data.json
+++ b/src/libGLESv2/proc_table_data.json
@@ -1,4 +1,177 @@
 {
+    "GLES1 core": [
+        "glAlphaFunc",
+        "glClearColor",
+        "glClearDepthf",
+        "glClipPlanef",
+        "glColor4f",
+        "glDepthRangef",
+        "glFogf",
+        "glFogfv",
+        "glFrustumf",
+        "glGetClipPlanef",
+        "glGetFloatv",
+        "glGetLightfv",
+        "glGetMaterialfv",
+        "glGetTexEnvfv",
+        "glGetTexParameterfv",
+        "glLightModelf",
+        "glLightModelfv",
+        "glLightf",
+        "glLightfv",
+        "glLineWidth",
+        "glLoadMatrixf",
+        "glMaterialf",
+        "glMaterialfv",
+        "glMultMatrixf",
+        "glMultiTexCoord4f",
+        "glNormal3f",
+        "glOrthof",
+        "glPointParameterf",
+        "glPointParameterfv",
+        "glPointSize",
+        "glPolygonOffset",
+        "glRotatef",
+        "glScalef",
+        "glTexEnvf",
+        "glTexEnvfv",
+        "glTexParameterf",
+        "glTexParameterfv",
+        "glTranslatef",
+        "glActiveTexture",
+        "glAlphaFuncx",
+        "glBindBuffer",
+        "glBindTexture",
+        "glBlendFunc",
+        "glBufferData",
+        "glBufferSubData",
+        "glClear",
+        "glClearColorx",
+        "glClearDepthx",
+        "glClearStencil",
+        "glClientActiveTexture",
+        "glClipPlanex",
+        "glColor4ub",
+        "glColor4x",
+        "glColorMask",
+        "glColorPointer",
+        "glCompressedTexImage2D",
+        "glCompressedTexSubImage2D",
+        "glCopyTexImage2D",
+        "glCopyTexSubImage2D",
+        "glCullFace",
+        "glDeleteBuffers",
+        "glDeleteTextures",
+        "glDepthFunc",
+        "glDepthMask",
+        "glDepthRangex",
+        "glDisable",
+        "glDisableClientState",
+        "glDrawArrays",
+        "glDrawElements",
+        "glEnable",
+        "glEnableClientState",
+        "glFinish",
+        "glFlush",
+        "glFogx",
+        "glFogxv",
+        "glFrontFace",
+        "glFrustumx",
+        "glGetBooleanv",
+        "glGetBufferParameteriv",
+        "glGetClipPlanex",
+        "glGenBuffers",
+        "glGenTextures",
+        "glGetError",
+        "glGetFixedv",
+        "glGetIntegerv",
+        "glGetLightxv",
+        "glGetMaterialxv",
+        "glGetPointerv",
+        "glGetString",
+        "glGetTexEnviv",
+        "glGetTexEnvxv",
+        "glGetTexParameteriv",
+        "glGetTexParameterxv",
+        "glHint",
+        "glIsBuffer",
+        "glIsEnabled",
+        "glIsTexture",
+        "glLightModelx",
+        "glLightModelxv",
+        "glLightx",
+        "glLightxv",
+        "glLineWidthx",
+        "glLoadIdentity",
+        "glLoadMatrixx",
+        "glLogicOp",
+        "glMaterialx",
+        "glMaterialxv",
+        "glMatrixMode",
+        "glMultMatrixx",
+        "glMultiTexCoord4x",
+        "glNormal3x",
+        "glNormalPointer",
+        "glOrthox",
+        "glPixelStorei",
+        "glPointParameterx",
+        "glPointParameterxv",
+        "glPointSizex",
+        "glPolygonOffsetx",
+        "glPopMatrix",
+        "glPushMatrix",
+        "glReadPixels",
+        "glRotatex",
+        "glSampleCoverage",
+        "glSampleCoveragex",
+        "glScalex",
+        "glScissor",
+        "glShadeModel",
+        "glStencilFunc",
+        "glStencilMask",
+        "glStencilOp",
+        "glTexCoordPointer",
+        "glTexEnvi",
+        "glTexEnvx",
+        "glTexEnviv",
+        "glTexEnvxv",
+        "glTexImage2D",
+        "glTexParameteri",
+        "glTexParameterx",
+        "glTexParameteriv",
+        "glTexParameterxv",
+        "glTexSubImage2D",
+        "glTranslatex",
+        "glVertexPointer",
+        "glViewport"
+    ],
+
+    "GL_OES_draw_texture": [
+        "glDrawTexsOES",
+        "glDrawTexiOES",
+        "glDrawTexxOES",
+        "glDrawTexsvOES",
+        "glDrawTexivOES",
+        "glDrawTexxvOES",
+        "glDrawTexfOES",
+        "glDrawTexfvOES"
+    ],
+
+    "GL_OES_matrix_palette": [
+        "glCurrentPaletteMatrixOES",
+        "glLoadPaletteFromModelViewMatrixOES",
+        "glMatrixIndexPointerOES",
+        "glWeightPointerOES"
+    ],
+
+    "GL_OES_point_size_array": [
+        "glPointSizePointerOES"
+    ],
+
+    "GL_OES_query_matrix": [
+        "glQueryMatrixxOES"
+    ],
+
     "GLES2 core": [
         "glActiveTexture",
         "glAttachShader",