blob: 1abc601b7a47850ef22679426070e27c071d9943 [file] [log] [blame]
/*
* Copyright 2015, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* THIS FILE WAS GENERATED BY apic. DO NOT EDIT.
*/
#ifndef GAPII_GLES_SPY_H
#define GAPII_GLES_SPY_H
#include "gles_imports.h"
#include "gles_types.h"
#include "spy_base.h"
#include "call_observer.h"
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
namespace gapii {
class GlesSpy : public virtual SpyBase {
public:
inline void init();
inline const GlesImports& imports() const;
std::shared_ptr<AndroidNativeBufferExtra> GetAndroidNativeBufferExtra(CallObserver* observer, void* buffer);
std::shared_ptr<DynamicContextState> GetEGLDynamicContextState(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLContext context);
std::shared_ptr<StaticContextState> GetEGLStaticContextState(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLContext context);
std::shared_ptr<ProgramInfo> GetProgramInfoExtra(CallObserver* observer, ProgramId programId);
u32Limits IndexLimits(CallObserver* observer, uint8_t* indices, uint32_t indices_type, uint32_t offset, uint32_t count);
void addTag(CallObserver* observer, MsgID msgID, const char* tag);
void mapMemory(CallObserver* observer, Slice<uint8_t> slice);
MsgID newMsg(CallObserver* observer, uint32_t s, const char* msg);
void onGlError(CallObserver* observer, uint32_t v);
void unmapMemory(CallObserver* observer, Slice<uint8_t> slice);
std::shared_ptr<Buffer> subGetBoundBufferOrError(CallObserver* observer, const std::function<void()>& call, uint32_t target);
void subBindBufferRange(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLuint index, BufferId buffer, GLintptr offset, GLsizeiptr size);
void subCopyBufferSubData(CallObserver* observer, const std::function<void()>& call, uint32_t readTarget, uint32_t writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void subGetBufferPointerv(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, void** params);
void subMapBuffer(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t access, uint8_t* ptr);
void subMapBufferRange(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLintptr offset, GLsizeiptr length, uint32_t access, uint8_t* ptr);
void subUnmapBuffer(CallObserver* observer, const std::function<void()>& call, uint32_t target);
void subFlushMappedBufferRange(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLintptr offset, GLsizeiptr length);
void subSetConstant(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<StaticContextState> ctx, uint32_t name, Slice<uint8_t> value);
void subDebugMessageCallback(CallObserver* observer, const std::function<void()>& call, GLDEBUGPROC callback, void* userParam);
void subDebugMessageControl(CallObserver* observer, const std::function<void()>& call, uint32_t source, uint32_t type, uint32_t severity, GLsizei count, GLuint* ids, GLboolean enabled);
void subDebugMessageInsert(CallObserver* observer, const std::function<void()>& call, uint32_t source, uint32_t type, GLuint id, uint32_t severity, GLsizei length, GLchar* message);
void subGetDebugMessageLog(CallObserver* observer, const std::function<void()>& call, GLuint count, GLsizei bufSize, uint32_t* sources, uint32_t* types, GLuint* ids, uint32_t* severities, GLsizei* lengths, GLchar* messageLog, GLuint gotCount);
void subGetObjectLabel(CallObserver* observer, const std::function<void()>& call, uint32_t identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
void subGetObjectPtrLabel(CallObserver* observer, const std::function<void()>& call, void* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
void subGetPointerv(CallObserver* observer, const std::function<void()>& call, uint32_t pname, void** params);
void subObjectLabel(CallObserver* observer, const std::function<void()>& call, uint32_t identifier, GLuint name, GLsizei length, GLchar* label);
void subObjectPtrLabel(CallObserver* observer, const std::function<void()>& call, void* ptr, GLsizei length, GLchar* label);
void subPopDebugGroup(CallObserver* observer, const std::function<void()>& call);
void subPushDebugGroup(CallObserver* observer, const std::function<void()>& call, uint32_t source, GLuint id, GLsizei length, GLchar* message);
void subCheckPrimitiveType(CallObserver* observer, const std::function<void()>& call, uint32_t draw_mode);
void subCheckIndicesType(CallObserver* observer, const std::function<void()>& call, uint32_t indices_type);
void subDrawArraysInstanced(CallObserver* observer, const std::function<void()>& call, uint32_t draw_mode, GLint first_index, GLsizei indices_count, GLsizei instance_count);
void subDrawElements(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count, GLint base_vertex);
void subDrawElementsBaseVertex(CallObserver* observer, const std::function<void()>& call, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLint base_vertex);
void subDrawElementsInstanced(CallObserver* observer, const std::function<void()>& call, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count);
void subDrawElementsInstancedBaseVertex(CallObserver* observer, const std::function<void()>& call, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count, GLint base_vertex);
void subDrawRangeElementsBaseVertex(CallObserver* observer, const std::function<void()>& call, uint32_t draw_mode, GLuint start, GLuint end, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLint base_vertex);
void subPatchParameteri(CallObserver* observer, const std::function<void()>& call, uint32_t pname, GLint value);
void subPrimitiveBoundingBox(CallObserver* observer, const std::function<void()>& call, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
void subObserveAttribList(CallObserver* observer, const std::function<void()>& call, EGLint* attrib_list);
void subApplyProgramInfoExtra(CallObserver* observer, const std::function<void()>& call, ProgramId programId, std::shared_ptr<ProgramInfo> info);
void subBlendBarrier(CallObserver* observer, const std::function<void()>& call);
void subBlendEquationSeparatei(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
void subBlendEquationi(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex buf, uint32_t mode);
void subCheckBlendEquation(CallObserver* observer, const std::function<void()>& call, uint32_t equation);
void subSetBlendEquation(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex first_buffer, int32_t buffer_count, uint32_t rgb, uint32_t alpha);
void subBlendFuncSeparatei(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
void subBlendFunci(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex buf, uint32_t src, uint32_t dst);
void subCheckBlendFunc(CallObserver* observer, const std::function<void()>& call, uint32_t factor);
void subSetBlendFunc(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex first_buffer, int32_t buffer_count, uint32_t srcRgb, uint32_t dstRgb, uint32_t srcAlpha, uint32_t dstAlpha);
void subStencilFuncSeparate(CallObserver* observer, const std::function<void()>& call, uint32_t face, uint32_t function, GLint reference_value, GLuint mask);
void subCheckStencilOp(CallObserver* observer, const std::function<void()>& call, uint32_t op);
void subStencilOpSeparate(CallObserver* observer, const std::function<void()>& call, uint32_t face, uint32_t fail, uint32_t pass_depth_fail, uint32_t pass_depth_pass);
std::shared_ptr<Framebuffer> subGetBoundFramebufferOrErrorInvalidEnum(CallObserver* observer, const std::function<void()>& call, uint32_t framebuffer_target);
bool subIsDefaultFramebuffer(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Framebuffer> framebuffer);
void subSetFramebufferAttachment(CallObserver* observer, const std::function<void()>& call, uint32_t framebuffer_target, uint32_t framebuffer_attachment, FramebufferAttachment attachment);
void subBlitFramebuffer(CallObserver* observer, const std::function<void()>& call, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
void subColorMaski(CallObserver* observer, const std::function<void()>& call, DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
void subDrawBuffers(CallObserver* observer, const std::function<void()>& call, GLsizei n, uint32_t* buffers);
void subFramebufferTexture(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t attachment, TextureId texture, GLint level);
void subFramebufferTexture2D(CallObserver* observer, const std::function<void()>& call, uint32_t framebuffer_target, uint32_t framebuffer_attachment, uint32_t texture_target, TextureId texture, GLint level);
void subInvalidateFramebuffer(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLsizei count, uint32_t* attachments);
void subCheckReadPixels(CallObserver* observer, const std::function<void()>& call, GLsizei width, GLsizei height, uint32_t format, uint32_t type);
void subReadnPixels(CallObserver* observer, const std::function<void()>& call, GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
void subRenderbufferStorageMultisample(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
uint32_t subImageSize(CallObserver* observer, const std::function<void()>& call, uint32_t width, uint32_t height, uint32_t format, uint32_t ty);
uint32_t subUncompressedPixelSize(CallObserver* observer, const std::function<void()>& call, uint32_t format, uint32_t ty);
uint32_t subComponentCount(CallObserver* observer, const std::function<void()>& call, uint32_t format);
uint32_t subImageFormat(CallObserver* observer, const std::function<void()>& call, uint32_t internalFormat);
uint32_t subImageType(CallObserver* observer, const std::function<void()>& call, uint32_t internalFormat);
void subSetCapability(CallObserver* observer, const std::function<void()>& call, uint32_t capability, bool isIndexed, GLuint index, GLboolean enabled);
GLboolean subGetCapability(CallObserver* observer, const std::function<void()>& call, uint32_t capability, GLuint index);
void subDisablei(CallObserver* observer, const std::function<void()>& call, uint32_t capability, GLuint index);
void subEnablei(CallObserver* observer, const std::function<void()>& call, uint32_t capability, GLuint index);
void subGetGraphicsResetStatus(CallObserver* observer, const std::function<void()>& call);
void subReadString(CallObserver* observer, const std::function<void()>& call, GLsizei length, GLchar* buffer);
void subWriteString(CallObserver* observer, const std::function<void()>& call, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLchar* buffer);
void subCheckShader(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, ShaderId shader);
void subCheckProgram(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, ProgramId program);
void subReapShader(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, ShaderId shaderId, std::shared_ptr<Shader> shader);
void subReapProgram(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, ProgramId program);
void subSetProgramUniform(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<uint8_t> value, uint32_t type);
void subGetProgramBinary(CallObserver* observer, const std::function<void()>& call, ProgramId program, GLsizei bufSize, GLsizei* length, uint32_t* binaryFormat, void* binary);
void subGetnUniformiv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei bufSize, GLint* values);
void subGetnUniformuiv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei bufSize, GLuint* values);
void subProgramBinary(CallObserver* observer, const std::function<void()>& call, ProgramId program, uint32_t binaryFormat, void* binary, GLsizei length);
void subProgramParameteri(CallObserver* observer, const std::function<void()>& call, ProgramId program, uint32_t pname, GLint value);
void subProgramUniform1f(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLfloat value0);
void subProgramUniform1fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void subProgramUniform1i(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLint value0);
void subProgramUniform1iv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void subProgramUniform1ui(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLuint value0);
void subProgramUniform1uiv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void subProgramUniform2f(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1);
void subProgramUniform2fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void subProgramUniform2i(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLint value0, GLint value1);
void subProgramUniform2iv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void subProgramUniform2ui(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLuint value0, GLuint value1);
void subProgramUniform2uiv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void subProgramUniform3f(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
void subProgramUniform3fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void subProgramUniform3i(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLint value0, GLint value1, GLint value2);
void subProgramUniform3iv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void subProgramUniform3ui(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLuint value0, GLuint value1, GLuint value2);
void subProgramUniform3uiv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void subProgramUniform4f(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
void subProgramUniform4fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void subProgramUniform4i(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLint value0, GLint value1, GLint value2, GLint value3);
void subProgramUniform4iv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void subProgramUniform4ui(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLuint value0, GLuint value1, GLuint value2, GLuint value3);
void subProgramUniform4uiv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void subProgramUniformMatrix2fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix2x3fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix2x4fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix3fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix3x2fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix3x4fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix4fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix4x2fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subProgramUniformMatrix4x3fv(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subUniformMatrix2x3fv(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subUniformMatrix2x4fv(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subUniformMatrix3x2fv(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subUniformMatrix3x4fv(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subUniformMatrix4x2fv(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subUniformMatrix4x3fv(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void subMinSampleShading(CallObserver* observer, const std::function<void()>& call, GLfloat value);
bool subVersionGreaterOrEqual(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, GLint major, GLint minor);
void subGetInteger64v(CallObserver* observer, const std::function<void()>& call, uint32_t param, GLint64* values);
GLboolean subIsEnabledi(CallObserver* observer, const std::function<void()>& call, uint32_t capability, GLuint index);
void subClientWaitSync(CallObserver* observer, const std::function<void()>& call, GLsync sync, uint32_t syncFlags, GLuint64 timeout);
void subDeleteSync(CallObserver* observer, const std::function<void()>& call, GLsync sync);
void subFenceSync(CallObserver* observer, const std::function<void()>& call, uint32_t condition, uint32_t syncFlags, GLsync sync);
void subGetSynciv(CallObserver* observer, const std::function<void()>& call, GLsync sync, uint32_t pname, GLsizei bufSize, GLsizei* length, GLint* values);
GLboolean subIsSync(CallObserver* observer, const std::function<void()>& call, GLsync sync);
void subWaitSync(CallObserver* observer, const std::function<void()>& call, GLsync sync, uint32_t syncFlags, GLuint64 timeout);
std::shared_ptr<Texture> subGetBoundTextureOrErrorInvalidEnum(CallObserver* observer, const std::function<void()>& call, uint32_t target);
void subCheckInternalFormat(CallObserver* observer, const std::function<void()>& call, uint32_t internalformat);
void subCheckMaxTextureSize(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, uint32_t target, GLint level, GLsizei width, GLsizei height);
void subCompressedTexImage3D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei image_size, TexturePointer data);
void subCompressedTexSubImage3D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, GLsizei image_size, TexturePointer data);
void subCopyImageSubData(CallObserver* observer, const std::function<void()>& call, GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
void subCopyTexSubImage3D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void subGetSamplerParameterIiv(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLint* params);
void subGetSamplerParameterIuiv(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLuint* params);
void subGetTexParameterIiv(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLint* params);
void subGetTexParameterIuiv(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLuint* params);
void subSamplerParameterIiv(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLint* param);
void subSamplerParameterIuiv(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLuint* param);
void subTexBuffer(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t internalformat, BufferId buffer);
void subTexBufferRange(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
void subTexImage3D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, uint32_t format, uint32_t type, TexturePointer data);
uint32_t subCheckWrapParam(CallObserver* observer, const std::function<void()>& call, uint32_t wrap);
uint32_t subCheckSwizzleParam(CallObserver* observer, const std::function<void()>& call, uint32_t swizzle);
void subTexParameterIiv(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLint* params);
void subTexParameterIuiv(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLuint* params);
void subTexStorage2D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height);
void subTexStorage3D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth);
void subTexStorage3DMultisample(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void subTexSubImage3D(CallObserver* observer, const std::function<void()>& call, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, TexturePointer data);
std::shared_ptr<TransformFeedback> subGetBoundTransformFeedback(CallObserver* observer, const std::function<void()>& call);
std::shared_ptr<VertexArray> subNewVertexArray(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx);
uint64_t subGetVertexAttrib(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, AttributeLocation index, uint32_t pname);
GLint subVertexAttribTypeSize(CallObserver* observer, const std::function<void()>& call, uint32_t type);
void subReadVertexArrays(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, uint32_t first_index, uint32_t index_count, uint32_t instance_count);
void subBindVertexArray(CallObserver* observer, const std::function<void()>& call, VertexArrayId array);
void subBindVertexBuffer(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, VertexBufferBindingIndex binding_index, BufferId buffer, GLintptr offset, GLsizei stride);
void subDeleteVertexArrays(CallObserver* observer, const std::function<void()>& call, GLsizei count, VertexArrayId* arrays);
void subGenVertexArrays(CallObserver* observer, const std::function<void()>& call, GLsizei count, VertexArrayId* arrays);
GLboolean subIsVertexArray(CallObserver* observer, const std::function<void()>& call, VertexArrayId array);
void subVertexAttribF(CallObserver* observer, const std::function<void()>& call, AttributeLocation location, Vec4f value);
void subVertexAttribBinding(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, AttributeLocation index, VertexBufferBindingIndex binding_index);
void subVertexAttribDivisor(CallObserver* observer, const std::function<void()>& call, AttributeLocation index, GLuint divisor);
void subVertexAttribFormat(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, AttributeLocation index, GLint size, uint32_t type, GLboolean normalized, GLuint relativeOffset, bool integer);
void subVertexAttribI(CallObserver* observer, const std::function<void()>& call, AttributeLocation location, Vec4i value);
void subVertexAttribPointer(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, AttributeLocation index, GLint size, uint32_t type, GLboolean normalized, GLsizei stride, VertexPointer pointer, bool integer);
void subMinRequiredVersion(CallObserver* observer, const std::function<void()>& call, GLint requiredMajor, GLint requiredMinor);
void subSupportsBits(CallObserver* observer, const std::function<void()>& call, uint32_t seenBits, uint32_t validBits);
void subRequiresExtension(CallObserver* observer, const std::function<void()>& call, uint32_t ext);
void subRequiresExtension2(CallObserver* observer, const std::function<void()>& call, uint32_t ext, uint32_t ext2);
void subRequiresExtension3(CallObserver* observer, const std::function<void()>& call, uint32_t ext, uint32_t ext2, uint32_t ext3);
void subGlErrorInvalidEnum(CallObserver* observer, const std::function<void()>& call, uint32_t param);
void subGlErrorInvalidValue(CallObserver* observer, const std::function<void()>& call);
void subGlErrorInvalidOperation(CallObserver* observer, const std::function<void()>& call);
void subGlErrorInvalidOperationMsg(CallObserver* observer, const std::function<void()>& call, const char* m);
void subGlErrorInvalidValueMsg(CallObserver* observer, const std::function<void()>& call, const char* m);
int32_t subMin(CallObserver* observer, const std::function<void()>& call, int32_t a, int32_t b);
std::shared_ptr<Context> subGetContext(CallObserver* observer, const std::function<void()>& call);
void subSetContext(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> context);
std::shared_ptr<Context> subCreateContext(CallObserver* observer, const std::function<void()>& call);
void subApplyStaticContextState(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, std::shared_ptr<StaticContextState> staticState);
void subApplyDynamicContextState(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<Context> ctx, std::shared_ptr<DynamicContextState> dynamicState);
uint32_t subIndexSize(CallObserver* observer, const std::function<void()>& call, uint32_t indices_type);
void subErrorGLES10notSupported(CallObserver* observer, const std::function<void()>& call);
void subGetnUniformfv_GLint__P(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei bufSize, GLint* values);
void subGetnUniformfv_GLuint__P(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei bufSize, GLuint* values);
void subProgramUniformv_GLfloat__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<GLfloat> values, uint32_t type);
void subProgramUniformv_GLint__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<GLint> values, uint32_t type);
void subProgramUniformv_GLuint__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<GLuint> values, uint32_t type);
void subProgramUniformv_Vec2f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec2f> values, uint32_t type);
void subProgramUniformv_Vec2i__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec2i> values, uint32_t type);
void subProgramUniformv_Vec2u__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec2u> values, uint32_t type);
void subProgramUniformv_Vec3f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec3f> values, uint32_t type);
void subProgramUniformv_Vec3i__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec3i> values, uint32_t type);
void subProgramUniformv_Vec3u__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec3u> values, uint32_t type);
void subProgramUniformv_Vec4f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec4f> values, uint32_t type);
void subProgramUniformv_Vec4i__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec4i> values, uint32_t type);
void subProgramUniformv_Vec4u__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, Slice<Vec4u> values, uint32_t type);
void subProgramUniformMatrixv_Mat2f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat2f> values, uint32_t type);
void subProgramUniformMatrixv_Mat2x3f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat2x3f> values, uint32_t type);
void subProgramUniformMatrixv_Mat2x4f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat2x4f> values, uint32_t type);
void subProgramUniformMatrixv_Mat3f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat3f> values, uint32_t type);
void subProgramUniformMatrixv_Mat3x2f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat3x2f> values, uint32_t type);
void subProgramUniformMatrixv_Mat3x4f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat3x4f> values, uint32_t type);
void subProgramUniformMatrixv_Mat4f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat4f> values, uint32_t type);
void subProgramUniformMatrixv_Mat4x2f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat4x2f> values, uint32_t type);
void subProgramUniformMatrixv_Mat4x3f__S(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLboolean transpose, Slice<Mat4x3f> values, uint32_t type);
void subUniformMatrixv_Mat2x3f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat2x3f> values, uint32_t type);
void subUniformMatrixv_Mat2x4f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat2x4f> values, uint32_t type);
void subUniformMatrixv_Mat3x2f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat3x2f> values, uint32_t type);
void subUniformMatrixv_Mat3x4f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat3x4f> values, uint32_t type);
void subUniformMatrixv_Mat4x2f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat4x2f> values, uint32_t type);
void subUniformMatrixv_Mat4x3f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat4x3f> values, uint32_t type);
void subGetStateVariable_GLint64(CallObserver* observer, const std::function<void()>& call, uint32_t name, bool isIndexed, GLuint index, GLint64* v);
void subGetSamplerParameterv_GLint(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLint* params);
void subGetSamplerParameterv_GLuint(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLuint* params);
void subGetTexParameter_GLint(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t parameter, GLint* params);
void subGetTexParameter_GLuint(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t parameter, GLuint* params);
void subSamplerParameterv_GLint__CP(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLint* params);
void subSamplerParameterv_GLuint__CP(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLuint* params);
void subTexParameterv_GLint__CP(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLint* params);
void subTexParameterv_GLuint__CP(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLuint* params);
GLsizei subMax_GLsizei(CallObserver* observer, const std::function<void()>& call, GLsizei a, GLsizei b);
void subGetBufferParameter_GLint64(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t parameter, GLint64* value);
void subGetBufferParameter_GLint(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t parameter, GLint* value);
void subGetnUniformfv_GLfloat__P(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* values);
void subGetUniformv_GLfloat__P(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLfloat* values);
void subGetUniformv_GLint__P(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLint* values);
void subGetUniformv_GLuint__P(CallObserver* observer, const std::function<void()>& call, ProgramId program, UniformLocation location, GLuint* values);
void subUniformv_GLfloat__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<GLfloat> values, uint32_t type);
void subUniformv_GLint__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<GLint> values, uint32_t type);
void subUniformv_GLuint__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<GLuint> values, uint32_t type);
void subUniformv_Vec2f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec2f> values, uint32_t type);
void subUniformv_Vec2i__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec2i> values, uint32_t type);
void subUniformv_Vec2u__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec2u> values, uint32_t type);
void subUniformv_Vec3f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec3f> values, uint32_t type);
void subUniformv_Vec3i__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec3i> values, uint32_t type);
void subUniformv_Vec3u__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec3u> values, uint32_t type);
void subUniformv_Vec4f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec4f> values, uint32_t type);
void subUniformv_Vec4i__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec4i> values, uint32_t type);
void subUniformv_Vec4u__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, Slice<Vec4u> values, uint32_t type);
void subUniformMatrixv_Mat2f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat2f> values, uint32_t type);
void subUniformMatrixv_Mat3f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat3f> values, uint32_t type);
void subUniformMatrixv_Mat4f__S(CallObserver* observer, const std::function<void()>& call, UniformLocation location, GLboolean transpose, Slice<Mat4f> values, uint32_t type);
void subGetStateVariable_GLboolean(CallObserver* observer, const std::function<void()>& call, uint32_t name, bool isIndexed, GLuint index, GLboolean* v);
void subGetStateVariable_GLfloat(CallObserver* observer, const std::function<void()>& call, uint32_t name, bool isIndexed, GLuint index, GLfloat* v);
void subGetStateVariable_GLint(CallObserver* observer, const std::function<void()>& call, uint32_t name, bool isIndexed, GLuint index, GLint* v);
void subGetSamplerParameterv_GLfloat(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLfloat* params);
void subGetTexParameter_GLfloat(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t parameter, GLfloat* params);
void subSamplerParameterv_Vec1f(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, Vec1f params);
void subSamplerParameterv_GLfloat__CP(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, GLfloat* params);
void subSamplerParameterv_Vec1i(CallObserver* observer, const std::function<void()>& call, SamplerId sampler, uint32_t pname, Vec1i params);
void subTexParameterv_Vec1f(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, Vec1f params);
void subTexParameterv_GLfloat__CP(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, GLfloat* params);
void subTexParameterv_Vec1i(CallObserver* observer, const std::function<void()>& call, uint32_t target, uint32_t pname, Vec1i params);
void glBlendBarrierKHR(CallObserver* observer);
void glBlendEquationSeparateiEXT(CallObserver* observer, DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
void glBlendEquationiEXT(CallObserver* observer, DrawBufferIndex buf, uint32_t mode);
void glBlendFuncSeparateiEXT(CallObserver* observer, DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
void glBlendFunciEXT(CallObserver* observer, DrawBufferIndex buf, uint32_t src, uint32_t dst);
void glColorMaskiEXT(CallObserver* observer, DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
void glCopyImageSubDataEXT(CallObserver* observer, GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
void glDebugMessageCallbackKHR(CallObserver* observer, GLDEBUGPROC callback, void* userParam);
void glDebugMessageControlKHR(CallObserver* observer, uint32_t source, uint32_t type, uint32_t severity, GLsizei count, GLuint* ids, GLboolean enabled);
void glDebugMessageInsertKHR(CallObserver* observer, uint32_t source, uint32_t type, GLuint id, uint32_t severity, GLsizei length, GLchar* message);
void glDisableiEXT(CallObserver* observer, uint32_t target, GLuint index);
void glEnableiEXT(CallObserver* observer, uint32_t target, GLuint index);
void glFramebufferTextureEXT(CallObserver* observer, uint32_t target, uint32_t attachment, TextureId texture, GLint level);
GLuint glGetDebugMessageLogKHR(CallObserver* observer, GLuint count, GLsizei bufSize, uint32_t* sources, uint32_t* types, GLuint* ids, uint32_t* severities, GLsizei* lengths, GLchar* messageLog);
void glGetObjectLabelKHR(CallObserver* observer, uint32_t identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
void glGetObjectPtrLabelKHR(CallObserver* observer, void* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
void glGetPointervKHR(CallObserver* observer, uint32_t pname, void** params);
void glGetSamplerParameterIivEXT(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* params);
void glGetSamplerParameterIuivEXT(CallObserver* observer, SamplerId sampler, uint32_t pname, GLuint* params);
void glGetTexParameterIivEXT(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glGetTexParameterIuivEXT(CallObserver* observer, uint32_t target, uint32_t pname, GLuint* params);
GLboolean glIsEnablediEXT(CallObserver* observer, uint32_t target, GLuint index);
void glMinSampleShadingOES(CallObserver* observer, GLfloat value);
void glObjectLabelKHR(CallObserver* observer, uint32_t identifier, GLuint name, GLsizei length, GLchar* label);
void glObjectPtrLabelKHR(CallObserver* observer, void* ptr, GLsizei length, GLchar* label);
void glPatchParameteriEXT(CallObserver* observer, uint32_t pname, GLint value);
void glPopDebugGroupKHR(CallObserver* observer);
void glPrimitiveBoundingBoxEXT(CallObserver* observer, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
void glPushDebugGroupKHR(CallObserver* observer, uint32_t source, GLuint id, GLsizei length, GLchar* message);
void glSamplerParameterIivEXT(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* param);
void glSamplerParameterIuivEXT(CallObserver* observer, SamplerId sampler, uint32_t pname, GLuint* param);
void glTexBufferEXT(CallObserver* observer, uint32_t target, uint32_t internalformat, BufferId buffer);
void glTexBufferRangeEXT(CallObserver* observer, uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
void glTexParameterIivEXT(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glTexParameterIuivEXT(CallObserver* observer, uint32_t target, uint32_t pname, GLuint* params);
void glTexStorage3DMultisampleOES(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void glBeginQuery(CallObserver* observer, uint32_t target, QueryId query);
void glDeleteQueries(CallObserver* observer, GLsizei count, QueryId* queries);
void glEndQuery(CallObserver* observer, uint32_t target);
void glGenQueries(CallObserver* observer, GLsizei count, QueryId* queries);
void glGetQueryObjectuiv(CallObserver* observer, QueryId query, uint32_t parameter, GLuint* value);
void glGetQueryiv(CallObserver* observer, uint32_t target, uint32_t parameter, GLint* value);
GLboolean glIsQuery(CallObserver* observer, QueryId query);
void glBindBuffer(CallObserver* observer, uint32_t target, BufferId buffer);
void glBindBufferBase(CallObserver* observer, uint32_t target, GLuint index, BufferId buffer);
void glBindBufferRange(CallObserver* observer, uint32_t target, GLuint index, BufferId buffer, GLintptr offset, GLsizeiptr size);
void glBufferData(CallObserver* observer, uint32_t target, GLsizeiptr size, BufferDataPointer data, uint32_t usage);
void glBufferSubData(CallObserver* observer, uint32_t target, GLintptr offset, GLsizeiptr size, BufferDataPointer data);
void glCopyBufferSubData(CallObserver* observer, uint32_t readTarget, uint32_t writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void glDeleteBuffers(CallObserver* observer, GLsizei count, BufferId* buffers);
void glGenBuffers(CallObserver* observer, GLsizei count, BufferId* buffers);
void glGetBufferParameteri64v(CallObserver* observer, uint32_t target, uint32_t parameter, GLint64* value);
void glGetBufferParameteriv(CallObserver* observer, uint32_t target, uint32_t parameter, GLint* value);
void glGetBufferPointerv(CallObserver* observer, uint32_t target, uint32_t pname, void** params);
GLboolean glIsBuffer(CallObserver* observer, BufferId buffer);
void* glMapBuffer(CallObserver* observer, uint32_t target, uint32_t access);
void* glMapBufferRange(CallObserver* observer, uint32_t target, GLintptr offset, GLsizeiptr length, uint32_t access);
GLboolean glUnmapBuffer(CallObserver* observer, uint32_t target);
void glFlushMappedBufferRange(CallObserver* observer, uint32_t target, GLintptr offset, GLsizeiptr length);
void glDebugMessageCallback(CallObserver* observer, GLDEBUGPROC callback, void* userParam);
void glDebugMessageControl(CallObserver* observer, uint32_t source, uint32_t type, uint32_t severity, GLsizei count, GLuint* ids, GLboolean enabled);
void glDebugMessageInsert(CallObserver* observer, uint32_t source, uint32_t type, GLuint id, uint32_t severity, GLsizei length, GLchar* message);
GLuint glGetDebugMessageLog(CallObserver* observer, GLuint count, GLsizei bufSize, uint32_t* sources, uint32_t* types, GLuint* ids, uint32_t* severities, GLsizei* lengths, GLchar* messageLog);
void glGetObjectLabel(CallObserver* observer, uint32_t identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
void glGetObjectPtrLabel(CallObserver* observer, void* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
void glGetPointerv(CallObserver* observer, uint32_t pname, void** params);
void glObjectLabel(CallObserver* observer, uint32_t identifier, GLuint name, GLsizei length, GLchar* label);
void glObjectPtrLabel(CallObserver* observer, void* ptr, GLsizei length, GLchar* label);
void glPopDebugGroup(CallObserver* observer);
void glPushDebugGroup(CallObserver* observer, uint32_t source, GLuint id, GLsizei length, GLchar* message);
void glDrawArrays(CallObserver* observer, uint32_t draw_mode, GLint first_index, GLsizei indices_count);
void glDrawArraysIndirect(CallObserver* observer, uint32_t draw_mode, void* indirect);
void glDrawArraysInstanced(CallObserver* observer, uint32_t draw_mode, GLint first_index, GLsizei indices_count, GLsizei instance_count);
void glDrawElements(CallObserver* observer, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices);
void glDrawElementsBaseVertex(CallObserver* observer, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLint base_vertex);
void glDrawElementsIndirect(CallObserver* observer, uint32_t draw_mode, uint32_t indices_type, void* indirect);
void glDrawElementsInstanced(CallObserver* observer, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count);
void glDrawElementsInstancedBaseVertex(CallObserver* observer, uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count, GLint base_vertex);
void glDrawRangeElements(CallObserver* observer, uint32_t draw_mode, GLuint start, GLuint end, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices);
void glDrawRangeElementsBaseVertex(CallObserver* observer, uint32_t draw_mode, GLuint start, GLuint end, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLint base_vertex);
void glPatchParameteri(CallObserver* observer, uint32_t pname, GLint value);
void glPrimitiveBoundingBox(CallObserver* observer, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
EGLBoolean eglGetConfigAttrib(CallObserver* observer, EGLDisplay display, EGLConfig config, EGLint attribute, EGLint* value);
EGLBoolean eglBindAPI(CallObserver* observer, uint32_t api);
EGLBoolean eglBindTexImage(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLint buffer);
EGLBoolean eglChooseConfig(CallObserver* observer, EGLDisplay display, EGLint* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config);
EGLint eglClientWaitSyncKHR(CallObserver* observer, EGLDisplay dpy, EGLSyncKHR sync, EGLint sync_flags, EGLTimeKHR timeout);
EGLBoolean eglCopyBuffers(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLNativePixmapType native_pixmap);
EGLContext eglCreateContext(CallObserver* observer, EGLDisplay display, EGLConfig config, EGLContext share_context, EGLint* attrib_list);
EGLSurface eglCreatePbufferFromClientBuffer(CallObserver* observer, EGLDisplay display, uint32_t buftype, EGLClientBuffer buffer, EGLConfig config, EGLint* attrib_list);
EGLSurface eglCreatePbufferSurface(CallObserver* observer, EGLDisplay display, EGLConfig config, EGLint* attrib_list);
EGLSurface eglCreatePixmapSurface(CallObserver* observer, EGLDisplay display, EGLConfig config, EGLNativePixmapType native_pixmap, EGLint* attrib_list);
EGLSyncKHR eglCreateSyncKHR(CallObserver* observer, EGLDisplay dpy, uint32_t type, EGLint* attrib_list);
EGLSurface eglCreateWindowSurface(CallObserver* observer, EGLDisplay display, EGLConfig config, EGLNativeWindowType native_window, EGLint* attrib_list);
EGLBoolean eglDestroyContext(CallObserver* observer, EGLDisplay display, EGLContext context);
EGLBoolean eglDestroySurface(CallObserver* observer, EGLDisplay display, EGLSurface surface);
EGLBoolean eglDestroySyncKHR(CallObserver* observer, EGLDisplay dpy, EGLSyncKHR sync);
EGLBoolean eglGetConfigs(CallObserver* observer, EGLDisplay display, EGLConfig* configs, EGLint config_size, EGLint* num_config);
EGLContext eglGetCurrentContext(CallObserver* observer);
EGLDisplay eglGetCurrentDisplay(CallObserver* observer);
EGLSurface eglGetCurrentSurface(CallObserver* observer, EGLint readdraw);
EGLDisplay eglGetDisplay(CallObserver* observer, EGLNativeDisplayType native_display);
EGLint eglGetError(CallObserver* observer);
EGLBoolean eglGetSyncAttribKHR(CallObserver* observer, EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint* value);
EGLBoolean eglInitialize(CallObserver* observer, EGLDisplay dpy, EGLint* major, EGLint* minor);
EGLBoolean eglMakeCurrent(CallObserver* observer, EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context);
uint32_t eglQueryAPI(CallObserver* observer);
EGLBoolean eglQueryContext(CallObserver* observer, EGLDisplay display, EGLContext context, EGLint attribute, EGLint* value);
EGLBoolean eglQuerySurface(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLint attribute, EGLint* value);
char* eglQueryString(CallObserver* observer, EGLDisplay display, EGLint name);
EGLBoolean eglReleaseTexImage(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLint buffer);
EGLBoolean eglReleaseThread(CallObserver* observer);
EGLBoolean eglSignalSyncKHR(CallObserver* observer, EGLDisplay dpy, EGLSyncKHR sync, uint32_t mode);
EGLBoolean eglSurfaceAttrib(CallObserver* observer, EGLDisplay display, EGLSurface surface, EGLint attribute, EGLint value);
EGLBoolean eglSwapBuffers(CallObserver* observer, EGLDisplay display, void* surface);
EGLBoolean eglSwapBuffersWithDamageKHR(CallObserver* observer, EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects);
EGLBoolean eglSwapInterval(CallObserver* observer, EGLDisplay display, EGLint interval);
EGLBoolean eglTerminate(CallObserver* observer, EGLDisplay display);
EGLBoolean eglWaitClient(CallObserver* observer);
EGLBoolean eglWaitGL(CallObserver* observer);
EGLBoolean eglWaitNative(CallObserver* observer, EGLint engine);
EGLImageKHR eglCreateImageKHR(CallObserver* observer, EGLDisplay dpy, EGLContext ctx, uint32_t target, EGLClientBuffer buffer, EGLint* attrib_list);
EGLBoolean eglDestroyImageKHR(CallObserver* observer, EGLDisplay dpy, EGLImageKHR image);
EGLClientBuffer eglCreateNativeClientBufferANDROID(CallObserver* observer, EGLint* attrib_list);
void glActiveShaderProgramEXT(CallObserver* observer, PipelineId pipeline, ProgramId program);
void glAlphaFuncQCOM(CallObserver* observer, uint32_t func, GLclampf ref);
void glApplyFramebufferAttachmentCMAAINTEL(CallObserver* observer);
void glBeginConditionalRenderNV(CallObserver* observer, GLuint id, uint32_t mode);
void glBeginPerfMonitorAMD(CallObserver* observer, GLuint monitor);
void glBeginPerfQueryINTEL(CallObserver* observer, GLuint queryHandle);
void glBeginQueryEXT(CallObserver* observer, uint32_t target, QueryId query);
void glBindFragDataLocationEXT(CallObserver* observer, ProgramId program, GLuint color, const char* name);
void glBindFragDataLocationIndexedEXT(CallObserver* observer, ProgramId program, GLuint colorNumber, GLuint index, const char* name);
void glBindProgramPipelineEXT(CallObserver* observer, PipelineId pipeline);
void glBindVertexArrayOES(CallObserver* observer, VertexArrayId array);
void glBlendBarrierNV(CallObserver* observer);
void glBlendEquationSeparateiOES(CallObserver* observer, DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
void glBlendEquationiOES(CallObserver* observer, DrawBufferIndex buf, uint32_t mode);
void glBlendFuncSeparateiOES(CallObserver* observer, DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
void glBlendFunciOES(CallObserver* observer, DrawBufferIndex buf, uint32_t src, uint32_t dst);
void glBlendParameteriNV(CallObserver* observer, uint32_t pname, GLint value);
void glBlitFramebufferANGLE(CallObserver* observer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
void glBlitFramebufferNV(CallObserver* observer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
void glBufferStorageEXT(CallObserver* observer, uint32_t target, GLsizeiptr size, void* data, uint32_t flag);
uint32_t glClientWaitSyncAPPLE(CallObserver* observer, GLsync sync, uint32_t flag, GLuint64 timeout);
void glColorMaskiOES(CallObserver* observer, DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
void glCompressedTexImage3DOES(CallObserver* observer, uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei image_size, TexturePointer data);
void glCompressedTexSubImage3DOES(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, GLsizei image_size, TexturePointer data);
void glCopyBufferSubDataNV(CallObserver* observer, uint32_t readTarget, uint32_t writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void glCopyImageSubDataOES(CallObserver* observer, GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
void glCopyPathNV(CallObserver* observer, GLuint resultPath, GLuint srcPath);
void glCopyTexSubImage3DOES(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glCopyTextureLevelsAPPLE(CallObserver* observer, GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
void glCoverFillPathInstancedNV(CallObserver* observer, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
void glCoverFillPathNV(CallObserver* observer, GLuint path, uint32_t coverMode);
void glCoverStrokePathInstancedNV(CallObserver* observer, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
void glCoverStrokePathNV(CallObserver* observer, GLuint path, uint32_t coverMode);
void glCoverageMaskNV(CallObserver* observer, GLboolean mask);
void glCoverageModulationNV(CallObserver* observer, uint32_t components);
void glCoverageModulationTableNV(CallObserver* observer, GLsizei n, GLfloat* v);
void glCoverageOperationNV(CallObserver* observer, uint32_t operation);
void glCreatePerfQueryINTEL(CallObserver* observer, GLuint queryId, GLuint* queryHandle);
GLuint glCreateShaderProgramvEXT(CallObserver* observer, uint32_t type, GLsizei count, GLchar** strings);
void glDeleteFencesNV(CallObserver* observer, GLsizei n, GLuint* fences);
void glDeletePathsNV(CallObserver* observer, GLuint path, GLsizei range);
void glDeletePerfMonitorsAMD(CallObserver* observer, GLsizei n, GLuint* monitors);
void glDeletePerfQueryINTEL(CallObserver* observer, GLuint queryHandle);
void glDeleteProgramPipelinesEXT(CallObserver* observer, GLsizei n, PipelineId* pipelines);
void glDeleteQueriesEXT(CallObserver* observer, GLsizei count, QueryId* queries);
void glDeleteSyncAPPLE(CallObserver* observer, GLsync sync);
void glDeleteVertexArraysOES(CallObserver* observer, GLsizei count, VertexArrayId* arrays);
void glDepthRangeArrayfvNV(CallObserver* observer, GLuint first, GLsizei count, GLfloat* v);
void glDepthRangeIndexedfNV(CallObserver* observer, GLuint index, GLfloat n, GLfloat f);
void glDisableDriverControlQCOM(CallObserver* observer, GLuint driverControl);
void glDisableiNV(CallObserver* observer, uint32_t target, GLuint index);
void glDisableiOES(CallObserver* observer, uint32_t target, GLuint index);
void glDiscardFramebufferEXT(CallObserver* observer, uint32_t target, GLsizei numAttachments, uint32_t* attachments);
void glDrawArraysInstancedANGLE(CallObserver* observer, uint32_t mode, GLint first, GLsizei count, GLsizei primcount);
void glDrawArraysInstancedBaseInstanceEXT(CallObserver* observer, uint32_t mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
void glDrawArraysInstancedEXT(CallObserver* observer, uint32_t mode, GLint start, GLsizei count, GLsizei primcount);
void glDrawArraysInstancedNV(CallObserver* observer, uint32_t mode, GLint first, GLsizei count, GLsizei primcount);
void glDrawBuffersEXT(CallObserver* observer, GLsizei n, uint32_t* bufs);
void glDrawBuffersIndexedEXT(CallObserver* observer, GLint n, uint32_t* location, GLint* indices);
void glDrawBuffersNV(CallObserver* observer, GLsizei n, uint32_t* bufs);
void glDrawElementsBaseVertexEXT(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
void glDrawElementsBaseVertexOES(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
void glDrawElementsInstancedANGLE(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei primcount);
void glDrawElementsInstancedBaseInstanceEXT(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, void* indices, GLsizei instancecount, GLuint baseinstance);
void glDrawElementsInstancedBaseVertexBaseInstanceEXT(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, void* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
void glDrawElementsInstancedBaseVertexEXT(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei instancecount, GLint basevertex);
void glDrawElementsInstancedBaseVertexOES(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei instancecount, GLint basevertex);
void glDrawElementsInstancedEXT(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei primcount);
void glDrawElementsInstancedNV(CallObserver* observer, uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei primcount);
void glDrawRangeElementsBaseVertexEXT(CallObserver* observer, uint32_t mode, GLuint start, GLuint end, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
void glDrawRangeElementsBaseVertexOES(CallObserver* observer, uint32_t mode, GLuint start, GLuint end, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
void glEGLImageTargetRenderbufferStorageOES(CallObserver* observer, uint32_t target, GLeglImageOES image);
void glEGLImageTargetTexture2DOES(CallObserver* observer, uint32_t target, GLeglImageOES image);
void glEnableDriverControlQCOM(CallObserver* observer, GLuint driverControl);
void glEnableiNV(CallObserver* observer, uint32_t target, GLuint index);
void glEnableiOES(CallObserver* observer, uint32_t target, GLuint index);
void glEndConditionalRenderNV(CallObserver* observer);
void glEndPerfMonitorAMD(CallObserver* observer, GLuint monitor);
void glEndPerfQueryINTEL(CallObserver* observer, GLuint queryHandle);
void glEndQueryEXT(CallObserver* observer, uint32_t target);
void glEndTilingQCOM(CallObserver* observer, uint32_t preserve_mask);
void glExtGetBufferPointervQCOM(CallObserver* observer, uint32_t target, void** params);
void glExtGetBuffersQCOM(CallObserver* observer, BufferId* buffers, GLint maxBuffers, GLint* numBuffers);
void glExtGetFramebuffersQCOM(CallObserver* observer, FramebufferId* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
void glExtGetProgramBinarySourceQCOM(CallObserver* observer, ProgramId program, uint32_t shadertype, GLchar* source, GLint* length);
void glExtGetProgramsQCOM(CallObserver* observer, ProgramId* programs, GLint maxPrograms, GLint* numPrograms);
void glExtGetRenderbuffersQCOM(CallObserver* observer, RenderbufferId* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
void glExtGetShadersQCOM(CallObserver* observer, ShaderId* shaders, GLint maxShaders, GLint* numShaders);
void glExtGetTexLevelParameterivQCOM(CallObserver* observer, TextureId texture, uint32_t face, GLint level, uint32_t pname, GLint* params);
void glExtGetTexSubImageQCOM(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, void* texels);
void glExtGetTexturesQCOM(CallObserver* observer, TextureId* textures, GLint maxTextures, GLint* numTextures);
GLboolean glExtIsProgramBinaryQCOM(CallObserver* observer, ProgramId program);
void glExtTexObjectStateOverrideiQCOM(CallObserver* observer, uint32_t target, uint32_t pname, GLint param);
GLsync glFenceSyncAPPLE(CallObserver* observer, uint32_t condition, uint32_t flag);
void glFinishFenceNV(CallObserver* observer, GLuint fence);
void glFlushMappedBufferRangeEXT(CallObserver* observer, uint32_t target, GLintptr offset, GLsizeiptr length);
void glFragmentCoverageColorNV(CallObserver* observer, GLuint color);
void glFramebufferSampleLocationsfvNV(CallObserver* observer, uint32_t target, GLuint start, GLsizei count, GLfloat* v);
void glFramebufferTexture2DMultisampleEXT(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level, GLsizei samples);
void glFramebufferTexture2DMultisampleIMG(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level, GLsizei samples);
void glFramebufferTexture3DOES(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level, GLint zoffset);
void glFramebufferTextureMultiviewOVR(CallObserver* observer, uint32_t target, uint32_t attachment, TextureId texture, GLint level, GLint baseViewIndex, GLsizei numViews);
void glFramebufferTextureOES(CallObserver* observer, uint32_t target, uint32_t attachment, TextureId texture, GLint level);
void glGenFencesNV(CallObserver* observer, GLsizei n, GLuint* fences);
GLuint glGenPathsNV(CallObserver* observer, GLsizei range);
void glGenPerfMonitorsAMD(CallObserver* observer, GLsizei n, GLuint* monitors);
void glGenProgramPipelinesEXT(CallObserver* observer, GLsizei n, PipelineId* pipelines);
void glGenQueriesEXT(CallObserver* observer, GLsizei count, QueryId* queries);
void glGenVertexArraysOES(CallObserver* observer, GLsizei count, VertexArrayId* arrays);
void glGetBufferPointervOES(CallObserver* observer, uint32_t target, uint32_t pname, void** params);
void glGetCoverageModulationTableNV(CallObserver* observer, GLsizei bufsize, GLfloat* v);
void glGetDriverControlStringQCOM(CallObserver* observer, GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
void glGetDriverControlsQCOM(CallObserver* observer, GLint* num, GLsizei size, GLuint* driverControls);
void glGetFenceivNV(CallObserver* observer, GLuint fence, uint32_t pname, GLint* params);
void glGetFirstPerfQueryIdINTEL(CallObserver* observer, GLuint* queryId);
void glGetFloati_vNV(CallObserver* observer, uint32_t target, GLuint index, GLfloat* data);
GLint glGetFragDataIndexEXT(CallObserver* observer, ProgramId program, const char* name);
uint32_t glGetGraphicsResetStatusEXT(CallObserver* observer);
uint32_t glGetGraphicsResetStatusKHR(CallObserver* observer);
GLuint64 glGetImageHandleNV(CallObserver* observer, TextureId texture, GLint level, GLboolean layered, GLint layer, uint32_t format);
void glGetInteger64vAPPLE(CallObserver* observer, uint32_t pname, GLint64* params);
void glGetIntegeri_vEXT(CallObserver* observer, uint32_t target, GLuint index, GLint* data);
void glGetInternalformatSampleivNV(CallObserver* observer, uint32_t target, uint32_t internalformat, GLsizei samples, uint32_t pname, GLsizei bufSize, GLint* params);
void glGetNextPerfQueryIdINTEL(CallObserver* observer, GLuint queryId, GLuint* nextQueryId);
void glGetObjectLabelEXT(CallObserver* observer, uint32_t type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar* label);
void glGetPathCommandsNV(CallObserver* observer, GLuint path, GLubyte* commands);
void glGetPathCoordsNV(CallObserver* observer, GLuint path, GLfloat* coords);
void glGetPathDashArrayNV(CallObserver* observer, GLuint path, GLfloat* dashArray);
GLfloat glGetPathLengthNV(CallObserver* observer, GLuint path, GLsizei startSegment, GLsizei numSegments);
void glGetPathMetricRangeNV(CallObserver* observer, uint32_t metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics);
void glGetPathMetricsNV(CallObserver* observer, uint32_t metricQueryMask, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLsizei stride, GLfloat* metrics);
void glGetPathParameterfvNV(CallObserver* observer, GLuint path, uint32_t pname, GLfloat* value);
void glGetPathParameterivNV(CallObserver* observer, GLuint path, uint32_t pname, GLint* value);
void glGetPathSpacingNV(CallObserver* observer, uint32_t pathListMode, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, uint32_t transformType, GLfloat* returnedSpacing);
void glGetPerfCounterInfoINTEL(CallObserver* observer, GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar* counterDesc, GLuint* counterOffset, GLuint* counterDataSize, GLuint* counterTypeEnum, GLuint* counterDataTypeEnum, GLuint64* rawCounterMaxValue);
void glGetPerfMonitorCounterDataAMD(CallObserver* observer, GLuint monitor, uint32_t pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten);
void glGetPerfMonitorCounterInfoAMD(CallObserver* observer, GLuint group, GLuint counter, uint32_t pname, void* data);
void glGetPerfMonitorCounterStringAMD(CallObserver* observer, GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString);
void glGetPerfMonitorCountersAMD(CallObserver* observer, GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters);
void glGetPerfMonitorGroupStringAMD(CallObserver* observer, GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString);
void glGetPerfMonitorGroupsAMD(CallObserver* observer, GLint* numGroups, GLsizei groupsSize, GLuint* groups);
void glGetPerfQueryDataINTEL(CallObserver* observer, GLuint queryHandle, GLuint flag, GLsizei dataSize, GLvoid* data, GLuint* bytesWritten);
void glGetPerfQueryIdByNameINTEL(CallObserver* observer, GLchar* queryName, GLuint* queryId);
void glGetPerfQueryInfoINTEL(CallObserver* observer, GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint* dataSize, GLuint* noCounters, GLuint* noInstances, GLuint* capsMask);
void glGetProgramBinaryOES(CallObserver* observer, ProgramId program, GLsizei buffer_size, GLsizei* bytes_written, uint32_t* binary_format, void* binary);
void glGetProgramPipelineInfoLogEXT(CallObserver* observer, PipelineId pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
void glGetProgramPipelineivEXT(CallObserver* observer, PipelineId pipeline, uint32_t pname, GLint* params);
GLint glGetProgramResourceLocationIndexEXT(CallObserver* observer, ProgramId program, uint32_t programInterface, const char* name);
void glGetProgramResourcefvNV(CallObserver* observer, ProgramId program, uint32_t programInterface, GLuint index, GLsizei propCount, uint32_t* props, GLsizei bufSize, GLsizei* length, GLfloat* params);
void glGetQueryObjecti64vEXT(CallObserver* observer, QueryId query, uint32_t parameter, GLint64* value);
void glGetQueryObjectivEXT(CallObserver* observer, QueryId query, uint32_t parameter, GLint* value);
void glGetQueryObjectui64vEXT(CallObserver* observer, QueryId query, uint32_t parameter, GLuint64* value);
void glGetQueryObjectuivEXT(CallObserver* observer, QueryId query, uint32_t parameter, GLuint* value);
void glGetQueryivEXT(CallObserver* observer, uint32_t target, uint32_t parameter, GLint* value);
void glGetSamplerParameterIivOES(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* params);
void glGetSamplerParameterIuivOES(CallObserver* observer, SamplerId sampler, uint32_t pname, GLuint* params);
void glGetSyncivAPPLE(CallObserver* observer, GLsync sync, uint32_t pname, GLsizei bufSize, GLsizei* length, GLint* values);
void glGetTexParameterIivOES(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glGetTexParameterIuivOES(CallObserver* observer, uint32_t target, uint32_t pname, GLuint* params);
GLuint64 glGetTextureHandleNV(CallObserver* observer, TextureId texture);
GLuint64 glGetTextureSamplerHandleNV(CallObserver* observer, TextureId texture, SamplerId sampler);
void glGetTranslatedShaderSourceANGLE(CallObserver* observer, ShaderId shader, GLsizei bufsize, GLsizei* length, GLchar* source);
void glGetnUniformfvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* params);
void glGetnUniformfvKHR(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* params);
void glGetnUniformivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLint* params);
void glGetnUniformivKHR(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLint* params);
void glGetnUniformuivKHR(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLuint* params);
void glInsertEventMarkerEXT(CallObserver* observer, GLsizei length, GLchar* marker);
void glInterpolatePathsNV(CallObserver* observer, GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
GLboolean glIsEnablediNV(CallObserver* observer, uint32_t target, GLuint index);
GLboolean glIsEnablediOES(CallObserver* observer, uint32_t target, GLuint index);
GLboolean glIsFenceNV(CallObserver* observer, GLuint fence);
GLboolean glIsImageHandleResidentNV(CallObserver* observer, GLuint64 handle);
GLboolean glIsPathNV(CallObserver* observer, GLuint path);
GLboolean glIsPointInFillPathNV(CallObserver* observer, GLuint path, GLuint mask, GLfloat x, GLfloat y);
GLboolean glIsPointInStrokePathNV(CallObserver* observer, GLuint path, GLfloat x, GLfloat y);
GLboolean glIsProgramPipelineEXT(CallObserver* observer, PipelineId pipeline);
GLboolean glIsQueryEXT(CallObserver* observer, QueryId query);
GLboolean glIsSyncAPPLE(CallObserver* observer, GLsync sync);
GLboolean glIsTextureHandleResidentNV(CallObserver* observer, GLuint64 handle);
GLboolean glIsVertexArrayOES(CallObserver* observer, VertexArrayId array);
void glLabelObjectEXT(CallObserver* observer, uint32_t type, GLuint object, GLsizei length, GLchar* label);
void glMakeImageHandleNonResidentNV(CallObserver* observer, GLuint64 handle);
void glMakeImageHandleResidentNV(CallObserver* observer, GLuint64 handle, uint32_t access);
void glMakeTextureHandleNonResidentNV(CallObserver* observer, GLuint64 handle);
void glMakeTextureHandleResidentNV(CallObserver* observer, GLuint64 handle);
void* glMapBufferOES(CallObserver* observer, uint32_t target, uint32_t access);
void* glMapBufferRangeEXT(CallObserver* observer, uint32_t target, GLintptr offset, GLsizeiptr length, uint32_t access);
void glMatrixLoad3x2fNV(CallObserver* observer, uint32_t matrixMode, GLfloat* m);
void glMatrixLoad3x3fNV(CallObserver* observer, uint32_t matrixMode, GLfloat* m);
void glMatrixLoadTranspose3x3fNV(CallObserver* observer, uint32_t matrixMode, GLfloat* m);
void glMatrixMult3x2fNV(CallObserver* observer, uint32_t matrixMode, GLfloat* m);
void glMatrixMult3x3fNV(CallObserver* observer, uint32_t matrixMode, GLfloat* m);
void glMatrixMultTranspose3x3fNV(CallObserver* observer, uint32_t matrixMode, GLfloat* m);
void glMultiDrawArraysEXT(CallObserver* observer, uint32_t mode, GLint* first, GLsizei* count, GLsizei primcount);
void glMultiDrawArraysIndirectEXT(CallObserver* observer, uint32_t mode, void* indirect, GLsizei drawcount, GLsizei stride);
void glMultiDrawElementsBaseVertexEXT(CallObserver* observer, uint32_t mode, GLsizei* count, uint32_t type, void** indices, GLsizei primcount, GLint* basevertex);
void glMultiDrawElementsBaseVertexOES(CallObserver* observer, uint32_t mode, GLsizei* count, uint32_t type, void** indices, GLsizei primcount, GLint* basevertex);
void glMultiDrawElementsEXT(CallObserver* observer, uint32_t mode, GLsizei* count, uint32_t type, void** indices, GLsizei primcount);
void glMultiDrawElementsIndirectEXT(CallObserver* observer, uint32_t mode, uint32_t type, void* indirect, GLsizei drawcount, GLsizei stride);
void glNamedFramebufferSampleLocationsfvNV(CallObserver* observer, FramebufferId framebuffer, GLuint start, GLsizei count, GLfloat* v);
void glPatchParameteriOES(CallObserver* observer, uint32_t pname, GLint value);
void glPathCommandsNV(CallObserver* observer, GLuint path, GLsizei numCommands, GLubyte* commands, GLsizei numCoords, uint32_t coordType, void* coords);
void glPathCoordsNV(CallObserver* observer, GLuint path, GLsizei numCoords, uint32_t coordType, void* coords);
void glPathCoverDepthFuncNV(CallObserver* observer, uint32_t func);
void glPathDashArrayNV(CallObserver* observer, GLuint path, GLsizei dashCount, GLfloat* dashArray);
uint32_t glPathGlyphIndexArrayNV(CallObserver* observer, GLuint firstPathName, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
uint32_t glPathGlyphIndexRangeNV(CallObserver* observer, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount);
void glPathGlyphRangeNV(CallObserver* observer, GLuint firstPathName, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLuint firstGlyph, GLsizei numGlyphs, uint32_t handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
void glPathGlyphsNV(CallObserver* observer, GLuint firstPathName, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLsizei numGlyphs, uint32_t type, void* charcodes, uint32_t handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
uint32_t glPathMemoryGlyphIndexArrayNV(CallObserver* observer, GLuint firstPathName, uint32_t fontTarget, GLsizeiptr fontSize, void* fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
void glPathParameterfNV(CallObserver* observer, GLuint path, uint32_t pname, GLfloat value);
void glPathParameterfvNV(CallObserver* observer, GLuint path, uint32_t pname, GLfloat* value);
void glPathParameteriNV(CallObserver* observer, GLuint path, uint32_t pname, GLint value);
void glPathParameterivNV(CallObserver* observer, GLuint path, uint32_t pname, GLint* value);
void glPathStencilDepthOffsetNV(CallObserver* observer, GLfloat factor, GLfloat units);
void glPathStencilFuncNV(CallObserver* observer, uint32_t func, GLint ref, GLuint mask);
void glPathStringNV(CallObserver* observer, GLuint path, uint32_t format, GLsizei length, void* pathString);
void glPathSubCommandsNV(CallObserver* observer, GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, GLubyte* commands, GLsizei numCoords, uint32_t coordType, void* coords);
void glPathSubCoordsNV(CallObserver* observer, GLuint path, GLsizei coordStart, GLsizei numCoords, uint32_t coordType, void* coords);
GLboolean glPointAlongPathNV(CallObserver* observer, GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat* y, GLfloat* tangentX, GLfloat* tangentY);
void glPolygonModeNV(CallObserver* observer, uint32_t face, uint32_t mode);
void glPopGroupMarkerEXT(CallObserver* observer);
void glPrimitiveBoundingBoxOES(CallObserver* observer, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
void glProgramBinaryOES(CallObserver* observer, ProgramId program, uint32_t binary_format, void* binary, GLint binary_size);
void glProgramParameteriEXT(CallObserver* observer, ProgramId program, uint32_t pname, GLint value);
void glProgramPathFragmentInputGenNV(CallObserver* observer, ProgramId program, GLint location, uint32_t genMode, GLint components, GLfloat* coeffs);
void glProgramUniform1fEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat v0);
void glProgramUniform1fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
void glProgramUniform1iEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLint v0);
void glProgramUniform1ivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* value);
void glProgramUniform1uiEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLuint v0);
void glProgramUniform1uivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
void glProgramUniform2fEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1);
void glProgramUniform2fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
void glProgramUniform2iEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLint v0, GLint v1);
void glProgramUniform2ivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* value);
void glProgramUniform2uiEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLuint v0, GLuint v1);
void glProgramUniform2uivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
void glProgramUniform3fEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1, GLfloat v2);
void glProgramUniform3fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
void glProgramUniform3iEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLint v0, GLint v1, GLint v2);
void glProgramUniform3ivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* value);
void glProgramUniform3uiEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLuint v0, GLuint v1, GLuint v2);
void glProgramUniform3uivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
void glProgramUniform4fEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
void glProgramUniform4fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
void glProgramUniform4iEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLint v0, GLint v1, GLint v2, GLint v3);
void glProgramUniform4ivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* value);
void glProgramUniform4uiEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
void glProgramUniform4uivEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
void glProgramUniformHandleui64NV(CallObserver* observer, ProgramId program, UniformLocation location, GLuint64 value);
void glProgramUniformHandleui64vNV(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint64* values);
void glProgramUniformMatrix2fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix2x3fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix2x4fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix3fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix3x2fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix3x4fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix4fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix4x2fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glProgramUniformMatrix4x3fvEXT(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glPushGroupMarkerEXT(CallObserver* observer, GLsizei length, GLchar* marker);
void glQueryCounterEXT(CallObserver* observer, QueryId query, uint32_t target);
void glRasterSamplesEXT(CallObserver* observer, GLuint samples, GLboolean fixedsamplelocations);
void glReadBufferIndexedEXT(CallObserver* observer, uint32_t src, GLint index);
void glReadBufferNV(CallObserver* observer, uint32_t mode);
void glReadnPixelsEXT(CallObserver* observer, GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
void glReadnPixelsKHR(CallObserver* observer, GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
void glRenderbufferStorageMultisampleANGLE(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
void glRenderbufferStorageMultisampleAPPLE(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
void glRenderbufferStorageMultisampleEXT(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
void glRenderbufferStorageMultisampleIMG(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
void glRenderbufferStorageMultisampleNV(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
void glResolveDepthValuesNV(CallObserver* observer);
void glResolveMultisampleFramebufferAPPLE(CallObserver* observer);
void glSamplerParameterIivOES(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* param);
void glSamplerParameterIuivOES(CallObserver* observer, SamplerId sampler, uint32_t pname, GLuint* param);
void glScissorArrayvNV(CallObserver* observer, GLuint first, GLsizei count, GLint* v);
void glScissorIndexedNV(CallObserver* observer, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
void glScissorIndexedvNV(CallObserver* observer, GLuint index, GLint* v);
void glSelectPerfMonitorCountersAMD(CallObserver* observer, GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList);
void glSetFenceNV(CallObserver* observer, GLuint fence, uint32_t condition);
void glStartTilingQCOM(CallObserver* observer, GLuint x, GLuint y, GLuint width, GLuint height, uint32_t preserveMask);
void glStencilFillPathInstancedNV(CallObserver* observer, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t fillMode, GLuint mask, uint32_t transformType, GLfloat* transformValues);
void glStencilFillPathNV(CallObserver* observer, GLuint path, uint32_t fillMode, GLuint mask);
void glStencilStrokePathInstancedNV(CallObserver* observer, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLint reference, GLuint mask, uint32_t transformType, GLfloat* transformValues);
void glStencilStrokePathNV(CallObserver* observer, GLuint path, GLint reference, GLuint mask);
void glStencilThenCoverFillPathInstancedNV(CallObserver* observer, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t fillMode, GLuint mask, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
void glStencilThenCoverFillPathNV(CallObserver* observer, GLuint path, uint32_t fillMode, GLuint mask, uint32_t coverMode);
void glStencilThenCoverStrokePathInstancedNV(CallObserver* observer, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLint reference, GLuint mask, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
void glStencilThenCoverStrokePathNV(CallObserver* observer, GLuint path, GLint reference, GLuint mask, uint32_t coverMode);
void glSubpixelPrecisionBiasNV(CallObserver* observer, GLuint xbits, GLuint ybits);
GLboolean glTestFenceNV(CallObserver* observer, GLuint fence);
void glTexBufferOES(CallObserver* observer, uint32_t target, uint32_t internalformat, BufferId buffer);
void glTexBufferRangeOES(CallObserver* observer, uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
void glTexImage3DOES(CallObserver* observer, uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, uint32_t format, uint32_t type, TexturePointer pixels);
void glTexPageCommitmentEXT(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
void glTexParameterIivOES(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glTexParameterIuivOES(CallObserver* observer, uint32_t target, uint32_t pname, GLuint* params);
void glTexStorage1DEXT(CallObserver* observer, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width);
void glTexStorage2DEXT(CallObserver* observer, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height);
void glTexStorage3DEXT(CallObserver* observer, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth);
void glTexSubImage3DOES(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, TexturePointer pixels);
void glTextureStorage1DEXT(CallObserver* observer, TextureId texture, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width);
void glTextureStorage2DEXT(CallObserver* observer, TextureId texture, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height);
void glTextureStorage3DEXT(CallObserver* observer, TextureId texture, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth);
void glTextureViewEXT(CallObserver* observer, TextureId texture, uint32_t target, GLuint origtexture, uint32_t internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
void glTextureViewOES(CallObserver* observer, TextureId texture, uint32_t target, GLuint origtexture, uint32_t internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
void glTransformPathNV(CallObserver* observer, GLuint resultPath, GLuint srcPath, uint32_t transformType, GLfloat* transformValues);
void glUniformHandleui64NV(CallObserver* observer, UniformLocation location, GLuint64 value);
void glUniformHandleui64vNV(CallObserver* observer, UniformLocation location, GLsizei count, GLuint64* value);
void glUniformMatrix2x3fvNV(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glUniformMatrix2x4fvNV(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glUniformMatrix3x2fvNV(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glUniformMatrix3x4fvNV(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glUniformMatrix4x2fvNV(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
void glUniformMatrix4x3fvNV(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
GLboolean glUnmapBufferOES(CallObserver* observer, uint32_t target);
void glUseProgramStagesEXT(CallObserver* observer, PipelineId pipeline, uint32_t stages, ProgramId program);
void glValidateProgramPipelineEXT(CallObserver* observer, PipelineId pipeline);
void glVertexAttribDivisorANGLE(CallObserver* observer, AttributeLocation index, GLuint divisor);
void glVertexAttribDivisorEXT(CallObserver* observer, AttributeLocation index, GLuint divisor);
void glVertexAttribDivisorNV(CallObserver* observer, AttributeLocation index, GLuint divisor);
void glViewportArrayvNV(CallObserver* observer, GLuint first, GLsizei count, GLfloat* v);
void glViewportIndexedfNV(CallObserver* observer, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
void glViewportIndexedfvNV(CallObserver* observer, GLuint index, GLfloat* v);
void glWaitSyncAPPLE(CallObserver* observer, GLsync sync, uint32_t flag, GLuint64 timeout);
void glWeightPathsNV(CallObserver* observer, GLuint resultPath, GLsizei numPaths, GLuint* paths, GLfloat* weights);
void glClearPixelLocalStorageuiEXT(CallObserver* observer, GLsizei offset, GLsizei n, GLuint* values);
void glClearTexImageEXT(CallObserver* observer, GLuint texture, GLint level, uint32_t format, uint32_t type, void* data);
void glClearTexSubImageEXT(CallObserver* observer, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, void* data);
void glConservativeRasterParameteriNV(CallObserver* observer, uint32_t pname, GLint param);
void glDepthRangeArrayfvOES(CallObserver* observer, GLuint first, GLsizei count, GLfloat* v);
void glDepthRangeIndexedfOES(CallObserver* observer, GLuint index, GLfloat n, GLfloat f);
void glDrawTransformFeedbackEXT(CallObserver* observer, uint32_t mode, GLuint id);
void glDrawTransformFeedbackInstancedEXT(CallObserver* observer, uint32_t mode, GLuint id, GLsizei instancecount);
void glFramebufferPixelLocalStorageSizeEXT(CallObserver* observer, GLuint target, GLsizei size);
void glFramebufferTexture2DDownsampleIMG(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t textarget, GLuint texture, GLint level, GLint xscale, GLint yscale);
void glFramebufferTextureLayerDownsampleIMG(CallObserver* observer, uint32_t target, uint32_t attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale);
void glFramebufferTextureMultisampleMultiviewOVR(CallObserver* observer, uint32_t target, uint32_t attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
void glGetFloati_vOES(CallObserver* observer, uint32_t target, GLuint index, GLfloat* data);
GLsizei glGetFramebufferPixelLocalStorageSizeEXT(CallObserver* observer, GLuint target);
GLuint64 glGetTextureHandleIMG(CallObserver* observer, GLuint texture);
GLuint64 glGetTextureSamplerHandleIMG(CallObserver* observer, GLuint texture, GLuint sampler);
void glGetUniformi64vNV(CallObserver* observer, GLuint program, GLint location, GLint64EXT* params);
void glPolygonOffsetClampEXT(CallObserver* observer, GLfloat factor, GLfloat units, GLfloat clamp);
void glProgramUniform1i64NV(CallObserver* observer, GLuint program, GLint location, GLint64EXT x);
void glProgramUniform1i64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLint64EXT* value);
void glProgramUniform1ui64NV(CallObserver* observer, GLuint program, GLint location, GLuint64EXT x);
void glProgramUniform1ui64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLuint64EXT* value);
void glProgramUniform2i64NV(CallObserver* observer, GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
void glProgramUniform2i64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLint64EXT* value);
void glProgramUniform2ui64NV(CallObserver* observer, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
void glProgramUniform2ui64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLuint64EXT* value);
void glProgramUniform3i64NV(CallObserver* observer, GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
void glProgramUniform3i64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLint64EXT* value);
void glProgramUniform3ui64NV(CallObserver* observer, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
void glProgramUniform3ui64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLuint64EXT* value);
void glProgramUniform4i64NV(CallObserver* observer, GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
void glProgramUniform4i64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLint64EXT* value);
void glProgramUniform4ui64NV(CallObserver* observer, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
void glProgramUniform4ui64vNV(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLuint64EXT* value);
void glProgramUniformHandleui64IMG(CallObserver* observer, GLuint program, GLint location, GLuint64 value);
void glProgramUniformHandleui64vIMG(CallObserver* observer, GLuint program, GLint location, GLsizei count, GLuint64* values);
void glScissorArrayvOES(CallObserver* observer, GLuint first, GLsizei count, GLint* v);
void glScissorIndexedOES(CallObserver* observer, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
void glScissorIndexedvOES(CallObserver* observer, GLuint index, GLint* v);
void glUniform1i64NV(CallObserver* observer, GLint location, GLint64EXT x);
void glUniform1i64vNV(CallObserver* observer, GLint location, GLsizei count, GLint64EXT* value);
void glUniform1ui64NV(CallObserver* observer, GLint location, GLuint64EXT x);
void glUniform1ui64vNV(CallObserver* observer, GLint location, GLsizei count, GLuint64EXT* value);
void glUniform2i64NV(CallObserver* observer, GLint location, GLint64EXT x, GLint64EXT y);
void glUniform2i64vNV(CallObserver* observer, GLint location, GLsizei count, GLint64EXT* value);
void glUniform2ui64NV(CallObserver* observer, GLint location, GLuint64EXT x, GLuint64EXT y);
void glUniform2ui64vNV(CallObserver* observer, GLint location, GLsizei count, GLuint64EXT* value);
void glUniform3i64NV(CallObserver* observer, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
void glUniform3i64vNV(CallObserver* observer, GLint location, GLsizei count, GLint64EXT* value);
void glUniform3ui64NV(CallObserver* observer, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
void glUniform3ui64vNV(CallObserver* observer, GLint location, GLsizei count, GLuint64EXT* value);
void glUniform4i64NV(CallObserver* observer, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
void glUniform4i64vNV(CallObserver* observer, GLint location, GLsizei count, GLint64EXT* value);
void glUniform4ui64NV(CallObserver* observer, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
void glUniform4ui64vNV(CallObserver* observer, GLint location, GLsizei count, GLuint64EXT* value);
void glUniformHandleui64IMG(CallObserver* observer, GLint location, GLuint64 value);
void glUniformHandleui64vIMG(CallObserver* observer, GLint location, GLsizei count, GLuint64* value);
void glViewportArrayvOES(CallObserver* observer, GLuint first, GLsizei count, GLfloat* v);
void glViewportIndexedfOES(CallObserver* observer, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
void glViewportIndexedfvOES(CallObserver* observer, GLuint index, GLfloat* v);
void glViewportSwizzleNV(CallObserver* observer, GLuint index, uint32_t swizzlex, uint32_t swizzley, uint32_t swizzlez, uint32_t swizzlew);
void glWindowRectanglesEXT(CallObserver* observer, uint32_t mode, GLsizei count, GLint* box);
void glBlendBarrier(CallObserver* observer);
void glBlendColor(CallObserver* observer, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void glBlendEquation(CallObserver* observer, uint32_t equation);
void glBlendEquationSeparate(CallObserver* observer, uint32_t rgb, uint32_t alpha);
void glBlendEquationSeparatei(CallObserver* observer, DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
void glBlendEquationi(CallObserver* observer, DrawBufferIndex buf, uint32_t mode);
void glBlendFunc(CallObserver* observer, uint32_t src_factor, uint32_t dst_factor);
void glBlendFuncSeparate(CallObserver* observer, uint32_t src_factor_rgb, uint32_t dst_factor_rgb, uint32_t src_factor_alpha, uint32_t dst_factor_alpha);
void glBlendFuncSeparatei(CallObserver* observer, DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
void glBlendFunci(CallObserver* observer, DrawBufferIndex buf, uint32_t src, uint32_t dst);
void glDepthFunc(CallObserver* observer, uint32_t function);
void glSampleCoverage(CallObserver* observer, GLfloat value, GLboolean invert);
void glSampleMaski(CallObserver* observer, GLuint maskNumber, uint32_t mask);
void glScissor(CallObserver* observer, GLint x, GLint y, GLsizei width, GLsizei height);
void glStencilFunc(CallObserver* observer, uint32_t func, GLint ref, GLuint mask);
void glStencilFuncSeparate(CallObserver* observer, uint32_t face, uint32_t function, GLint reference_value, GLuint mask);
void glStencilOp(CallObserver* observer, uint32_t fail, uint32_t zfail, uint32_t zpass);
void glStencilOpSeparate(CallObserver* observer, uint32_t face, uint32_t stencil_fail, uint32_t stencil_pass_depth_fail, uint32_t stencil_pass_depth_pass);
void glBindFramebuffer(CallObserver* observer, uint32_t target, FramebufferId framebuffer);
void glBindRenderbuffer(CallObserver* observer, uint32_t target, RenderbufferId renderbuffer);
void glBlitFramebuffer(CallObserver* observer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
uint32_t glCheckFramebufferStatus(CallObserver* observer, uint32_t target);
void glClear(CallObserver* observer, uint32_t mask);
void glClearBufferfi(CallObserver* observer, uint32_t buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
void glClearBufferfv(CallObserver* observer, uint32_t buffer, GLint drawbuffer, GLfloat* value);
void glClearBufferiv(CallObserver* observer, uint32_t buffer, GLint drawbuffer, GLint* value);
void glClearBufferuiv(CallObserver* observer, uint32_t buffer, GLint drawbuffer, GLuint* value);
void glClearColor(CallObserver* observer, GLfloat r, GLfloat g, GLfloat b, GLfloat a);
void glClearDepthf(CallObserver* observer, GLfloat depth);
void glClearStencil(CallObserver* observer, GLint stencil);
void glColorMask(CallObserver* observer, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
void glColorMaski(CallObserver* observer, DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
void glDeleteFramebuffers(CallObserver* observer, GLsizei count, FramebufferId* framebuffers);
void glDeleteRenderbuffers(CallObserver* observer, GLsizei count, RenderbufferId* renderbuffers);
void glDepthMask(CallObserver* observer, GLboolean enabled);
void glDrawBuffers(CallObserver* observer, GLsizei n, uint32_t* bufs);
void glFramebufferParameteri(CallObserver* observer, uint32_t target, uint32_t pname, GLint param);
void glFramebufferRenderbuffer(CallObserver* observer, uint32_t framebuffer_target, uint32_t framebuffer_attachment, uint32_t renderbuffer_target, RenderbufferId renderbuffer);
void glFramebufferTexture(CallObserver* observer, uint32_t target, uint32_t attachment, TextureId texture, GLint level);
void glFramebufferTexture2D(CallObserver* observer, uint32_t framebuffer_target, uint32_t framebuffer_attachment, uint32_t texture_target, TextureId texture, GLint level);
void glFramebufferTextureLayer(CallObserver* observer, uint32_t target, uint32_t attachment, TextureId texture, GLint level, GLint layer);
void glGenFramebuffers(CallObserver* observer, GLsizei count, FramebufferId* framebuffers);
void glGenRenderbuffers(CallObserver* observer, GLsizei count, RenderbufferId* renderbuffers);
void glGetFramebufferAttachmentParameteriv(CallObserver* observer, uint32_t framebuffer_target, uint32_t attachment, uint32_t parameter, GLint* value);
void glGetFramebufferParameteriv(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glGetRenderbufferParameteriv(CallObserver* observer, uint32_t target, uint32_t parameter, GLint* values);
void glInvalidateFramebuffer(CallObserver* observer, uint32_t target, GLsizei count, uint32_t* attachments);
void glInvalidateSubFramebuffer(CallObserver* observer, uint32_t target, GLsizei numAttachments, uint32_t* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
GLboolean glIsFramebuffer(CallObserver* observer, FramebufferId framebuffer);
GLboolean glIsRenderbuffer(CallObserver* observer, RenderbufferId renderbuffer);
void glReadBuffer(CallObserver* observer, uint32_t src);
void glReadPixels(CallObserver* observer, GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, void* data);
void glReadnPixels(CallObserver* observer, GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
void glRenderbufferStorage(CallObserver* observer, uint32_t target, uint32_t internalformat, GLsizei width, GLsizei height);
void glRenderbufferStorageMultisample(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
void glStencilMask(CallObserver* observer, GLuint mask);
void glStencilMaskSeparate(CallObserver* observer, uint32_t face, GLuint mask);
void glDisable(CallObserver* observer, uint32_t capability);
void glDisablei(CallObserver* observer, uint32_t capability, GLuint index);
void glEnable(CallObserver* observer, uint32_t capability);
void glEnablei(CallObserver* observer, uint32_t capability, GLuint index);
void glFinish(CallObserver* observer);
void glFlush(CallObserver* observer);
uint32_t glGetError(CallObserver* observer);
uint32_t glGetGraphicsResetStatus(CallObserver* observer);
void glHint(CallObserver* observer, uint32_t target, uint32_t mode);
void glActiveShaderProgram(CallObserver* observer, PipelineId pipeline, ProgramId program);
void glAttachShader(CallObserver* observer, ProgramId program, ShaderId shader);
void glBindAttribLocation(CallObserver* observer, ProgramId program, AttributeLocation location, const char* name);
void glBindProgramPipeline(CallObserver* observer, PipelineId pipeline);
void glCompileShader(CallObserver* observer, ShaderId shader);
ProgramId glCreateProgram(CallObserver* observer);
ShaderId glCreateShader(CallObserver* observer, uint32_t type);
ProgramId glCreateShaderProgramv(CallObserver* observer, uint32_t type, GLsizei count, GLchar** strings);
void glDeleteProgram(CallObserver* observer, ProgramId program);
void glDeleteProgramPipelines(CallObserver* observer, GLsizei n, PipelineId* pipelines);
void glDeleteShader(CallObserver* observer, ShaderId shader);
void glDetachShader(CallObserver* observer, ProgramId program, ShaderId shader);
void glDispatchCompute(CallObserver* observer, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
void glDispatchComputeIndirect(CallObserver* observer, GLintptr indirect);
void glGenProgramPipelines(CallObserver* observer, GLsizei n, PipelineId* pipelines);
void glGetActiveAttrib(CallObserver* observer, ProgramId program, AttributeIndex index, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLint* vector_count, uint32_t* type, GLchar* name);
void glGetActiveUniform(CallObserver* observer, ProgramId program, UniformIndex index, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLint* vector_count, uint32_t* type, GLchar* name);
void glGetActiveUniformBlockName(CallObserver* observer, ProgramId program, UniformBlockId uniform_block_index, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLchar* name);
void glGetActiveUniformBlockiv(CallObserver* observer, ProgramId program, UniformBlockId uniform_block_index, uint32_t parameter_name, GLint* parameters);
void glGetActiveUniformsiv(CallObserver* observer, ProgramId program, GLsizei uniform_count, UniformIndex* uniform_indices, uint32_t parameter_name, GLint* parameters);
void glGetAttachedShaders(CallObserver* observer, ProgramId program, GLsizei buffer_length, GLsizei* shaders_length_written, ShaderId* shaders);
GLint glGetAttribLocation(CallObserver* observer, ProgramId program, const char* name);
GLint glGetFragDataLocation(CallObserver* observer, ProgramId program, const char* name);
void glGetProgramBinary(CallObserver* observer, ProgramId program, GLsizei bufSize, GLsizei* length, uint32_t* binaryFormat, void* binary);
void glGetProgramInfoLog(CallObserver* observer, ProgramId program, GLsizei buffer_length, GLsizei* string_length_written, GLchar* info);
void glGetProgramInterfaceiv(CallObserver* observer, ProgramId program, uint32_t programInterface, uint32_t pname, GLint* params);
void glGetProgramPipelineInfoLog(CallObserver* observer, PipelineId pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
void glGetProgramPipelineiv(CallObserver* observer, PipelineId pipeline, uint32_t pname, GLint* params);
GLuint glGetProgramResourceIndex(CallObserver* observer, ProgramId program, uint32_t programInterface, const char* name);
GLint glGetProgramResourceLocation(CallObserver* observer, ProgramId program, uint32_t programInterface, const char* name);
void glGetProgramResourceName(CallObserver* observer, ProgramId program, uint32_t programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
void glGetProgramResourceiv(CallObserver* observer, ProgramId program, uint32_t programInterface, GLuint index, GLsizei propCount, uint32_t* props, GLsizei bufSize, GLsizei* length, GLint* params);
void glGetProgramiv(CallObserver* observer, ProgramId program, uint32_t parameter, GLint* value);
void glGetShaderInfoLog(CallObserver* observer, ShaderId shader, GLsizei buffer_length, GLsizei* string_length_written, GLchar* info);
void glGetShaderPrecisionFormat(CallObserver* observer, uint32_t shader_type, uint32_t precision_type, GLint* range, GLint* precision);
void glGetShaderSource(CallObserver* observer, ShaderId shader, GLsizei buffer_length, GLsizei* string_length_written, GLchar* source);
void glGetShaderiv(CallObserver* observer, ShaderId shader, uint32_t parameter, GLint* value);
UniformBlockId glGetUniformBlockIndex(CallObserver* observer, ProgramId program, const char* uniformBlockName);
void glGetUniformIndices(CallObserver* observer, ProgramId program, GLsizei uniformCount, GLchar** uniformNames, UniformIndex* uniformIndices);
UniformLocation glGetUniformLocation(CallObserver* observer, ProgramId program, const char* name);
void glGetUniformfv(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat* values);
void glGetUniformiv(CallObserver* observer, ProgramId program, UniformLocation location, GLint* values);
void glGetUniformuiv(CallObserver* observer, ProgramId program, UniformLocation location, GLuint* values);
void glGetnUniformfv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* values);
void glGetnUniformiv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLint* values);
void glGetnUniformuiv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei bufSize, GLuint* values);
GLboolean glIsProgram(CallObserver* observer, ProgramId program);
GLboolean glIsProgramPipeline(CallObserver* observer, PipelineId pipeline);
GLboolean glIsShader(CallObserver* observer, ShaderId shader);
void glLinkProgram(CallObserver* observer, ProgramId program);
void glMemoryBarrier(CallObserver* observer, uint32_t barriers);
void glMemoryBarrierByRegion(CallObserver* observer, uint32_t barriers);
void glProgramBinary(CallObserver* observer, ProgramId program, uint32_t binaryFormat, void* binary, GLsizei length);
void glProgramParameteri(CallObserver* observer, ProgramId program, uint32_t pname, GLint value);
void glProgramUniform1f(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat value0);
void glProgramUniform1fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void glProgramUniform1i(CallObserver* observer, ProgramId program, UniformLocation location, GLint value0);
void glProgramUniform1iv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void glProgramUniform1ui(CallObserver* observer, ProgramId program, UniformLocation location, GLuint value0);
void glProgramUniform1uiv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void glProgramUniform2f(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1);
void glProgramUniform2fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void glProgramUniform2i(CallObserver* observer, ProgramId program, UniformLocation location, GLint value0, GLint value1);
void glProgramUniform2iv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void glProgramUniform2ui(CallObserver* observer, ProgramId program, UniformLocation location, GLuint value0, GLuint value1);
void glProgramUniform2uiv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void glProgramUniform3f(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
void glProgramUniform3fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void glProgramUniform3i(CallObserver* observer, ProgramId program, UniformLocation location, GLint value0, GLint value1, GLint value2);
void glProgramUniform3iv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void glProgramUniform3ui(CallObserver* observer, ProgramId program, UniformLocation location, GLuint value0, GLuint value1, GLuint value2);
void glProgramUniform3uiv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void glProgramUniform4f(CallObserver* observer, ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
void glProgramUniform4fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
void glProgramUniform4i(CallObserver* observer, ProgramId program, UniformLocation location, GLint value0, GLint value1, GLint value2, GLint value3);
void glProgramUniform4iv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLint* values);
void glProgramUniform4ui(CallObserver* observer, ProgramId program, UniformLocation location, GLuint value0, GLuint value1, GLuint value2, GLuint value3);
void glProgramUniform4uiv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
void glProgramUniformMatrix2fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix2x3fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix2x4fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix3fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix3x2fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix3x4fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix4fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix4x2fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glProgramUniformMatrix4x3fv(CallObserver* observer, ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glReleaseShaderCompiler(CallObserver* observer);
void glShaderBinary(CallObserver* observer, GLsizei count, ShaderId* shaders, uint32_t binary_format, void* binary, GLsizei binary_size);
void glShaderSource(CallObserver* observer, ShaderId shader, GLsizei count, GLchar** source, GLint* length);
void glUniform1f(CallObserver* observer, UniformLocation location, GLfloat value);
void glUniform1fv(CallObserver* observer, UniformLocation location, GLsizei count, GLfloat* values);
void glUniform1i(CallObserver* observer, UniformLocation location, GLint value);
void glUniform1iv(CallObserver* observer, UniformLocation location, GLsizei count, GLint* values);
void glUniform1ui(CallObserver* observer, UniformLocation location, GLuint value0);
void glUniform1uiv(CallObserver* observer, UniformLocation location, GLsizei count, GLuint* values);
void glUniform2f(CallObserver* observer, UniformLocation location, GLfloat value0, GLfloat value1);
void glUniform2fv(CallObserver* observer, UniformLocation location, GLsizei count, GLfloat* values);
void glUniform2i(CallObserver* observer, UniformLocation location, GLint value0, GLint value1);
void glUniform2iv(CallObserver* observer, UniformLocation location, GLsizei count, GLint* values);
void glUniform2ui(CallObserver* observer, UniformLocation location, GLuint value0, GLuint value1);
void glUniform2uiv(CallObserver* observer, UniformLocation location, GLsizei count, GLuint* values);
void glUniform3f(CallObserver* observer, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
void glUniform3fv(CallObserver* observer, UniformLocation location, GLsizei count, GLfloat* values);
void glUniform3i(CallObserver* observer, UniformLocation location, GLint value0, GLint value1, GLint value2);
void glUniform3iv(CallObserver* observer, UniformLocation location, GLsizei count, GLint* values);
void glUniform3ui(CallObserver* observer, UniformLocation location, GLuint value0, GLuint value1, GLuint value2);
void glUniform3uiv(CallObserver* observer, UniformLocation location, GLsizei count, GLuint* values);
void glUniform4f(CallObserver* observer, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
void glUniform4fv(CallObserver* observer, UniformLocation location, GLsizei count, GLfloat* values);
void glUniform4i(CallObserver* observer, UniformLocation location, GLint value0, GLint value1, GLint value2, GLint value3);
void glUniform4iv(CallObserver* observer, UniformLocation location, GLsizei count, GLint* values);
void glUniform4ui(CallObserver* observer, UniformLocation location, GLuint value0, GLuint value1, GLuint value2, GLuint value3);
void glUniform4uiv(CallObserver* observer, UniformLocation location, GLsizei count, GLuint* values);
void glUniformBlockBinding(CallObserver* observer, ProgramId program, UniformBlockId uniform_block_index, GLuint uniform_block_binding);
void glUniformMatrix2fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix2x3fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix2x4fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix3fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix3x2fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix3x4fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix4fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix4x2fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUniformMatrix4x3fv(CallObserver* observer, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
void glUseProgram(CallObserver* observer, ProgramId program);
void glUseProgramStages(CallObserver* observer, PipelineId pipeline, uint32_t stages, ProgramId program);
void glValidateProgram(CallObserver* observer, ProgramId program);
void glValidateProgramPipeline(CallObserver* observer, PipelineId pipeline);
void glCullFace(CallObserver* observer, uint32_t mode);
void glDepthRangef(CallObserver* observer, GLfloat near, GLfloat far);
void glFrontFace(CallObserver* observer, uint32_t orientation);
void glGetMultisamplefv(CallObserver* observer, uint32_t pname, GLuint index, GLfloat* val);
void glLineWidth(CallObserver* observer, GLfloat width);
void glMinSampleShading(CallObserver* observer, GLfloat value);
void glPolygonOffset(CallObserver* observer, GLfloat scale_factor, GLfloat units);
void glViewport(CallObserver* observer, GLint x, GLint y, GLsizei width, GLsizei height);
void glGetBooleani_v(CallObserver* observer, uint32_t param, GLuint index, GLboolean* values);
void glGetBooleanv(CallObserver* observer, uint32_t param, GLboolean* values);
void glGetFloatv(CallObserver* observer, uint32_t param, GLfloat* values);
void glGetInteger64i_v(CallObserver* observer, uint32_t param, GLuint index, GLint64* values);
void glGetInteger64v(CallObserver* observer, uint32_t param, GLint64* values);
void glGetIntegeri_v(CallObserver* observer, uint32_t param, GLuint index, GLint* values);
void glGetIntegerv(CallObserver* observer, uint32_t param, GLint* values);
void glGetInternalformativ(CallObserver* observer, uint32_t target, uint32_t internalformat, uint32_t pname, GLsizei bufSize, GLint* params);
GLubyte* glGetString(CallObserver* observer, uint32_t param);
GLubyte* glGetStringi(CallObserver* observer, uint32_t name, GLuint index);
GLboolean glIsEnabled(CallObserver* observer, uint32_t capability);
GLboolean glIsEnabledi(CallObserver* observer, uint32_t capability, GLuint index);
uint32_t glClientWaitSync(CallObserver* observer, GLsync sync, uint32_t syncFlags, GLuint64 timeout);
void glDeleteSync(CallObserver* observer, GLsync sync);
GLsync glFenceSync(CallObserver* observer, uint32_t condition, uint32_t syncFlags);
void glGetSynciv(CallObserver* observer, GLsync sync, uint32_t pname, GLsizei bufSize, GLsizei* length, GLint* values);
GLboolean glIsSync(CallObserver* observer, GLsync sync);
void glWaitSync(CallObserver* observer, GLsync sync, uint32_t syncFlags, GLuint64 timeout);
void glActiveTexture(CallObserver* observer, uint32_t unit);
void glBindImageTexture(CallObserver* observer, GLuint unit, TextureId texture, GLint level, GLboolean layered, GLint layer, uint32_t access, uint32_t format);
void glBindSampler(CallObserver* observer, GLuint index, SamplerId sampler);
void glBindTexture(CallObserver* observer, uint32_t target, TextureId texture);
void glCompressedTexImage2D(CallObserver* observer, uint32_t target, GLint level, uint32_t format, GLsizei width, GLsizei height, GLint border, GLsizei image_size, TexturePointer data);
void glCompressedTexImage3D(CallObserver* observer, uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei image_size, TexturePointer data);
void glCompressedTexSubImage2D(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, uint32_t format, GLsizei image_size, TexturePointer data);
void glCompressedTexSubImage3D(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, GLsizei image_size, TexturePointer data);
void glCopyImageSubData(CallObserver* observer, GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
void glCopyTexImage2D(CallObserver* observer, uint32_t target, GLint level, uint32_t internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void glCopyTexSubImage2D(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glCopyTexSubImage3D(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glDeleteSamplers(CallObserver* observer, GLsizei count, SamplerId* samplers);
void glDeleteTextures(CallObserver* observer, GLsizei count, TextureId* textures);
void glGenSamplers(CallObserver* observer, GLsizei count, SamplerId* samplers);
void glGenTextures(CallObserver* observer, GLsizei count, TextureId* textures);
void glGenerateMipmap(CallObserver* observer, uint32_t target);
void glGetSamplerParameterIiv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* params);
void glGetSamplerParameterIuiv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLuint* params);
void glGetSamplerParameterfv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLfloat* params);
void glGetSamplerParameteriv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* params);
void glGetTexLevelParameterfv(CallObserver* observer, uint32_t target, GLint level, uint32_t pname, GLfloat* params);
void glGetTexLevelParameteriv(CallObserver* observer, uint32_t target, GLint level, uint32_t pname, GLint* params);
void glGetTexParameterIiv(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glGetTexParameterIuiv(CallObserver* observer, uint32_t target, uint32_t pname, GLuint* params);
void glGetTexParameterfv(CallObserver* observer, uint32_t target, uint32_t parameter, GLfloat* values);
void glGetTexParameteriv(CallObserver* observer, uint32_t target, uint32_t parameter, GLint* values);
GLboolean glIsSampler(CallObserver* observer, SamplerId sampler);
GLboolean glIsTexture(CallObserver* observer, TextureId texture);
void glPixelStorei(CallObserver* observer, uint32_t parameter, GLint value);
void glSamplerParameterIiv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* param);
void glSamplerParameterIuiv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLuint* param);
void glSamplerParameterf(CallObserver* observer, SamplerId sampler, uint32_t pname, GLfloat param);
void glSamplerParameterfv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLfloat* param);
void glSamplerParameteri(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint param);
void glSamplerParameteriv(CallObserver* observer, SamplerId sampler, uint32_t pname, GLint* param);
void glTexBuffer(CallObserver* observer, uint32_t target, uint32_t internalformat, BufferId buffer);
void glTexBufferRange(CallObserver* observer, uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
void glTexImage2D(CallObserver* observer, uint32_t target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, uint32_t format, uint32_t type, TexturePointer data);
void glTexImage3D(CallObserver* observer, uint32_t target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, uint32_t format, uint32_t type, TexturePointer data);
void glTexParameterIiv(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glTexParameterIuiv(CallObserver* observer, uint32_t target, uint32_t pname, GLuint* params);
void glTexParameterf(CallObserver* observer, uint32_t target, uint32_t parameter, GLfloat value);
void glTexParameterfv(CallObserver* observer, uint32_t target, uint32_t pname, GLfloat* params);
void glTexParameteri(CallObserver* observer, uint32_t target, uint32_t parameter, GLint value);
void glTexParameteriv(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glTexStorage2D(CallObserver* observer, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height);
void glTexStorage2DMultisample(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void glTexStorage3D(CallObserver* observer, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth);
void glTexStorage3DMultisample(CallObserver* observer, uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void glTexSubImage2D(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, uint32_t format, uint32_t type, TexturePointer data);
void glTexSubImage3D(CallObserver* observer, uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, TexturePointer data);
void glBeginTransformFeedback(CallObserver* observer, uint32_t primitiveMode);
void glBindTransformFeedback(CallObserver* observer, uint32_t target, TransformFeedbackId id);
void glDeleteTransformFeedbacks(CallObserver* observer, GLsizei n, TransformFeedbackId* ids);
void glEndTransformFeedback(CallObserver* observer);
void glGenTransformFeedbacks(CallObserver* observer, GLsizei n, TransformFeedbackId* ids);
void glGetTransformFeedbackVarying(CallObserver* observer, ProgramId program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, uint32_t* type, GLchar* name);
GLboolean glIsTransformFeedback(CallObserver* observer, TransformFeedbackId id);
void glPauseTransformFeedback(CallObserver* observer);
void glResumeTransformFeedback(CallObserver* observer);
void glTransformFeedbackVaryings(CallObserver* observer, ProgramId program, GLsizei count, GLchar** varyings, uint32_t bufferMode);
void glBindVertexArray(CallObserver* observer, VertexArrayId array);
void glBindVertexBuffer(CallObserver* observer, VertexBufferBindingIndex binding_index, BufferId buffer, GLintptr offset, GLsizei stride);
void glDeleteVertexArrays(CallObserver* observer, GLsizei count, VertexArrayId* arrays);
void glDisableVertexAttribArray(CallObserver* observer, AttributeLocation location);
void glEnableVertexAttribArray(CallObserver* observer, AttributeLocation location);
void glGenVertexArrays(CallObserver* observer, GLsizei count, VertexArrayId* arrays);
void glGetVertexAttribIiv(CallObserver* observer, AttributeLocation index, uint32_t pname, GLint* params);
void glGetVertexAttribIuiv(CallObserver* observer, AttributeLocation index, uint32_t pname, GLuint* params);
void glGetVertexAttribPointerv(CallObserver* observer, AttributeLocation index, uint32_t pname, void** pointer);
void glGetVertexAttribfv(CallObserver* observer, AttributeLocation index, uint32_t pname, GLfloat* params);
void glGetVertexAttribiv(CallObserver* observer, AttributeLocation index, uint32_t pname, GLint* params);
GLboolean glIsVertexArray(CallObserver* observer, VertexArrayId array);
void glVertexAttrib1f(CallObserver* observer, AttributeLocation location, GLfloat value0);
void glVertexAttrib1fv(CallObserver* observer, AttributeLocation location, GLfloat* value);
void glVertexAttrib2f(CallObserver* observer, AttributeLocation location, GLfloat value0, GLfloat value1);
void glVertexAttrib2fv(CallObserver* observer, AttributeLocation location, GLfloat* value);
void glVertexAttrib3f(CallObserver* observer, AttributeLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
void glVertexAttrib3fv(CallObserver* observer, AttributeLocation location, GLfloat* value);
void glVertexAttrib4f(CallObserver* observer, AttributeLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
void glVertexAttrib4fv(CallObserver* observer, AttributeLocation location, GLfloat* value);
void glVertexAttribBinding(CallObserver* observer, AttributeLocation index, VertexBufferBindingIndex binding_index);
void glVertexAttribDivisor(CallObserver* observer, AttributeLocation index, GLuint divisor);
void glVertexAttribFormat(CallObserver* observer, AttributeLocation index, GLint size, uint32_t type, GLboolean normalized, GLuint relativeoffset);
void glVertexAttribI4i(CallObserver* observer, AttributeLocation index, GLint x, GLint y, GLint z, GLint w);
void glVertexAttribI4iv(CallObserver* observer, AttributeLocation index, GLint* values);
void glVertexAttribI4ui(CallObserver* observer, AttributeLocation index, GLuint x, GLuint y, GLuint z, GLuint w);
void glVertexAttribI4uiv(CallObserver* observer, AttributeLocation index, GLuint* values);
void glVertexAttribIFormat(CallObserver* observer, AttributeLocation index, GLint size, uint32_t type, GLuint relativeoffset);
void glVertexAttribIPointer(CallObserver* observer, AttributeLocation location, GLint size, uint32_t type, GLsizei stride, VertexPointer data);
void glVertexAttribPointer(CallObserver* observer, AttributeLocation location, GLint size, uint32_t type, GLboolean normalized, GLsizei stride, VertexPointer data);
void glVertexBindingDivisor(CallObserver* observer, VertexBufferBindingIndex binding_index, GLuint divisor);
GLXContext glXCreateContext(CallObserver* observer, void* dpy, void* vis, GLXContext shareList, bool direct);
GLXContext glXCreateNewContext(CallObserver* observer, void* display, void* fbconfig, uint32_t type, GLXContext shared, bool direct);
Bool glXMakeContextCurrent(CallObserver* observer, void* display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
Bool glXMakeCurrent(CallObserver* observer, void* display, GLXDrawable drawable, GLXContext ctx);
void glXSwapBuffers(CallObserver* observer, void* display, GLXDrawable drawable);
int glXQueryDrawable(CallObserver* observer, void* display, GLXDrawable draw, int attribute, int* value);
HGLRC wglCreateContext(CallObserver* observer, HDC hdc);
HGLRC wglCreateContextAttribsARB(CallObserver* observer, HDC hdc, HGLRC hShareContext, int* attribList);
BOOL wglMakeCurrent(CallObserver* observer, HDC hdc, HGLRC hglrc);
void wglSwapBuffers(CallObserver* observer, HDC hdc);
CGLError CGLCreateContext(CallObserver* observer, CGLTexelFormatObj pix, CGLContextObj share, CGLContextObj* ctx);
CGLError CGLSetCurrentContext(CallObserver* observer, CGLContextObj ctx);
int CGLGetSurface(CallObserver* observer, CGLContextObj ctx, CGSConnectionID* cid, CGSWindowID* wid, CGSSurfaceID* sid);
int CGSGetSurfaceBounds(CallObserver* observer, CGSConnectionID cid, CGSWindowID wid, CGSSurfaceID sid, double* bounds);
CGLError CGLFlushDrawable(CallObserver* observer, CGLContextObj ctx);
void glGetQueryObjecti64v(CallObserver* observer, QueryId query, uint32_t parameter, int64_t* value);
void glGetQueryObjectui64v(CallObserver* observer, QueryId query, uint32_t parameter, uint64_t* value);
void glTexStorage1D(CallObserver* observer, uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width);
void glBindFragDataLocation(CallObserver* observer, ProgramId program, GLuint color, const char* name);
void glAlphaFunc(CallObserver* observer, uint32_t func, GLfloat ref);
void glAlphaFuncx(CallObserver* observer, uint32_t func, GLfixed ref);
void glAlphaFuncxOES(CallObserver* observer, uint32_t func, GLfixed ref);
void glBindFramebufferOES(CallObserver* observer, uint32_t target, GLuint framebuffer);
void glBindRenderbufferOES(CallObserver* observer, uint32_t target, GLuint renderbuffer);
void glBlendEquationOES(CallObserver* observer, uint32_t mode);
void glBlendEquationSeparateOES(CallObserver* observer, uint32_t modeRGB, uint32_t modeAlpha);
void glBlendFuncSeparateOES(CallObserver* observer, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
uint32_t glCheckFramebufferStatusOES(CallObserver* observer, uint32_t target);
void glClearColorx(CallObserver* observer, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
void glClearColorxOES(CallObserver* observer, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
void glClearDepthfOES(CallObserver* observer, GLclampf depth);
void glClearDepthx(CallObserver* observer, GLfixed depth);
void glClearDepthxOES(CallObserver* observer, GLfixed depth);
void glClientActiveTexture(CallObserver* observer, uint32_t texture);
void glClipPlanef(CallObserver* observer, uint32_t p, GLfloat* eqn);
void glClipPlanefIMG(CallObserver* observer, uint32_t p, GLfloat* eqn);
void glClipPlanefOES(CallObserver* observer, uint32_t plane, GLfloat* equation);
void glClipPlanex(CallObserver* observer, uint32_t plane, GLfixed* equation);
void glClipPlanexIMG(CallObserver* observer, uint32_t p, GLfixed* eqn);
void glClipPlanexOES(CallObserver* observer, uint32_t plane, GLfixed* equation);
void glColor4f(CallObserver* observer, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void glColor4ub(CallObserver* observer, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
void glColor4x(CallObserver* observer, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
void glColor4xOES(CallObserver* observer, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
void glColorPointer(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer);
void glCurrentPaletteMatrixOES(CallObserver* observer, GLuint matrixpaletteindex);
void glDeleteFramebuffersOES(CallObserver* observer, GLsizei n, GLuint* framebuffers);
void glDeleteRenderbuffersOES(CallObserver* observer, GLsizei n, GLuint* renderbuffers);
void glDepthRangefOES(CallObserver* observer, GLclampf n, GLclampf f);
void glDepthRangex(CallObserver* observer, GLfixed n, GLfixed f);
void glDepthRangexOES(CallObserver* observer, GLfixed n, GLfixed f);
void glDisableClientState(CallObserver* observer, uint32_t array);
void glDrawTexfOES(CallObserver* observer, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
void glDrawTexfvOES(CallObserver* observer, GLfloat* coords);
void glDrawTexiOES(CallObserver* observer, GLint x, GLint y, GLint z, GLint width, GLint height);
void glDrawTexivOES(CallObserver* observer, GLint* coords);
void glDrawTexsOES(CallObserver* observer, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
void glDrawTexsvOES(CallObserver* observer, GLshort* coords);
void glDrawTexxOES(CallObserver* observer, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
void glDrawTexxvOES(CallObserver* observer, GLfixed* coords);
void glEnableClientState(CallObserver* observer, uint32_t array);
void glFogf(CallObserver* observer, uint32_t pname, GLfloat param);
void glFogfv(CallObserver* observer, uint32_t pname, GLfloat* params);
void glFogx(CallObserver* observer, uint32_t pname, GLfixed param);
void glFogxOES(CallObserver* observer, uint32_t pname, GLfixed param);
void glFogxv(CallObserver* observer, uint32_t pname, GLfixed* param);
void glFogxvOES(CallObserver* observer, uint32_t pname, GLfixed* param);
void glFramebufferRenderbufferOES(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t renderbuffertarget, GLuint renderbuffer);
void glFramebufferTexture2DOES(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level);
void glFrustumf(CallObserver* observer, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
void glFrustumfOES(CallObserver* observer, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
void glFrustumx(CallObserver* observer, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
void glFrustumxOES(CallObserver* observer, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
void glGenFramebuffersOES(CallObserver* observer, GLsizei n, GLuint* framebuffers);
void glGenRenderbuffersOES(CallObserver* observer, GLsizei n, GLuint* renderbuffers);
void glGenerateMipmapOES(CallObserver* observer, uint32_t target);
void glGetClipPlanef(CallObserver* observer, uint32_t plane, GLfloat* equation);
void glGetClipPlanefOES(CallObserver* observer, uint32_t plane, GLfloat* equation);
void glGetClipPlanex(CallObserver* observer, uint32_t plane, GLfixed* equation);
void glGetClipPlanexOES(CallObserver* observer, uint32_t plane, GLfixed* equation);
void glGetFixedv(CallObserver* observer, uint32_t pname, GLfixed* params);
void glGetFixedvOES(CallObserver* observer, uint32_t pname, GLfixed* params);
void glGetFramebufferAttachmentParameterivOES(CallObserver* observer, uint32_t target, uint32_t attachment, uint32_t pname, GLint* params);
void glGetLightfv(CallObserver* observer, uint32_t light, uint32_t pname, GLfloat* params);
void glGetLightxv(CallObserver* observer, uint32_t light, uint32_t pname, GLfixed* params);
void glGetLightxvOES(CallObserver* observer, uint32_t light, uint32_t pname, GLfixed* params);
void glGetMaterialfv(CallObserver* observer, uint32_t face, uint32_t pname, GLfloat* params);
void glGetMaterialxv(CallObserver* observer, uint32_t face, uint32_t pname, GLfixed* params);
void glGetMaterialxvOES(CallObserver* observer, uint32_t face, uint32_t pname, GLfixed* params);
void glGetRenderbufferParameterivOES(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glGetTexEnvfv(CallObserver* observer, uint32_t target, uint32_t pname, GLfloat* params);
void glGetTexEnviv(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glGetTexEnvxv(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glGetTexEnvxvOES(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glGetTexGenfvOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLfloat* params);
void glGetTexGenivOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLint* params);
void glGetTexGenxvOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLfixed* params);
void glGetTexParameterxv(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glGetTexParameterxvOES(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
GLboolean glIsFramebufferOES(CallObserver* observer, GLuint framebuffer);
GLboolean glIsRenderbufferOES(CallObserver* observer, GLuint renderbuffer);
void glLightModelf(CallObserver* observer, uint32_t pname, GLfloat param);
void glLightModelfv(CallObserver* observer, uint32_t pname, GLfloat* params);
void glLightModelx(CallObserver* observer, uint32_t pname, GLfixed param);
void glLightModelxOES(CallObserver* observer, uint32_t pname, GLfixed param);
void glLightModelxv(CallObserver* observer, uint32_t pname, GLfixed* param);
void glLightModelxvOES(CallObserver* observer, uint32_t pname, GLfixed* param);
void glLightf(CallObserver* observer, uint32_t light, uint32_t pname, GLfloat param);
void glLightfv(CallObserver* observer, uint32_t light, uint32_t pname, GLfloat* params);
void glLightx(CallObserver* observer, uint32_t light, uint32_t pname, GLfixed param);
void glLightxOES(CallObserver* observer, uint32_t light, uint32_t pname, GLfixed param);
void glLightxv(CallObserver* observer, uint32_t light, uint32_t pname, GLfixed* params);
void glLightxvOES(CallObserver* observer, uint32_t light, uint32_t pname, GLfixed* params);
void glLineWidthx(CallObserver* observer, GLfixed width);
void glLineWidthxOES(CallObserver* observer, GLfixed width);
void glLoadIdentity(CallObserver* observer);
void glLoadMatrixf(CallObserver* observer, GLfloat* m);
void glLoadMatrixx(CallObserver* observer, GLfixed* m);
void glLoadMatrixxOES(CallObserver* observer, GLfixed* m);
void glLoadPaletteFromModelViewMatrixOES(CallObserver* observer);
void glLogicOp(CallObserver* observer, uint32_t opcode);
void glMaterialf(CallObserver* observer, uint32_t face, uint32_t pname, GLfloat param);
void glMaterialfv(CallObserver* observer, uint32_t face, uint32_t pname, GLfloat* params);
void glMaterialx(CallObserver* observer, uint32_t face, uint32_t pname, GLfixed param);
void glMaterialxOES(CallObserver* observer, uint32_t face, uint32_t pname, GLfixed param);
void glMaterialxv(CallObserver* observer, uint32_t face, uint32_t pname, GLfixed* param);
void glMaterialxvOES(CallObserver* observer, uint32_t face, uint32_t pname, GLfixed* param);
void glMatrixIndexPointerOES(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer);
void glMatrixMode(CallObserver* observer, uint32_t mode);
void glMultMatrixf(CallObserver* observer, GLfloat* m);
void glMultMatrixx(CallObserver* observer, GLfixed* m);
void glMultMatrixxOES(CallObserver* observer, GLfixed* m);
void glMultiTexCoord4f(CallObserver* observer, uint32_t target, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
void glMultiTexCoord4x(CallObserver* observer, uint32_t texture, GLfixed v0, GLfixed v1, GLfixed v2, GLfixed v3);
void glMultiTexCoord4xOES(CallObserver* observer, uint32_t texture, GLfixed v0, GLfixed v1, GLfixed v2, GLfixed v3);
void glNormal3f(CallObserver* observer, GLfloat nx, GLfloat ny, GLfloat nz);
void glNormal3x(CallObserver* observer, GLfixed nx, GLfixed ny, GLfixed nz);
void glNormal3xOES(CallObserver* observer, GLfixed nx, GLfixed ny, GLfixed nz);
void glNormalPointer(CallObserver* observer, uint32_t type, GLsizei stride, void* pointer);
void glOrthof(CallObserver* observer, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
void glOrthofOES(CallObserver* observer, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
void glOrthox(CallObserver* observer, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
void glOrthoxOES(CallObserver* observer, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
void glPointParameterf(CallObserver* observer, uint32_t pname, GLfloat param);
void glPointParameterfv(CallObserver* observer, uint32_t pname, GLfloat* params);
void glPointParameterx(CallObserver* observer, uint32_t pname, GLfixed param);
void glPointParameterxOES(CallObserver* observer, uint32_t pname, GLfixed param);
void glPointParameterxv(CallObserver* observer, uint32_t pname, GLfixed* params);
void glPointParameterxvOES(CallObserver* observer, uint32_t pname, GLfixed* params);
void glPointSize(CallObserver* observer, GLfloat size);
void glPointSizePointerOES(CallObserver* observer, uint32_t type, GLsizei stride, void* pointer);
void glPointSizex(CallObserver* observer, GLfixed size);
void glPointSizexOES(CallObserver* observer, GLfixed size);
void glPolygonOffsetx(CallObserver* observer, GLfixed factor, GLfixed units);
void glPolygonOffsetxOES(CallObserver* observer, GLfixed factor, GLfixed units);
void glPopMatrix(CallObserver* observer);
void glPushMatrix(CallObserver* observer);
uint32_t glQueryMatrixxOES(CallObserver* observer, GLfixed* mantissa, GLint* exponent);
void glRenderbufferStorageOES(CallObserver* observer, uint32_t target, uint32_t internalformat, GLsizei width, GLsizei height);
void glRotatef(CallObserver* observer, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
void glRotatex(CallObserver* observer, GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
void glRotatexOES(CallObserver* observer, GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
void glSampleCoveragex(CallObserver* observer, GLclampx value, GLboolean invert);
void glSampleCoveragexOES(CallObserver* observer, GLclampx value, GLboolean invert);
void glScalef(CallObserver* observer, GLfloat x, GLfloat y, GLfloat z);
void glScalex(CallObserver* observer, GLfixed x, GLfixed y, GLfixed z);
void glScalexOES(CallObserver* observer, GLfixed x, GLfixed y, GLfixed z);
void glShadeModel(CallObserver* observer, uint32_t mode);
void glTexCoordPointer(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer);
void glTexEnvf(CallObserver* observer, uint32_t target, uint32_t pname, GLfloat param);
void glTexEnvfv(CallObserver* observer, uint32_t target, uint32_t pname, GLfloat* params);
void glTexEnvi(CallObserver* observer, uint32_t target, uint32_t pname, GLint param);
void glTexEnviv(CallObserver* observer, uint32_t target, uint32_t pname, GLint* params);
void glTexEnvx(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed param);
void glTexEnvxOES(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed param);
void glTexEnvxv(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glTexEnvxvOES(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glTexGenfOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLfloat param);
void glTexGenfvOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLfloat* params);
void glTexGeniOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLint param);
void glTexGenivOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLint* params);
void glTexGenxOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLfixed param);
void glTexGenxvOES(CallObserver* observer, uint32_t coord, uint32_t pname, GLfixed* params);
void glTexParameterx(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed param);
void glTexParameterxOES(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed param);
void glTexParameterxv(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glTexParameterxvOES(CallObserver* observer, uint32_t target, uint32_t pname, GLfixed* params);
void glTranslatef(CallObserver* observer, GLfloat x, GLfloat y, GLfloat z);
void glTranslatex(CallObserver* observer, GLfixed x, GLfixed y, GLfixed z);
void glTranslatexOES(CallObserver* observer, GLfixed x, GLfixed y, GLfixed z);
void glVertexPointer(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer);
void glWeightPointerOES(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer);
void glColorPointerBounds(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void glNormalPointerBounds(CallObserver* observer, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void glTexCoordPointerBounds(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void glVertexPointerBounds(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void glPointSizePointerOESBounds(CallObserver* observer, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void glMatrixIndexPointerOESBounds(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void glWeightPointerOESBounds(CallObserver* observer, GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
void contextInfo(CallObserver* observer, uint32_t constant_count, uint32_t* constant_names, uint32_t* constant_offsets, uint32_t* constant_sizes, uint8_t* constant_data, GLsizei backbuffer_width, GLsizei backbuffer_height, uint32_t backbuffer_color_fmt, uint32_t backbuffer_depth_fmt, uint32_t backbuffer_stencil_fmt, bool reset_viewport_scissor, bool preserve_buffers_on_swap);
void replayCreateRenderer(CallObserver* observer, uint32_t id);
void replayBindRenderer(CallObserver* observer, uint32_t id);
void replayChangeBackbuffer(CallObserver* observer, GLsizei backbuffer_width, GLsizei backbuffer_height, uint32_t backbuffer_color_fmt, uint32_t backbuffer_depth_fmt, uint32_t backbuffer_stencil_fmt, bool reset_viewport_scissor);
void startTimer(CallObserver* observer, uint8_t index);
uint64_t stopTimer(CallObserver* observer, uint8_t index);
void flushPostBuffer(CallObserver* observer);
// Globals
EGLContextToContext__R EGLContexts;
EGLImageKHRToAndroidNativeBufferExtra__R EGLImages;
ContextID NextContextID;
ThreadID CurrentThread;
ThreadIDToContext__R Contexts;
GLXContextToContext__R GLXContexts;
HGLRCToContext__R WGLContexts;
CGLContextObjToContext__R CGLContexts;
protected:
GlesImports mImports;
#include "gles_extras.inl"
};
// Inline methods
inline void GlesSpy::init() {
mImports.resolve();
EGLContexts = EGLContextToContext__R();
EGLImages = EGLImageKHRToAndroidNativeBufferExtra__R();
NextContextID = 0;
CurrentThread = 0;
Contexts = ThreadIDToContext__R();
GLXContexts = GLXContextToContext__R();
WGLContexts = HGLRCToContext__R();
CGLContexts = CGLContextObjToContext__R();
}
inline const GlesImports& GlesSpy::imports() const {
return mImports;
}
#include "gles_inlines.inl"
} // namespace gapii
#endif // GAPII_GLES_SPY_H