cocos-engine-external/mac/include/pvrsdk/DynamicGles.h

5499 lines
282 KiB
C++
Executable File

#pragma once
#include "DynamicEgl.h"
#include "pvr_openlib.h"
#ifdef GL_PROTOTYPES
#undef GL_PROTOTYPES
#endif
#define GL_NO_PROTOTYPES
#define EGL_NO_PROTOTYPES
#if defined( _WIN32 )
#define WIN32_LEAN_AND_MEAN
#define NOMINMAX
#include <Windows.h>
#endif
#include <utility>
#include <stdint.h>
#include <string>
// DETERMINE FEATURE LEVEL
#if defined(DYNAMICGLES_GLES31)
#define DYNAMICGLES_ENABLE_GLES31
#define DYNAMICGLES_ENABLE_GLES3
#define DYNAMICGLES_ENABLE_GLES2
#elif defined(DYNAMICGLES_GLES30)
#define DYNAMICGLES_ENABLE_GLES30
#define DYNAMICGLES_ENABLE_GLES2
#elif defined(DYNAMICGLES_GLES20)
#define DYNAMICGLES_ENABLE_GLES2
#else
#if !defined(DYNAMICGLES_GLES32)
#define DYNAMICGLES_GLES32
#endif
#define DYNAMICGLES_ENABLE_GLES32
#define DYNAMICGLES_ENABLE_GLES31
#define DYNAMICGLES_ENABLE_GLES3
#define DYNAMICGLES_ENABLE_GLES2
#endif
// DETERMINE IF FUNCTIONS SHOULD BE PREPENDED WITH gl OR PUT IN gl:: NAMESPACE (DEFAULT IS NAMESPACE)
#ifndef DYNAMICGLES_NO_NAMESPACE
#define DYNAMICGLES_FUNCTION(name) GL_APIENTRY name
#else
#if TARGET_OS_IPHONE
#define DYNAMICGLES_FUNCTION(name) GL_APIENTRY name
#else
#define DYNAMICGLES_FUNCTION(name) GL_APIENTRY gl##name
#endif
#endif
// DYNAMICGLES_FUNCTION THE PLATFORM SPECIFIC LIBRARY NAME
namespace gl {
namespace internals {
#ifdef _WIN32
static const char* libName = "libGLESv2.dll";
#elif defined(__APPLE__)
static const char* libName = "libGLESv2.dylib";
#else
static const char* libName = "libGLESv2.so";
#endif
}
}
// LOAD HEADER FILES DEPENDING ON FEATURE LEVEL
#if !TARGET_OS_IPHONE
#include "GLES3/gl32.h"
#include "GLES2/gl2ext.h"
#else
#include <openGLES/ES3/gl.h>
#include <openGLES/ES3/glext.h>
#include <openGLES/ES2/glext.h>
#endif
namespace gl {
namespace internals {
namespace Gl31FuncName {
// KEEP A LIST USED TO REFERENCE THE FUNCTIONS
enum OpenGLES31FunctionName
{
//// OPENGL ES 31 ////
DispatchCompute, DispatchComputeIndirect, DrawArraysIndirect, DrawElementsIndirect, FramebufferParameteri, GetFramebufferParameteriv, GetProgramInterfaceiv,
GetProgramResourceIndex, GetProgramResourceName, GetProgramResourceiv, GetProgramResourceLocation, UseProgramStages, ActiveShaderProgram, CreateShaderProgramv,
BindProgramPipeline, DeleteProgramPipelines, GenProgramPipelines, IsProgramPipeline, GetProgramPipelineiv, ProgramUniform1i, ProgramUniform2i, ProgramUniform3i,
ProgramUniform4i, ProgramUniform1ui, ProgramUniform2ui, ProgramUniform3ui, ProgramUniform4ui, ProgramUniform1f, ProgramUniform2f, ProgramUniform3f,
ProgramUniform4f, ProgramUniform1iv, ProgramUniform2iv, ProgramUniform3iv, ProgramUniform4iv, ProgramUniform1uiv, ProgramUniform2uiv, ProgramUniform3uiv,
ProgramUniform4uiv, ProgramUniform1fv, ProgramUniform2fv, ProgramUniform3fv, ProgramUniform4fv, ProgramUniformMatrix2fv, ProgramUniformMatrix3fv,
ProgramUniformMatrix4fv, ProgramUniformMatrix2x3fv, ProgramUniformMatrix3x2fv, ProgramUniformMatrix2x4fv, ProgramUniformMatrix4x2fv, ProgramUniformMatrix3x4fv,
ProgramUniformMatrix4x3fv, ValidateProgramPipeline, GetProgramPipelineInfoLog, BindImageTexture, GetBooleani_v, MemoryBarrier, MemoryBarrierByRegion,
TexStorage2DMultisample, GetMultisamplefv, SampleMaski, GetTexLevelParameteriv, GetTexLevelParameterfv, BindVertexBuffer, VertexAttribFormat, VertexAttribIFormat,
VertexAttribBinding, VertexBindingDivisor,
NUMBER_OF_OPENGLES3_FUNCTIONS
};
}
// THIS FUNCTION PRELOADS ALL ES POINTERS ON FIRST CALL
inline void* getEs31Function(gl::internals::Gl31FuncName::OpenGLES31FunctionName funcname)
{
static void* FunctionTable[Gl31FuncName::NUMBER_OF_OPENGLES3_FUNCTIONS];
// GET FUNCTION POINTERS --- ONCE!!!! ///
#if !TARGET_OS_IPHONE
if (!FunctionTable[0])
{
pvr::lib::LIBTYPE lib = pvr::lib::openlib(libName);
if (!lib)
{
Log_Error("OpenGL ES Bindings: Failed to open library %s\n", libName);
}
else
{
Log_Info("OpenGL ES Bindings: Successfully loaded library %s for OpenGL ES 3.1\n", libName);
}
FunctionTable[Gl31FuncName::DispatchCompute] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDispatchCompute");
FunctionTable[Gl31FuncName::DispatchComputeIndirect] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDispatchComputeIndirect");
FunctionTable[Gl31FuncName::DrawArraysIndirect] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawArraysIndirect");
FunctionTable[Gl31FuncName::DrawElementsIndirect] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawElementsIndirect");
FunctionTable[Gl31FuncName::FramebufferParameteri] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFramebufferParameteri");
FunctionTable[Gl31FuncName::GetFramebufferParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetFramebufferParameteriv");
FunctionTable[Gl31FuncName::GetProgramInterfaceiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramInterfaceiv");
FunctionTable[Gl31FuncName::GetProgramResourceIndex] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramResourceIndex");
FunctionTable[Gl31FuncName::GetProgramResourceName] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramResourceName");
FunctionTable[Gl31FuncName::GetProgramResourceiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramResourceiv");
FunctionTable[Gl31FuncName::GetProgramResourceLocation] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramResourceLocation");
FunctionTable[Gl31FuncName::UseProgramStages] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUseProgramStages");
FunctionTable[Gl31FuncName::ActiveShaderProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glActiveShaderProgram");
FunctionTable[Gl31FuncName::CreateShaderProgramv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCreateShaderProgramv");
FunctionTable[Gl31FuncName::BindProgramPipeline] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindProgramPipeline");
FunctionTable[Gl31FuncName::DeleteProgramPipelines] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteProgramPipelines");
FunctionTable[Gl31FuncName::GenProgramPipelines] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenProgramPipelines");
FunctionTable[Gl31FuncName::IsProgramPipeline] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsProgramPipeline");
FunctionTable[Gl31FuncName::GetProgramPipelineiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramPipelineiv");
FunctionTable[Gl31FuncName::ProgramUniform1i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform1i");
FunctionTable[Gl31FuncName::ProgramUniform2i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform2i");
FunctionTable[Gl31FuncName::ProgramUniform3i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform3i");
FunctionTable[Gl31FuncName::ProgramUniform4i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform4i");
FunctionTable[Gl31FuncName::ProgramUniform1ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform1ui");
FunctionTable[Gl31FuncName::ProgramUniform2ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform2ui");
FunctionTable[Gl31FuncName::ProgramUniform3ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform3ui");
FunctionTable[Gl31FuncName::ProgramUniform4ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform4ui");
FunctionTable[Gl31FuncName::ProgramUniform1f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform1f");
FunctionTable[Gl31FuncName::ProgramUniform2f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform2f");
FunctionTable[Gl31FuncName::ProgramUniform3f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform3f");
FunctionTable[Gl31FuncName::ProgramUniform4f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform4f");
FunctionTable[Gl31FuncName::ProgramUniform1iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform1iv");
FunctionTable[Gl31FuncName::ProgramUniform2iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform2iv");
FunctionTable[Gl31FuncName::ProgramUniform3iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform3iv");
FunctionTable[Gl31FuncName::ProgramUniform4iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform4iv");
FunctionTable[Gl31FuncName::ProgramUniform1uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform1uiv");
FunctionTable[Gl31FuncName::ProgramUniform2uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform2uiv");
FunctionTable[Gl31FuncName::ProgramUniform3uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform3uiv");
FunctionTable[Gl31FuncName::ProgramUniform4uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform4uiv");
FunctionTable[Gl31FuncName::ProgramUniform1fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform1fv");
FunctionTable[Gl31FuncName::ProgramUniform2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform2fv");
FunctionTable[Gl31FuncName::ProgramUniform3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform3fv");
FunctionTable[Gl31FuncName::ProgramUniform4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniform4fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix2fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix3fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix4fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix2x3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix2x3fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix3x2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix3x2fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix2x4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix2x4fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix4x2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix4x2fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix3x4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix3x4fv");
FunctionTable[Gl31FuncName::ProgramUniformMatrix4x3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramUniformMatrix4x3fv");
FunctionTable[Gl31FuncName::ValidateProgramPipeline] = pvr::lib::getLibFunctionChecked<void*>(lib, "glValidateProgramPipeline");
FunctionTable[Gl31FuncName::GetProgramPipelineInfoLog] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramPipelineInfoLog");
FunctionTable[Gl31FuncName::BindImageTexture] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindImageTexture");
FunctionTable[Gl31FuncName::GetBooleani_v] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetBooleani_v");
FunctionTable[Gl31FuncName::MemoryBarrier] = pvr::lib::getLibFunctionChecked<void*>(lib, "glMemoryBarrier");
FunctionTable[Gl31FuncName::MemoryBarrierByRegion] = pvr::lib::getLibFunctionChecked<void*>(lib, "glMemoryBarrierByRegion");
FunctionTable[Gl31FuncName::TexStorage2DMultisample] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexStorage2DMultisample");
FunctionTable[Gl31FuncName::GetMultisamplefv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetMultisamplefv");
FunctionTable[Gl31FuncName::SampleMaski] = pvr::lib::getLibFunctionChecked<void*>(lib, "glSampleMaski");
FunctionTable[Gl31FuncName::GetTexLevelParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetTexLevelParameteriv");
FunctionTable[Gl31FuncName::GetTexLevelParameterfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetTexLevelParameterfv");
FunctionTable[Gl31FuncName::BindVertexBuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindVertexBuffer");
FunctionTable[Gl31FuncName::VertexAttribFormat] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribFormat");
FunctionTable[Gl31FuncName::VertexAttribIFormat] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribIFormat");
FunctionTable[Gl31FuncName::VertexAttribBinding] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribBinding");
FunctionTable[Gl31FuncName::VertexBindingDivisor] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexBindingDivisor");
}
#endif
return FunctionTable[funcname];
}
}
}
/************ OPENGL ES API ************/
#ifndef DYNAMICGLES_NO_NAMESPACE
namespace gl {
#elif TARGET_OS_IPHONE
namespace gl {
namespace internals {
#endif
inline void DYNAMICGLES_FUNCTION(DispatchCompute)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDISPATCHCOMPUTEPROC _DispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::DispatchCompute);
return _DispatchCompute(num_groups_x, num_groups_y, num_groups_z);
#endif
}
inline void DYNAMICGLES_FUNCTION(DispatchComputeIndirect)(GLintptr indirect)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDISPATCHCOMPUTEINDIRECTPROC _DispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::DispatchComputeIndirect);
return _DispatchComputeIndirect(indirect);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawArraysIndirect)(GLenum mode, const void* indirect)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWARRAYSINDIRECTPROC _DrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::DrawArraysIndirect);
return _DrawArraysIndirect(mode, indirect);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawElementsIndirect)(GLenum mode, GLenum type, const void* indirect)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWELEMENTSINDIRECTPROC _DrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::DrawElementsIndirect);
return _DrawElementsIndirect(mode, type, indirect);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferParameteri)(GLenum target, GLenum pname, GLint param)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERPARAMETERIPROC _FramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::FramebufferParameteri);
return _FramebufferParameteri(target, pname, param);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetFramebufferParameteriv)(GLenum target, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETFRAMEBUFFERPARAMETERIVPROC _GetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetFramebufferParameteriv);
return _GetFramebufferParameteriv(target, pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetProgramInterfaceiv)(GLuint program, GLenum programInterface, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMINTERFACEIVPROC _GetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramInterfaceiv);
return _GetProgramInterfaceiv(program, programInterface, pname, params);
#endif
}
inline GLuint DYNAMICGLES_FUNCTION(GetProgramResourceIndex)(GLuint program, GLenum programInterface, const GLchar* name)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMRESOURCEINDEXPROC _GetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramResourceIndex);
return _GetProgramResourceIndex(program, programInterface, name);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetProgramResourceName)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMRESOURCENAMEPROC _GetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramResourceName);
return _GetProgramResourceName(program, programInterface, index, bufSize, length, name);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetProgramResourceiv)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMRESOURCEIVPROC _GetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramResourceiv);
return _GetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
#endif
}
inline GLint DYNAMICGLES_FUNCTION(GetProgramResourceLocation)(GLuint program, GLenum programInterface, const GLchar* name)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMRESOURCELOCATIONPROC _GetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramResourceLocation);
return _GetProgramResourceLocation(program, programInterface, name);
#endif
}
inline void DYNAMICGLES_FUNCTION(UseProgramStages)(GLuint pipeline, GLbitfield stages, GLuint program)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLUSEPROGRAMSTAGESPROC _UseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::UseProgramStages);
return _UseProgramStages(pipeline, stages, program);
#endif
}
inline void DYNAMICGLES_FUNCTION(ActiveShaderProgram)(GLuint pipeline, GLuint program)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLACTIVESHADERPROGRAMPROC _ActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ActiveShaderProgram);
return _ActiveShaderProgram(pipeline, program);
#endif
}
inline GLuint DYNAMICGLES_FUNCTION(CreateShaderProgramv)(GLenum type, GLsizei count, const GLchar* const* strings)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCREATESHADERPROGRAMVPROC _CreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::CreateShaderProgramv);
return _CreateShaderProgramv(type, count, strings);
#endif
}
inline void DYNAMICGLES_FUNCTION(BindProgramPipeline)(GLuint pipeline)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBINDPROGRAMPIPELINEPROC _BindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::BindProgramPipeline);
return _BindProgramPipeline(pipeline);
#endif
}
inline void DYNAMICGLES_FUNCTION(DeleteProgramPipelines)(GLsizei n, const GLuint* pipelines)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDELETEPROGRAMPIPELINESPROC _DeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::DeleteProgramPipelines);
return _DeleteProgramPipelines(n, pipelines);
#endif
}
inline void DYNAMICGLES_FUNCTION(GenProgramPipelines)(GLsizei n, GLuint* pipelines)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGENPROGRAMPIPELINESPROC _GenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GenProgramPipelines);
return _GenProgramPipelines(n, pipelines);
#endif
}
inline GLboolean DYNAMICGLES_FUNCTION(IsProgramPipeline)(GLuint pipeline)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLISPROGRAMPIPELINEPROC _IsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::IsProgramPipeline);
return _IsProgramPipeline(pipeline);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetProgramPipelineiv)(GLuint pipeline, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMPIPELINEIVPROC _GetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramPipelineiv);
return _GetProgramPipelineiv(pipeline, pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1i)(GLuint program, GLint location, GLint v0)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1IPROC _ProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform1i);
return _ProgramUniform1i(program, location, v0);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2i)(GLuint program, GLint location, GLint v0, GLint v1)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2IPROC _ProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform2i);
return _ProgramUniform2i(program, location, v0, v1);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3IPROC _ProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform3i);
return _ProgramUniform3i(program, location, v0, v1, v2);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4IPROC _ProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform4i);
return _ProgramUniform4i(program, location, v0, v1, v2, v3);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1ui)(GLuint program, GLint location, GLuint v0)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1UIPROC _ProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform1ui);
return _ProgramUniform1ui(program, location, v0);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2ui)(GLuint program, GLint location, GLuint v0, GLuint v1)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2UIPROC _ProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform2ui);
return _ProgramUniform2ui(program, location, v0, v1);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3UIPROC _ProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform3ui);
return _ProgramUniform3ui(program, location, v0, v1, v2);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4UIPROC _ProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform4ui);
return _ProgramUniform4ui(program, location, v0, v1, v2, v3);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1f)(GLuint program, GLint location, GLfloat v0)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1FPROC _ProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform1f);
return _ProgramUniform1f(program, location, v0);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2f)(GLuint program, GLint location, GLfloat v0, GLfloat v1)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2FPROC _ProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform2f);
return _ProgramUniform2f(program, location, v0, v1);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3FPROC _ProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform3f);
return _ProgramUniform3f(program, location, v0, v1, v2);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4FPROC _ProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform4f);
return _ProgramUniform4f(program, location, v0, v1, v2, v3);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1iv)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1IVPROC _ProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform1iv);
return _ProgramUniform1iv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2iv)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2IVPROC _ProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform2iv);
return _ProgramUniform2iv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3iv)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3IVPROC _ProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform3iv);
return _ProgramUniform3iv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4iv)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4IVPROC _ProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform4iv);
return _ProgramUniform4iv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1UIVPROC _ProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform1uiv);
return _ProgramUniform1uiv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2UIVPROC _ProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform2uiv);
return _ProgramUniform2uiv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3UIVPROC _ProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform3uiv);
return _ProgramUniform3uiv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4UIVPROC _ProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform4uiv);
return _ProgramUniform4uiv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1FVPROC _ProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform1fv);
return _ProgramUniform1fv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2FVPROC _ProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform2fv);
return _ProgramUniform2fv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3FVPROC _ProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform3fv);
return _ProgramUniform3fv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4FVPROC _ProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniform4fv);
return _ProgramUniform4fv(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX2FVPROC _ProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix2fv);
return _ProgramUniformMatrix2fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX3FVPROC _ProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix3fv);
return _ProgramUniformMatrix3fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX4FVPROC _ProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix4fv);
return _ProgramUniformMatrix4fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix2x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC _ProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix2x3fv);
return _ProgramUniformMatrix2x3fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix3x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC _ProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix3x2fv);
return _ProgramUniformMatrix3x2fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix2x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC _ProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix2x4fv);
return _ProgramUniformMatrix2x4fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix4x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC _ProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix4x2fv);
return _ProgramUniformMatrix4x2fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix3x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC _ProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix3x4fv);
return _ProgramUniformMatrix3x4fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix4x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC _ProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ProgramUniformMatrix4x3fv);
return _ProgramUniformMatrix4x3fv(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ValidateProgramPipeline)(GLuint pipeline)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLVALIDATEPROGRAMPIPELINEPROC _ValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::ValidateProgramPipeline);
return _ValidateProgramPipeline(pipeline);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetProgramPipelineInfoLog)(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMPIPELINEINFOLOGPROC _GetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetProgramPipelineInfoLog);
return _GetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
#endif
}
inline void DYNAMICGLES_FUNCTION(BindImageTexture)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBINDIMAGETEXTUREPROC _BindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::BindImageTexture);
return _BindImageTexture(unit, texture, level, layered, layer, access, format);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetBooleani_v)(GLenum target, GLuint index, GLboolean* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETBOOLEANI_VPROC _GetBooleani_v = (PFNGLGETBOOLEANI_VPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetBooleani_v);
return _GetBooleani_v(target, index, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(MemoryBarrier)(GLbitfield barriers)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLMEMORYBARRIERPROC _MemoryBarrier = (PFNGLMEMORYBARRIERPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::MemoryBarrier);
return _MemoryBarrier(barriers);
#endif
}
inline void DYNAMICGLES_FUNCTION(MemoryBarrierByRegion)(GLbitfield barriers)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLMEMORYBARRIERBYREGIONPROC _MemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::MemoryBarrierByRegion);
return _MemoryBarrierByRegion(barriers);
#endif
}
inline void DYNAMICGLES_FUNCTION(TexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXSTORAGE2DMULTISAMPLEPROC _TexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::TexStorage2DMultisample);
return _TexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetMultisamplefv)(GLenum pname, GLuint index, GLfloat* val)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETMULTISAMPLEFVPROC _GetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetMultisamplefv);
return _GetMultisamplefv(pname, index, val);
#endif
}
inline void DYNAMICGLES_FUNCTION(SampleMaski)(GLuint maskNumber, GLbitfield mask)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLSAMPLEMASKIPROC _SampleMaski = (PFNGLSAMPLEMASKIPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::SampleMaski);
return _SampleMaski(maskNumber, mask);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETTEXLEVELPARAMETERIVPROC _GetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetTexLevelParameteriv);
return _GetTexLevelParameteriv(target, level, pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETTEXLEVELPARAMETERFVPROC _GetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::GetTexLevelParameterfv);
return _GetTexLevelParameterfv(target, level, pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(BindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBINDVERTEXBUFFERPROC _BindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::BindVertexBuffer);
return _BindVertexBuffer(bindingindex, buffer, offset, stride);
#endif
}
inline void DYNAMICGLES_FUNCTION(VertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLVERTEXATTRIBFORMATPROC _VertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::VertexAttribFormat);
return _VertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
#endif
}
inline void DYNAMICGLES_FUNCTION(VertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLVERTEXATTRIBIFORMATPROC _VertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::VertexAttribIFormat);
return _VertexAttribIFormat(attribindex, size, type, relativeoffset);
#endif
}
inline void DYNAMICGLES_FUNCTION(VertexAttribBinding)(GLuint attribindex, GLuint bindingindex)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLVERTEXATTRIBBINDINGPROC _VertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::VertexAttribBinding);
return _VertexAttribBinding(attribindex, bindingindex);
#endif
}
inline void DYNAMICGLES_FUNCTION(VertexBindingDivisor)(GLuint bindingindex, GLuint divisor)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLVERTEXBINDINGDIVISORPROC _VertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)gl::internals::getEs31Function(gl::internals::Gl31FuncName::VertexBindingDivisor);
return _VertexBindingDivisor(bindingindex, divisor);
#endif
}
#ifndef DYNAMICGLES_NO_NAMESPACE
}
#elif TARGET_OS_IPHONE
}
}
#endif
namespace gl {
namespace internals {
namespace Gl3FuncName {
enum OpenGLES3FunctionName
{
//// OPENGL ES 3 ////
ReadBuffer, DrawRangeElements, TexImage3D, TexSubImage3D, CopyTexSubImage3D, CompressedTexImage3D, CompressedTexSubImage3D, GenQueries, DeleteQueries, IsQuery,
BeginQuery, EndQuery, GetQueryiv, GetQueryObjectuiv, UnmapBuffer, GetBufferPointerv, DrawBuffers, UniformMatrix2x3fv, UniformMatrix3x2fv, UniformMatrix2x4fv,
UniformMatrix4x2fv, UniformMatrix3x4fv, UniformMatrix4x3fv, BlitFramebuffer, RenderbufferStorageMultisample, FramebufferTextureLayer, MapBufferRange,
FlushMappedBufferRange, BindVertexArray, DeleteVertexArrays, GenVertexArrays, IsVertexArray, GetIntegeri_v, BeginTransformFeedback, EndTransformFeedback,
BindBufferRange, BindBufferBase, TransformFeedbackVaryings, GetTransformFeedbackVarying, VertexAttribIPointer, GetVertexAttribIiv, GetVertexAttribIuiv,
VertexAttribI4i, VertexAttribI4ui, VertexAttribI4iv, VertexAttribI4uiv, GetUniformuiv, GetFragDataLocation, Uniform1ui, Uniform2ui, Uniform3ui, Uniform4ui,
Uniform1uiv, Uniform2uiv, Uniform3uiv, Uniform4uiv, ClearBufferiv, ClearBufferuiv, ClearBufferfv, ClearBufferfi, GetStringi, CopyBufferSubData, GetUniformIndices,
GetActiveUniformsiv, GetUniformBlockIndex, GetActiveUniformBlockiv, GetActiveUniformBlockName, UniformBlockBinding, DrawArraysInstanced, DrawElementsInstanced,
FenceSync, IsSync, DeleteSync, ClientWaitSync, WaitSync, GetInteger64v, GetSynciv, GetInteger64i_v, GetBufferParameteri64v, GenSamplers, DeleteSamplers, IsSampler,
BindSampler, SamplerParameteri, SamplerParameteriv, SamplerParameterf, SamplerParameterfv, GetSamplerParameteriv, GetSamplerParameterfv, VertexAttribDivisor,
BindTransformFeedback, DeleteTransformFeedbacks, GenTransformFeedbacks, IsTransformFeedback, PauseTransformFeedback, ResumeTransformFeedback, GetProgramBinary,
ProgramBinary, ProgramParameteri, InvalidateFramebuffer, InvalidateSubFramebuffer, TexStorage2D, TexStorage3D, GetInternalformativ,
NUMBER_OF_OPENGLES3_FUNCTIONS
};
}
inline void* getEs3Function(gl::internals::Gl3FuncName::OpenGLES3FunctionName funcname)
{
static void* FunctionTable[Gl3FuncName::NUMBER_OF_OPENGLES3_FUNCTIONS];
// GET FUNCTION POINTERS --- ONCE!!!! ///
if (!FunctionTable[0])
{
#if !TARGET_OS_IPHONE
pvr::lib::LIBTYPE lib = pvr::lib::openlib(gl::internals::libName);
if (!lib)
{
Log_Error("OpenGL ES Bindings: Failed to open library %s\n", gl::internals::libName);
}
else
{
Log_Info("OpenGL ES Bindings: Successfully loaded library %s for OpenGL ES 3.0\n", gl::internals::libName);
}
FunctionTable[Gl3FuncName::ReadBuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glReadBuffer");
FunctionTable[Gl3FuncName::DrawRangeElements] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawRangeElements");
FunctionTable[Gl3FuncName::TexImage3D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexImage3D");
FunctionTable[Gl3FuncName::TexSubImage3D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexSubImage3D");
FunctionTable[Gl3FuncName::CopyTexSubImage3D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCopyTexSubImage3D");
FunctionTable[Gl3FuncName::CompressedTexImage3D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCompressedTexImage3D");
FunctionTable[Gl3FuncName::CompressedTexSubImage3D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCompressedTexSubImage3D");
FunctionTable[Gl3FuncName::GenQueries] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenQueries");
FunctionTable[Gl3FuncName::DeleteQueries] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteQueries");
FunctionTable[Gl3FuncName::IsQuery] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsQuery");
FunctionTable[Gl3FuncName::BeginQuery] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBeginQuery");
FunctionTable[Gl3FuncName::EndQuery] = pvr::lib::getLibFunctionChecked<void*>(lib, "glEndQuery");
FunctionTable[Gl3FuncName::GetQueryiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetQueryiv");
FunctionTable[Gl3FuncName::GetQueryObjectuiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetQueryObjectuiv");
FunctionTable[Gl3FuncName::UnmapBuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUnmapBuffer");
FunctionTable[Gl3FuncName::GetBufferPointerv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetBufferPointerv");
FunctionTable[Gl3FuncName::DrawBuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawBuffers");
FunctionTable[Gl3FuncName::UniformMatrix2x3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix2x3fv");
FunctionTable[Gl3FuncName::UniformMatrix3x2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix3x2fv");
FunctionTable[Gl3FuncName::UniformMatrix2x4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix2x4fv");
FunctionTable[Gl3FuncName::UniformMatrix4x2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix4x2fv");
FunctionTable[Gl3FuncName::UniformMatrix3x4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix3x4fv");
FunctionTable[Gl3FuncName::UniformMatrix4x3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix4x3fv");
FunctionTable[Gl3FuncName::BlitFramebuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBlitFramebuffer");
FunctionTable[Gl3FuncName::RenderbufferStorageMultisample] = pvr::lib::getLibFunctionChecked<void*>(lib, "glRenderbufferStorageMultisample");
FunctionTable[Gl3FuncName::FramebufferTextureLayer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFramebufferTextureLayer");
FunctionTable[Gl3FuncName::MapBufferRange] = pvr::lib::getLibFunctionChecked<void*>(lib, "glMapBufferRange");
FunctionTable[Gl3FuncName::FlushMappedBufferRange] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFlushMappedBufferRange");
FunctionTable[Gl3FuncName::BindVertexArray] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindVertexArray");
FunctionTable[Gl3FuncName::DeleteVertexArrays] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteVertexArrays");
FunctionTable[Gl3FuncName::GenVertexArrays] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenVertexArrays");
FunctionTable[Gl3FuncName::IsVertexArray] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsVertexArray");
FunctionTable[Gl3FuncName::GetIntegeri_v] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetIntegeri_v");
FunctionTable[Gl3FuncName::BeginTransformFeedback] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBeginTransformFeedback");
FunctionTable[Gl3FuncName::EndTransformFeedback] = pvr::lib::getLibFunctionChecked<void*>(lib, "glEndTransformFeedback");
FunctionTable[Gl3FuncName::BindBufferRange] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindBufferRange");
FunctionTable[Gl3FuncName::BindBufferBase] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindBufferBase");
FunctionTable[Gl3FuncName::TransformFeedbackVaryings] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTransformFeedbackVaryings");
FunctionTable[Gl3FuncName::GetTransformFeedbackVarying] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetTransformFeedbackVarying");
FunctionTable[Gl3FuncName::VertexAttribIPointer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribIPointer");
FunctionTable[Gl3FuncName::GetVertexAttribIiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetVertexAttribIiv");
FunctionTable[Gl3FuncName::GetVertexAttribIuiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetVertexAttribIuiv");
FunctionTable[Gl3FuncName::VertexAttribI4i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribI4i");
FunctionTable[Gl3FuncName::VertexAttribI4ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribI4ui");
FunctionTable[Gl3FuncName::VertexAttribI4iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribI4iv");
FunctionTable[Gl3FuncName::VertexAttribI4uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribI4uiv");
FunctionTable[Gl3FuncName::GetUniformuiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetUniformuiv");
FunctionTable[Gl3FuncName::GetFragDataLocation] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetFragDataLocation");
FunctionTable[Gl3FuncName::Uniform1ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform1ui");
FunctionTable[Gl3FuncName::Uniform2ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform2ui");
FunctionTable[Gl3FuncName::Uniform3ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform3ui");
FunctionTable[Gl3FuncName::Uniform4ui] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform4ui");
FunctionTable[Gl3FuncName::Uniform1uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform1uiv");
FunctionTable[Gl3FuncName::Uniform2uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform2uiv");
FunctionTable[Gl3FuncName::Uniform3uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform3uiv");
FunctionTable[Gl3FuncName::Uniform4uiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform4uiv");
FunctionTable[Gl3FuncName::ClearBufferiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearBufferiv");
FunctionTable[Gl3FuncName::ClearBufferuiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearBufferuiv");
FunctionTable[Gl3FuncName::ClearBufferfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearBufferfv");
FunctionTable[Gl3FuncName::ClearBufferfi] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearBufferfi");
FunctionTable[Gl3FuncName::GetStringi] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetStringi");
FunctionTable[Gl3FuncName::CopyBufferSubData] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCopyBufferSubData");
FunctionTable[Gl3FuncName::GetUniformIndices] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetUniformIndices");
FunctionTable[Gl3FuncName::GetActiveUniformsiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetActiveUniformsiv");
FunctionTable[Gl3FuncName::GetUniformBlockIndex] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetUniformBlockIndex");
FunctionTable[Gl3FuncName::GetActiveUniformBlockiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetActiveUniformBlockiv");
FunctionTable[Gl3FuncName::GetActiveUniformBlockName] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetActiveUniformBlockName");
FunctionTable[Gl3FuncName::UniformBlockBinding] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformBlockBinding");
FunctionTable[Gl3FuncName::DrawArraysInstanced] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawArraysInstanced");
FunctionTable[Gl3FuncName::DrawElementsInstanced] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawElementsInstanced");
FunctionTable[Gl3FuncName::FenceSync] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFenceSync");
FunctionTable[Gl3FuncName::IsSync] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsSync");
FunctionTable[Gl3FuncName::DeleteSync] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteSync");
FunctionTable[Gl3FuncName::ClientWaitSync] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClientWaitSync");
FunctionTable[Gl3FuncName::WaitSync] = pvr::lib::getLibFunctionChecked<void*>(lib, "glWaitSync");
FunctionTable[Gl3FuncName::GetInteger64v] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetInteger64v");
FunctionTable[Gl3FuncName::GetSynciv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetSynciv");
FunctionTable[Gl3FuncName::GetInteger64i_v] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetInteger64i_v");
FunctionTable[Gl3FuncName::GetBufferParameteri64v] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetBufferParameteri64v");
FunctionTable[Gl3FuncName::GenSamplers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenSamplers");
FunctionTable[Gl3FuncName::DeleteSamplers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteSamplers");
FunctionTable[Gl3FuncName::IsSampler] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsSampler");
FunctionTable[Gl3FuncName::BindSampler] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindSampler");
FunctionTable[Gl3FuncName::SamplerParameteri] = pvr::lib::getLibFunctionChecked<void*>(lib, "glSamplerParameteri");
FunctionTable[Gl3FuncName::SamplerParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glSamplerParameteriv");
FunctionTable[Gl3FuncName::SamplerParameterf] = pvr::lib::getLibFunctionChecked<void*>(lib, "glSamplerParameterf");
FunctionTable[Gl3FuncName::SamplerParameterfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glSamplerParameterfv");
FunctionTable[Gl3FuncName::GetSamplerParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetSamplerParameteriv");
FunctionTable[Gl3FuncName::GetSamplerParameterfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetSamplerParameterfv");
FunctionTable[Gl3FuncName::VertexAttribDivisor] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribDivisor");
FunctionTable[Gl3FuncName::BindTransformFeedback] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindTransformFeedback");
FunctionTable[Gl3FuncName::DeleteTransformFeedbacks] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteTransformFeedbacks");
FunctionTable[Gl3FuncName::GenTransformFeedbacks] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenTransformFeedbacks");
FunctionTable[Gl3FuncName::IsTransformFeedback] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsTransformFeedback");
FunctionTable[Gl3FuncName::PauseTransformFeedback] = pvr::lib::getLibFunctionChecked<void*>(lib, "glPauseTransformFeedback");
FunctionTable[Gl3FuncName::ResumeTransformFeedback] = pvr::lib::getLibFunctionChecked<void*>(lib, "glResumeTransformFeedback");
FunctionTable[Gl3FuncName::GetProgramBinary] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramBinary");
FunctionTable[Gl3FuncName::ProgramBinary] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramBinary");
FunctionTable[Gl3FuncName::ProgramParameteri] = pvr::lib::getLibFunctionChecked<void*>(lib, "glProgramParameteri");
FunctionTable[Gl3FuncName::InvalidateFramebuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glInvalidateFramebuffer");
FunctionTable[Gl3FuncName::InvalidateSubFramebuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glInvalidateSubFramebuffer");
FunctionTable[Gl3FuncName::TexStorage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexStorage2D");
FunctionTable[Gl3FuncName::TexStorage3D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexStorage3D");
FunctionTable[Gl3FuncName::GetInternalformativ] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetInternalformativ");
#else
FunctionTable[Gl3FuncName::ReadBuffer] = (void*)&glReadBuffer;
FunctionTable[Gl3FuncName::DrawRangeElements] = (void*)&glDrawRangeElements;
FunctionTable[Gl3FuncName::TexImage3D] = (void*)&glTexImage3D;
FunctionTable[Gl3FuncName::TexSubImage3D] = (void*)&glTexSubImage3D;
FunctionTable[Gl3FuncName::CopyTexSubImage3D] = (void*)&glCopyTexSubImage3D;
FunctionTable[Gl3FuncName::CompressedTexImage3D] = (void*)&glCompressedTexImage3D;
FunctionTable[Gl3FuncName::CompressedTexSubImage3D] = (void*)&glCompressedTexSubImage3D;
FunctionTable[Gl3FuncName::GenQueries] = (void*)&glGenQueries;
FunctionTable[Gl3FuncName::DeleteQueries] = (void*)&glDeleteQueries;
FunctionTable[Gl3FuncName::IsQuery] = (void*)&glIsQuery;
FunctionTable[Gl3FuncName::BeginQuery] = (void*)&glBeginQuery;
FunctionTable[Gl3FuncName::EndQuery] = (void*)&glEndQuery;
FunctionTable[Gl3FuncName::GetQueryiv] = (void*)&glGetQueryiv;
FunctionTable[Gl3FuncName::GetQueryObjectuiv] = (void*)&glGetQueryObjectuiv;
FunctionTable[Gl3FuncName::UnmapBuffer] = (void*)&glUnmapBuffer;
FunctionTable[Gl3FuncName::GetBufferPointerv] = (void*)&glGetBufferPointerv;
FunctionTable[Gl3FuncName::DrawBuffers] = (void*)&glDrawBuffers;
FunctionTable[Gl3FuncName::UniformMatrix2x3fv] = (void*)&glUniformMatrix2x3fv;
FunctionTable[Gl3FuncName::UniformMatrix3x2fv] = (void*)&glUniformMatrix3x2fv;
FunctionTable[Gl3FuncName::UniformMatrix2x4fv] = (void*)&glUniformMatrix2x4fv;
FunctionTable[Gl3FuncName::UniformMatrix4x2fv] = (void*)&glUniformMatrix4x2fv;
FunctionTable[Gl3FuncName::UniformMatrix3x4fv] = (void*)&glUniformMatrix3x4fv;
FunctionTable[Gl3FuncName::UniformMatrix4x3fv] = (void*)&glUniformMatrix4x3fv;
FunctionTable[Gl3FuncName::BlitFramebuffer] = (void*)&glBlitFramebuffer;
FunctionTable[Gl3FuncName::RenderbufferStorageMultisample] = (void*)&glRenderbufferStorageMultisample;
FunctionTable[Gl3FuncName::FramebufferTextureLayer] = (void*)&glFramebufferTextureLayer;
FunctionTable[Gl3FuncName::MapBufferRange] = (void*)&glMapBufferRange;
FunctionTable[Gl3FuncName::FlushMappedBufferRange] = (void*)&glFlushMappedBufferRange;
FunctionTable[Gl3FuncName::BindVertexArray] = (void*)&glBindVertexArray;
FunctionTable[Gl3FuncName::DeleteVertexArrays] = (void*)&glDeleteVertexArrays;
FunctionTable[Gl3FuncName::GenVertexArrays] = (void*)&glGenVertexArrays;
FunctionTable[Gl3FuncName::IsVertexArray] = (void*)&glIsVertexArray;
FunctionTable[Gl3FuncName::GetIntegeri_v] = (void*)&glGetIntegeri_v;
FunctionTable[Gl3FuncName::BeginTransformFeedback] = (void*)&glBeginTransformFeedback;
FunctionTable[Gl3FuncName::EndTransformFeedback] = (void*)&glEndTransformFeedback;
FunctionTable[Gl3FuncName::BindBufferRange] = (void*)&glBindBufferRange;
FunctionTable[Gl3FuncName::BindBufferBase] = (void*)&glBindBufferBase;
FunctionTable[Gl3FuncName::TransformFeedbackVaryings] = (void*)&glTransformFeedbackVaryings;
FunctionTable[Gl3FuncName::GetTransformFeedbackVarying] = (void*)&glGetTransformFeedbackVarying;
FunctionTable[Gl3FuncName::VertexAttribIPointer] = (void*)&glVertexAttribIPointer;
FunctionTable[Gl3FuncName::GetVertexAttribIiv] = (void*)&glGetVertexAttribIiv;
FunctionTable[Gl3FuncName::GetVertexAttribIuiv] = (void*)&glGetVertexAttribIuiv;
FunctionTable[Gl3FuncName::VertexAttribI4i] = (void*)&glVertexAttribI4i;
FunctionTable[Gl3FuncName::VertexAttribI4ui] = (void*)&glVertexAttribI4ui;
FunctionTable[Gl3FuncName::VertexAttribI4iv] = (void*)&glVertexAttribI4iv;
FunctionTable[Gl3FuncName::VertexAttribI4uiv] = (void*)&glVertexAttribI4uiv;
FunctionTable[Gl3FuncName::GetUniformuiv] = (void*)&glGetUniformuiv;
FunctionTable[Gl3FuncName::GetFragDataLocation] = (void*)&glGetFragDataLocation;
FunctionTable[Gl3FuncName::Uniform1ui] = (void*)&glUniform1ui;
FunctionTable[Gl3FuncName::Uniform2ui] = (void*)&glUniform2ui;
FunctionTable[Gl3FuncName::Uniform3ui] = (void*)&glUniform3ui;
FunctionTable[Gl3FuncName::Uniform4ui] = (void*)&glUniform4ui;
FunctionTable[Gl3FuncName::Uniform1uiv] = (void*)&glUniform1uiv;
FunctionTable[Gl3FuncName::Uniform2uiv] = (void*)&glUniform2uiv;
FunctionTable[Gl3FuncName::Uniform3uiv] = (void*)&glUniform3uiv;
FunctionTable[Gl3FuncName::Uniform4uiv] = (void*)&glUniform4uiv;
FunctionTable[Gl3FuncName::ClearBufferiv] = (void*)&glClearBufferiv;
FunctionTable[Gl3FuncName::ClearBufferuiv] = (void*)&glClearBufferuiv;
FunctionTable[Gl3FuncName::ClearBufferfv] = (void*)&glClearBufferfv;
FunctionTable[Gl3FuncName::ClearBufferfi] = (void*)&glClearBufferfi;
FunctionTable[Gl3FuncName::GetStringi] = (void*)&glGetStringi;
FunctionTable[Gl3FuncName::CopyBufferSubData] = (void*)&glCopyBufferSubData;
FunctionTable[Gl3FuncName::GetUniformIndices] = (void*)&glGetUniformIndices;
FunctionTable[Gl3FuncName::GetActiveUniformsiv] = (void*)&glGetActiveUniformsiv;
FunctionTable[Gl3FuncName::GetUniformBlockIndex] = (void*)&glGetUniformBlockIndex;
FunctionTable[Gl3FuncName::GetActiveUniformBlockiv] = (void*)&glGetActiveUniformBlockiv;
FunctionTable[Gl3FuncName::GetActiveUniformBlockName] = (void*)&glGetActiveUniformBlockName;
FunctionTable[Gl3FuncName::UniformBlockBinding] = (void*)&glUniformBlockBinding;
FunctionTable[Gl3FuncName::DrawArraysInstanced] = (void*)&glDrawArraysInstanced;
FunctionTable[Gl3FuncName::DrawElementsInstanced] = (void*)&glDrawElementsInstanced;
FunctionTable[Gl3FuncName::FenceSync] = (void*)&glFenceSync;
FunctionTable[Gl3FuncName::IsSync] = (void*)&glIsSync;
FunctionTable[Gl3FuncName::DeleteSync] = (void*)&glDeleteSync;
FunctionTable[Gl3FuncName::ClientWaitSync] = (void*)&glClientWaitSync;
FunctionTable[Gl3FuncName::WaitSync] = (void*)&glWaitSync;
FunctionTable[Gl3FuncName::GetInteger64v] = (void*)&glGetInteger64v;
FunctionTable[Gl3FuncName::GetSynciv] = (void*)&glGetSynciv;
FunctionTable[Gl3FuncName::GetInteger64i_v] = (void*)&glGetInteger64i_v;
FunctionTable[Gl3FuncName::GetBufferParameteri64v] = (void*)&glGetBufferParameteri64v;
FunctionTable[Gl3FuncName::GenSamplers] = (void*)&glGenSamplers;
FunctionTable[Gl3FuncName::DeleteSamplers] = (void*)&glDeleteSamplers;
FunctionTable[Gl3FuncName::IsSampler] = (void*)&glIsSampler;
FunctionTable[Gl3FuncName::BindSampler] = (void*)&glBindSampler;
FunctionTable[Gl3FuncName::SamplerParameteri] = (void*)&glSamplerParameteri;
FunctionTable[Gl3FuncName::SamplerParameteriv] = (void*)&glSamplerParameteriv;
FunctionTable[Gl3FuncName::SamplerParameterf] = (void*)&glSamplerParameterf;
FunctionTable[Gl3FuncName::SamplerParameterfv] = (void*)&glSamplerParameterfv;
FunctionTable[Gl3FuncName::GetSamplerParameteriv] = (void*)&glGetSamplerParameteriv;
FunctionTable[Gl3FuncName::GetSamplerParameterfv] = (void*)&glGetSamplerParameterfv;
FunctionTable[Gl3FuncName::VertexAttribDivisor] = (void*)&glVertexAttribDivisor;
FunctionTable[Gl3FuncName::BindTransformFeedback] = (void*)&glBindTransformFeedback;
FunctionTable[Gl3FuncName::DeleteTransformFeedbacks] = (void*)&glDeleteTransformFeedbacks;
FunctionTable[Gl3FuncName::GenTransformFeedbacks] = (void*)&glGenTransformFeedbacks;
FunctionTable[Gl3FuncName::IsTransformFeedback] = (void*)&glIsTransformFeedback;
FunctionTable[Gl3FuncName::PauseTransformFeedback] = (void*)&glPauseTransformFeedback;
FunctionTable[Gl3FuncName::ResumeTransformFeedback] = (void*)&glResumeTransformFeedback;
FunctionTable[Gl3FuncName::GetProgramBinary] = (void*)&glGetProgramBinary;
FunctionTable[Gl3FuncName::ProgramBinary] = (void*)&glProgramBinary;
FunctionTable[Gl3FuncName::ProgramParameteri] = (void*)&glProgramParameteri;
FunctionTable[Gl3FuncName::InvalidateFramebuffer] = (void*)&glInvalidateFramebuffer;
FunctionTable[Gl3FuncName::InvalidateSubFramebuffer] = (void*)&glInvalidateSubFramebuffer;
FunctionTable[Gl3FuncName::TexStorage2D] = (void*)&glTexStorage2D;
FunctionTable[Gl3FuncName::TexStorage3D] = (void*)&glTexStorage3D;
FunctionTable[Gl3FuncName::GetInternalformativ] = (void*)&glGetInternalformativ;
#endif
}
return FunctionTable[funcname];
}
}
}
#ifndef DYNAMICGLES_NO_NAMESPACE
namespace gl {
#elif TARGET_OS_IPHONE
namespace gl {
namespace internals {
#endif
inline void DYNAMICGLES_FUNCTION(ReadBuffer)(GLenum src)
{
#if TARGET_OS_IPHONE
typedef decltype(&glReadBuffer) PFNGLREADBUFFERPROC;
#endif
PFNGLREADBUFFERPROC _ReadBuffer = (PFNGLREADBUFFERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ReadBuffer);
return _ReadBuffer(src);
}
inline void DYNAMICGLES_FUNCTION(DrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void* indices)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDrawRangeElements) PFNGLDRAWRANGEELEMENTSPROC;
#endif
PFNGLDRAWRANGEELEMENTSPROC _DrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DrawRangeElements);
return _DrawRangeElements(mode, start, end, count, type, indices);
}
inline void DYNAMICGLES_FUNCTION(TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexImage3D) PFNGLTEXIMAGE3DPROC;
#endif
PFNGLTEXIMAGE3DPROC _TexImage3D = (PFNGLTEXIMAGE3DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::TexImage3D);
return _TexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
}
inline void DYNAMICGLES_FUNCTION(TexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexSubImage3D) PFNGLTEXSUBIMAGE3DPROC;
#endif
PFNGLTEXSUBIMAGE3DPROC _TexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::TexSubImage3D);
return _TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
}
inline void DYNAMICGLES_FUNCTION(CopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCopyTexSubImage3D) PFNGLCOPYTEXSUBIMAGE3DPROC;
#endif
PFNGLCOPYTEXSUBIMAGE3DPROC _CopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::CopyTexSubImage3D);
return _CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
}
inline void DYNAMICGLES_FUNCTION(CompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCompressedTexImage3D) PFNGLCOMPRESSEDTEXIMAGE3DPROC;
#endif
PFNGLCOMPRESSEDTEXIMAGE3DPROC _CompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::CompressedTexImage3D);
return _CompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
}
inline void DYNAMICGLES_FUNCTION(CompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCompressedTexSubImage3D) PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC;
#endif
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC _CompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::CompressedTexSubImage3D);
return _CompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
}
inline void DYNAMICGLES_FUNCTION(GenQueries)(GLsizei n, GLuint* ids)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenQueries) PFNGLGENQUERIESPROC;
#endif
PFNGLGENQUERIESPROC _GenQueries = (PFNGLGENQUERIESPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GenQueries);
return _GenQueries(n, ids);
}
inline void DYNAMICGLES_FUNCTION(DeleteQueries)(GLsizei n, const GLuint* ids)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteQueries) PFNGLDELETEQUERIESPROC;
#endif
PFNGLDELETEQUERIESPROC _DeleteQueries = (PFNGLDELETEQUERIESPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DeleteQueries);
return _DeleteQueries(n, ids);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsQuery)(GLuint id)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsQuery) PFNGLISQUERYPROC;
#endif
PFNGLISQUERYPROC _IsQuery = (PFNGLISQUERYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::IsQuery);
return _IsQuery(id);
}
inline void DYNAMICGLES_FUNCTION(BeginQuery)(GLenum target, GLuint id)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBeginQuery) PFNGLBEGINQUERYPROC;
#endif
PFNGLBEGINQUERYPROC _BeginQuery = (PFNGLBEGINQUERYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BeginQuery);
return _BeginQuery(target, id);
}
inline void DYNAMICGLES_FUNCTION(EndQuery)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glEndQuery) PFNGLENDQUERYPROC;
#endif
PFNGLENDQUERYPROC _EndQuery = (PFNGLENDQUERYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::EndQuery);
return _EndQuery(target);
}
inline void DYNAMICGLES_FUNCTION(GetQueryiv)(GLenum target, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetQueryiv) PFNGLGETQUERYIVPROC;
#endif
PFNGLGETQUERYIVPROC _GetQueryiv = (PFNGLGETQUERYIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetQueryiv);
return _GetQueryiv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetQueryObjectuiv)(GLuint id, GLenum pname, GLuint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetQueryObjectuiv) PFNGLGETQUERYOBJECTUIVPROC;
#endif
PFNGLGETQUERYOBJECTUIVPROC _GetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetQueryObjectuiv);
return _GetQueryObjectuiv(id, pname, params);
}
inline GLboolean DYNAMICGLES_FUNCTION(UnmapBuffer)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUnmapBuffer) PFNGLUNMAPBUFFERPROC;
#endif
PFNGLUNMAPBUFFERPROC _UnmapBuffer = (PFNGLUNMAPBUFFERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UnmapBuffer);
return _UnmapBuffer(target);
}
inline void DYNAMICGLES_FUNCTION(GetBufferPointerv)(GLenum target, GLenum pname, void** params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetBufferPointerv) PFNGLGETBUFFERPOINTERVPROC;
#endif
PFNGLGETBUFFERPOINTERVPROC _GetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetBufferPointerv);
return _GetBufferPointerv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(DrawBuffers)(GLsizei n, const GLenum* bufs)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDrawBuffers) PFNGLDRAWBUFFERSPROC;
#endif
PFNGLDRAWBUFFERSPROC _DrawBuffers = (PFNGLDRAWBUFFERSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DrawBuffers);
return _DrawBuffers(n, bufs);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix2x3fv) PFNGLUNIFORMMATRIX2X3FVPROC;
#endif
PFNGLUNIFORMMATRIX2X3FVPROC _UniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformMatrix2x3fv);
return _UniformMatrix2x3fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix3x2fv) PFNGLUNIFORMMATRIX3X2FVPROC;
#endif
PFNGLUNIFORMMATRIX3X2FVPROC _UniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformMatrix3x2fv);
return _UniformMatrix3x2fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix2x4fv) PFNGLUNIFORMMATRIX2X4FVPROC;
#endif
PFNGLUNIFORMMATRIX2X4FVPROC _UniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformMatrix2x4fv);
return _UniformMatrix2x4fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix4x2fv) PFNGLUNIFORMMATRIX4X2FVPROC;
#endif
PFNGLUNIFORMMATRIX4X2FVPROC _UniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformMatrix4x2fv);
return _UniformMatrix4x2fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix3x4fv) PFNGLUNIFORMMATRIX3X4FVPROC;
#endif
PFNGLUNIFORMMATRIX3X4FVPROC _UniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformMatrix3x4fv);
return _UniformMatrix3x4fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix4x3fv) PFNGLUNIFORMMATRIX4X3FVPROC;
#endif
PFNGLUNIFORMMATRIX4X3FVPROC _UniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformMatrix4x3fv);
return _UniformMatrix4x3fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(BlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBlitFramebuffer) PFNGLBLITFRAMEBUFFERPROC;
#endif
PFNGLBLITFRAMEBUFFERPROC _BlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BlitFramebuffer);
return _BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}
inline void DYNAMICGLES_FUNCTION(RenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glRenderbufferStorageMultisample) PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC;
#endif
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC _RenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::RenderbufferStorageMultisample);
return _RenderbufferStorageMultisample(target, samples, internalformat, width, height);
}
inline void DYNAMICGLES_FUNCTION(FramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFramebufferTextureLayer) PFNGLFRAMEBUFFERTEXTURELAYERPROC;
#endif
PFNGLFRAMEBUFFERTEXTURELAYERPROC _FramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::FramebufferTextureLayer);
return _FramebufferTextureLayer(target, attachment, texture, level, layer);
}
inline void* DYNAMICGLES_FUNCTION(MapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
{
#if TARGET_OS_IPHONE
typedef decltype(&glMapBufferRange) PFNGLMAPBUFFERRANGEPROC;
#endif
PFNGLMAPBUFFERRANGEPROC _MapBufferRange = (PFNGLMAPBUFFERRANGEPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::MapBufferRange);
return _MapBufferRange(target, offset, length, access);
}
inline void DYNAMICGLES_FUNCTION(FlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFlushMappedBufferRange) PFNGLFLUSHMAPPEDBUFFERRANGEPROC;
#endif
PFNGLFLUSHMAPPEDBUFFERRANGEPROC _FlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::FlushMappedBufferRange);
return _FlushMappedBufferRange(target, offset, length);
}
inline void DYNAMICGLES_FUNCTION(BindVertexArray)(GLuint array)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindVertexArray) PFNGLBINDVERTEXARRAYPROC;
#endif
PFNGLBINDVERTEXARRAYPROC _BindVertexArray = (PFNGLBINDVERTEXARRAYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BindVertexArray);
return _BindVertexArray(array);
}
inline void DYNAMICGLES_FUNCTION(DeleteVertexArrays)(GLsizei n, const GLuint* arrays)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteVertexArrays) PFNGLDELETEVERTEXARRAYSPROC;
#endif
PFNGLDELETEVERTEXARRAYSPROC _DeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DeleteVertexArrays);
return _DeleteVertexArrays(n, arrays);
}
inline void DYNAMICGLES_FUNCTION(GenVertexArrays)(GLsizei n, GLuint* arrays)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenVertexArrays) PFNGLGENVERTEXARRAYSPROC;
#endif
PFNGLGENVERTEXARRAYSPROC _GenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GenVertexArrays);
return _GenVertexArrays(n, arrays);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsVertexArray)(GLuint array)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsVertexArray) PFNGLISVERTEXARRAYPROC;
#endif
PFNGLISVERTEXARRAYPROC _IsVertexArray = (PFNGLISVERTEXARRAYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::IsVertexArray);
return _IsVertexArray(array);
}
inline void DYNAMICGLES_FUNCTION(GetIntegeri_v)(GLenum target, GLuint index, GLint* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetIntegeri_v) PFNGLGETINTEGERI_VPROC;
#endif
PFNGLGETINTEGERI_VPROC _GetIntegeri_v = (PFNGLGETINTEGERI_VPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetIntegeri_v);
return _GetIntegeri_v(target, index, data);
}
inline void DYNAMICGLES_FUNCTION(BeginTransformFeedback)(GLenum primitiveMode)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBeginTransformFeedback) PFNGLBEGINTRANSFORMFEEDBACKPROC;
#endif
PFNGLBEGINTRANSFORMFEEDBACKPROC _BeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BeginTransformFeedback);
return _BeginTransformFeedback(primitiveMode);
}
inline void DYNAMICGLES_FUNCTION(EndTransformFeedback)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glEndTransformFeedback) PFNGLENDTRANSFORMFEEDBACKPROC;
#endif
PFNGLENDTRANSFORMFEEDBACKPROC _EndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::EndTransformFeedback);
return _EndTransformFeedback();
}
inline void DYNAMICGLES_FUNCTION(BindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindBufferRange) PFNGLBINDBUFFERRANGEPROC;
#endif
PFNGLBINDBUFFERRANGEPROC _BindBufferRange = (PFNGLBINDBUFFERRANGEPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BindBufferRange);
return _BindBufferRange(target, index, buffer, offset, size);
}
inline void DYNAMICGLES_FUNCTION(BindBufferBase)(GLenum target, GLuint index, GLuint buffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindBufferBase) PFNGLBINDBUFFERBASEPROC;
#endif
PFNGLBINDBUFFERBASEPROC _BindBufferBase = (PFNGLBINDBUFFERBASEPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BindBufferBase);
return _BindBufferBase(target, index, buffer);
}
inline void DYNAMICGLES_FUNCTION(TransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTransformFeedbackVaryings) PFNGLTRANSFORMFEEDBACKVARYINGSPROC;
#endif
PFNGLTRANSFORMFEEDBACKVARYINGSPROC _TransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::TransformFeedbackVaryings);
return _TransformFeedbackVaryings(program, count, varyings, bufferMode);
}
inline void DYNAMICGLES_FUNCTION(GetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetTransformFeedbackVarying) PFNGLGETTRANSFORMFEEDBACKVARYINGPROC;
#endif
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC _GetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetTransformFeedbackVarying);
return _GetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribIPointer) PFNGLVERTEXATTRIBIPOINTERPROC;
#endif
PFNGLVERTEXATTRIBIPOINTERPROC _VertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::VertexAttribIPointer);
return _VertexAttribIPointer(index, size, type, stride, pointer);
}
inline void DYNAMICGLES_FUNCTION(GetVertexAttribIiv)(GLuint index, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetVertexAttribIiv) PFNGLGETVERTEXATTRIBIIVPROC;
#endif
PFNGLGETVERTEXATTRIBIIVPROC _GetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetVertexAttribIiv);
return _GetVertexAttribIiv(index, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetVertexAttribIuiv) PFNGLGETVERTEXATTRIBIUIVPROC;
#endif
PFNGLGETVERTEXATTRIBIUIVPROC _GetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetVertexAttribIuiv);
return _GetVertexAttribIuiv(index, pname, params);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribI4i) PFNGLVERTEXATTRIBI4IPROC;
#endif
PFNGLVERTEXATTRIBI4IPROC _VertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::VertexAttribI4i);
return _VertexAttribI4i(index, x, y, z, w);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribI4ui)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribI4ui) PFNGLVERTEXATTRIBI4UIPROC;
#endif
PFNGLVERTEXATTRIBI4UIPROC _VertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::VertexAttribI4ui);
return _VertexAttribI4ui(index, x, y, z, w);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribI4iv)(GLuint index, const GLint* v)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribI4iv) PFNGLVERTEXATTRIBI4IVPROC;
#endif
PFNGLVERTEXATTRIBI4IVPROC _VertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::VertexAttribI4iv);
return _VertexAttribI4iv(index, v);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribI4uiv)(GLuint index, const GLuint* v)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribI4uiv) PFNGLVERTEXATTRIBI4UIVPROC;
#endif
PFNGLVERTEXATTRIBI4UIVPROC _VertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::VertexAttribI4uiv);
return _VertexAttribI4uiv(index, v);
}
inline void DYNAMICGLES_FUNCTION(GetUniformuiv)(GLuint program, GLint location, GLuint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetUniformuiv) PFNGLGETUNIFORMUIVPROC;
#endif
PFNGLGETUNIFORMUIVPROC _GetUniformuiv = (PFNGLGETUNIFORMUIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetUniformuiv);
return _GetUniformuiv(program, location, params);
}
inline GLint DYNAMICGLES_FUNCTION(GetFragDataLocation)(GLuint program, const GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetFragDataLocation) PFNGLGETFRAGDATALOCATIONPROC;
#endif
PFNGLGETFRAGDATALOCATIONPROC _GetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetFragDataLocation);
return _GetFragDataLocation(program, name);
}
inline void DYNAMICGLES_FUNCTION(Uniform1ui)(GLint location, GLuint v0)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform1ui) PFNGLUNIFORM1UIPROC;
#endif
PFNGLUNIFORM1UIPROC _Uniform1ui = (PFNGLUNIFORM1UIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform1ui);
return _Uniform1ui(location, v0);
}
inline void DYNAMICGLES_FUNCTION(Uniform2ui)(GLint location, GLuint v0, GLuint v1)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform2ui) PFNGLUNIFORM2UIPROC;
#endif
PFNGLUNIFORM2UIPROC _Uniform2ui = (PFNGLUNIFORM2UIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform2ui);
return _Uniform2ui(location, v0, v1);
}
inline void DYNAMICGLES_FUNCTION(Uniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform3ui) PFNGLUNIFORM3UIPROC;
#endif
PFNGLUNIFORM3UIPROC _Uniform3ui = (PFNGLUNIFORM3UIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform3ui);
return _Uniform3ui(location, v0, v1, v2);
}
inline void DYNAMICGLES_FUNCTION(Uniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform4ui) PFNGLUNIFORM4UIPROC;
#endif
PFNGLUNIFORM4UIPROC _Uniform4ui = (PFNGLUNIFORM4UIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform4ui);
return _Uniform4ui(location, v0, v1, v2, v3);
}
inline void DYNAMICGLES_FUNCTION(Uniform1uiv)(GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform1uiv) PFNGLUNIFORM1UIVPROC;
#endif
PFNGLUNIFORM1UIVPROC _Uniform1uiv = (PFNGLUNIFORM1UIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform1uiv);
return _Uniform1uiv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform2uiv)(GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform2uiv) PFNGLUNIFORM2UIVPROC;
#endif
PFNGLUNIFORM2UIVPROC _Uniform2uiv = (PFNGLUNIFORM2UIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform2uiv);
return _Uniform2uiv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform3uiv)(GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform3uiv) PFNGLUNIFORM3UIVPROC;
#endif
PFNGLUNIFORM3UIVPROC _Uniform3uiv = (PFNGLUNIFORM3UIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform3uiv);
return _Uniform3uiv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform4uiv)(GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform4uiv) PFNGLUNIFORM4UIVPROC;
#endif
PFNGLUNIFORM4UIVPROC _Uniform4uiv = (PFNGLUNIFORM4UIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::Uniform4uiv);
return _Uniform4uiv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(ClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearBufferiv) PFNGLCLEARBUFFERIVPROC;
#endif
PFNGLCLEARBUFFERIVPROC _ClearBufferiv = (PFNGLCLEARBUFFERIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ClearBufferiv);
return _ClearBufferiv(buffer, drawbuffer, value);
}
inline void DYNAMICGLES_FUNCTION(ClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearBufferuiv) PFNGLCLEARBUFFERUIVPROC;
#endif
PFNGLCLEARBUFFERUIVPROC _ClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ClearBufferuiv);
return _ClearBufferuiv(buffer, drawbuffer, value);
}
inline void DYNAMICGLES_FUNCTION(ClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearBufferfv) PFNGLCLEARBUFFERFVPROC;
#endif
PFNGLCLEARBUFFERFVPROC _ClearBufferfv = (PFNGLCLEARBUFFERFVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ClearBufferfv);
return _ClearBufferfv(buffer, drawbuffer, value);
}
inline void DYNAMICGLES_FUNCTION(ClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearBufferfi) PFNGLCLEARBUFFERFIPROC;
#endif
PFNGLCLEARBUFFERFIPROC _ClearBufferfi = (PFNGLCLEARBUFFERFIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ClearBufferfi);
return _ClearBufferfi(buffer, drawbuffer, depth, stencil);
}
inline const GLubyte* DYNAMICGLES_FUNCTION(GetStringi)(GLenum name, GLuint index)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetStringi) PFNGLGETSTRINGIPROC;
#endif
PFNGLGETSTRINGIPROC _GetStringi = (PFNGLGETSTRINGIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetStringi);
return _GetStringi(name, index);
}
inline void DYNAMICGLES_FUNCTION(CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCopyBufferSubData) PFNGLCOPYBUFFERSUBDATAPROC;
#endif
PFNGLCOPYBUFFERSUBDATAPROC _CopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::CopyBufferSubData);
return _CopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
}
inline void DYNAMICGLES_FUNCTION(GetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetUniformIndices) PFNGLGETUNIFORMINDICESPROC;
#endif
PFNGLGETUNIFORMINDICESPROC _GetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetUniformIndices);
return _GetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
}
inline void DYNAMICGLES_FUNCTION(GetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetActiveUniformsiv) PFNGLGETACTIVEUNIFORMSIVPROC;
#endif
PFNGLGETACTIVEUNIFORMSIVPROC _GetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetActiveUniformsiv);
return _GetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
}
inline GLuint DYNAMICGLES_FUNCTION(GetUniformBlockIndex)(GLuint program, const GLchar* uniformBlockName)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetUniformBlockIndex) PFNGLGETUNIFORMBLOCKINDEXPROC;
#endif
PFNGLGETUNIFORMBLOCKINDEXPROC _GetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetUniformBlockIndex);
return _GetUniformBlockIndex(program, uniformBlockName);
}
inline void DYNAMICGLES_FUNCTION(GetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetActiveUniformBlockiv) PFNGLGETACTIVEUNIFORMBLOCKIVPROC;
#endif
PFNGLGETACTIVEUNIFORMBLOCKIVPROC _GetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetActiveUniformBlockiv);
return _GetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetActiveUniformBlockName) PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC;
#endif
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC _GetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetActiveUniformBlockName);
return _GetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
}
inline void DYNAMICGLES_FUNCTION(UniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformBlockBinding) PFNGLUNIFORMBLOCKBINDINGPROC;
#endif
PFNGLUNIFORMBLOCKBINDINGPROC _UniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::UniformBlockBinding);
return _UniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
}
inline void DYNAMICGLES_FUNCTION(DrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDrawArraysInstanced) PFNGLDRAWARRAYSINSTANCEDPROC;
#endif
PFNGLDRAWARRAYSINSTANCEDPROC _DrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DrawArraysInstanced);
return _DrawArraysInstanced(mode, first, count, instancecount);
}
inline void DYNAMICGLES_FUNCTION(DrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei instancecount)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDrawElementsInstanced) PFNGLDRAWELEMENTSINSTANCEDPROC;
#endif
PFNGLDRAWELEMENTSINSTANCEDPROC _DrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DrawElementsInstanced);
return _DrawElementsInstanced(mode, count, type, indices, instancecount);
}
inline GLsync DYNAMICGLES_FUNCTION(FenceSync)(GLenum condition, GLbitfield flags)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFenceSync) PFNGLFENCESYNCPROC;
#endif
PFNGLFENCESYNCPROC _FenceSync = (PFNGLFENCESYNCPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::FenceSync);
return _FenceSync(condition, flags);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsSync)(GLsync sync)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsSync) PFNGLISSYNCPROC;
#endif
PFNGLISSYNCPROC _IsSync = (PFNGLISSYNCPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::IsSync);
return _IsSync(sync);
}
inline void DYNAMICGLES_FUNCTION(DeleteSync)(GLsync sync)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteSync) PFNGLDELETESYNCPROC;
#endif
PFNGLDELETESYNCPROC _DeleteSync = (PFNGLDELETESYNCPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DeleteSync);
return _DeleteSync(sync);
}
inline GLenum DYNAMICGLES_FUNCTION(ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClientWaitSync) PFNGLCLIENTWAITSYNCPROC;
#endif
PFNGLCLIENTWAITSYNCPROC _ClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ClientWaitSync);
return _ClientWaitSync(sync, flags, timeout);
}
inline void DYNAMICGLES_FUNCTION(WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
#if TARGET_OS_IPHONE
typedef decltype(&glWaitSync) PFNGLWAITSYNCPROC;
#endif
PFNGLWAITSYNCPROC _WaitSync = (PFNGLWAITSYNCPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::WaitSync);
return _WaitSync(sync, flags, timeout);
}
inline void DYNAMICGLES_FUNCTION(GetInteger64v)(GLenum pname, GLint64* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetInteger64v) PFNGLGETINTEGER64VPROC;
#endif
PFNGLGETINTEGER64VPROC _GetInteger64v = (PFNGLGETINTEGER64VPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetInteger64v);
return _GetInteger64v(pname, data);
}
inline void DYNAMICGLES_FUNCTION(GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetSynciv) PFNGLGETSYNCIVPROC;
#endif
PFNGLGETSYNCIVPROC _GetSynciv = (PFNGLGETSYNCIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetSynciv);
return _GetSynciv(sync, pname, bufSize, length, values);
}
inline void DYNAMICGLES_FUNCTION(GetInteger64i_v)(GLenum target, GLuint index, GLint64* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetInteger64i_v) PFNGLGETINTEGER64I_VPROC;
#endif
PFNGLGETINTEGER64I_VPROC _GetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetInteger64i_v);
return _GetInteger64i_v(target, index, data);
}
inline void DYNAMICGLES_FUNCTION(GetBufferParameteri64v)(GLenum target, GLenum pname, GLint64* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetBufferParameteri64v) PFNGLGETBUFFERPARAMETERI64VPROC;
#endif
PFNGLGETBUFFERPARAMETERI64VPROC _GetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetBufferParameteri64v);
return _GetBufferParameteri64v(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GenSamplers)(GLsizei count, GLuint* samplers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenSamplers) PFNGLGENSAMPLERSPROC;
#endif
PFNGLGENSAMPLERSPROC _GenSamplers = (PFNGLGENSAMPLERSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GenSamplers);
return _GenSamplers(count, samplers);
}
inline void DYNAMICGLES_FUNCTION(DeleteSamplers)(GLsizei count, const GLuint* samplers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteSamplers) PFNGLDELETESAMPLERSPROC;
#endif
PFNGLDELETESAMPLERSPROC _DeleteSamplers = (PFNGLDELETESAMPLERSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DeleteSamplers);
return _DeleteSamplers(count, samplers);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsSampler)(GLuint sampler)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsSampler) PFNGLISSAMPLERPROC;
#endif
PFNGLISSAMPLERPROC _IsSampler = (PFNGLISSAMPLERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::IsSampler);
return _IsSampler(sampler);
}
inline void DYNAMICGLES_FUNCTION(BindSampler)(GLuint unit, GLuint sampler)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindSampler) PFNGLBINDSAMPLERPROC;
#endif
PFNGLBINDSAMPLERPROC _BindSampler = (PFNGLBINDSAMPLERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BindSampler);
return _BindSampler(unit, sampler);
}
inline void DYNAMICGLES_FUNCTION(SamplerParameteri)(GLuint sampler, GLenum pname, GLint param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glSamplerParameteri) PFNGLSAMPLERPARAMETERIPROC;
#endif
PFNGLSAMPLERPARAMETERIPROC _SamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::SamplerParameteri);
return _SamplerParameteri(sampler, pname, param);
}
inline void DYNAMICGLES_FUNCTION(SamplerParameteriv)(GLuint sampler, GLenum pname, const GLint* param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glSamplerParameteriv) PFNGLSAMPLERPARAMETERIVPROC;
#endif
PFNGLSAMPLERPARAMETERIVPROC _SamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::SamplerParameteriv);
return _SamplerParameteriv(sampler, pname, param);
}
inline void DYNAMICGLES_FUNCTION(SamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glSamplerParameterf) PFNGLSAMPLERPARAMETERFPROC;
#endif
PFNGLSAMPLERPARAMETERFPROC _SamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::SamplerParameterf);
return _SamplerParameterf(sampler, pname, param);
}
inline void DYNAMICGLES_FUNCTION(SamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat* param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glSamplerParameterfv) PFNGLSAMPLERPARAMETERFVPROC;
#endif
PFNGLSAMPLERPARAMETERFVPROC _SamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::SamplerParameterfv);
return _SamplerParameterfv(sampler, pname, param);
}
inline void DYNAMICGLES_FUNCTION(GetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetSamplerParameteriv) PFNGLGETSAMPLERPARAMETERIVPROC;
#endif
PFNGLGETSAMPLERPARAMETERIVPROC _GetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetSamplerParameteriv);
return _GetSamplerParameteriv(sampler, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetSamplerParameterfv) PFNGLGETSAMPLERPARAMETERFVPROC;
#endif
PFNGLGETSAMPLERPARAMETERFVPROC _GetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetSamplerParameterfv);
return _GetSamplerParameterfv(sampler, pname, params);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribDivisor)(GLuint index, GLuint divisor)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribDivisor) PFNGLVERTEXATTRIBDIVISORPROC;
#endif
PFNGLVERTEXATTRIBDIVISORPROC _VertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::VertexAttribDivisor);
return _VertexAttribDivisor(index, divisor);
}
inline void DYNAMICGLES_FUNCTION(BindTransformFeedback)(GLenum target, GLuint id)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindTransformFeedback) PFNGLBINDTRANSFORMFEEDBACKPROC;
#endif
PFNGLBINDTRANSFORMFEEDBACKPROC _BindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::BindTransformFeedback);
return _BindTransformFeedback(target, id);
}
inline void DYNAMICGLES_FUNCTION(DeleteTransformFeedbacks)(GLsizei n, const GLuint* ids)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteTransformFeedbacks) PFNGLDELETETRANSFORMFEEDBACKSPROC;
#endif
PFNGLDELETETRANSFORMFEEDBACKSPROC _DeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::DeleteTransformFeedbacks);
return _DeleteTransformFeedbacks(n, ids);
}
inline void DYNAMICGLES_FUNCTION(GenTransformFeedbacks)(GLsizei n, GLuint* ids)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenTransformFeedbacks) PFNGLGENTRANSFORMFEEDBACKSPROC;
#endif
PFNGLGENTRANSFORMFEEDBACKSPROC _GenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GenTransformFeedbacks);
return _GenTransformFeedbacks(n, ids);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsTransformFeedback)(GLuint id)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsTransformFeedback) PFNGLISTRANSFORMFEEDBACKPROC;
#endif
PFNGLISTRANSFORMFEEDBACKPROC _IsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::IsTransformFeedback);
return _IsTransformFeedback(id);
}
inline void DYNAMICGLES_FUNCTION(PauseTransformFeedback)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glPauseTransformFeedback) PFNGLPAUSETRANSFORMFEEDBACKPROC;
#endif
PFNGLPAUSETRANSFORMFEEDBACKPROC _PauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::PauseTransformFeedback);
return _PauseTransformFeedback();
}
inline void DYNAMICGLES_FUNCTION(ResumeTransformFeedback)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glResumeTransformFeedback) PFNGLRESUMETRANSFORMFEEDBACKPROC;
#endif
PFNGLRESUMETRANSFORMFEEDBACKPROC _ResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ResumeTransformFeedback);
return _ResumeTransformFeedback();
}
inline void DYNAMICGLES_FUNCTION(GetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetProgramBinary) PFNGLGETPROGRAMBINARYPROC;
#endif
PFNGLGETPROGRAMBINARYPROC _GetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetProgramBinary);
return _GetProgramBinary(program, bufSize, length, binaryFormat, binary);
}
inline void DYNAMICGLES_FUNCTION(ProgramBinary)(GLuint program, GLenum binaryFormat, const void* binary, GLsizei length)
{
#if TARGET_OS_IPHONE
typedef decltype(&glProgramBinary) PFNGLPROGRAMBINARYPROC;
#endif
PFNGLPROGRAMBINARYPROC _ProgramBinary = (PFNGLPROGRAMBINARYPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ProgramBinary);
return _ProgramBinary(program, binaryFormat, binary, length);
}
inline void DYNAMICGLES_FUNCTION(ProgramParameteri)(GLuint program, GLenum pname, GLint value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glProgramParameteri) PFNGLPROGRAMPARAMETERIPROC;
#endif
PFNGLPROGRAMPARAMETERIPROC _ProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::ProgramParameteri);
return _ProgramParameteri(program, pname, value);
}
inline void DYNAMICGLES_FUNCTION(InvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum* attachments)
{
#if TARGET_OS_IPHONE
typedef decltype(&glInvalidateFramebuffer) PFNGLINVALIDATEFRAMEBUFFERPROC;
#endif
PFNGLINVALIDATEFRAMEBUFFERPROC _InvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::InvalidateFramebuffer);
return _InvalidateFramebuffer(target, numAttachments, attachments);
}
inline void DYNAMICGLES_FUNCTION(InvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glInvalidateSubFramebuffer) PFNGLINVALIDATESUBFRAMEBUFFERPROC;
#endif
PFNGLINVALIDATESUBFRAMEBUFFERPROC _InvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::InvalidateSubFramebuffer);
return _InvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
}
inline void DYNAMICGLES_FUNCTION(TexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexStorage2D) PFNGLTEXSTORAGE2DPROC;
#endif
PFNGLTEXSTORAGE2DPROC _TexStorage2D = (PFNGLTEXSTORAGE2DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::TexStorage2D);
return _TexStorage2D(target, levels, internalformat, width, height);
}
inline void DYNAMICGLES_FUNCTION(TexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexStorage3D) PFNGLTEXSTORAGE3DPROC;
#endif
PFNGLTEXSTORAGE3DPROC _TexStorage3D = (PFNGLTEXSTORAGE3DPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::TexStorage3D);
return _TexStorage3D(target, levels, internalformat, width, height, depth);
}
inline void DYNAMICGLES_FUNCTION(GetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetInternalformativ) PFNGLGETINTERNALFORMATIVPROC;
#endif
PFNGLGETINTERNALFORMATIVPROC _GetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)gl::internals::getEs3Function(gl::internals::Gl3FuncName::GetInternalformativ);
return _GetInternalformativ(target, internalformat, pname, bufSize, params);
}
#ifndef DYNAMICGLES_NO_NAMESPACE
}
#elif TARGET_OS_IPHONE
}
}
#endif
namespace gl {
namespace internals {
namespace Gl2FuncName {
enum OpenGLES2FunctionName
{
ActiveTexture, AttachShader, BindAttribLocation, BindBuffer, BindFramebuffer, BindRenderbuffer, BindTexture, BlendColor, BlendEquation, BlendEquationSeparate,
BlendFunc, BlendFuncSeparate, BufferData, BufferSubData, CheckFramebufferStatus, Clear, ClearColor, ClearDepthf, ClearStencil, ColorMask, CompileShader,
CompressedTexImage2D, CompressedTexSubImage2D, CopyTexImage2D, CopyTexSubImage2D, CreateProgram, CreateShader, CullFace, DeleteBuffers, DeleteFramebuffers,
DeleteProgram, DeleteRenderbuffers, DeleteShader, DeleteTextures, DepthFunc, DepthMask, DepthRangef, DetachShader, Disable, DisableVertexAttribArray,
DrawArrays, DrawElements, Enable, EnableVertexAttribArray, Finish, Flush, FramebufferRenderbuffer, FramebufferTexture2D, FrontFace, GenBuffers, GenerateMipmap,
GenFramebuffers, GenRenderbuffers, GenTextures, GetActiveAttrib, GetActiveUniform, GetAttachedShaders, GetAttribLocation, GetBooleanv, GetBufferParameteriv,
GetError, GetFloatv, GetFramebufferAttachmentParameteriv, GetIntegerv, GetProgramiv, GetProgramInfoLog, GetRenderbufferParameteriv, GetShaderiv, GetShaderInfoLog,
GetShaderPrecisionFormat, GetShaderSource, GetString, GetTexParameterfv, GetTexParameteriv, GetUniformfv, GetUniformiv, GetUniformLocation, GetVertexAttribfv,
GetVertexAttribiv, GetVertexAttribPointerv, Hint, IsBuffer, IsEnabled, IsFramebuffer, IsProgram, IsRenderbuffer, IsShader, IsTexture, LineWidth, LinkProgram,
PixelStorei, PolygonOffset, ReadPixels, ReleaseShaderCompiler, RenderbufferStorage, SampleCoverage, Scissor, ShaderBinary, ShaderSource, StencilFunc,
StencilFuncSeparate, StencilMask, StencilMaskSeparate, StencilOp, StencilOpSeparate, TexImage2D, TexParameterf, TexParameterfv, TexParameteri, TexParameteriv,
TexSubImage2D, Uniform1f, Uniform1fv, Uniform1i, Uniform1iv, Uniform2f, Uniform2fv, Uniform2i, Uniform2iv, Uniform3f, Uniform3fv, Uniform3i, Uniform3iv, Uniform4f,
Uniform4fv, Uniform4i, Uniform4iv, UniformMatrix2fv, UniformMatrix3fv, UniformMatrix4fv, UseProgram, ValidateProgram, VertexAttrib1f, VertexAttrib1fv,
VertexAttrib2f, VertexAttrib2fv, VertexAttrib3f, VertexAttrib3fv, VertexAttrib4f, VertexAttrib4fv, VertexAttribPointer, Viewport,
NUMBER_OF_OPENGLES2_FUNCTIONS
};
}
inline void* getEs2Function(gl::internals::Gl2FuncName::OpenGLES2FunctionName funcname)
{
static void* FunctionTable[Gl2FuncName::NUMBER_OF_OPENGLES2_FUNCTIONS];
// GET FUNCTION POINTERS --- ONCE!!!! ///
if (!FunctionTable[0])
{
#if !TARGET_OS_IPHONE
pvr::lib::LIBTYPE lib = pvr::lib::openlib(gl::internals::libName);
if (!lib)
{
Log_Error("OpenGL ES Bindings: Failed to open library %s\n", internals::libName);
}
else
{
Log_Info("OpenGL ES Bindings: Successfully loaded library %s for OpenGL ES 2.0\n", libName);
}
FunctionTable[Gl2FuncName::ActiveTexture] = pvr::lib::getLibFunctionChecked<void*>(lib, "glActiveTexture");
FunctionTable[Gl2FuncName::AttachShader] = pvr::lib::getLibFunctionChecked<void*>(lib, "glAttachShader");
FunctionTable[Gl2FuncName::BindAttribLocation] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindAttribLocation");
FunctionTable[Gl2FuncName::BindBuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindBuffer");
FunctionTable[Gl2FuncName::BindFramebuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindFramebuffer");
FunctionTable[Gl2FuncName::BindRenderbuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindRenderbuffer");
FunctionTable[Gl2FuncName::BindTexture] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBindTexture");
FunctionTable[Gl2FuncName::BlendColor] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBlendColor");
FunctionTable[Gl2FuncName::BlendEquation] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBlendEquation");
FunctionTable[Gl2FuncName::BlendEquationSeparate] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBlendEquationSeparate");
FunctionTable[Gl2FuncName::BlendFunc] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBlendFunc");
FunctionTable[Gl2FuncName::BlendFuncSeparate] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBlendFuncSeparate");
FunctionTable[Gl2FuncName::BufferData] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBufferData");
FunctionTable[Gl2FuncName::BufferSubData] = pvr::lib::getLibFunctionChecked<void*>(lib, "glBufferSubData");
FunctionTable[Gl2FuncName::CheckFramebufferStatus] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCheckFramebufferStatus");
FunctionTable[Gl2FuncName::Clear] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClear");
FunctionTable[Gl2FuncName::ClearColor] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearColor");
FunctionTable[Gl2FuncName::ClearDepthf] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearDepthf");
FunctionTable[Gl2FuncName::ClearStencil] = pvr::lib::getLibFunctionChecked<void*>(lib, "glClearStencil");
FunctionTable[Gl2FuncName::ColorMask] = pvr::lib::getLibFunctionChecked<void*>(lib, "glColorMask");
FunctionTable[Gl2FuncName::CompileShader] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCompileShader");
FunctionTable[Gl2FuncName::CompressedTexImage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCompressedTexImage2D");
FunctionTable[Gl2FuncName::CompressedTexSubImage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCompressedTexSubImage2D");
FunctionTable[Gl2FuncName::CopyTexImage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCopyTexImage2D");
FunctionTable[Gl2FuncName::CopyTexSubImage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCopyTexSubImage2D");
FunctionTable[Gl2FuncName::CreateProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCreateProgram");
FunctionTable[Gl2FuncName::CreateShader] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCreateShader");
FunctionTable[Gl2FuncName::CullFace] = pvr::lib::getLibFunctionChecked<void*>(lib, "glCullFace");
FunctionTable[Gl2FuncName::DeleteBuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteBuffers");
FunctionTable[Gl2FuncName::DeleteFramebuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteFramebuffers");
FunctionTable[Gl2FuncName::DeleteProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteProgram");
FunctionTable[Gl2FuncName::DeleteRenderbuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteRenderbuffers");
FunctionTable[Gl2FuncName::DeleteShader] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteShader");
FunctionTable[Gl2FuncName::DeleteTextures] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDeleteTextures");
FunctionTable[Gl2FuncName::DepthFunc] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDepthFunc");
FunctionTable[Gl2FuncName::DepthMask] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDepthMask");
FunctionTable[Gl2FuncName::DepthRangef] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDepthRangef");
FunctionTable[Gl2FuncName::DetachShader] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDetachShader");
FunctionTable[Gl2FuncName::Disable] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDisable");
FunctionTable[Gl2FuncName::DisableVertexAttribArray] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDisableVertexAttribArray");
FunctionTable[Gl2FuncName::DrawArrays] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawArrays");
FunctionTable[Gl2FuncName::DrawElements] = pvr::lib::getLibFunctionChecked<void*>(lib, "glDrawElements");
FunctionTable[Gl2FuncName::Enable] = pvr::lib::getLibFunctionChecked<void*>(lib, "glEnable");
FunctionTable[Gl2FuncName::EnableVertexAttribArray] = pvr::lib::getLibFunctionChecked<void*>(lib, "glEnableVertexAttribArray");
FunctionTable[Gl2FuncName::Finish] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFinish");
FunctionTable[Gl2FuncName::Flush] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFlush");
FunctionTable[Gl2FuncName::FramebufferRenderbuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFramebufferRenderbuffer");
FunctionTable[Gl2FuncName::FramebufferTexture2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFramebufferTexture2D");
FunctionTable[Gl2FuncName::FrontFace] = pvr::lib::getLibFunctionChecked<void*>(lib, "glFrontFace");
FunctionTable[Gl2FuncName::GenBuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenBuffers");
FunctionTable[Gl2FuncName::GenerateMipmap] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenerateMipmap");
FunctionTable[Gl2FuncName::GenFramebuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenFramebuffers");
FunctionTable[Gl2FuncName::GenRenderbuffers] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenRenderbuffers");
FunctionTable[Gl2FuncName::GenTextures] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGenTextures");
FunctionTable[Gl2FuncName::GetActiveAttrib] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetActiveAttrib");
FunctionTable[Gl2FuncName::GetActiveUniform] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetActiveUniform");
FunctionTable[Gl2FuncName::GetAttachedShaders] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetAttachedShaders");
FunctionTable[Gl2FuncName::GetAttribLocation] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetAttribLocation");
FunctionTable[Gl2FuncName::GetBooleanv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetBooleanv");
FunctionTable[Gl2FuncName::GetBufferParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetBufferParameteriv");
FunctionTable[Gl2FuncName::GetError] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetError");
FunctionTable[Gl2FuncName::GetFloatv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetFloatv");
FunctionTable[Gl2FuncName::GetFramebufferAttachmentParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetFramebufferAttachmentParameteriv");
FunctionTable[Gl2FuncName::GetIntegerv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetIntegerv");
FunctionTable[Gl2FuncName::GetProgramiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramiv");
FunctionTable[Gl2FuncName::GetProgramInfoLog] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetProgramInfoLog");
FunctionTable[Gl2FuncName::GetRenderbufferParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetRenderbufferParameteriv");
FunctionTable[Gl2FuncName::GetShaderiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetShaderiv");
FunctionTable[Gl2FuncName::GetShaderInfoLog] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetShaderInfoLog");
FunctionTable[Gl2FuncName::GetShaderPrecisionFormat] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetShaderPrecisionFormat");
FunctionTable[Gl2FuncName::GetShaderSource] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetShaderSource");
FunctionTable[Gl2FuncName::GetString] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetString");
FunctionTable[Gl2FuncName::GetTexParameterfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetTexParameterfv");
FunctionTable[Gl2FuncName::GetTexParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetTexParameteriv");
FunctionTable[Gl2FuncName::GetUniformfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetUniformfv");
FunctionTable[Gl2FuncName::GetUniformiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetUniformiv");
FunctionTable[Gl2FuncName::GetUniformLocation] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetUniformLocation");
FunctionTable[Gl2FuncName::GetVertexAttribfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetVertexAttribfv");
FunctionTable[Gl2FuncName::GetVertexAttribiv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetVertexAttribiv");
FunctionTable[Gl2FuncName::GetVertexAttribPointerv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glGetVertexAttribPointerv");
FunctionTable[Gl2FuncName::Hint] = pvr::lib::getLibFunctionChecked<void*>(lib, "glHint");
FunctionTable[Gl2FuncName::IsBuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsBuffer");
FunctionTable[Gl2FuncName::IsEnabled] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsEnabled");
FunctionTable[Gl2FuncName::IsFramebuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsFramebuffer");
FunctionTable[Gl2FuncName::IsProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsProgram");
FunctionTable[Gl2FuncName::IsRenderbuffer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsRenderbuffer");
FunctionTable[Gl2FuncName::IsShader] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsShader");
FunctionTable[Gl2FuncName::IsTexture] = pvr::lib::getLibFunctionChecked<void*>(lib, "glIsTexture");
FunctionTable[Gl2FuncName::LineWidth] = pvr::lib::getLibFunctionChecked<void*>(lib, "glLineWidth");
FunctionTable[Gl2FuncName::LinkProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glLinkProgram");
FunctionTable[Gl2FuncName::PixelStorei] = pvr::lib::getLibFunctionChecked<void*>(lib, "glPixelStorei");
FunctionTable[Gl2FuncName::PolygonOffset] = pvr::lib::getLibFunctionChecked<void*>(lib, "glPolygonOffset");
FunctionTable[Gl2FuncName::ReadPixels] = pvr::lib::getLibFunctionChecked<void*>(lib, "glReadPixels");
FunctionTable[Gl2FuncName::ReleaseShaderCompiler] = pvr::lib::getLibFunctionChecked<void*>(lib, "glReleaseShaderCompiler");
FunctionTable[Gl2FuncName::RenderbufferStorage] = pvr::lib::getLibFunctionChecked<void*>(lib, "glRenderbufferStorage");
FunctionTable[Gl2FuncName::SampleCoverage] = pvr::lib::getLibFunctionChecked<void*>(lib, "glSampleCoverage");
FunctionTable[Gl2FuncName::Scissor] = pvr::lib::getLibFunctionChecked<void*>(lib, "glScissor");
FunctionTable[Gl2FuncName::ShaderBinary] = pvr::lib::getLibFunctionChecked<void*>(lib, "glShaderBinary");
FunctionTable[Gl2FuncName::ShaderSource] = pvr::lib::getLibFunctionChecked<void*>(lib, "glShaderSource");
FunctionTable[Gl2FuncName::StencilFunc] = pvr::lib::getLibFunctionChecked<void*>(lib, "glStencilFunc");
FunctionTable[Gl2FuncName::StencilFuncSeparate] = pvr::lib::getLibFunctionChecked<void*>(lib, "glStencilFuncSeparate");
FunctionTable[Gl2FuncName::StencilMask] = pvr::lib::getLibFunctionChecked<void*>(lib, "glStencilMask");
FunctionTable[Gl2FuncName::StencilMaskSeparate] = pvr::lib::getLibFunctionChecked<void*>(lib, "glStencilMaskSeparate");
FunctionTable[Gl2FuncName::StencilOp] = pvr::lib::getLibFunctionChecked<void*>(lib, "glStencilOp");
FunctionTable[Gl2FuncName::StencilOpSeparate] = pvr::lib::getLibFunctionChecked<void*>(lib, "glStencilOpSeparate");
FunctionTable[Gl2FuncName::TexImage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexImage2D");
FunctionTable[Gl2FuncName::TexParameterf] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexParameterf");
FunctionTable[Gl2FuncName::TexParameterfv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexParameterfv");
FunctionTable[Gl2FuncName::TexParameteri] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexParameteri");
FunctionTable[Gl2FuncName::TexParameteriv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexParameteriv");
FunctionTable[Gl2FuncName::TexSubImage2D] = pvr::lib::getLibFunctionChecked<void*>(lib, "glTexSubImage2D");
FunctionTable[Gl2FuncName::Uniform1f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform1f");
FunctionTable[Gl2FuncName::Uniform1fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform1fv");
FunctionTable[Gl2FuncName::Uniform1i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform1i");
FunctionTable[Gl2FuncName::Uniform1iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform1iv");
FunctionTable[Gl2FuncName::Uniform2f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform2f");
FunctionTable[Gl2FuncName::Uniform2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform2fv");
FunctionTable[Gl2FuncName::Uniform2i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform2i");
FunctionTable[Gl2FuncName::Uniform2iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform2iv");
FunctionTable[Gl2FuncName::Uniform3f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform3f");
FunctionTable[Gl2FuncName::Uniform3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform3fv");
FunctionTable[Gl2FuncName::Uniform3i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform3i");
FunctionTable[Gl2FuncName::Uniform3iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform3iv");
FunctionTable[Gl2FuncName::Uniform4f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform4f");
FunctionTable[Gl2FuncName::Uniform4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform4fv");
FunctionTable[Gl2FuncName::Uniform4i] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform4i");
FunctionTable[Gl2FuncName::Uniform4iv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniform4iv");
FunctionTable[Gl2FuncName::UniformMatrix2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix2fv");
FunctionTable[Gl2FuncName::UniformMatrix3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix3fv");
FunctionTable[Gl2FuncName::UniformMatrix4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUniformMatrix4fv");
FunctionTable[Gl2FuncName::UseProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glUseProgram");
FunctionTable[Gl2FuncName::ValidateProgram] = pvr::lib::getLibFunctionChecked<void*>(lib, "glValidateProgram");
FunctionTable[Gl2FuncName::VertexAttrib1f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib1f");
FunctionTable[Gl2FuncName::VertexAttrib1fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib1fv");
FunctionTable[Gl2FuncName::VertexAttrib2f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib2f");
FunctionTable[Gl2FuncName::VertexAttrib2fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib2fv");
FunctionTable[Gl2FuncName::VertexAttrib3f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib3f");
FunctionTable[Gl2FuncName::VertexAttrib3fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib3fv");
FunctionTable[Gl2FuncName::VertexAttrib4f] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib4f");
FunctionTable[Gl2FuncName::VertexAttrib4fv] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttrib4fv");
FunctionTable[Gl2FuncName::VertexAttribPointer] = pvr::lib::getLibFunctionChecked<void*>(lib, "glVertexAttribPointer");
FunctionTable[Gl2FuncName::Viewport] = pvr::lib::getLibFunctionChecked<void*>(lib, "glViewport");
#else
FunctionTable[Gl2FuncName::ActiveTexture] = (void*)&glActiveTexture;
FunctionTable[Gl2FuncName::AttachShader] = (void*)&glAttachShader;
FunctionTable[Gl2FuncName::BindAttribLocation] = (void*)&glBindAttribLocation;
FunctionTable[Gl2FuncName::BindBuffer] = (void*)&glBindBuffer;
FunctionTable[Gl2FuncName::BindFramebuffer] = (void*)&glBindFramebuffer;
FunctionTable[Gl2FuncName::BindRenderbuffer] = (void*)&glBindRenderbuffer;
FunctionTable[Gl2FuncName::BindTexture] = (void*)&glBindTexture;
FunctionTable[Gl2FuncName::BlendColor] = (void*)&glBlendColor;
FunctionTable[Gl2FuncName::BlendEquation] = (void*)&glBlendEquation;
FunctionTable[Gl2FuncName::BlendEquationSeparate] = (void*)&glBlendEquationSeparate;
FunctionTable[Gl2FuncName::BlendFunc] = (void*)&glBlendFunc;
FunctionTable[Gl2FuncName::BlendFuncSeparate] = (void*)&glBlendFuncSeparate;
FunctionTable[Gl2FuncName::BufferData] = (void*)&glBufferData;
FunctionTable[Gl2FuncName::BufferSubData] = (void*)&glBufferSubData;
FunctionTable[Gl2FuncName::CheckFramebufferStatus] = (void*)&glCheckFramebufferStatus;
FunctionTable[Gl2FuncName::Clear] = (void*)&glClear;
FunctionTable[Gl2FuncName::ClearColor] = (void*)&glClearColor;
FunctionTable[Gl2FuncName::ClearDepthf] = (void*)&glClearDepthf;
FunctionTable[Gl2FuncName::ClearStencil] = (void*)&glClearStencil;
FunctionTable[Gl2FuncName::ColorMask] = (void*)&glColorMask;
FunctionTable[Gl2FuncName::CompileShader] = (void*)&glCompileShader;
FunctionTable[Gl2FuncName::CompressedTexImage2D] = (void*)&glCompressedTexImage2D;
FunctionTable[Gl2FuncName::CompressedTexSubImage2D] = (void*)&glCompressedTexSubImage2D;
FunctionTable[Gl2FuncName::CopyTexImage2D] = (void*)&glCopyTexImage2D;
FunctionTable[Gl2FuncName::CopyTexSubImage2D] = (void*)&glCopyTexSubImage2D;
FunctionTable[Gl2FuncName::CreateProgram] = (void*)&glCreateProgram;
FunctionTable[Gl2FuncName::CreateShader] = (void*)&glCreateShader;
FunctionTable[Gl2FuncName::CullFace] = (void*)&glCullFace;
FunctionTable[Gl2FuncName::DeleteBuffers] = (void*)&glDeleteBuffers;
FunctionTable[Gl2FuncName::DeleteFramebuffers] = (void*)&glDeleteFramebuffers;
FunctionTable[Gl2FuncName::DeleteProgram] = (void*)&glDeleteProgram;
FunctionTable[Gl2FuncName::DeleteRenderbuffers] = (void*)&glDeleteRenderbuffers;
FunctionTable[Gl2FuncName::DeleteShader] = (void*)&glDeleteShader;
FunctionTable[Gl2FuncName::DeleteTextures] = (void*)&glDeleteTextures;
FunctionTable[Gl2FuncName::DepthFunc] = (void*)&glDepthFunc;
FunctionTable[Gl2FuncName::DepthMask] = (void*)&glDepthMask;
FunctionTable[Gl2FuncName::DepthRangef] = (void*)&glDepthRangef;
FunctionTable[Gl2FuncName::DetachShader] = (void*)&glDetachShader;
FunctionTable[Gl2FuncName::Disable] = (void*)&glDisable;
FunctionTable[Gl2FuncName::DisableVertexAttribArray] = (void*)&glDisableVertexAttribArray;
FunctionTable[Gl2FuncName::DrawArrays] = (void*)&glDrawArrays;
FunctionTable[Gl2FuncName::DrawElements] = (void*)&glDrawElements;
FunctionTable[Gl2FuncName::Enable] = (void*)&glEnable;
FunctionTable[Gl2FuncName::EnableVertexAttribArray] = (void*)&glEnableVertexAttribArray;
FunctionTable[Gl2FuncName::Finish] = (void*)&glFinish;
FunctionTable[Gl2FuncName::Flush] = (void*)&glFlush;
FunctionTable[Gl2FuncName::FramebufferRenderbuffer] = (void*)&glFramebufferRenderbuffer;
FunctionTable[Gl2FuncName::FramebufferTexture2D] = (void*)&glFramebufferTexture2D;
FunctionTable[Gl2FuncName::FrontFace] = (void*)&glFrontFace;
FunctionTable[Gl2FuncName::GenBuffers] = (void*)&glGenBuffers;
FunctionTable[Gl2FuncName::GenerateMipmap] = (void*)&glGenerateMipmap;
FunctionTable[Gl2FuncName::GenFramebuffers] = (void*)&glGenFramebuffers;
FunctionTable[Gl2FuncName::GenRenderbuffers] = (void*)&glGenRenderbuffers;
FunctionTable[Gl2FuncName::GenTextures] = (void*)&glGenTextures;
FunctionTable[Gl2FuncName::GetActiveAttrib] = (void*)&glGetActiveAttrib;
FunctionTable[Gl2FuncName::GetActiveUniform] = (void*)&glGetActiveUniform;
FunctionTable[Gl2FuncName::GetAttachedShaders] = (void*)&glGetAttachedShaders;
FunctionTable[Gl2FuncName::GetAttribLocation] = (void*)&glGetAttribLocation;
FunctionTable[Gl2FuncName::GetBooleanv] = (void*)&glGetBooleanv;
FunctionTable[Gl2FuncName::GetBufferParameteriv] = (void*)&glGetBufferParameteriv;
FunctionTable[Gl2FuncName::GetError] = (void*)&glGetError;
FunctionTable[Gl2FuncName::GetFloatv] = (void*)&glGetFloatv;
FunctionTable[Gl2FuncName::GetFramebufferAttachmentParameteriv] = (void*)&glGetFramebufferAttachmentParameteriv;
FunctionTable[Gl2FuncName::GetIntegerv] = (void*)&glGetIntegerv;
FunctionTable[Gl2FuncName::GetProgramiv] = (void*)&glGetProgramiv;
FunctionTable[Gl2FuncName::GetProgramInfoLog] = (void*)&glGetProgramInfoLog;
FunctionTable[Gl2FuncName::GetRenderbufferParameteriv] = (void*)&glGetRenderbufferParameteriv;
FunctionTable[Gl2FuncName::GetShaderiv] = (void*)&glGetShaderiv;
FunctionTable[Gl2FuncName::GetShaderInfoLog] = (void*)&glGetShaderInfoLog;
FunctionTable[Gl2FuncName::GetShaderPrecisionFormat] = (void*)&glGetShaderPrecisionFormat;
FunctionTable[Gl2FuncName::GetShaderSource] = (void*)&glGetShaderSource;
FunctionTable[Gl2FuncName::GetString] = (void*)&glGetString;
FunctionTable[Gl2FuncName::GetTexParameterfv] = (void*)&glGetTexParameterfv;
FunctionTable[Gl2FuncName::GetTexParameteriv] = (void*)&glGetTexParameteriv;
FunctionTable[Gl2FuncName::GetUniformfv] = (void*)&glGetUniformfv;
FunctionTable[Gl2FuncName::GetUniformiv] = (void*)&glGetUniformiv;
FunctionTable[Gl2FuncName::GetUniformLocation] = (void*)&glGetUniformLocation;
FunctionTable[Gl2FuncName::GetVertexAttribfv] = (void*)&glGetVertexAttribfv;
FunctionTable[Gl2FuncName::GetVertexAttribiv] = (void*)&glGetVertexAttribiv;
FunctionTable[Gl2FuncName::GetVertexAttribPointerv] = (void*)&glGetVertexAttribPointerv;
FunctionTable[Gl2FuncName::Hint] = (void*)&glHint;
FunctionTable[Gl2FuncName::IsBuffer] = (void*)&glIsBuffer;
FunctionTable[Gl2FuncName::IsEnabled] = (void*)&glIsEnabled;
FunctionTable[Gl2FuncName::IsFramebuffer] = (void*)&glIsFramebuffer;
FunctionTable[Gl2FuncName::IsProgram] = (void*)&glIsProgram;
FunctionTable[Gl2FuncName::IsRenderbuffer] = (void*)&glIsRenderbuffer;
FunctionTable[Gl2FuncName::IsShader] = (void*)&glIsShader;
FunctionTable[Gl2FuncName::IsTexture] = (void*)&glIsTexture;
FunctionTable[Gl2FuncName::LineWidth] = (void*)&glLineWidth;
FunctionTable[Gl2FuncName::LinkProgram] = (void*)&glLinkProgram;
FunctionTable[Gl2FuncName::PixelStorei] = (void*)&glPixelStorei;
FunctionTable[Gl2FuncName::PolygonOffset] = (void*)&glPolygonOffset;
FunctionTable[Gl2FuncName::ReadPixels] = (void*)&glReadPixels;
FunctionTable[Gl2FuncName::ReleaseShaderCompiler] = (void*)&glReleaseShaderCompiler;
FunctionTable[Gl2FuncName::RenderbufferStorage] = (void*)&glRenderbufferStorage;
FunctionTable[Gl2FuncName::SampleCoverage] = (void*)&glSampleCoverage;
FunctionTable[Gl2FuncName::Scissor] = (void*)&glScissor;
FunctionTable[Gl2FuncName::ShaderBinary] = (void*)&glShaderBinary;
FunctionTable[Gl2FuncName::ShaderSource] = (void*)&glShaderSource;
FunctionTable[Gl2FuncName::StencilFunc] = (void*)&glStencilFunc;
FunctionTable[Gl2FuncName::StencilFuncSeparate] = (void*)&glStencilFuncSeparate;
FunctionTable[Gl2FuncName::StencilMask] = (void*)&glStencilMask;
FunctionTable[Gl2FuncName::StencilMaskSeparate] = (void*)&glStencilMaskSeparate;
FunctionTable[Gl2FuncName::StencilOp] = (void*)&glStencilOp;
FunctionTable[Gl2FuncName::StencilOpSeparate] = (void*)&glStencilOpSeparate;
FunctionTable[Gl2FuncName::TexImage2D] = (void*)&glTexImage2D;
FunctionTable[Gl2FuncName::TexParameterf] = (void*)&glTexParameterf;
FunctionTable[Gl2FuncName::TexParameterfv] = (void*)&glTexParameterfv;
FunctionTable[Gl2FuncName::TexParameteri] = (void*)&glTexParameteri;
FunctionTable[Gl2FuncName::TexParameteriv] = (void*)&glTexParameteriv;
FunctionTable[Gl2FuncName::TexSubImage2D] = (void*)&glTexSubImage2D;
FunctionTable[Gl2FuncName::Uniform1f] = (void*)&glUniform1f;
FunctionTable[Gl2FuncName::Uniform1fv] = (void*)&glUniform1fv;
FunctionTable[Gl2FuncName::Uniform1i] = (void*)&glUniform1i;
FunctionTable[Gl2FuncName::Uniform1iv] = (void*)&glUniform1iv;
FunctionTable[Gl2FuncName::Uniform2f] = (void*)&glUniform2f;
FunctionTable[Gl2FuncName::Uniform2fv] = (void*)&glUniform2fv;
FunctionTable[Gl2FuncName::Uniform2i] = (void*)&glUniform2i;
FunctionTable[Gl2FuncName::Uniform2iv] = (void*)&glUniform2iv;
FunctionTable[Gl2FuncName::Uniform3f] = (void*)&glUniform3f;
FunctionTable[Gl2FuncName::Uniform3fv] = (void*)&glUniform3fv;
FunctionTable[Gl2FuncName::Uniform3i] = (void*)&glUniform3i;
FunctionTable[Gl2FuncName::Uniform3iv] = (void*)&glUniform3iv;
FunctionTable[Gl2FuncName::Uniform4f] = (void*)&glUniform4f;
FunctionTable[Gl2FuncName::Uniform4fv] = (void*)&glUniform4fv;
FunctionTable[Gl2FuncName::Uniform4i] = (void*)&glUniform4i;
FunctionTable[Gl2FuncName::Uniform4iv] = (void*)&glUniform4iv;
FunctionTable[Gl2FuncName::UniformMatrix2fv] = (void*)&glUniformMatrix2fv;
FunctionTable[Gl2FuncName::UniformMatrix3fv] = (void*)&glUniformMatrix3fv;
FunctionTable[Gl2FuncName::UniformMatrix4fv] = (void*)&glUniformMatrix4fv;
FunctionTable[Gl2FuncName::UseProgram] = (void*)&glUseProgram;
FunctionTable[Gl2FuncName::ValidateProgram] = (void*)&glValidateProgram;
FunctionTable[Gl2FuncName::VertexAttrib1f] = (void*)&glVertexAttrib1f;
FunctionTable[Gl2FuncName::VertexAttrib1fv] = (void*)&glVertexAttrib1fv;
FunctionTable[Gl2FuncName::VertexAttrib2f] = (void*)&glVertexAttrib2f;
FunctionTable[Gl2FuncName::VertexAttrib2fv] = (void*)&glVertexAttrib2fv;
FunctionTable[Gl2FuncName::VertexAttrib3f] = (void*)&glVertexAttrib3f;
FunctionTable[Gl2FuncName::VertexAttrib3fv] = (void*)&glVertexAttrib3fv;
FunctionTable[Gl2FuncName::VertexAttrib4f] = (void*)&glVertexAttrib4f;
FunctionTable[Gl2FuncName::VertexAttrib4fv] = (void*)&glVertexAttrib4fv;
FunctionTable[Gl2FuncName::VertexAttribPointer] = (void*)&glVertexAttribPointer;
FunctionTable[Gl2FuncName::Viewport] = (void*)&glViewport;
#endif
}
return FunctionTable[funcname];
}
}
}
#ifndef DYNAMICGLES_NO_NAMESPACE
namespace gl {
#elif TARGET_OS_IPHONE
namespace gl {
namespace internals {
#endif
inline void DYNAMICGLES_FUNCTION(ActiveTexture)(GLenum texture)
{
#if TARGET_OS_IPHONE
typedef decltype(&glActiveTexture) PFNGLACTIVETEXTUREPROC;
#endif
PFNGLACTIVETEXTUREPROC _ActiveTexture = (PFNGLACTIVETEXTUREPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ActiveTexture);
return _ActiveTexture(texture);
}
inline void DYNAMICGLES_FUNCTION(AttachShader)(GLuint program, GLuint shader)
{
#if TARGET_OS_IPHONE
typedef decltype(&glAttachShader) PFNGLATTACHSHADERPROC;
#endif
PFNGLATTACHSHADERPROC _AttachShader = (PFNGLATTACHSHADERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::AttachShader);
return _AttachShader(program, shader);
}
inline void DYNAMICGLES_FUNCTION(BindAttribLocation)(GLuint program, GLuint index, const GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindAttribLocation) PFNGLBINDATTRIBLOCATIONPROC;
#endif
PFNGLBINDATTRIBLOCATIONPROC _BindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BindAttribLocation);
return _BindAttribLocation(program, index, name);
}
inline void DYNAMICGLES_FUNCTION(BindBuffer)(GLenum target, GLuint buffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindBuffer) PFNGLBINDBUFFERPROC;
#endif
PFNGLBINDBUFFERPROC _BindBuffer = (PFNGLBINDBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BindBuffer);
return _BindBuffer(target, buffer);
}
inline void DYNAMICGLES_FUNCTION(BindFramebuffer)(GLenum target, GLuint framebuffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindFramebuffer) PFNGLBINDFRAMEBUFFERPROC;
#endif
PFNGLBINDFRAMEBUFFERPROC _BindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BindFramebuffer);
return _BindFramebuffer(target, framebuffer);
}
inline void DYNAMICGLES_FUNCTION(BindRenderbuffer)(GLenum target, GLuint renderbuffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindRenderbuffer) PFNGLBINDRENDERBUFFERPROC;
#endif
PFNGLBINDRENDERBUFFERPROC _BindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BindRenderbuffer);
return _BindRenderbuffer(target, renderbuffer);
}
inline void DYNAMICGLES_FUNCTION(BindTexture)(GLenum target, GLuint texture)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindTexture) PFNGLBINDTEXTUREPROC;
#endif
PFNGLBINDTEXTUREPROC _BindTexture = (PFNGLBINDTEXTUREPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BindTexture);
return _BindTexture(target, texture);
}
inline void DYNAMICGLES_FUNCTION(BlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBlendColor) PFNGLBLENDCOLORPROC;
#endif
PFNGLBLENDCOLORPROC _BlendColor = (PFNGLBLENDCOLORPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BlendColor);
return _BlendColor(red, green, blue, alpha);
}
inline void DYNAMICGLES_FUNCTION(BlendEquation)(GLenum mode)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBlendEquation) PFNGLBLENDEQUATIONPROC;
#endif
PFNGLBLENDEQUATIONPROC _BlendEquation = (PFNGLBLENDEQUATIONPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BlendEquation);
return _BlendEquation(mode);
}
inline void DYNAMICGLES_FUNCTION(BlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBlendEquationSeparate) PFNGLBLENDEQUATIONSEPARATEPROC;
#endif
PFNGLBLENDEQUATIONSEPARATEPROC _BlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BlendEquationSeparate);
return _BlendEquationSeparate(modeRGB, modeAlpha);
}
inline void DYNAMICGLES_FUNCTION(BlendFunc)(GLenum sfactor, GLenum dfactor)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBlendFunc) PFNGLBLENDFUNCPROC;
#endif
PFNGLBLENDFUNCPROC _BlendFunc = (PFNGLBLENDFUNCPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BlendFunc);
return _BlendFunc(sfactor, dfactor);
}
inline void DYNAMICGLES_FUNCTION(BlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBlendFuncSeparate) PFNGLBLENDFUNCSEPARATEPROC;
#endif
PFNGLBLENDFUNCSEPARATEPROC _BlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BlendFuncSeparate);
return _BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
}
inline void DYNAMICGLES_FUNCTION(BufferData)(GLenum target, GLsizeiptr size, const void* data, GLenum usage)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBufferData) PFNGLBUFFERDATAPROC;
#endif
PFNGLBUFFERDATAPROC _BufferData = (PFNGLBUFFERDATAPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BufferData);
return _BufferData(target, size, data, usage);
}
inline void DYNAMICGLES_FUNCTION(BufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const void* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBufferSubData) PFNGLBUFFERSUBDATAPROC;
#endif
PFNGLBUFFERSUBDATAPROC _BufferSubData = (PFNGLBUFFERSUBDATAPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::BufferSubData);
return _BufferSubData(target, offset, size, data);
}
inline GLenum DYNAMICGLES_FUNCTION(CheckFramebufferStatus)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCheckFramebufferStatus) PFNGLCHECKFRAMEBUFFERSTATUSPROC;
#endif
PFNGLCHECKFRAMEBUFFERSTATUSPROC _CheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CheckFramebufferStatus);
return _CheckFramebufferStatus(target);
}
inline void DYNAMICGLES_FUNCTION(Clear)(GLbitfield mask)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClear) PFNGLCLEARPROC;
#endif
PFNGLCLEARPROC _Clear = (PFNGLCLEARPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Clear);
return _Clear(mask);
}
inline void DYNAMICGLES_FUNCTION(ClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearColor) PFNGLCLEARCOLORPROC;
#endif
PFNGLCLEARCOLORPROC _ClearColor = (PFNGLCLEARCOLORPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ClearColor);
return _ClearColor(red, green, blue, alpha);
}
inline void DYNAMICGLES_FUNCTION(ClearDepthf)(GLfloat d)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearDepthf) PFNGLCLEARDEPTHFPROC;
#endif
PFNGLCLEARDEPTHFPROC _ClearDepthf = (PFNGLCLEARDEPTHFPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ClearDepthf);
return _ClearDepthf(d);
}
inline void DYNAMICGLES_FUNCTION(ClearStencil)(GLint s)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClearStencil) PFNGLCLEARSTENCILPROC;
#endif
PFNGLCLEARSTENCILPROC _ClearStencil = (PFNGLCLEARSTENCILPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ClearStencil);
return _ClearStencil(s);
}
inline void DYNAMICGLES_FUNCTION(ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
{
#if TARGET_OS_IPHONE
typedef decltype(&glColorMask) PFNGLCOLORMASKPROC;
#endif
PFNGLCOLORMASKPROC _ColorMask = (PFNGLCOLORMASKPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ColorMask);
return _ColorMask(red, green, blue, alpha);
}
inline void DYNAMICGLES_FUNCTION(CompileShader)(GLuint shader)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCompileShader) PFNGLCOMPILESHADERPROC;
#endif
PFNGLCOMPILESHADERPROC _CompileShader = (PFNGLCOMPILESHADERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CompileShader);
return _CompileShader(shader);
}
inline void DYNAMICGLES_FUNCTION(CompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCompressedTexImage2D) PFNGLCOMPRESSEDTEXIMAGE2DPROC;
#endif
PFNGLCOMPRESSEDTEXIMAGE2DPROC _CompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CompressedTexImage2D);
return _CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
}
inline void DYNAMICGLES_FUNCTION(CompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCompressedTexSubImage2D) PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC;
#endif
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC _CompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CompressedTexSubImage2D);
return _CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
}
inline void DYNAMICGLES_FUNCTION(CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCopyTexImage2D) PFNGLCOPYTEXIMAGE2DPROC;
#endif
PFNGLCOPYTEXIMAGE2DPROC _CopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CopyTexImage2D);
return _CopyTexImage2D(target, level, internalformat, x, y, width, height, border);
}
inline void DYNAMICGLES_FUNCTION(CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCopyTexSubImage2D) PFNGLCOPYTEXSUBIMAGE2DPROC;
#endif
PFNGLCOPYTEXSUBIMAGE2DPROC _CopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CopyTexSubImage2D);
return _CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
}
inline GLenum DYNAMICGLES_FUNCTION(CreateProgram)()
{
#if TARGET_OS_IPHONE
typedef decltype(&glCreateProgram) PFNGLCREATEPROGRAMPROC;
#endif
PFNGLCREATEPROGRAMPROC _CreateProgram = (PFNGLCREATEPROGRAMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CreateProgram);
return _CreateProgram();
}
inline GLenum DYNAMICGLES_FUNCTION(CreateShader)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCreateShader) PFNGLCREATESHADERPROC;
#endif
PFNGLCREATESHADERPROC _CreateShader = (PFNGLCREATESHADERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CreateShader);
return _CreateShader(target);
}
inline void DYNAMICGLES_FUNCTION(CullFace)(GLenum mode)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCullFace) PFNGLCULLFACEPROC;
#endif
PFNGLCULLFACEPROC _CullFace = (PFNGLCULLFACEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::CullFace);
return _CullFace(mode);
}
inline void DYNAMICGLES_FUNCTION(DeleteBuffers)(GLsizei n, const GLuint* buffers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteBuffers) PFNGLDELETEBUFFERSPROC;
#endif
PFNGLDELETEBUFFERSPROC _DeleteBuffers = (PFNGLDELETEBUFFERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DeleteBuffers);
return _DeleteBuffers(n, buffers);
}
inline void DYNAMICGLES_FUNCTION(DeleteFramebuffers)(GLsizei n, const GLuint* framebuffers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteFramebuffers) PFNGLDELETEFRAMEBUFFERSPROC;
#endif
PFNGLDELETEFRAMEBUFFERSPROC _DeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DeleteFramebuffers);
return _DeleteFramebuffers(n, framebuffers);
}
inline void DYNAMICGLES_FUNCTION(DeleteProgram)(GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteProgram) PFNGLDELETEPROGRAMPROC;
#endif
PFNGLDELETEPROGRAMPROC _DeleteProgram = (PFNGLDELETEPROGRAMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DeleteProgram);
return _DeleteProgram(program);
}
inline void DYNAMICGLES_FUNCTION(DeleteRenderbuffers)(GLsizei n, const GLuint* renderbuffers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteRenderbuffers) PFNGLDELETERENDERBUFFERSPROC;
#endif
PFNGLDELETERENDERBUFFERSPROC _DeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DeleteRenderbuffers);
return _DeleteRenderbuffers(n, renderbuffers);
}
inline void DYNAMICGLES_FUNCTION(DeleteShader)(GLuint shader)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteShader) PFNGLDELETESHADERPROC;
#endif
PFNGLDELETESHADERPROC _DeleteShader = (PFNGLDELETESHADERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DeleteShader);
return _DeleteShader(shader);
}
inline void DYNAMICGLES_FUNCTION(DeleteTextures)(GLsizei n, const GLuint* textures)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteTextures) PFNGLDELETETEXTURESPROC;
#endif
PFNGLDELETETEXTURESPROC _DeleteTextures = (PFNGLDELETETEXTURESPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DeleteTextures);
return _DeleteTextures(n, textures);
}
inline void DYNAMICGLES_FUNCTION(DepthFunc)(GLenum func)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDepthFunc) PFNGLDEPTHFUNCPROC;
#endif
PFNGLDEPTHFUNCPROC _DepthFunc = (PFNGLDEPTHFUNCPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DepthFunc);
return _DepthFunc(func);
}
inline void DYNAMICGLES_FUNCTION(DepthMask)(GLboolean flag)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDepthMask) PFNGLDEPTHMASKPROC;
#endif
PFNGLDEPTHMASKPROC _DepthMask = (PFNGLDEPTHMASKPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DepthMask);
return _DepthMask(flag);
}
inline void DYNAMICGLES_FUNCTION(DepthRangef)(GLfloat n, GLfloat f)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDepthRangef) PFNGLDEPTHRANGEFPROC;
#endif
PFNGLDEPTHRANGEFPROC _DepthRangef = (PFNGLDEPTHRANGEFPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DepthRangef);
return _DepthRangef(n, f);
}
inline void DYNAMICGLES_FUNCTION(DetachShader)(GLuint program, GLuint shader)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDetachShader) PFNGLDETACHSHADERPROC;
#endif
PFNGLDETACHSHADERPROC _DetachShader = (PFNGLDETACHSHADERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DetachShader);
return _DetachShader(program, shader);
}
inline void DYNAMICGLES_FUNCTION(Disable)(GLenum cap)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDisable) PFNGLDISABLEPROC;
#endif
PFNGLDISABLEPROC _Disable = (PFNGLDISABLEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Disable);
return _Disable(cap);
}
inline void DYNAMICGLES_FUNCTION(DisableVertexAttribArray)(GLuint index)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDisableVertexAttribArray) PFNGLDISABLEVERTEXATTRIBARRAYPROC;
#endif
PFNGLDISABLEVERTEXATTRIBARRAYPROC _DisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DisableVertexAttribArray);
return _DisableVertexAttribArray(index);
}
inline void DYNAMICGLES_FUNCTION(DrawArrays)(GLenum mode, GLint first, GLsizei count)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDrawArrays) PFNGLDRAWARRAYSPROC;
#endif
PFNGLDRAWARRAYSPROC _DrawArrays = (PFNGLDRAWARRAYSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DrawArrays);
return _DrawArrays(mode, first, count);
}
inline void DYNAMICGLES_FUNCTION(DrawElements)(GLenum mode, GLsizei count, GLenum type, const void* indices)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDrawElements) PFNGLDRAWELEMENTSPROC;
#endif
PFNGLDRAWELEMENTSPROC _DrawElements = (PFNGLDRAWELEMENTSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::DrawElements);
return _DrawElements(mode, count, type, indices);
}
inline void DYNAMICGLES_FUNCTION(Enable)(GLenum cap)
{
#if TARGET_OS_IPHONE
typedef decltype(&glEnable) PFNGLENABLEPROC;
#endif
PFNGLENABLEPROC _Enable = (PFNGLENABLEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Enable);
return _Enable(cap);
}
inline void DYNAMICGLES_FUNCTION(EnableVertexAttribArray)(GLuint index)
{
#if TARGET_OS_IPHONE
typedef decltype(&glEnableVertexAttribArray) PFNGLENABLEVERTEXATTRIBARRAYPROC;
#endif
PFNGLENABLEVERTEXATTRIBARRAYPROC _EnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::EnableVertexAttribArray);
return _EnableVertexAttribArray(index);
}
inline void DYNAMICGLES_FUNCTION(Finish)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFinish) PFNGLFINISHPROC;
#endif
PFNGLFINISHPROC _Finish = (PFNGLFINISHPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Finish);
return _Finish();
}
inline void DYNAMICGLES_FUNCTION(Flush)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFlush) PFNGLFLUSHPROC;
#endif
PFNGLFLUSHPROC _Flush = (PFNGLFLUSHPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Flush);
return _Flush();
}
inline void DYNAMICGLES_FUNCTION(FramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFramebufferRenderbuffer) PFNGLFRAMEBUFFERRENDERBUFFERPROC;
#endif
PFNGLFRAMEBUFFERRENDERBUFFERPROC _FramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::FramebufferRenderbuffer);
return _FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
}
inline void DYNAMICGLES_FUNCTION(FramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFramebufferTexture2D) PFNGLFRAMEBUFFERTEXTURE2DPROC;
#endif
PFNGLFRAMEBUFFERTEXTURE2DPROC _FramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::FramebufferTexture2D);
return _FramebufferTexture2D(target, attachment, textarget, texture, level);
}
inline void DYNAMICGLES_FUNCTION(FrontFace)(GLenum mode)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFrontFace) PFNGLFRONTFACEPROC;
#endif
PFNGLFRONTFACEPROC _FrontFace = (PFNGLFRONTFACEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::FrontFace);
return _FrontFace(mode);
}
inline void DYNAMICGLES_FUNCTION(GenBuffers)(GLsizei n, GLuint* buffers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenBuffers) PFNGLGENBUFFERSPROC;
#endif
PFNGLGENBUFFERSPROC _GenBuffers = (PFNGLGENBUFFERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GenBuffers);
return _GenBuffers(n, buffers);
}
inline void DYNAMICGLES_FUNCTION(GenerateMipmap)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenerateMipmap) PFNGLGENERATEMIPMAPPROC;
#endif
PFNGLGENERATEMIPMAPPROC _GenerateMipmap = (PFNGLGENERATEMIPMAPPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GenerateMipmap);
return _GenerateMipmap(target);
}
inline void DYNAMICGLES_FUNCTION(GenFramebuffers)(GLsizei n, GLuint* framebuffers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenFramebuffers) PFNGLGENFRAMEBUFFERSPROC;
#endif
PFNGLGENFRAMEBUFFERSPROC _GenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GenFramebuffers);
return _GenFramebuffers(n, framebuffers);
}
inline void DYNAMICGLES_FUNCTION(GenRenderbuffers)(GLsizei n, GLuint* renderbuffers)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenRenderbuffers) PFNGLGENRENDERBUFFERSPROC;
#endif
PFNGLGENRENDERBUFFERSPROC _GenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GenRenderbuffers);
return _GenRenderbuffers(n, renderbuffers);
}
inline void DYNAMICGLES_FUNCTION(GenTextures)(GLsizei n, GLuint* textures)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenTextures) PFNGLGENTEXTURESPROC;
#endif
PFNGLGENTEXTURESPROC _GenTextures = (PFNGLGENTEXTURESPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GenTextures);
return _GenTextures(n, textures);
}
inline void DYNAMICGLES_FUNCTION(GetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetActiveAttrib) PFNGLGETACTIVEATTRIBPROC;
#endif
PFNGLGETACTIVEATTRIBPROC _GetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetActiveAttrib);
return _GetActiveAttrib(program, index, bufSize, length, size, type, name);
}
inline void DYNAMICGLES_FUNCTION(GetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetActiveUniform) PFNGLGETACTIVEUNIFORMPROC;
#endif
PFNGLGETACTIVEUNIFORMPROC _GetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetActiveUniform);
return _GetActiveUniform(program, index, bufSize, length, size, type, name);
}
inline void DYNAMICGLES_FUNCTION(GetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetAttachedShaders) PFNGLGETATTACHEDSHADERSPROC;
#endif
PFNGLGETATTACHEDSHADERSPROC _GetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetAttachedShaders);
return _GetAttachedShaders(program, maxCount, count, shaders);
}
inline GLint DYNAMICGLES_FUNCTION(GetAttribLocation)(GLuint program, const GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetAttribLocation) PFNGLGETATTRIBLOCATIONPROC;
#endif
PFNGLGETATTRIBLOCATIONPROC _GetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetAttribLocation);
return _GetAttribLocation(program, name);
}
inline void DYNAMICGLES_FUNCTION(GetBooleanv)(GLenum pname, GLboolean* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetBooleanv) PFNGLGETBOOLEANVPROC;
#endif
PFNGLGETBOOLEANVPROC _GetBooleanv = (PFNGLGETBOOLEANVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetBooleanv);
return _GetBooleanv(pname, data);
}
inline void DYNAMICGLES_FUNCTION(GetBufferParameteriv)(GLenum target, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetBufferParameteriv) PFNGLGETBUFFERPARAMETERIVPROC;
#endif
PFNGLGETBUFFERPARAMETERIVPROC _GetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetBufferParameteriv);
return _GetBufferParameteriv(target, pname, params);
}
inline GLenum DYNAMICGLES_FUNCTION(GetError)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetError) PFNGLGETERRORPROC;
#endif
PFNGLGETERRORPROC _GetError = (PFNGLGETERRORPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetError);
return _GetError();
}
inline void DYNAMICGLES_FUNCTION(GetFloatv)(GLenum pname, GLfloat* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetFloatv) PFNGLGETFLOATVPROC;
#endif
PFNGLGETFLOATVPROC _GetFloatv = (PFNGLGETFLOATVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetFloatv);
return _GetFloatv(pname, data);
}
inline void DYNAMICGLES_FUNCTION(GetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetFramebufferAttachmentParameteriv) PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC;
#endif
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC _GetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetFramebufferAttachmentParameteriv);
return _GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetIntegerv)(GLenum pname, GLint* data)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetIntegerv) PFNGLGETINTEGERVPROC;
#endif
PFNGLGETINTEGERVPROC _GetIntegerv = (PFNGLGETINTEGERVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetIntegerv);
return _GetIntegerv(pname, data);
}
inline void DYNAMICGLES_FUNCTION(GetProgramiv)(GLuint program, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetProgramiv) PFNGLGETPROGRAMIVPROC;
#endif
PFNGLGETPROGRAMIVPROC _GetProgramiv = (PFNGLGETPROGRAMIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetProgramiv);
return _GetProgramiv(program, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetProgramInfoLog) PFNGLGETPROGRAMINFOLOGPROC;
#endif
PFNGLGETPROGRAMINFOLOGPROC _GetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetProgramInfoLog);
return _GetProgramInfoLog(program, bufSize, length, infoLog);
}
inline void DYNAMICGLES_FUNCTION(GetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetRenderbufferParameteriv) PFNGLGETRENDERBUFFERPARAMETERIVPROC;
#endif
PFNGLGETRENDERBUFFERPARAMETERIVPROC _GetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetRenderbufferParameteriv);
return _GetRenderbufferParameteriv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetShaderiv)(GLuint shader, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetShaderiv) PFNGLGETSHADERIVPROC;
#endif
PFNGLGETSHADERIVPROC _GetShaderiv = (PFNGLGETSHADERIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetShaderiv);
return _GetShaderiv(shader, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetShaderInfoLog) PFNGLGETSHADERINFOLOGPROC;
#endif
PFNGLGETSHADERINFOLOGPROC _GetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetShaderInfoLog);
return _GetShaderInfoLog(shader, bufSize, length, infoLog);
}
inline void DYNAMICGLES_FUNCTION(GetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetShaderPrecisionFormat) PFNGLGETSHADERPRECISIONFORMATPROC;
#endif
PFNGLGETSHADERPRECISIONFORMATPROC _GetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetShaderPrecisionFormat);
return _GetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
}
inline void DYNAMICGLES_FUNCTION(GetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetShaderSource) PFNGLGETSHADERSOURCEPROC;
#endif
PFNGLGETSHADERSOURCEPROC _GetShaderSource = (PFNGLGETSHADERSOURCEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetShaderSource);
return _GetShaderSource(shader, bufSize, length, source);
}
inline const GLubyte* DYNAMICGLES_FUNCTION(GetString)(GLenum name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetString) PFNGLGETSTRINGPROC;
#endif
PFNGLGETSTRINGPROC _GetString = (PFNGLGETSTRINGPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetString);
return _GetString(name);
}
inline void DYNAMICGLES_FUNCTION(GetTexParameterfv)(GLenum target, GLenum pname, GLfloat* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetTexParameterfv) PFNGLGETTEXPARAMETERFVPROC;
#endif
PFNGLGETTEXPARAMETERFVPROC _GetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetTexParameterfv);
return _GetTexParameterfv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetTexParameteriv)(GLenum target, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetTexParameteriv) PFNGLGETTEXPARAMETERIVPROC;
#endif
PFNGLGETTEXPARAMETERIVPROC _GetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetTexParameteriv);
return _GetTexParameteriv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetUniformfv)(GLuint program, GLint location, GLfloat* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetUniformfv) PFNGLGETUNIFORMFVPROC;
#endif
PFNGLGETUNIFORMFVPROC _GetUniformfv = (PFNGLGETUNIFORMFVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetUniformfv);
return _GetUniformfv(program, location, params);
}
inline void DYNAMICGLES_FUNCTION(GetUniformiv)(GLuint program, GLint location, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetUniformiv) PFNGLGETUNIFORMIVPROC;
#endif
PFNGLGETUNIFORMIVPROC _GetUniformiv = (PFNGLGETUNIFORMIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetUniformiv);
return _GetUniformiv(program, location, params);
}
inline GLint DYNAMICGLES_FUNCTION(GetUniformLocation)(GLuint program, const GLchar* name)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetUniformLocation) PFNGLGETUNIFORMLOCATIONPROC;
#endif
PFNGLGETUNIFORMLOCATIONPROC _GetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetUniformLocation);
return _GetUniformLocation(program, name);
}
inline void DYNAMICGLES_FUNCTION(GetVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetVertexAttribfv) PFNGLGETVERTEXATTRIBFVPROC;
#endif
PFNGLGETVERTEXATTRIBFVPROC _GetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetVertexAttribfv);
return _GetVertexAttribfv(index, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetVertexAttribiv)(GLuint index, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetVertexAttribiv) PFNGLGETVERTEXATTRIBIVPROC;
#endif
PFNGLGETVERTEXATTRIBIVPROC _GetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetVertexAttribiv);
return _GetVertexAttribiv(index, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetVertexAttribPointerv)(GLuint index, GLenum pname, void** pointer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetVertexAttribPointerv) PFNGLGETVERTEXATTRIBPOINTERVPROC;
#endif
PFNGLGETVERTEXATTRIBPOINTERVPROC _GetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::GetVertexAttribPointerv);
return _GetVertexAttribPointerv(index, pname, pointer);
}
inline void DYNAMICGLES_FUNCTION(Hint)(GLenum target, GLenum mode)
{
#if TARGET_OS_IPHONE
typedef decltype(&glHint) PFNGLHINTPROC;
#endif
PFNGLHINTPROC _Hint = (PFNGLHINTPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Hint);
return _Hint(target, mode);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsBuffer)(GLuint buffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsBuffer) PFNGLISBUFFERPROC;
#endif
PFNGLISBUFFERPROC _IsBuffer = (PFNGLISBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsBuffer);
return _IsBuffer(buffer);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsEnabled)(GLenum cap)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsEnabled) PFNGLISENABLEDPROC;
#endif
PFNGLISENABLEDPROC _IsEnabled = (PFNGLISENABLEDPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsEnabled);
return _IsEnabled(cap);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsFramebuffer)(GLuint framebuffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsFramebuffer) PFNGLISFRAMEBUFFERPROC;
#endif
PFNGLISFRAMEBUFFERPROC _IsFramebuffer = (PFNGLISFRAMEBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsFramebuffer);
return _IsFramebuffer(framebuffer);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsProgram)(GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsProgram) PFNGLISPROGRAMPROC;
#endif
PFNGLISPROGRAMPROC _IsProgram = (PFNGLISPROGRAMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsProgram);
return _IsProgram(program);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsRenderbuffer)(GLuint renderbuffer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsRenderbuffer) PFNGLISRENDERBUFFERPROC;
#endif
PFNGLISRENDERBUFFERPROC _IsRenderbuffer = (PFNGLISRENDERBUFFERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsRenderbuffer);
return _IsRenderbuffer(renderbuffer);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsShader)(GLuint shader)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsShader) PFNGLISSHADERPROC;
#endif
PFNGLISSHADERPROC _IsShader = (PFNGLISSHADERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsShader);
return _IsShader(shader);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsTexture)(GLuint texture)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsTexture) PFNGLISTEXTUREPROC;
#endif
PFNGLISTEXTUREPROC _IsTexture = (PFNGLISTEXTUREPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::IsTexture);
return _IsTexture(texture);
}
inline void DYNAMICGLES_FUNCTION(LineWidth)(GLfloat width)
{
#if TARGET_OS_IPHONE
typedef decltype(&glLineWidth) PFNGLLINEWIDTHPROC;
#endif
PFNGLLINEWIDTHPROC _LineWidth = (PFNGLLINEWIDTHPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::LineWidth);
return _LineWidth(width);
}
inline void DYNAMICGLES_FUNCTION(LinkProgram)(GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glLinkProgram) PFNGLLINKPROGRAMPROC;
#endif
PFNGLLINKPROGRAMPROC _LinkProgram = (PFNGLLINKPROGRAMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::LinkProgram);
return _LinkProgram(program);
}
inline void DYNAMICGLES_FUNCTION(PixelStorei)(GLenum pname, GLint param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glPixelStorei) PFNGLPIXELSTOREIPROC;
#endif
PFNGLPIXELSTOREIPROC _PixelStorei = (PFNGLPIXELSTOREIPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::PixelStorei);
return _PixelStorei(pname, param);
}
inline void DYNAMICGLES_FUNCTION(PolygonOffset)(GLfloat factor, GLfloat units)
{
#if TARGET_OS_IPHONE
typedef decltype(&glPolygonOffset) PFNGLPOLYGONOFFSETPROC;
#endif
PFNGLPOLYGONOFFSETPROC _PolygonOffset = (PFNGLPOLYGONOFFSETPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::PolygonOffset);
return _PolygonOffset(factor, units);
}
inline void DYNAMICGLES_FUNCTION(ReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels)
{
#if TARGET_OS_IPHONE
typedef decltype(&glReadPixels) PFNGLREADPIXELSPROC;
#endif
PFNGLREADPIXELSPROC _ReadPixels = (PFNGLREADPIXELSPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ReadPixels);
return _ReadPixels(x, y, width, height, format, type, pixels);
}
inline void DYNAMICGLES_FUNCTION(ReleaseShaderCompiler)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glReleaseShaderCompiler) PFNGLRELEASESHADERCOMPILERPROC;
#endif
PFNGLRELEASESHADERCOMPILERPROC _ReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ReleaseShaderCompiler);
return _ReleaseShaderCompiler();
}
inline void DYNAMICGLES_FUNCTION(RenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glRenderbufferStorage) PFNGLRENDERBUFFERSTORAGEPROC;
#endif
PFNGLRENDERBUFFERSTORAGEPROC _RenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::RenderbufferStorage);
return _RenderbufferStorage(target, internalformat, width, height);
}
inline void DYNAMICGLES_FUNCTION(SampleCoverage)(GLfloat value, GLboolean invert)
{
#if TARGET_OS_IPHONE
typedef decltype(&glSampleCoverage) PFNGLSAMPLECOVERAGEPROC;
#endif
PFNGLSAMPLECOVERAGEPROC _SampleCoverage = (PFNGLSAMPLECOVERAGEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::SampleCoverage);
return _SampleCoverage(value, invert);
}
inline void DYNAMICGLES_FUNCTION(Scissor)(GLint x, GLint y, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glScissor) PFNGLSCISSORPROC;
#endif
PFNGLSCISSORPROC _Scissor = (PFNGLSCISSORPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Scissor);
return _Scissor(x, y, width, height);
}
inline void DYNAMICGLES_FUNCTION(ShaderBinary)(GLsizei count, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
{
#if TARGET_OS_IPHONE
typedef decltype(&glShaderBinary) PFNGLSHADERBINARYPROC;
#endif
PFNGLSHADERBINARYPROC _ShaderBinary = (PFNGLSHADERBINARYPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ShaderBinary);
return _ShaderBinary(count, shaders, binaryformat, binary, length);
}
inline void DYNAMICGLES_FUNCTION(ShaderSource)(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length)
{
#if TARGET_OS_IPHONE
typedef decltype(&glShaderSource) PFNGLSHADERSOURCEPROC;
#endif
PFNGLSHADERSOURCEPROC _ShaderSource = (PFNGLSHADERSOURCEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ShaderSource);
return _ShaderSource(shader, count, string, length);
}
inline void DYNAMICGLES_FUNCTION(StencilFunc)(GLenum func, GLint ref, GLuint mask)
{
#if TARGET_OS_IPHONE
typedef decltype(&glStencilFunc) PFNGLSTENCILFUNCPROC;
#endif
PFNGLSTENCILFUNCPROC _StencilFunc = (PFNGLSTENCILFUNCPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::StencilFunc);
return _StencilFunc(func, ref, mask);
}
inline void DYNAMICGLES_FUNCTION(StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask)
{
#if TARGET_OS_IPHONE
typedef decltype(&glStencilFuncSeparate) PFNGLSTENCILFUNCSEPARATEPROC;
#endif
PFNGLSTENCILFUNCSEPARATEPROC _StencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::StencilFuncSeparate);
return _StencilFuncSeparate(face, func, ref, mask);
}
inline void DYNAMICGLES_FUNCTION(StencilMask)(GLuint mask)
{
#if TARGET_OS_IPHONE
typedef decltype(&glStencilMask) PFNGLSTENCILMASKPROC;
#endif
PFNGLSTENCILMASKPROC _StencilMask = (PFNGLSTENCILMASKPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::StencilMask);
return _StencilMask(mask);
}
inline void DYNAMICGLES_FUNCTION(StencilMaskSeparate)(GLenum face, GLuint mask)
{
#if TARGET_OS_IPHONE
typedef decltype(&glStencilMaskSeparate) PFNGLSTENCILMASKSEPARATEPROC;
#endif
PFNGLSTENCILMASKSEPARATEPROC _StencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::StencilMaskSeparate);
return _StencilMaskSeparate(face, mask);
}
inline void DYNAMICGLES_FUNCTION(StencilOp)(GLenum fail, GLenum zfail, GLenum zpass)
{
#if TARGET_OS_IPHONE
typedef decltype(&glStencilOp) PFNGLSTENCILOPPROC;
#endif
PFNGLSTENCILOPPROC _StencilOp = (PFNGLSTENCILOPPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::StencilOp);
return _StencilOp(fail, zfail, zpass);
}
inline void DYNAMICGLES_FUNCTION(StencilOpSeparate)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
{
#if TARGET_OS_IPHONE
typedef decltype(&glStencilOpSeparate) PFNGLSTENCILOPSEPARATEPROC;
#endif
PFNGLSTENCILOPSEPARATEPROC _StencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::StencilOpSeparate);
return _StencilOpSeparate(face, sfail, dpfail, dppass);
}
inline void DYNAMICGLES_FUNCTION(TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexImage2D) PFNGLTEXIMAGE2DPROC;
#endif
PFNGLTEXIMAGE2DPROC _TexImage2D = (PFNGLTEXIMAGE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::TexImage2D);
return _TexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
}
inline void DYNAMICGLES_FUNCTION(TexParameterf)(GLenum target, GLenum pname, GLfloat param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexParameterf) PFNGLTEXPARAMETERFPROC;
#endif
PFNGLTEXPARAMETERFPROC _TexParameterf = (PFNGLTEXPARAMETERFPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::TexParameterf);
return _TexParameterf(target, pname, param);
}
inline void DYNAMICGLES_FUNCTION(TexParameterfv)(GLenum target, GLenum pname, const GLfloat* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexParameterfv) PFNGLTEXPARAMETERFVPROC;
#endif
PFNGLTEXPARAMETERFVPROC _TexParameterfv = (PFNGLTEXPARAMETERFVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::TexParameterfv);
return _TexParameterfv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(TexParameteri)(GLenum target, GLenum pname, GLint param)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexParameteri) PFNGLTEXPARAMETERIPROC;
#endif
PFNGLTEXPARAMETERIPROC _TexParameteri = (PFNGLTEXPARAMETERIPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::TexParameteri);
return _TexParameteri(target, pname, param);
}
inline void DYNAMICGLES_FUNCTION(TexParameteriv)(GLenum target, GLenum pname, const GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexParameteriv) PFNGLTEXPARAMETERIVPROC;
#endif
PFNGLTEXPARAMETERIVPROC _TexParameteriv = (PFNGLTEXPARAMETERIVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::TexParameteriv);
return _TexParameteriv(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels)
{
#if TARGET_OS_IPHONE
typedef decltype(&glTexSubImage2D) PFNGLTEXSUBIMAGE2DPROC;
#endif
PFNGLTEXSUBIMAGE2DPROC _TexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::TexSubImage2D);
return _TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
}
inline void DYNAMICGLES_FUNCTION(Uniform1f)(GLint location, GLfloat v0)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform1f) PFNGLUNIFORM1FPROC;
#endif
PFNGLUNIFORM1FPROC _Uniform1f = (PFNGLUNIFORM1FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform1f);
return _Uniform1f(location, v0);
}
inline void DYNAMICGLES_FUNCTION(Uniform1fv)(GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform1fv) PFNGLUNIFORM1FVPROC;
#endif
PFNGLUNIFORM1FVPROC _Uniform1fv = (PFNGLUNIFORM1FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform1fv);
return _Uniform1fv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform1i)(GLint location, GLint v0)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform1i) PFNGLUNIFORM1IPROC;
#endif
PFNGLUNIFORM1IPROC _Uniform1i = (PFNGLUNIFORM1IPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform1i);
return _Uniform1i(location, v0);
}
inline void DYNAMICGLES_FUNCTION(Uniform1iv)(GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform1iv) PFNGLUNIFORM1IVPROC;
#endif
PFNGLUNIFORM1IVPROC _Uniform1iv = (PFNGLUNIFORM1IVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform1iv);
return _Uniform1iv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform2f)(GLint location, GLfloat v0, GLfloat v1)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform2f) PFNGLUNIFORM2FPROC;
#endif
PFNGLUNIFORM2FPROC _Uniform2f = (PFNGLUNIFORM2FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform2f);
return _Uniform2f(location, v0, v1);
}
inline void DYNAMICGLES_FUNCTION(Uniform2fv)(GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform2fv) PFNGLUNIFORM2FVPROC;
#endif
PFNGLUNIFORM2FVPROC _Uniform2fv = (PFNGLUNIFORM2FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform2fv);
return _Uniform2fv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform2i)(GLint location, GLint v0, GLint v1)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform2i) PFNGLUNIFORM2IPROC;
#endif
PFNGLUNIFORM2IPROC _Uniform2i = (PFNGLUNIFORM2IPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform2i);
return _Uniform2i(location, v0, v1);
}
inline void DYNAMICGLES_FUNCTION(Uniform2iv)(GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform2iv) PFNGLUNIFORM2IVPROC;
#endif
PFNGLUNIFORM2IVPROC _Uniform2iv = (PFNGLUNIFORM2IVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform2iv);
return _Uniform2iv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform3f) PFNGLUNIFORM3FPROC;
#endif
PFNGLUNIFORM3FPROC _Uniform3f = (PFNGLUNIFORM3FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform3f);
return _Uniform3f(location, v0, v1, v2);
}
inline void DYNAMICGLES_FUNCTION(Uniform3fv)(GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform3fv) PFNGLUNIFORM3FVPROC;
#endif
PFNGLUNIFORM3FVPROC _Uniform3fv = (PFNGLUNIFORM3FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform3fv);
return _Uniform3fv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform3i)(GLint location, GLint v0, GLint v1, GLint v2)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform3i) PFNGLUNIFORM3IPROC;
#endif
PFNGLUNIFORM3IPROC _Uniform3i = (PFNGLUNIFORM3IPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform3i);
return _Uniform3i(location, v0, v1, v2);
}
inline void DYNAMICGLES_FUNCTION(Uniform3iv)(GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform3iv) PFNGLUNIFORM3IVPROC;
#endif
PFNGLUNIFORM3IVPROC _Uniform3iv = (PFNGLUNIFORM3IVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform3iv);
return _Uniform3iv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform4f) PFNGLUNIFORM4FPROC;
#endif
PFNGLUNIFORM4FPROC _Uniform4f = (PFNGLUNIFORM4FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform4f);
return _Uniform4f(location, v0, v1, v2, v3);
}
inline void DYNAMICGLES_FUNCTION(Uniform4fv)(GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform4fv) PFNGLUNIFORM4FVPROC;
#endif
PFNGLUNIFORM4FVPROC _Uniform4fv = (PFNGLUNIFORM4FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform4fv);
return _Uniform4fv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(Uniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform4i) PFNGLUNIFORM4IPROC;
#endif
PFNGLUNIFORM4IPROC _Uniform4i = (PFNGLUNIFORM4IPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform4i);
return _Uniform4i(location, v0, v1, v2, v3);
}
inline void DYNAMICGLES_FUNCTION(Uniform4iv)(GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniform4iv) PFNGLUNIFORM4IVPROC;
#endif
PFNGLUNIFORM4IVPROC _Uniform4iv = (PFNGLUNIFORM4IVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Uniform4iv);
return _Uniform4iv(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix2fv) PFNGLUNIFORMMATRIX2FVPROC;
#endif
PFNGLUNIFORMMATRIX2FVPROC _UniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::UniformMatrix2fv);
return _UniformMatrix2fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix3fv) PFNGLUNIFORMMATRIX3FVPROC;
#endif
PFNGLUNIFORMMATRIX3FVPROC _UniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::UniformMatrix3fv);
return _UniformMatrix3fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUniformMatrix4fv) PFNGLUNIFORMMATRIX4FVPROC;
#endif
PFNGLUNIFORMMATRIX4FVPROC _UniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::UniformMatrix4fv);
return _UniformMatrix4fv(location, count, transpose, value);
}
inline void DYNAMICGLES_FUNCTION(UseProgram)(GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUseProgram) PFNGLUSEPROGRAMPROC;
#endif
PFNGLUSEPROGRAMPROC _UseProgram = (PFNGLUSEPROGRAMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::UseProgram);
return _UseProgram(program);
}
inline void DYNAMICGLES_FUNCTION(ValidateProgram)(GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glValidateProgram) PFNGLVALIDATEPROGRAMPROC;
#endif
PFNGLVALIDATEPROGRAMPROC _ValidateProgram = (PFNGLVALIDATEPROGRAMPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::ValidateProgram);
return _ValidateProgram(program);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib1f)(GLuint index, GLfloat x)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib1f) PFNGLVERTEXATTRIB1FPROC;
#endif
PFNGLVERTEXATTRIB1FPROC _VertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib1f);
return _VertexAttrib1f(index, x);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib1fv)(GLuint index, const GLfloat* v)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib1fv) PFNGLVERTEXATTRIB1FVPROC;
#endif
PFNGLVERTEXATTRIB1FVPROC _VertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib1fv);
return _VertexAttrib1fv(index, v);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib2f)(GLuint index, GLfloat x, GLfloat y)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib2f) PFNGLVERTEXATTRIB2FPROC;
#endif
PFNGLVERTEXATTRIB2FPROC _VertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib2f);
return _VertexAttrib2f(index, x, y);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib2fv)(GLuint index, const GLfloat* v)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib2fv) PFNGLVERTEXATTRIB2FVPROC;
#endif
PFNGLVERTEXATTRIB2FVPROC _VertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib2fv);
return _VertexAttrib2fv(index, v);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib3f)(GLuint index, GLfloat x, GLfloat y, GLfloat z)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib3f) PFNGLVERTEXATTRIB3FPROC;
#endif
PFNGLVERTEXATTRIB3FPROC _VertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib3f);
return _VertexAttrib3f(index, x, y, z);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib3fv)(GLuint index, const GLfloat* v)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib3fv) PFNGLVERTEXATTRIB3FVPROC;
#endif
PFNGLVERTEXATTRIB3FVPROC _VertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib3fv);
return _VertexAttrib3fv(index, v);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib4f)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib4f) PFNGLVERTEXATTRIB4FPROC;
#endif
PFNGLVERTEXATTRIB4FPROC _VertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib4f);
return _VertexAttrib4f(index, x, y, z, w);
}
inline void DYNAMICGLES_FUNCTION(VertexAttrib4fv)(GLuint index, const GLfloat* v)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttrib4fv) PFNGLVERTEXATTRIB4FVPROC;
#endif
PFNGLVERTEXATTRIB4FVPROC _VertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttrib4fv);
return _VertexAttrib4fv(index, v);
}
inline void DYNAMICGLES_FUNCTION(VertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer)
{
#if TARGET_OS_IPHONE
typedef decltype(&glVertexAttribPointer) PFNGLVERTEXATTRIBPOINTERPROC;
#endif
PFNGLVERTEXATTRIBPOINTERPROC _VertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::VertexAttribPointer);
return _VertexAttribPointer(index, size, type, normalized, stride, pointer);
}
inline void DYNAMICGLES_FUNCTION(Viewport)(GLint x, GLint y, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glViewport) PFNGLVIEWPORTPROC;
#endif
PFNGLVIEWPORTPROC _Viewport = (PFNGLVIEWPORTPROC)gl::internals::getEs2Function(gl::internals::Gl2FuncName::Viewport);
return _Viewport(x, y, width, height);
}
#ifndef DYNAMICGLES_NO_NAMESPACE
}
#elif TARGET_OS_IPHONE
}
}
#endif
namespace gl {
namespace internals {
namespace GlExtFuncName {
enum OpenGLESExtFunctionName
{
//EXTENSIONS //
MultiDrawArraysEXT, MultiDrawElementsEXT, DiscardFramebufferEXT, MapBufferOES, UnmapBufferOES, GetBufferPointervOES, BindVertexArrayOES, DeleteVertexArraysOES,
GenVertexArraysOES, IsVertexArrayOES, DeleteFencesNV, GenFencesNV, IsFenceNV, TestFenceNV, GetFenceivNV, FinishFenceNV, SetFenceNV,
#if !TARGET_OS_IPHONE
EGLImageTargetTexture2DOES, EGLImageTargetRenderbufferStorageOES,
#endif
RenderbufferStorageMultisampleIMG, FramebufferTexture2DMultisampleIMG, GetPerfMonitorGroupsAMD, GetPerfMonitorCountersAMD, GetPerfMonitorGroupStringAMD,
GetPerfMonitorCounterStringAMD, GetPerfMonitorCounterInfoAMD, GenPerfMonitorsAMD, DeletePerfMonitorsAMD, SelectPerfMonitorCountersAMD, BeginPerfMonitorAMD,
EndPerfMonitorAMD, GetPerfMonitorCounterDataAMD, BlitFramebufferANGLE, RenderbufferStorageMultisampleANGLE,
CoverageMaskNV, CoverageOperationNV, GetDriverControlsQCOM, GetDriverControlStringQCOM, EnableDriverControlQCOM,
DisableDriverControlQCOM, ExtGetTexturesQCOM, ExtGetBuffersQCOM, ExtGetRenderbuffersQCOM, ExtGetFramebuffersQCOM, ExtGetTexLevelParameterivQCOM,
ExtTexObjectStateOverrideiQCOM, ExtGetTexSubImageQCOM, ExtGetBufferPointervQCOM, ExtGetShadersQCOM, ExtGetProgramsQCOM, ExtIsProgramBinaryQCOM,
ExtGetProgramBinarySourceQCOM, StartTilingQCOM, EndTilingQCOM, GetProgramBinaryOES, ProgramBinaryOES, TexImage3DOES, TexSubImage3DOES, CopyTexSubImage3DOES,
CompressedTexImage3DOES, CompressedTexSubImage3DOES, FramebufferTexture3DOES, BlendEquationSeparateOES, BlendFuncSeparateOES, BlendEquationOES, QueryMatrixxOES,
CopyTextureLevelsAPPLE, RenderbufferStorageMultisampleAPPLE, ResolveMultisampleFramebufferAPPLE, FenceSyncAPPLE, IsSyncAPPLE, DeleteSyncAPPLE,
ClientWaitSyncAPPLE, WaitSyncAPPLE, GetInteger64vAPPLE, GetSyncivAPPLE, MapBufferRangeEXT, FlushMappedBufferRangeEXT, RenderbufferStorageMultisampleEXT,
FramebufferTexture2DMultisampleEXT, GetGraphicsResetStatusEXT, ReadnPixelsEXT, GetnUniformfvEXT, GetnUniformivEXT, TexStorage1DEXT, TexStorage2DEXT,
TexStorage3DEXT, TextureStorage1DEXT, TextureStorage2DEXT, TextureStorage3DEXT,
#if !defined(GL_KHR_debug)
GLDEBUGPROCKHR,
#endif
DebugMessageControlKHR, DebugMessageInsertKHR, DebugMessageCallbackKHR, GetDebugMessageLogKHR, PushDebugGroupKHR, PopDebugGroupKHR, ObjectLabelKHR,
GetObjectLabelKHR, ObjectPtrLabelKHR, GetObjectPtrLabelKHR, GetPointervKHR, DrawArraysInstancedANGLE, DrawElementsInstancedANGLE, VertexAttribDivisorANGLE,
GetTranslatedShaderSourceANGLE, LabelObjectEXT, GetObjectLabelEXT, InsertEventMarkerEXT, PushGroupMarkerEXT, PopGroupMarkerEXT,
GenQueriesEXT, DeleteQueriesEXT, IsQueryEXT, BeginQueryEXT, EndQueryEXT, GetQueryivEXT, GetQueryObjectuivEXT, UseProgramStagesEXT, ActiveShaderProgramEXT,
CreateShaderProgramvEXT, BindProgramPipelineEXT, DeleteProgramPipelinesEXT, GenProgramPipelinesEXT, IsProgramPipelineEXT, ProgramParameteriEXT,
GetProgramPipelineivEXT, ProgramUniform1iEXT, ProgramUniform2iEXT, ProgramUniform3iEXT, ProgramUniform4iEXT, ProgramUniform1fEXT, ProgramUniform2fEXT,
ProgramUniform3fEXT, ProgramUniform4fEXT, ProgramUniform1ivEXT, ProgramUniform2ivEXT, ProgramUniform3ivEXT, ProgramUniform4ivEXT, ProgramUniform1fvEXT,
ProgramUniform2fvEXT, ProgramUniform3fvEXT, ProgramUniform4fvEXT, ProgramUniformMatrix2fvEXT, ProgramUniformMatrix3fvEXT, ProgramUniformMatrix4fvEXT,
ValidateProgramPipelineEXT, GetProgramPipelineInfoLogEXT, ProgramUniform1uiEXT, ProgramUniform2uiEXT, ProgramUniform3uiEXT, ProgramUniform4uiEXT,
ProgramUniform1uivEXT, ProgramUniform2uivEXT, ProgramUniform3uivEXT, ProgramUniform4uivEXT, ProgramUniformMatrix2x3fvEXT, ProgramUniformMatrix3x2fvEXT,
ProgramUniformMatrix2x4fvEXT, ProgramUniformMatrix4x2fvEXT, ProgramUniformMatrix3x4fvEXT, ProgramUniformMatrix4x3fvEXT, AlphaFuncQCOM, ReadBufferNV,
DrawBuffersNV, ReadBufferIndexedEXT, DrawBuffersIndexedEXT, GetIntegeri_vEXT, DrawBuffersEXT, BlendEquationEXT, BlendBarrierKHR, TexStorage3DMultisampleOES,
FramebufferTextureMultiviewOVR, FramebufferPixelLocalStorageSizeEXT, ClearPixelLocalStorageuiEXT, GetFramebufferPixelLocalStorageSizeEXT, BufferStorageEXT,
ClearTexImageIMG, ClearTexSubImageIMG, ClearTexImageEXT, ClearTexSubImageEXT, FramebufferTexture2DDownsampleIMG, FramebufferTextureLayerDownsampleIMG,
PatchParameteriEXT,
#ifdef GL_IMG_bindless_texture
GetTextureHandleIMG, GetTextureSamplerHandleIMG, UniformHandleui64IMG, UniformHandleui64vIMG, ProgramUniformHandleui64IMG, ProgramUniformHandleui64vIMG,
#endif
NUMBER_OF_OPENGLEXT_FUNCTIONS
};
}
namespace GlExtFuncName {
static const std::pair<uint16_t, const char* const> OpenGLESExtFunctionNamePairs[] =
{
{ MultiDrawArraysEXT, "glMultiDrawArraysEXT"},
{ MultiDrawElementsEXT, "glMultiDrawElementsEXT" },
{ DiscardFramebufferEXT, "glDiscardFramebufferEXT" },
{ MapBufferOES, "glMapBufferOES" },
{ UnmapBufferOES, "glUnmapBufferOES" },
{ GetBufferPointervOES, "glGetBufferPointervOES" },
{ BindVertexArrayOES, "glBindVertexArrayOES" },
{ DeleteVertexArraysOES, "glDeleteVertexArraysOES" },
{ GenVertexArraysOES, "glGenVertexArraysOES" },
{ IsVertexArrayOES, "glIsVertexArrayOES" },
{ DeleteFencesNV, "glDeleteFencesNV" },
{ GenFencesNV, "glGenFencesNV" },
{ IsFenceNV, "glIsFenceNV" },
{ TestFenceNV, "glTestFenceNV" },
{ GetFenceivNV, "glGetFenceivNV" },
{ FinishFenceNV, "glFinishFenceNV" },
{ SetFenceNV, "glSetFenceNV" },
#if !TARGET_OS_IPHONE
{ EGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES"},
{ EGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES"},
#endif
{ RenderbufferStorageMultisampleIMG, "glRenderbufferStorageMultisampleIMG" },
{ FramebufferTexture2DMultisampleIMG, "glFramebufferTexture2DMultisampleIMG" },
{ GetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD" },
{ GetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD" },
{ GetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD"},
{ GetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD" },
{ GetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD" },
{ GenPerfMonitorsAMD, "glGenPerfMonitorsAMD" },
{ DeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD" },
{ SelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD" },
{ BeginPerfMonitorAMD, "glBeginPerfMonitorAMD" },
{ EndPerfMonitorAMD, "glEndPerfMonitorAMD" },
{ GetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD" },
{ BlitFramebufferANGLE, "glBlitFramebufferANGLE" },
{ RenderbufferStorageMultisampleANGLE, "glRenderbufferStorageMultisampleANGLE" },
{ CoverageMaskNV, "glCoverageMaskNV" },
{ CoverageOperationNV, "glCoverageOperationNV" },
{ GetDriverControlsQCOM, "glGetDriverControlsQCOM" },
{ GetDriverControlStringQCOM, "glGetDriverControlStringQCOM" },
{ EnableDriverControlQCOM, "glEnableDriverControlQCOM" },
{ DisableDriverControlQCOM, "glDisableDriverControlQCOM" },
{ ExtGetTexturesQCOM, "glExtGetTexturesQCOM" },
{ ExtGetBuffersQCOM, "glExtGetBuffersQCOM" },
{ ExtGetRenderbuffersQCOM, "glExtGetRenderbuffersQCOM" },
{ ExtGetFramebuffersQCOM, "glExtGetFramebuffersQCOM" },
{ ExtGetTexLevelParameterivQCOM, "glExtGetTexLevelParameterivQCOM" },
{ ExtTexObjectStateOverrideiQCOM, "glExtTexObjectStateOverrideiQCOM" },
{ ExtGetTexSubImageQCOM, "glExtGetTexSubImageQCOM" },
{ ExtGetBufferPointervQCOM, "glExtGetBufferPointervQCOM" },
{ ExtGetShadersQCOM, "glExtGetShadersQCOM" },
{ ExtGetProgramsQCOM, "glExtGetProgramsQCOM" },
{ ExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM" },
{ ExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM" },
{ StartTilingQCOM, "glStartTilingQCOM" },
{ EndTilingQCOM, "glEndTilingQCOM" },
{ GetProgramBinaryOES, "glGetProgramBinaryOES" },
{ ProgramBinaryOES, "glProgramBinaryOES" },
{ TexImage3DOES, "glTexImage3DOES" },
{ TexSubImage3DOES, "glTexSubImage3DOES" },
{ CopyTexSubImage3DOES, "glCopyTexSubImage3DOES" },
{ CompressedTexImage3DOES, "glCompressedTexImage3DOES" },
{ CompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES" },
{ FramebufferTexture3DOES, "glFramebufferTexture3DOES" },
{ BlendEquationSeparateOES, "glBlendEquationSeparateOES" },
{ BlendFuncSeparateOES, "glBlendFuncSeparateOES" },
{ BlendEquationOES, "glBlendEquationOES" },
{ QueryMatrixxOES, "glQueryMatrixxOES" },
{ CopyTextureLevelsAPPLE, "glCopyTextureLevelsAPPLE" },
{ RenderbufferStorageMultisampleAPPLE, "glRenderbufferStorageMultisampleAPPLE" },
{ ResolveMultisampleFramebufferAPPLE, "glResolveMultisampleFramebufferAPPLE" },
{ FenceSyncAPPLE, "glFenceSyncAPPLE" },
{ IsSyncAPPLE, "glIsSyncAPPLE" },
{ DeleteSyncAPPLE, "glDeleteSyncAPPLE" },
{ ClientWaitSyncAPPLE, "glClientWaitSyncAPPLE" },
{ WaitSyncAPPLE, "glWaitSyncAPPLE" },
{ GetInteger64vAPPLE, "glGetInteger64vAPPLE" },
{ GetSyncivAPPLE, "glGetSyncivAPPLE" },
{ MapBufferRangeEXT, "glMapBufferRangeEXT" },
{ FlushMappedBufferRangeEXT, "glFlushMappedBufferRangeEXT" },
{ RenderbufferStorageMultisampleEXT, "glRenderbufferStorageMultisampleEXT" },
{ FramebufferTexture2DMultisampleEXT, "glFramebufferTexture2DMultisampleEXT" },
{ GetGraphicsResetStatusEXT, "glGetGraphicsResetStatusEXT" },
{ ReadnPixelsEXT, "glReadnPixelsEXT" },
{ GetnUniformfvEXT, "glGetnUniformfvEXT" },
{ GetnUniformivEXT, "glGetnUniformivEXT" },
{ TexStorage1DEXT, "glTexStorage1DEXT" },
{ TexStorage2DEXT, "glTexStorage2DEXT" },
{ TexStorage3DEXT, "glTexStorage3DEXT" },
{ TextureStorage1DEXT, "glTextureStorage1DEXT" },
{ TextureStorage2DEXT, "glTextureStorage2DEXT" },
{ TextureStorage3DEXT, "glTextureStorage3DEXT" },
#if !defined(GL_KHR_debug)
{ GLDEBUGPROCKHR, "glGLDEBUGPROCKHR" },
#endif
{ DebugMessageControlKHR, "glDebugMessageControlKHR" },
{ DebugMessageInsertKHR, "glDebugMessageInsertKHR" },
{ DebugMessageCallbackKHR, "glDebugMessageCallbackKHR" },
{ GetDebugMessageLogKHR, "glGetDebugMessageLogKHR" },
{ PushDebugGroupKHR, "glPushDebugGroupKHR" },
{ PopDebugGroupKHR, "glPopDebugGroupKHR" },
{ ObjectLabelKHR, "glObjectLabelKHR" },
{ GetObjectLabelKHR, "glGetObjectLabelKHR" },
{ ObjectPtrLabelKHR, "glObjectPtrLabelKHR" },
{ GetObjectPtrLabelKHR, "glGetObjectPtrLabelKHR" },
{ GetPointervKHR, "glGetPointervKHR" },
{ DrawArraysInstancedANGLE, "glDrawArraysInstancedANGLE" },
{ DrawElementsInstancedANGLE, "glDrawElementsInstancedANGLE" },
{ VertexAttribDivisorANGLE, "glVertexAttribDivisorANGLE" },
{ GetTranslatedShaderSourceANGLE, "glGetTranslatedShaderSourceANGLE" },
{ LabelObjectEXT, "glLabelObjectEXT" },
{ GetObjectLabelEXT, "glGetObjectLabelEXT" },
{ InsertEventMarkerEXT, "glInsertEventMarkerEXT" },
{ PushGroupMarkerEXT, "glPushGroupMarkerEXT" },
{ PopGroupMarkerEXT, "glPopGroupMarkerEXT" },
{ GenQueriesEXT, "glGenQueriesEXT" },
{ DeleteQueriesEXT, "glDeleteQueriesEXT" },
{ IsQueryEXT, "glIsQueryEXT" },
{ BeginQueryEXT, "glBeginQueryEXT" },
{ EndQueryEXT, "glEndQueryEXT" },
{ GetQueryivEXT, "glGetQueryivEXT" },
{ GetQueryObjectuivEXT, "glGetQueryObjectuivEXT" },
{ UseProgramStagesEXT, "glUseProgramStagesEXT" },
{ ActiveShaderProgramEXT, "glActiveShaderProgramEXT" },
{ CreateShaderProgramvEXT, "glCreateShaderProgramvEXT" },
{ BindProgramPipelineEXT, "glBindProgramPipelineEXT" },
{ DeleteProgramPipelinesEXT, "glDeleteProgramPipelinesEXT" },
{ GenProgramPipelinesEXT, "glGenProgramPipelinesEXT" },
{ IsProgramPipelineEXT, "glIsProgramPipelineEXT" },
{ ProgramParameteriEXT, "glProgramParameteriEXT" },
{ GetProgramPipelineivEXT, "glGetProgramPipelineivEXT" },
{ ProgramUniform1iEXT, "glProgramUniform1iEXT" },
{ ProgramUniform2iEXT, "glProgramUniform2iEXT" },
{ ProgramUniform3iEXT, "glProgramUniform3iEXT" },
{ ProgramUniform4iEXT, "glProgramUniform4iEXT" },
{ ProgramUniform1fEXT, "glProgramUniform1fEXT" },
{ ProgramUniform2fEXT, "glProgramUniform2fEXT" },
{ ProgramUniform3fEXT, "glProgramUniform3fEXT" },
{ ProgramUniform4fEXT, "glProgramUniform4fEXT" },
{ ProgramUniform1ivEXT, "glProgramUniform1ivEXT" },
{ ProgramUniform2ivEXT, "glProgramUniform2ivEXT" },
{ ProgramUniform3ivEXT, "glProgramUniform3ivEXT" },
{ ProgramUniform4ivEXT, "glProgramUniform4ivEXT" },
{ ProgramUniform1fvEXT, "glProgramUniform1fvEXT" },
{ ProgramUniform2fvEXT, "glProgramUniform2fvEXT" },
{ ProgramUniform3fvEXT, "glProgramUniform3fvEXT" },
{ ProgramUniform4fvEXT, "glProgramUniform4fvEXT" },
{ ProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT" },
{ ProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT" },
{ ProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT" },
{ ValidateProgramPipelineEXT, "glValidateProgramPipelineEXT" },
{ GetProgramPipelineInfoLogEXT, "glGetProgramPipelineInfoLogEXT" },
{ ProgramUniform1uiEXT, "glProgramUniform1uiEXT" },
{ ProgramUniform2uiEXT, "glProgramUniform2uiEXT" },
{ ProgramUniform3uiEXT, "glProgramUniform3uiEXT" },
{ ProgramUniform4uiEXT, "glProgramUniform4uiEXT" },
{ ProgramUniform1uivEXT, "glProgramUniform1uivEXT" },
{ ProgramUniform2uivEXT, "glProgramUniform2uivEXT" },
{ ProgramUniform3uivEXT, "glProgramUniform3uivEXT" },
{ ProgramUniform4uivEXT, "glProgramUniform4uivEXT" },
{ ProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT" },
{ ProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT" },
{ ProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT" },
{ ProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT" },
{ ProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT" },
{ ProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT" },
{ AlphaFuncQCOM, "glAlphaFuncQCOM" },
{ ReadBufferNV, "glReadBufferNV" },
{ DrawBuffersNV, "glDrawBuffersNV" },
{ ReadBufferIndexedEXT, "glReadBufferIndexedEXT" },
{ DrawBuffersIndexedEXT, "glDrawBuffersIndexedEXT" },
{ GetIntegeri_vEXT, "glGetIntegeri_vEXT" },
{ DrawBuffersEXT, "glDrawBuffersEXT" },
{ BlendEquationEXT, "glBlendEquationEXT" },
{ BlendBarrierKHR, "glBlendBarrierKHR" },
{ TexStorage3DMultisampleOES, "glTexStorage3DMultisampleOES" },
{ FramebufferTextureMultiviewOVR, "glFramebufferTextureMultiviewOVR" },
{ FramebufferPixelLocalStorageSizeEXT, "glFramebufferPixelLocalStorageSizeEXT" },
{ ClearPixelLocalStorageuiEXT, "glClearPixelLocalStorageuiEXT" },
{ GetFramebufferPixelLocalStorageSizeEXT, "glGetFramebufferPixelLocalStorageSize" },
{ BufferStorageEXT, "glBufferStorageEXT" },
{ ClearTexImageIMG, "glClearTexImageIMG" },
{ ClearTexSubImageIMG, "glClearTexSubImageIMG" },
{ ClearTexImageEXT, "glClearTexImageEXT" },
{ ClearTexSubImageEXT, "glClearTexSubImageEXT" },
{ FramebufferTexture2DDownsampleIMG, "glFramebufferTexture2DDownsampleIMG" },
{ FramebufferTextureLayerDownsampleIMG, "glFramebufferTextureLayerDownsampleIMG" },
{ PatchParameteriEXT, "glPatchParameteriEXT" },
#ifdef GL_IMG_bindless_texture
{ GetTextureHandleIMG, "glGetTextureHandleIMG" },
{ GetTextureSamplerHandleIMG, "glGetTextureSamplerHandleIMG" },
{ UniformHandleui64IMG, "glUniformHandleui64IMG" },
{ UniformHandleui64vIMG, "glUniformHandleui64vIMG" },
{ ProgramUniformHandleui64IMG, "glProgramUniformHandleui64IMG" },
{ ProgramUniformHandleui64vIMG, "glProgramUniformHandleui64vIMG" }
#endif
};
}
#if !TARGET_OS_IPHONE
static inline void* GetGlesExtensionFunction(const char* funcName)
{
return (void*)DYNAMICEGL_CALL_FUNCTION(GetProcAddress)(funcName);
}
#endif
static inline bool isExtensionSupported(const unsigned char* const extensionString, const char* const extension)
{
if (!extensionString)
{
return false;
}
// The recommended technique for querying OpenGL extensions;
// from http://opengl.org/resources/features/OGLextensions/
const char* start = (const char*)extensionString;
char* position, *terminator;
// Extension names should not have spaces.
position = (char*)strchr(extension, ' ');
if (position || *extension == '\0')
{
return 0;
}
/* It takes a bit of care to be fool-proof about parsing the
OpenGL extensions string. Don't be fooled by sub-strings, etc. */
for (;;)
{
position = (char*)strstr((char*)start, extension);
if (!position)
{
break;
}
terminator = position + strlen(extension);
if (position == start || *(position - 1) == ' ')
{
if (*terminator == ' ' || *terminator == '\0')
{
return true;
}
}
start = terminator;
}
return false;
}
inline void* getGlesExtFunction(gl::internals::GlExtFuncName::OpenGLESExtFunctionName funcname, bool reset = false)
{
static void* FunctionTable[GlExtFuncName::NUMBER_OF_OPENGLEXT_FUNCTIONS + 1] = {0};
#if TARGET_OS_IPHONE
FunctionTable[GlExtFuncName::DiscardFramebufferEXT] = (void*)&glDiscardFramebufferEXT;
FunctionTable[GlExtFuncName::MapBufferOES] = (void*)&glMapBufferOES;
FunctionTable[GlExtFuncName::UnmapBufferOES] = (void*)&glUnmapBufferOES;
FunctionTable[GlExtFuncName::GetBufferPointervOES] = (void*)&glGetBufferPointervOES;
FunctionTable[GlExtFuncName::BindVertexArrayOES] = (void*)&glBindVertexArrayOES;
FunctionTable[GlExtFuncName::DeleteVertexArraysOES] = (void*)&glDeleteVertexArraysOES;
FunctionTable[GlExtFuncName::GenVertexArraysOES] = (void*)&glGenVertexArraysOES;
FunctionTable[GlExtFuncName::IsVertexArrayOES] = (void*)&glIsVertexArrayOES;
FunctionTable[GlExtFuncName::GetProgramBinaryOES] = (void*)&glGetProgramBinary;
FunctionTable[GlExtFuncName::ProgramBinaryOES] = (void*)&glProgramBinary;
FunctionTable[GlExtFuncName::TexImage3DOES] = (void*)&glTexImage3D;
FunctionTable[GlExtFuncName::TexSubImage3DOES] = (void*)&glTexSubImage3D;
FunctionTable[GlExtFuncName::CopyTexSubImage3DOES] = (void*)&glCopyTexSubImage3D;
FunctionTable[GlExtFuncName::CompressedTexImage3DOES] = (void*)&glCompressedTexImage3D;
FunctionTable[GlExtFuncName::CompressedTexSubImage3DOES] = (void*)&glCompressedTexSubImage3D;
FunctionTable[GlExtFuncName::BlendEquationSeparateOES] = (void*)&glBlendEquationSeparate;
FunctionTable[GlExtFuncName::BlendFuncSeparateOES] = (void*)&glBlendFuncSeparate;
FunctionTable[GlExtFuncName::BlendEquationOES] = (void*)&glBlendEquation;
FunctionTable[GlExtFuncName::CopyTextureLevelsAPPLE] = (void*)&glCopyTextureLevelsAPPLE;
FunctionTable[GlExtFuncName::RenderbufferStorageMultisampleAPPLE] = (void*)&glRenderbufferStorageMultisampleAPPLE;
FunctionTable[GlExtFuncName::ResolveMultisampleFramebufferAPPLE] = (void*)&glResolveMultisampleFramebufferAPPLE;
FunctionTable[GlExtFuncName::FenceSyncAPPLE] = (void*)&glFenceSyncAPPLE;
FunctionTable[GlExtFuncName::IsSyncAPPLE] = (void*)&glIsSyncAPPLE;
FunctionTable[GlExtFuncName::DeleteSyncAPPLE] = (void*)&glDeleteSyncAPPLE;
FunctionTable[GlExtFuncName::ClientWaitSyncAPPLE] = (void*)&glClientWaitSyncAPPLE;
FunctionTable[GlExtFuncName::WaitSyncAPPLE] = (void*)&glWaitSyncAPPLE;
FunctionTable[GlExtFuncName::GetInteger64vAPPLE] = (void*)&glGetInteger64vAPPLE;
FunctionTable[GlExtFuncName::GetSyncivAPPLE] = (void*)&glGetSyncivAPPLE;
FunctionTable[GlExtFuncName::MapBufferRangeEXT] = (void*)&glMapBufferRangeEXT;
FunctionTable[GlExtFuncName::FlushMappedBufferRangeEXT] = (void*)&glFlushMappedBufferRangeEXT;
FunctionTable[GlExtFuncName::RenderbufferStorageMultisampleEXT] = (void*)&glRenderbufferStorageMultisample;
FunctionTable[GlExtFuncName::TexStorage2DEXT] = (void*)&glTexStorage2DEXT;
FunctionTable[GlExtFuncName::TextureStorage2DEXT] = (void*)&glTexStorage2DEXT;
FunctionTable[GlExtFuncName::GetObjectLabelKHR] = (void*)&glGetObjectLabelEXT;
FunctionTable[GlExtFuncName::LabelObjectEXT] = (void*)&glLabelObjectEXT;
FunctionTable[GlExtFuncName::GetObjectLabelEXT] = (void*)&glGetObjectLabelEXT;
FunctionTable[GlExtFuncName::InsertEventMarkerEXT] = (void*)&glInsertEventMarkerEXT;
FunctionTable[GlExtFuncName::PushGroupMarkerEXT] = (void*)&glPushGroupMarkerEXT;
FunctionTable[GlExtFuncName::PopGroupMarkerEXT] = (void*)&glPopGroupMarkerEXT;
FunctionTable[GlExtFuncName::GenQueriesEXT] = (void*)&glGenQueriesEXT;
FunctionTable[GlExtFuncName::DeleteQueriesEXT] = (void*)&glDeleteQueriesEXT;
FunctionTable[GlExtFuncName::IsQueryEXT] = (void*)&glIsQueryEXT;
FunctionTable[GlExtFuncName::BeginQueryEXT] = (void*)&glBeginQueryEXT;
FunctionTable[GlExtFuncName::EndQueryEXT] = (void*)&glEndQueryEXT;
FunctionTable[GlExtFuncName::GetQueryivEXT] = (void*)&glGetQueryivEXT;
FunctionTable[GlExtFuncName::GetQueryObjectuivEXT] = (void*)&glGetQueryObjectuivEXT;
FunctionTable[GlExtFuncName::UseProgramStagesEXT] = (void*)&glUseProgramStagesEXT;
FunctionTable[GlExtFuncName::ActiveShaderProgramEXT] = (void*)&glActiveShaderProgramEXT;
FunctionTable[GlExtFuncName::CreateShaderProgramvEXT] = (void*)&glCreateShaderProgramvEXT;
FunctionTable[GlExtFuncName::BindProgramPipelineEXT] = (void*)&glBindProgramPipelineEXT;
FunctionTable[GlExtFuncName::DeleteProgramPipelinesEXT] = (void*)&glDeleteProgramPipelinesEXT;
FunctionTable[GlExtFuncName::GenProgramPipelinesEXT] = (void*)&glGenProgramPipelinesEXT;
FunctionTable[GlExtFuncName::IsProgramPipelineEXT] = (void*)&glIsProgramPipelineEXT;
FunctionTable[GlExtFuncName::ProgramParameteriEXT] = (void*)&glProgramParameteriEXT;
FunctionTable[GlExtFuncName::GetProgramPipelineivEXT] = (void*)&glGetProgramPipelineivEXT;
FunctionTable[GlExtFuncName::ProgramUniform1iEXT] = (void*)&glProgramUniform1iEXT;
FunctionTable[GlExtFuncName::ProgramUniform2iEXT] = (void*)&glProgramUniform2iEXT;
FunctionTable[GlExtFuncName::ProgramUniform3iEXT] = (void*)&glProgramUniform3iEXT;
FunctionTable[GlExtFuncName::ProgramUniform4iEXT] = (void*)&glProgramUniform4iEXT;
FunctionTable[GlExtFuncName::ProgramUniform1fEXT] = (void*)&glProgramUniform1fEXT;
FunctionTable[GlExtFuncName::ProgramUniform2fEXT] = (void*)&glProgramUniform2fEXT;
FunctionTable[GlExtFuncName::ProgramUniform3fEXT] = (void*)&glProgramUniform3fEXT;
FunctionTable[GlExtFuncName::ProgramUniform4fEXT] = (void*)&glProgramUniform4fEXT;
FunctionTable[GlExtFuncName::ProgramUniform1ivEXT] = (void*)&glProgramUniform1ivEXT;
FunctionTable[GlExtFuncName::ProgramUniform2ivEXT] = (void*)&glProgramUniform2ivEXT;
FunctionTable[GlExtFuncName::ProgramUniform3ivEXT] = (void*)&glProgramUniform3ivEXT;
FunctionTable[GlExtFuncName::ProgramUniform4ivEXT] = (void*)&glProgramUniform4ivEXT;
FunctionTable[GlExtFuncName::ProgramUniform1fvEXT] = (void*)&glProgramUniform1fvEXT;
FunctionTable[GlExtFuncName::ProgramUniform2fvEXT] = (void*)&glProgramUniform2fvEXT;
FunctionTable[GlExtFuncName::ProgramUniform3fvEXT] = (void*)&glProgramUniform3fvEXT;
FunctionTable[GlExtFuncName::ProgramUniform4fvEXT] = (void*)&glProgramUniform4fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix2fvEXT] = (void*)&glProgramUniformMatrix2fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix3fvEXT] = (void*)&glProgramUniformMatrix3fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix4fvEXT] = (void*)&glProgramUniformMatrix4fvEXT;
FunctionTable[GlExtFuncName::ValidateProgramPipelineEXT] = (void*)&glValidateProgramPipelineEXT;
FunctionTable[GlExtFuncName::GetProgramPipelineInfoLogEXT] = (void*)&glGetProgramPipelineInfoLogEXT;
FunctionTable[GlExtFuncName::ProgramUniform1uiEXT] = (void*)&glProgramUniform1uiEXT;
FunctionTable[GlExtFuncName::ProgramUniform2uiEXT] = (void*)&glProgramUniform2uiEXT;
FunctionTable[GlExtFuncName::ProgramUniform3uiEXT] = (void*)&glProgramUniform3uiEXT;
FunctionTable[GlExtFuncName::ProgramUniform4uiEXT] = (void*)&glProgramUniform4uiEXT;
FunctionTable[GlExtFuncName::ProgramUniform1uivEXT] = (void*)&glProgramUniform1uivEXT;
FunctionTable[GlExtFuncName::ProgramUniform2uivEXT] = (void*)&glProgramUniform2uivEXT;
FunctionTable[GlExtFuncName::ProgramUniform3uivEXT] = (void*)&glProgramUniform3uivEXT;
FunctionTable[GlExtFuncName::ProgramUniform4uivEXT] = (void*)&glProgramUniform4uivEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix2x3fvEXT] = (void*)&glProgramUniformMatrix2x3fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix3x2fvEXT] = (void*)&glProgramUniformMatrix3x2fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix2x4fvEXT] = (void*)&glProgramUniformMatrix2x4fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix4x2fvEXT] = (void*)&glProgramUniformMatrix4x2fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix3x4fvEXT] = (void*)&glProgramUniformMatrix3x4fvEXT;
FunctionTable[GlExtFuncName::ProgramUniformMatrix4x3fvEXT] = (void*)&glProgramUniformMatrix4x3fvEXT;
FunctionTable[GlExtFuncName::GetIntegeri_vEXT] = (void*)&glGetIntegeri_v;
FunctionTable[GlExtFuncName::DrawBuffersEXT] = (void*)&glDrawBuffers;
FunctionTable[GlExtFuncName::BlendEquationEXT] = (void*)&glBlendEquation;
#else
// GET FUNCTION POINTERS --- ONCE!!!! ///
if (!FunctionTable[GlExtFuncName::NUMBER_OF_OPENGLEXT_FUNCTIONS] || reset)
{
const uint32_t numExtensionStrings = sizeof(GlExtFuncName::OpenGLESExtFunctionNamePairs) / sizeof(GlExtFuncName::OpenGLESExtFunctionNamePairs[0]);
// Set the last element of the function table to avoid issues
FunctionTable[GlExtFuncName::NUMBER_OF_OPENGLEXT_FUNCTIONS] = (void*)1;
for (uint32_t i = 0; i < numExtensionStrings; i++)
{
FunctionTable[i] = GetGlesExtensionFunction(GlExtFuncName::OpenGLESExtFunctionNamePairs[i].second);
}
}
#endif
return FunctionTable[funcname];
}
}
}
#ifndef DYNAMICGLES_NO_NAMESPACE
namespace gl {
namespace ext {
#elif TARGET_OS_IPHONE
namespace gl {
namespace internals {
#endif
inline void resetExtensionFunctionPointers()
{
gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::OpenGLESExtFunctionName(0), true);
}
inline void DYNAMICGLES_FUNCTION(MultiDrawElementsEXT)(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLMULTIDRAWELEMENTSEXTPROC _MultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::MultiDrawElementsEXT);
return _MultiDrawElementsEXT(mode, count, type, indices, primcount);
#endif
}
inline void DYNAMICGLES_FUNCTION(MultiDrawArraysEXT)(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLMULTIDRAWARRAYSEXTPROC _MultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::MultiDrawArraysEXT);
return _MultiDrawArraysEXT(mode, first, count, primcount);
#endif
}
inline void DYNAMICGLES_FUNCTION(DiscardFramebufferEXT)(GLenum target, GLsizei numAttachments, const GLenum* attachments)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDiscardFramebufferEXT) PFNGLDISCARDFRAMEBUFFEREXTPROC;
#endif
PFNGLDISCARDFRAMEBUFFEREXTPROC _DiscardFramebufferEXT = (PFNGLDISCARDFRAMEBUFFEREXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DiscardFramebufferEXT);
return _DiscardFramebufferEXT(target, numAttachments, attachments);
}
inline void* DYNAMICGLES_FUNCTION(MapBufferOES)(GLenum target, GLenum access)
{
#if TARGET_OS_IPHONE
typedef decltype(&glMapBufferOES) PFNGLMAPBUFFEROESPROC;
#endif
PFNGLMAPBUFFEROESPROC _MapBufferOES = (PFNGLMAPBUFFEROESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::MapBufferOES);
return _MapBufferOES(target, access);
}
inline GLboolean DYNAMICGLES_FUNCTION(UnmapBufferOES)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUnmapBufferOES) PFNGLUNMAPBUFFEROESPROC;
#endif
PFNGLUNMAPBUFFEROESPROC _UnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::UnmapBufferOES);
return _UnmapBufferOES(target);
}
inline void DYNAMICGLES_FUNCTION(GetBufferPointervOES)(GLenum target, GLenum pname, void** params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetBufferPointervOES) PFNGLGETBUFFERPOINTERVOESPROC;
#endif
PFNGLGETBUFFERPOINTERVOESPROC _GetBufferPointervOES = (PFNGLGETBUFFERPOINTERVOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetBufferPointervOES);
return _GetBufferPointervOES(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(BindVertexArrayOES)(GLuint vertexarray)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindVertexArrayOES) PFNGLBINDVERTEXARRAYOESPROC;
#endif
PFNGLBINDVERTEXARRAYOESPROC _BindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BindVertexArrayOES);
return _BindVertexArrayOES(vertexarray);
}
inline void DYNAMICGLES_FUNCTION(DeleteVertexArraysOES)(GLsizei n, const GLuint* vertexarrays)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteVertexArraysOES) PFNGLDELETEVERTEXARRAYSOESPROC;
#endif
PFNGLDELETEVERTEXARRAYSOESPROC _DeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DeleteVertexArraysOES);
return _DeleteVertexArraysOES(n, vertexarrays);
}
inline void DYNAMICGLES_FUNCTION(GenVertexArraysOES)(GLsizei n, GLuint* vertexarrays)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenVertexArraysOES) PFNGLGENVERTEXARRAYSOESPROC;
#endif
PFNGLGENVERTEXARRAYSOESPROC _GenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GenVertexArraysOES);
return _GenVertexArraysOES(n, vertexarrays);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsVertexArrayOES)(GLuint vertexarray)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsVertexArrayOES) PFNGLISVERTEXARRAYOESPROC;
#endif
PFNGLISVERTEXARRAYOESPROC _IsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::IsVertexArrayOES);
return _IsVertexArrayOES(vertexarray);
}
inline void DYNAMICGLES_FUNCTION(DeleteFencesNV)(GLsizei n, const GLuint* fences)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDELETEFENCESNVPROC _DeleteFencesNV = (PFNGLDELETEFENCESNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DeleteFencesNV);
return _DeleteFencesNV(n, fences);
#endif
}
inline void DYNAMICGLES_FUNCTION(GenFencesNV)(GLsizei n, GLuint* fences)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGENFENCESNVPROC _GenFencesNV = (PFNGLGENFENCESNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GenFencesNV);
return _GenFencesNV(n, fences);
#endif
}
inline GLboolean DYNAMICGLES_FUNCTION(IsFenceNV)(GLuint fence)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLISFENCENVPROC _IsFenceNV = (PFNGLISFENCENVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::IsFenceNV);
return _IsFenceNV(fence);
#endif
}
inline GLboolean DYNAMICGLES_FUNCTION(TestFenceNV)(GLuint fence)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTESTFENCENVPROC _TestFenceNV = (PFNGLTESTFENCENVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TestFenceNV);
return _TestFenceNV(fence);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetFenceivNV)(GLuint fence, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETFENCEIVNVPROC _GetFenceivNV = (PFNGLGETFENCEIVNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetFenceivNV);
return _GetFenceivNV(fence, pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(FinishFenceNV)(GLuint fence)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFINISHFENCENVPROC _FinishFenceNV = (PFNGLFINISHFENCENVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FinishFenceNV);
return _FinishFenceNV(fence);
#endif
}
inline void DYNAMICGLES_FUNCTION(SetFenceNV)(GLuint fence, GLenum condition)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLSETFENCENVPROC _SetFenceNV = (PFNGLSETFENCENVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::SetFenceNV);
return _SetFenceNV(fence, condition);
#endif
}
#if !TARGET_OS_IPHONE
inline void DYNAMICGLES_FUNCTION(EGLImageTargetTexture2DOES)(GLenum target, GLeglImageOES image)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEGLIMAGETARGETTEXTURE2DOESPROC _EGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::EGLImageTargetTexture2DOES);
return _EGLImageTargetTexture2DOES(target, image);
#endif
}
inline void DYNAMICGLES_FUNCTION(EGLImageTargetRenderbufferStorageOES)(GLenum target, GLeglImageOES image)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC _EGLImageTargetRenderbufferStorageOES = (PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::EGLImageTargetRenderbufferStorageOES);
return _EGLImageTargetRenderbufferStorageOES(target, image);
#endif
}
#endif
inline void DYNAMICGLES_FUNCTION(RenderbufferStorageMultisampleIMG)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC _RenderbufferStorageMultisampleIMG = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::RenderbufferStorageMultisampleIMG);
return _RenderbufferStorageMultisampleIMG(target, samples, internalformat, width, height);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferTexture2DMultisampleIMG)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC _FramebufferTexture2DMultisampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferTexture2DMultisampleIMG);
return _FramebufferTexture2DMultisampleIMG(target, attachment, textarget, texture, level, samples);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPerfMonitorGroupsAMD)(GLint* numGroups, GLsizei groupsSize, GLuint* groups)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPERFMONITORGROUPSAMDPROC _GetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPerfMonitorGroupsAMD);
return _GetPerfMonitorGroupsAMD(numGroups, groupsSize, groups);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPerfMonitorCountersAMD)(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPERFMONITORCOUNTERSAMDPROC _GetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPerfMonitorCountersAMD);
return _GetPerfMonitorCountersAMD(group, numCounters, maxActiveCounters, counterSize, counters);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPerfMonitorGroupStringAMD)(GLuint group, GLsizei bufSize, GLsizei* length, char* groupString)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPERFMONITORGROUPSTRINGAMDPROC _GetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPerfMonitorGroupStringAMD);
return _GetPerfMonitorGroupStringAMD(group, bufSize, length, groupString);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPerfMonitorCounterStringAMD)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC _GetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPerfMonitorCounterStringAMD);
return _GetPerfMonitorCounterStringAMD(group, counter, bufSize, length, counterString);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPerfMonitorCounterInfoAMD)(GLuint group, GLuint counter, GLenum pname, GLvoid* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPERFMONITORCOUNTERINFOAMDPROC _GetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPerfMonitorCounterInfoAMD);
return _GetPerfMonitorCounterInfoAMD(group, counter, pname, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(GenPerfMonitorsAMD)(GLsizei n, GLuint* monitors)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGENPERFMONITORSAMDPROC _GenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GenPerfMonitorsAMD);
return _GenPerfMonitorsAMD(n, monitors);
#endif
}
inline void DYNAMICGLES_FUNCTION(DeletePerfMonitorsAMD)(GLsizei n, GLuint* monitors)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDELETEPERFMONITORSAMDPROC _DeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DeletePerfMonitorsAMD);
return _DeletePerfMonitorsAMD(n, monitors);
#endif
}
inline void DYNAMICGLES_FUNCTION(SelectPerfMonitorCountersAMD)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLSELECTPERFMONITORCOUNTERSAMDPROC _SelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::SelectPerfMonitorCountersAMD);
return _SelectPerfMonitorCountersAMD(monitor, enable, group, numCounters, countersList);
#endif
}
inline void DYNAMICGLES_FUNCTION(BeginPerfMonitorAMD)(GLuint monitor)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBEGINPERFMONITORAMDPROC _BeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BeginPerfMonitorAMD);
return _BeginPerfMonitorAMD(monitor);
#endif
}
inline void DYNAMICGLES_FUNCTION(EndPerfMonitorAMD)(GLuint monitor)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLENDPERFMONITORAMDPROC _EndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::EndPerfMonitorAMD);
return _EndPerfMonitorAMD(monitor);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPerfMonitorCounterDataAMD)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPERFMONITORCOUNTERDATAAMDPROC _GetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPerfMonitorCounterDataAMD);
return _GetPerfMonitorCounterDataAMD(monitor, pname, dataSize, data, bytesWritten);
#endif
}
inline void DYNAMICGLES_FUNCTION(BlitFramebufferANGLE)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBLITFRAMEBUFFERANGLEPROC _BlitFramebufferANGLE = (PFNGLBLITFRAMEBUFFERANGLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BlitFramebufferANGLE);
return _BlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
#endif
}
inline void DYNAMICGLES_FUNCTION(RenderbufferStorageMultisampleANGLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC _RenderbufferStorageMultisampleANGLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::RenderbufferStorageMultisampleANGLE);
return _RenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height);
#endif
}
inline void DYNAMICGLES_FUNCTION(RenderbufferStorageMultisampleAPPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
typedef decltype(&glRenderbufferStorageMultisampleAPPLE) PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC;
#endif
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC _RenderbufferStorageMultisampleAPPLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::RenderbufferStorageMultisampleAPPLE);
return _RenderbufferStorageMultisampleAPPLE(target, samples, internalformat, width, height);
}
inline void DYNAMICGLES_FUNCTION(ResolveMultisampleFramebufferAPPLE)(void)
{
#if TARGET_OS_IPHONE
typedef decltype(&glResolveMultisampleFramebufferAPPLE) PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC;
#endif
PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC _ResolveMultisampleFramebufferAPPLE = (PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ResolveMultisampleFramebufferAPPLE);
return _ResolveMultisampleFramebufferAPPLE();
}
inline void DYNAMICGLES_FUNCTION(CoverageMaskNV)(GLboolean mask)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCOVERAGEMASKNVPROC _CoverageMaskNV = (PFNGLCOVERAGEMASKNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CoverageMaskNV);
return _CoverageMaskNV(mask);
#endif
}
inline void DYNAMICGLES_FUNCTION(CoverageOperationNV)(GLenum operation)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCOVERAGEOPERATIONNVPROC _CoverageOperationNV = (PFNGLCOVERAGEOPERATIONNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CoverageOperationNV);
return _CoverageOperationNV(operation);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetDriverControlsQCOM)(GLint* num, GLsizei size, GLuint* driverControls)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETDRIVERCONTROLSQCOMPROC _GetDriverControlsQCOM = (PFNGLGETDRIVERCONTROLSQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetDriverControlsQCOM);
return _GetDriverControlsQCOM(num, size, driverControls);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetDriverControlStringQCOM)(GLuint driverControl, GLsizei bufSize, GLsizei* length, char* driverControlString)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETDRIVERCONTROLSTRINGQCOMPROC _GetDriverControlStringQCOM = (PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetDriverControlStringQCOM);
return _GetDriverControlStringQCOM(driverControl, bufSize, length, driverControlString);
#endif
}
inline void DYNAMICGLES_FUNCTION(EnableDriverControlQCOM)(GLuint driverControl)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLENABLEDRIVERCONTROLQCOMPROC _EnableDriverControlQCOM = (PFNGLENABLEDRIVERCONTROLQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::EnableDriverControlQCOM);
return _EnableDriverControlQCOM(driverControl);
#endif
}
inline void DYNAMICGLES_FUNCTION(DisableDriverControlQCOM)(GLuint driverControl)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDISABLEDRIVERCONTROLQCOMPROC _DisableDriverControlQCOM = (PFNGLDISABLEDRIVERCONTROLQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DisableDriverControlQCOM);
return _DisableDriverControlQCOM(driverControl);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetTexturesQCOM)(GLuint* textures, GLint maxTextures, GLint* numTextures)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETTEXTURESQCOMPROC _ExtGetTexturesQCOM = (PFNGLEXTGETTEXTURESQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetTexturesQCOM);
return _ExtGetTexturesQCOM(textures, maxTextures, numTextures);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetBuffersQCOM)(GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETBUFFERSQCOMPROC _ExtGetBuffersQCOM = (PFNGLEXTGETBUFFERSQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetBuffersQCOM);
return _ExtGetBuffersQCOM(buffers, maxBuffers, numBuffers);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetRenderbuffersQCOM)(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETRENDERBUFFERSQCOMPROC _ExtGetRenderbuffersQCOM = (PFNGLEXTGETRENDERBUFFERSQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetRenderbuffersQCOM);
return _ExtGetRenderbuffersQCOM(renderbuffers, maxRenderbuffers, numRenderbuffers);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetFramebuffersQCOM)(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETFRAMEBUFFERSQCOMPROC _ExtGetFramebuffersQCOM = (PFNGLEXTGETFRAMEBUFFERSQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetFramebuffersQCOM);
return _ExtGetFramebuffersQCOM(framebuffers, maxFramebuffers, numFramebuffers);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetTexLevelParameterivQCOM)(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC _ExtGetTexLevelParameterivQCOM = (PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetTexLevelParameterivQCOM);
return _ExtGetTexLevelParameterivQCOM(texture, face, level, pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtTexObjectStateOverrideiQCOM)(GLenum target, GLenum pname, GLint param)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC _ExtTexObjectStateOverrideiQCOM = (PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtTexObjectStateOverrideiQCOM);
return _ExtTexObjectStateOverrideiQCOM(target, pname, param);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetTexSubImageQCOM)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETTEXSUBIMAGEQCOMPROC _ExtGetTexSubImageQCOM = (PFNGLEXTGETTEXSUBIMAGEQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetTexSubImageQCOM);
return _ExtGetTexSubImageQCOM(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetBufferPointervQCOM)(GLenum target, GLvoid** params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETBUFFERPOINTERVQCOMPROC _ExtGetBufferPointervQCOM = (PFNGLEXTGETBUFFERPOINTERVQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetBufferPointervQCOM);
return _ExtGetBufferPointervQCOM(target, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetShadersQCOM)(GLuint* shaders, GLint maxShaders, GLint* numShaders)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETSHADERSQCOMPROC _ExtGetShadersQCOM = (PFNGLEXTGETSHADERSQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetShadersQCOM);
return _ExtGetShadersQCOM(shaders, maxShaders, numShaders);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetProgramsQCOM)(GLuint* programs, GLint maxPrograms, GLint* numPrograms)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETPROGRAMSQCOMPROC _ExtGetProgramsQCOM = (PFNGLEXTGETPROGRAMSQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetProgramsQCOM);
return _ExtGetProgramsQCOM(programs, maxPrograms, numPrograms);
#endif
}
inline GLboolean DYNAMICGLES_FUNCTION(ExtIsProgramBinaryQCOM)(GLuint program)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTISPROGRAMBINARYQCOMPROC _ExtIsProgramBinaryQCOM = (PFNGLEXTISPROGRAMBINARYQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtIsProgramBinaryQCOM);
return _ExtIsProgramBinaryQCOM(program);
#endif
}
inline void DYNAMICGLES_FUNCTION(ExtGetProgramBinarySourceQCOM)(GLuint program, GLenum shadertype, char* source, GLint* length)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC _ExtGetProgramBinarySourceQCOM = (PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ExtGetProgramBinarySourceQCOM);
return _ExtGetProgramBinarySourceQCOM(program, shadertype, source, length);
#endif
}
inline void DYNAMICGLES_FUNCTION(StartTilingQCOM)(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLSTARTTILINGQCOMPROC _StartTilingQCOM = (PFNGLSTARTTILINGQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::StartTilingQCOM);
return _StartTilingQCOM(x, y, width, height, preserveMask);
#endif
}
inline void DYNAMICGLES_FUNCTION(EndTilingQCOM)(GLbitfield preserveMask)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLENDTILINGQCOMPROC _EndTilingQCOM = (PFNGLENDTILINGQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::EndTilingQCOM);
return _EndTilingQCOM(preserveMask);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetProgramBinaryOES)(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPROGRAMBINARYOESPROC _GetProgramBinaryOES = (PFNGLGETPROGRAMBINARYOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetProgramBinaryOES);
return _GetProgramBinaryOES(program, bufSize, length, binaryFormat, binary);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramBinaryOES)(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMBINARYOESPROC _ProgramBinaryOES = (PFNGLPROGRAMBINARYOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramBinaryOES);
return _ProgramBinaryOES(program, binaryFormat, binary, length);
#endif
}
inline void DYNAMICGLES_FUNCTION(TexImage3DOES)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXIMAGE3DOESPROC _TexImage3DOES = (PFNGLTEXIMAGE3DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TexImage3DOES);
return _TexImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
#endif
}
inline void DYNAMICGLES_FUNCTION(TexSubImage3DOES)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXSUBIMAGE3DOESPROC _TexSubImage3DOES = (PFNGLTEXSUBIMAGE3DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TexSubImage3DOES);
return _TexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
#endif
}
inline void DYNAMICGLES_FUNCTION(CopyTexSubImage3DOES)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCOPYTEXSUBIMAGE3DOESPROC _CopyTexSubImage3DOES = (PFNGLCOPYTEXSUBIMAGE3DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CopyTexSubImage3DOES);
return _CopyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
#endif
}
inline void DYNAMICGLES_FUNCTION(CompressedTexImage3DOES)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCOMPRESSEDTEXIMAGE3DOESPROC _CompressedTexImage3DOES = (PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CompressedTexImage3DOES);
return _CompressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(CompressedTexSubImage3DOES)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC _CompressedTexSubImage3DOES = (PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CompressedTexSubImage3DOES);
return _CompressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferTexture3DOES)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERTEXTURE3DOESPROC _FramebufferTexture3DOES = (PFNGLFRAMEBUFFERTEXTURE3DOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferTexture3DOES);
return _FramebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
#endif
}
inline void DYNAMICGLES_FUNCTION(BlendEquationSeparateOES)(GLenum modeRGB, GLenum modeAlpha)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBLENDEQUATIONSEPARATEPROC _BlendEquationSeparateOES = (PFNGLBLENDEQUATIONSEPARATEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BlendEquationSeparateOES);
return _BlendEquationSeparateOES(modeRGB, modeAlpha);
#endif
}
inline void DYNAMICGLES_FUNCTION(CopyTextureLevelsAPPLE)(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount)
{
#if TARGET_OS_IPHONE
typedef decltype(&glCopyTextureLevelsAPPLE) PFNGLCOPYTEXTURELEVELSAPPLEPROC;
#endif
PFNGLCOPYTEXTURELEVELSAPPLEPROC _CopyTextureLevelsAPPLE = (PFNGLCOPYTEXTURELEVELSAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CopyTextureLevelsAPPLE);
return _CopyTextureLevelsAPPLE(destinationTexture, sourceTexture, sourceBaseLevel, sourceLevelCount);
}
inline GLsync DYNAMICGLES_FUNCTION(FenceSyncAPPLE)(GLenum condition, GLbitfield flags)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFenceSyncAPPLE) PFNGLFENCESYNCAPPLEPROC;
#endif
PFNGLFENCESYNCAPPLEPROC _FenceSyncAPPLE = (PFNGLFENCESYNCAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FenceSyncAPPLE);
return _FenceSyncAPPLE(condition, flags);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsSyncAPPLE)(GLsync sync)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsSyncAPPLE) PFNGLISSYNCAPPLEPROC;
#endif
PFNGLISSYNCAPPLEPROC _IsSyncAPPLE = (PFNGLISSYNCAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::IsSyncAPPLE);
return _IsSyncAPPLE(sync);
}
inline void DYNAMICGLES_FUNCTION(DeleteSyncAPPLE)(GLsync sync)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteSyncAPPLE) PFNGLDELETESYNCAPPLEPROC;
#endif
PFNGLDELETESYNCAPPLEPROC _DeleteSyncAPPLE = (PFNGLDELETESYNCAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DeleteSyncAPPLE);
return _DeleteSyncAPPLE(sync);
}
inline GLenum DYNAMICGLES_FUNCTION(ClientWaitSyncAPPLE)(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
#if TARGET_OS_IPHONE
typedef decltype(&glClientWaitSyncAPPLE) PFNGLCLIENTWAITSYNCAPPLEPROC;
#endif
PFNGLCLIENTWAITSYNCAPPLEPROC _ClientWaitSyncAPPLE = (PFNGLCLIENTWAITSYNCAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ClientWaitSyncAPPLE);
return _ClientWaitSyncAPPLE(sync, flags, timeout);
}
inline void DYNAMICGLES_FUNCTION(WaitSyncAPPLE)(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
#if TARGET_OS_IPHONE
typedef decltype(&glWaitSyncAPPLE) PFNGLWAITSYNCAPPLEPROC;
#endif
PFNGLWAITSYNCAPPLEPROC _WaitSyncAPPLE = (PFNGLWAITSYNCAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::WaitSyncAPPLE);
return _WaitSyncAPPLE(sync, flags, timeout);
}
inline void DYNAMICGLES_FUNCTION(GetInteger64vAPPLE)(GLenum pname, GLint64* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetInteger64vAPPLE) PFNGLGETINTEGER64VAPPLEPROC;
#endif
PFNGLGETINTEGER64VAPPLEPROC _GetInteger64vAPPLE = (PFNGLGETINTEGER64VAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetInteger64vAPPLE);
return _GetInteger64vAPPLE(pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetSyncivAPPLE)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetSyncivAPPLE) PFNGLGETSYNCIVAPPLEPROC;
#endif
PFNGLGETSYNCIVAPPLEPROC _GetSyncivAPPLE = (PFNGLGETSYNCIVAPPLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetSyncivAPPLE);
return _GetSyncivAPPLE(sync, pname, bufSize, length, values);
}
inline void* DYNAMICGLES_FUNCTION(MapBufferRangeEXT)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
{
#if TARGET_OS_IPHONE
typedef decltype(&glMapBufferRangeEXT) PFNGLMAPBUFFERRANGEEXTPROC;
#endif
PFNGLMAPBUFFERRANGEEXTPROC _MapBufferRangeEXT = (PFNGLMAPBUFFERRANGEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::MapBufferRangeEXT);
return _MapBufferRangeEXT(target, offset, length, access);
}
inline void DYNAMICGLES_FUNCTION(FlushMappedBufferRangeEXT)(GLenum target, GLintptr offset, GLsizeiptr length)
{
#if TARGET_OS_IPHONE
typedef decltype(&glFlushMappedBufferRangeEXT) PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC;
#endif
PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC _FlushMappedBufferRangeEXT = (PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FlushMappedBufferRangeEXT);
return _FlushMappedBufferRangeEXT(target, offset, length);
}
inline void DYNAMICGLES_FUNCTION(RenderbufferStorageMultisampleEXT)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC _RenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::RenderbufferStorageMultisampleEXT);
return _RenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferTexture2DMultisampleEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC _FramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferTexture2DMultisampleEXT);
return _FramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
#endif
}
inline GLenum DYNAMICGLES_FUNCTION(GetGraphicsResetStatusEXT)(void)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETGRAPHICSRESETSTATUSEXTPROC _GetGraphicsResetStatusEXT = (PFNGLGETGRAPHICSRESETSTATUSEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetGraphicsResetStatusEXT);
return _GetGraphicsResetStatusEXT();
#endif
}
inline void DYNAMICGLES_FUNCTION(ReadnPixelsEXT)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLREADNPIXELSEXTPROC _ReadnPixelsEXT = (PFNGLREADNPIXELSEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ReadnPixelsEXT);
return _ReadnPixelsEXT(x, y, width, height, format, type, bufSize, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetnUniformfvEXT)(GLuint program, GLint location, GLsizei bufSize, float* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETNUNIFORMFVEXTPROC _GetnUniformfvEXT = (PFNGLGETNUNIFORMFVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetnUniformfvEXT);
return _GetnUniformfvEXT(program, location, bufSize, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetnUniformivEXT)(GLuint program, GLint location, GLsizei bufSize, GLint* params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETNUNIFORMIVEXTPROC _GetnUniformivEXT = (PFNGLGETNUNIFORMIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetnUniformivEXT);
return _GetnUniformivEXT(program, location, bufSize, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(TexStorage1DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXSTORAGE1DEXTPROC _TexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TexStorage1DEXT);
return _TexStorage1DEXT(target, levels, internalformat, width);
#endif
}
inline void DYNAMICGLES_FUNCTION(TexStorage2DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXSTORAGE2DEXTPROC _TexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TexStorage2DEXT);
return _TexStorage2DEXT(target, levels, internalformat, width, height);
#endif
}
inline void DYNAMICGLES_FUNCTION(TexStorage3DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXSTORAGE3DEXTPROC _TexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TexStorage3DEXT);
return _TexStorage3DEXT(target, levels, internalformat, width, height, depth);
#endif
}
inline void DYNAMICGLES_FUNCTION(TextureStorage1DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXTURESTORAGE1DEXTPROC _TextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TextureStorage1DEXT);
return _TextureStorage1DEXT(texture, target, levels, internalformat, width);
#endif
}
inline void DYNAMICGLES_FUNCTION(TextureStorage2DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXTURESTORAGE2DEXTPROC _TextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TextureStorage2DEXT);
return _TextureStorage2DEXT(texture, target, levels, internalformat, width, height);
#endif
}
inline void DYNAMICGLES_FUNCTION(TextureStorage3DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXTURESTORAGE3DEXTPROC _TextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TextureStorage3DEXT);
return _TextureStorage3DEXT(texture, target, levels, internalformat, width, height, depth);
#endif
}
inline void DYNAMICGLES_FUNCTION(DebugMessageControlKHR)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDEBUGMESSAGECONTROLKHRPROC _DebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DebugMessageControlKHR);
return _DebugMessageControlKHR(source, type, severity, count, ids, enabled);
#endif
}
inline void DYNAMICGLES_FUNCTION(DebugMessageInsertKHR)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDEBUGMESSAGEINSERTKHRPROC _DebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DebugMessageInsertKHR);
return _DebugMessageInsertKHR(source, type, id, severity, length, buf);
#endif
}
#if !TARGET_OS_IPHONE
inline void DYNAMICGLES_FUNCTION(DebugMessageCallbackKHR)(GLDEBUGPROCKHR callback, const void* userParam)
{
PFNGLDEBUGMESSAGECALLBACKKHRPROC _DebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DebugMessageCallbackKHR);
return _DebugMessageCallbackKHR(callback, userParam);
}
#endif
inline GLuint DYNAMICGLES_FUNCTION(GetDebugMessageLogKHR)(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETDEBUGMESSAGELOGKHRPROC _GetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetDebugMessageLogKHR);
return _GetDebugMessageLogKHR(count, bufsize, sources, types, ids, severities, lengths, messageLog);
#endif
}
inline void DYNAMICGLES_FUNCTION(PushDebugGroupKHR)(GLenum source, GLuint id, GLsizei length, const GLchar* message)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPUSHDEBUGGROUPKHRPROC _PushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::PushDebugGroupKHR);
return _PushDebugGroupKHR(source, id, length, message);
#endif
}
inline void DYNAMICGLES_FUNCTION(PopDebugGroupKHR)(void)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPOPDEBUGGROUPKHRPROC _PopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::PopDebugGroupKHR);
return _PopDebugGroupKHR();
#endif
}
inline void DYNAMICGLES_FUNCTION(ObjectLabelKHR)(GLenum identifier, GLuint name, GLsizei length, const GLchar* label)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLOBJECTLABELKHRPROC _ObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ObjectLabelKHR);
return _ObjectLabelKHR(identifier, name, length, label);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetObjectLabelKHR)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETOBJECTLABELKHRPROC _GetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetObjectLabelKHR);
return _GetObjectLabelKHR(identifier, name, bufSize, length, label);
#endif
}
inline void DYNAMICGLES_FUNCTION(ObjectPtrLabelKHR)(const void* ptr, GLsizei length, const GLchar* label)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLOBJECTPTRLABELKHRPROC _ObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ObjectPtrLabelKHR);
return _ObjectPtrLabelKHR(ptr, length, label);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetObjectPtrLabelKHR)(const void* ptr, GLsizei bufSize, GLsizei* length, GLchar* label)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETOBJECTPTRLABELKHRPROC _GetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetObjectPtrLabelKHR);
return _GetObjectPtrLabelKHR(ptr, bufSize, length, label);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetPointervKHR)(GLenum pname, void** params)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETPOINTERVKHRPROC _GetPointervKHR = (PFNGLGETPOINTERVKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetPointervKHR);
return _GetPointervKHR(pname, params);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawArraysInstancedANGLE)(GLenum mode, GLint first, GLsizei count, GLsizei primcount)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWARRAYSINSTANCEDANGLEPROC _DrawArraysInstancedANGLE = (PFNGLDRAWARRAYSINSTANCEDANGLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DrawArraysInstancedANGLE);
return _DrawArraysInstancedANGLE(mode, first, count, primcount);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawElementsInstancedANGLE)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWELEMENTSINSTANCEDANGLEPROC _DrawElementsInstancedANGLE = (PFNGLDRAWELEMENTSINSTANCEDANGLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DrawElementsInstancedANGLE);
return _DrawElementsInstancedANGLE(mode, count, type, indices, primcount);
#endif
}
inline void DYNAMICGLES_FUNCTION(VertexAttribDivisorANGLE)(GLuint index, GLuint divisor)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLVERTEXATTRIBDIVISORANGLEPROC _VertexAttribDivisorANGLE = (PFNGLVERTEXATTRIBDIVISORANGLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::VertexAttribDivisorANGLE);
return _VertexAttribDivisorANGLE(index, divisor);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetTranslatedShaderSourceANGLE)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC _GetTranslatedShaderSourceANGLE = (PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetTranslatedShaderSourceANGLE);
return _GetTranslatedShaderSourceANGLE(shader, bufsize, length, source);
#endif
}
inline void DYNAMICGLES_FUNCTION(LabelObjectEXT)(GLenum type, GLuint object, GLsizei length, const GLchar* label)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLLABELOBJECTEXTPROC _LabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::LabelObjectEXT);
return _LabelObjectEXT(type, object, length, label);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetObjectLabelEXT)(GLenum type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar* label)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETOBJECTLABELEXTPROC _GetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetObjectLabelEXT);
return _GetObjectLabelEXT(type, object, bufSize, length, label);
#endif
}
inline void DYNAMICGLES_FUNCTION(InsertEventMarkerEXT)(GLsizei length, const GLchar* marker)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLINSERTEVENTMARKEREXTPROC _InsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::InsertEventMarkerEXT);
return _InsertEventMarkerEXT(length, marker);
#endif
}
inline void DYNAMICGLES_FUNCTION(PushGroupMarkerEXT)(GLsizei length, const GLchar* marker)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPUSHGROUPMARKEREXTPROC _PushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::PushGroupMarkerEXT);
return _PushGroupMarkerEXT(length, marker);
#endif
}
inline void DYNAMICGLES_FUNCTION(PopGroupMarkerEXT)(void)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPOPGROUPMARKEREXTPROC _PopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::PopGroupMarkerEXT);
return _PopGroupMarkerEXT();
#endif
}
inline void DYNAMICGLES_FUNCTION(GenQueriesEXT)(GLsizei n, GLuint* ids)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGENQUERIESEXTPROC _GenQueriesEXT = (PFNGLGENQUERIESEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GenQueriesEXT);
return _GenQueriesEXT(n, ids);
#endif
}
inline void DYNAMICGLES_FUNCTION(DeleteQueriesEXT)(GLsizei n, const GLuint* ids)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDELETEQUERIESEXTPROC _DeleteQueriesEXT = (PFNGLDELETEQUERIESEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DeleteQueriesEXT);
return _DeleteQueriesEXT(n, ids);
#endif
}
inline GLboolean DYNAMICGLES_FUNCTION(IsQueryEXT)(GLuint id)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLISQUERYEXTPROC _IsQueryEXT = (PFNGLISQUERYEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::IsQueryEXT);
return _IsQueryEXT(id);
#endif
}
inline void DYNAMICGLES_FUNCTION(BeginQueryEXT)(GLenum target, GLuint id)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBEGINQUERYEXTPROC _BeginQueryEXT = (PFNGLBEGINQUERYEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BeginQueryEXT);
return _BeginQueryEXT(target, id);
#endif
}
inline void DYNAMICGLES_FUNCTION(EndQueryEXT)(GLenum target)
{
#if TARGET_OS_IPHONE
typedef decltype(&glEndQueryEXT) PFNGLENDQUERYEXTPROC;
#endif
PFNGLENDQUERYEXTPROC _EndQueryEXT = (PFNGLENDQUERYEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::EndQueryEXT);
return _EndQueryEXT(target);
}
inline void DYNAMICGLES_FUNCTION(GetQueryivEXT)(GLenum target, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetQueryivEXT) PFNGLGETQUERYIVEXTPROC;
#endif
PFNGLGETQUERYIVEXTPROC _GetQueryivEXT = (PFNGLGETQUERYIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetQueryivEXT);
return _GetQueryivEXT(target, pname, params);
}
inline void DYNAMICGLES_FUNCTION(GetQueryObjectuivEXT)(GLuint id, GLenum pname, GLuint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetQueryObjectuivEXT) PFNGLGETQUERYOBJECTUIVEXTPROC;
#endif
PFNGLGETQUERYOBJECTUIVEXTPROC _GetQueryObjectuivEXT = (PFNGLGETQUERYOBJECTUIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetQueryObjectuivEXT);
return _GetQueryObjectuivEXT(id, pname, params);
}
inline void DYNAMICGLES_FUNCTION(UseProgramStagesEXT)(GLuint pipeline, GLbitfield stages, GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glUseProgramStagesEXT) PFNGLUSEPROGRAMSTAGESEXTPROC;
#endif
PFNGLUSEPROGRAMSTAGESEXTPROC _UseProgramStagesEXT = (PFNGLUSEPROGRAMSTAGESEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::UseProgramStagesEXT);
return _UseProgramStagesEXT(pipeline, stages, program);
}
inline void DYNAMICGLES_FUNCTION(ActiveShaderProgramEXT)(GLuint pipeline, GLuint program)
{
#if TARGET_OS_IPHONE
typedef decltype(&glActiveShaderProgramEXT) PFNGLACTIVESHADERPROGRAMEXTPROC;
#endif
PFNGLACTIVESHADERPROGRAMEXTPROC _ActiveShaderProgramEXT = (PFNGLACTIVESHADERPROGRAMEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ActiveShaderProgramEXT);
return _ActiveShaderProgramEXT(pipeline, program);
}
inline GLuint DYNAMICGLES_FUNCTION(CreateShaderProgramvEXT)(GLenum type, GLsizei count, const GLchar** strings)
{
#if TARGET_OS_IPHONE
assert(0);
return 0;
#else
PFNGLCREATESHADERPROGRAMVEXTPROC _CreateShaderProgramvEXT = (PFNGLCREATESHADERPROGRAMVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::CreateShaderProgramvEXT);
return _CreateShaderProgramvEXT(type, count, strings);
#endif
}
inline void DYNAMICGLES_FUNCTION(BindProgramPipelineEXT)(GLuint pipeline)
{
#if TARGET_OS_IPHONE
typedef decltype(&glBindProgramPipelineEXT) PFNGLBINDPROGRAMPIPELINEEXTPROC;
#endif
PFNGLBINDPROGRAMPIPELINEEXTPROC _BindProgramPipelineEXT = (PFNGLBINDPROGRAMPIPELINEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BindProgramPipelineEXT);
return _BindProgramPipelineEXT(pipeline);
}
inline void DYNAMICGLES_FUNCTION(DeleteProgramPipelinesEXT)(GLsizei n, const GLuint* pipelines)
{
#if TARGET_OS_IPHONE
typedef decltype(&glDeleteProgramPipelinesEXT) PFNGLDELETEPROGRAMPIPELINESEXTPROC;
#endif
PFNGLDELETEPROGRAMPIPELINESEXTPROC _DeleteProgramPipelinesEXT = (PFNGLDELETEPROGRAMPIPELINESEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DeleteProgramPipelinesEXT);
return _DeleteProgramPipelinesEXT(n, pipelines);
}
inline void DYNAMICGLES_FUNCTION(GenProgramPipelinesEXT)(GLsizei n, GLuint* pipelines)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGenProgramPipelinesEXT) PFNGLGENPROGRAMPIPELINESEXTPROC;
#endif
PFNGLGENPROGRAMPIPELINESEXTPROC _GenProgramPipelinesEXT = (PFNGLGENPROGRAMPIPELINESEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GenProgramPipelinesEXT);
return _GenProgramPipelinesEXT(n, pipelines);
}
inline GLboolean DYNAMICGLES_FUNCTION(IsProgramPipelineEXT)(GLuint pipeline)
{
#if TARGET_OS_IPHONE
typedef decltype(&glIsProgramPipelineEXT) PFNGLISPROGRAMPIPELINEEXTPROC;
#endif
PFNGLISPROGRAMPIPELINEEXTPROC _IsProgramPipelineEXT = (PFNGLISPROGRAMPIPELINEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::IsProgramPipelineEXT);
return _IsProgramPipelineEXT(pipeline);
}
inline void DYNAMICGLES_FUNCTION(ProgramParameteriEXT)(GLuint program, GLenum pname, GLint value)
{
#if TARGET_OS_IPHONE
typedef decltype(&glProgramParameteriEXT) PFNGLPROGRAMPARAMETERIEXTPROC;
#endif
PFNGLPROGRAMPARAMETERIEXTPROC _ProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramParameteriEXT);
return _ProgramParameteriEXT(program, pname, value);
}
inline void DYNAMICGLES_FUNCTION(GetProgramPipelineivEXT)(GLuint pipeline, GLenum pname, GLint* params)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetProgramPipelineivEXT) PFNGLGETPROGRAMPIPELINEIVEXTPROC;
#endif
PFNGLGETPROGRAMPIPELINEIVEXTPROC _GetProgramPipelineivEXT = (PFNGLGETPROGRAMPIPELINEIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetProgramPipelineivEXT);
return _GetProgramPipelineivEXT(pipeline, pname, params);
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1iEXT)(GLuint program, GLint location, GLint x)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1IEXTPROC _ProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform1iEXT);
return _ProgramUniform1iEXT(program, location, x);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2iEXT)(GLuint program, GLint location, GLint x, GLint y)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2IEXTPROC _ProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform2iEXT);
return _ProgramUniform2iEXT(program, location, x, y);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3iEXT)(GLuint program, GLint location, GLint x, GLint y, GLint z)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3IEXTPROC _ProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform3iEXT);
return _ProgramUniform3iEXT(program, location, x, y, z);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4iEXT)(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4IEXTPROC _ProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform4iEXT);
return _ProgramUniform4iEXT(program, location, x, y, z, w);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1fEXT)(GLuint program, GLint location, GLfloat x)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1FEXTPROC _ProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform1fEXT);
return _ProgramUniform1fEXT(program, location, x);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2fEXT)(GLuint program, GLint location, GLfloat x, GLfloat y)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2FEXTPROC _ProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform2fEXT);
return _ProgramUniform2fEXT(program, location, x, y);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3fEXT)(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3FEXTPROC _ProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform3fEXT);
return _ProgramUniform3fEXT(program, location, x, y, z);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4fEXT)(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4FEXTPROC _ProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform4fEXT);
return _ProgramUniform4fEXT(program, location, x, y, z, w);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1ivEXT)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1IVEXTPROC _ProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform1ivEXT);
return _ProgramUniform1ivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2ivEXT)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2IVEXTPROC _ProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform2ivEXT);
return _ProgramUniform2ivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3ivEXT)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3IVEXTPROC _ProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform3ivEXT);
return _ProgramUniform3ivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4ivEXT)(GLuint program, GLint location, GLsizei count, const GLint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4IVEXTPROC _ProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform4ivEXT);
return _ProgramUniform4ivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1FVEXTPROC _ProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform1fvEXT);
return _ProgramUniform1fvEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2FVEXTPROC _ProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform2fvEXT);
return _ProgramUniform2fvEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3FVEXTPROC _ProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform3fvEXT);
return _ProgramUniform3fvEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4FVEXTPROC _ProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform4fvEXT);
return _ProgramUniform4fvEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix2fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC _ProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix2fvEXT);
return _ProgramUniformMatrix2fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix3fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC _ProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix3fvEXT);
return _ProgramUniformMatrix3fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix4fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC _ProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix4fvEXT);
return _ProgramUniformMatrix4fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ValidateProgramPipelineEXT)(GLuint pipeline)
{
#if TARGET_OS_IPHONE
typedef decltype(&glValidateProgramPipelineEXT) PFNGLVALIDATEPROGRAMPIPELINEEXTPROC;
#endif
PFNGLVALIDATEPROGRAMPIPELINEEXTPROC _ValidateProgramPipelineEXT = (PFNGLVALIDATEPROGRAMPIPELINEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ValidateProgramPipelineEXT);
return _ValidateProgramPipelineEXT(pipeline);
}
inline void DYNAMICGLES_FUNCTION(GetProgramPipelineInfoLogEXT)(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetProgramPipelineInfoLogEXT) PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC;
#endif
PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC _GetProgramPipelineInfoLogEXT = (PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetProgramPipelineInfoLogEXT);
return _GetProgramPipelineInfoLogEXT(pipeline, bufSize, length, infoLog);
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1uiEXT)(GLuint program, GLint location, GLuint v0)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1UIEXTPROC _ProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform1uiEXT);
return _ProgramUniform1uiEXT(program, location, v0);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2uiEXT)(GLuint program, GLint location, GLuint v0, GLuint v1)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2UIEXTPROC _ProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform2uiEXT);
return _ProgramUniform2uiEXT(program, location, v0, v1);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3uiEXT)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3UIEXTPROC _ProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform3uiEXT);
return _ProgramUniform3uiEXT(program, location, v0, v1, v2);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4uiEXT)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4UIEXTPROC _ProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform4uiEXT);
return _ProgramUniform4uiEXT(program, location, v0, v1, v2, v3);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform1uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM1UIVEXTPROC _ProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform1uivEXT);
return _ProgramUniform1uivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform2uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM2UIVEXTPROC _ProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform2uivEXT);
return _ProgramUniform2uivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform3uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM3UIVEXTPROC _ProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform3uivEXT);
return _ProgramUniform3uivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniform4uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORM4UIVEXTPROC _ProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniform4uivEXT);
return _ProgramUniform4uivEXT(program, location, count, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix2x3fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC _ProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix2x3fvEXT);
return _ProgramUniformMatrix2x3fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix3x2fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC _ProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix3x2fvEXT);
return _ProgramUniformMatrix3x2fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix2x4fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC _ProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix2x4fvEXT);
return _ProgramUniformMatrix2x4fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix4x2fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC _ProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix4x2fvEXT);
return _ProgramUniformMatrix4x2fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix3x4fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC _ProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix3x4fvEXT);
return _ProgramUniformMatrix3x4fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformMatrix4x3fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC _ProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformMatrix4x3fvEXT);
return _ProgramUniformMatrix4x3fvEXT(program, location, count, transpose, value);
#endif
}
inline void DYNAMICGLES_FUNCTION(AlphaFuncQCOM)(GLenum func, GLclampf ref)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLALPHAFUNCQCOMPROC _AlphaFuncQCOM = (PFNGLALPHAFUNCQCOMPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::AlphaFuncQCOM);
return _AlphaFuncQCOM(func, ref);
#endif
}
inline void DYNAMICGLES_FUNCTION(ReadBufferNV)(GLenum mode)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLREADBUFFERNVPROC _ReadBufferNV = (PFNGLREADBUFFERNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ReadBufferNV);
return _ReadBufferNV(mode);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawBuffersNV)(GLsizei n, const GLenum* bufs)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWBUFFERSNVPROC _DrawBuffersNV = (PFNGLDRAWBUFFERSNVPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DrawBuffersNV);
return _DrawBuffersNV(n, bufs);
#endif
}
inline void DYNAMICGLES_FUNCTION(ReadBufferIndexedEXT)(GLenum src, GLint index)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLREADBUFFERINDEXEDEXTPROC _ReadBufferIndexedEXT = (PFNGLREADBUFFERINDEXEDEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ReadBufferIndexedEXT);
return _ReadBufferIndexedEXT(src, index);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawBuffersIndexedEXT)(GLint n, const GLenum* location, const GLint* indices)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWBUFFERSINDEXEDEXTPROC _DrawBuffersIndexedEXT = (PFNGLDRAWBUFFERSINDEXEDEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DrawBuffersIndexedEXT);
return _DrawBuffersIndexedEXT(n, location, indices);
#endif
}
inline void DYNAMICGLES_FUNCTION(GetIntegeri_vEXT)(GLenum target, GLuint index, GLint* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLGETINTEGERI_VEXTPROC _GetIntegeri_vEXT = (PFNGLGETINTEGERI_VEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetIntegeri_vEXT);
return _GetIntegeri_vEXT(target, index, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(DrawBuffersEXT)(GLsizei n, const GLenum* bufs)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLDRAWBUFFERSEXTPROC _DrawBuffersEXT = (PFNGLDRAWBUFFERSEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::DrawBuffersEXT);
return _DrawBuffersEXT(n, bufs);
#endif
}
inline void DYNAMICGLES_FUNCTION(BlendBarrierKHR)(void)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBLENDBARRIERKHRPROC _BlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BlendBarrierKHR);
return _BlendBarrierKHR();
#endif
}
inline void DYNAMICGLES_FUNCTION(TexStorage3DMultisampleOES)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC _TexStorage3DMultisampleOES = (PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::TexStorage3DMultisampleOES);
return _TexStorage3DMultisampleOES(target, samples, internalformat, width, height, depth, fixedsamplelocations);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferTextureMultiviewOVR)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC _FramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferTextureMultiviewOVR);
return _FramebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferPixelLocalStorageSizeEXT)(GLuint target, GLsizei storageSize)
{
typedef void (GL_APIENTRY * PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEPROC)(GLuint target, GLsizei storageSize);
PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEPROC _FramebufferPixelLocalStorageSize = (PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferPixelLocalStorageSizeEXT);
return _FramebufferPixelLocalStorageSize(target, storageSize);
}
inline void DYNAMICGLES_FUNCTION(ClearPixelLocalStorageuiEXT)(GLsizei offset, GLsizei n, const GLuint* values)
{
typedef void (GL_APIENTRY * PFNGLCLEARPIXELLOCALSTORAGEUIPROC)(GLsizei offset, GLsizei n, const GLuint * values);
PFNGLCLEARPIXELLOCALSTORAGEUIPROC _ClearPixelLocalStorageui = (PFNGLCLEARPIXELLOCALSTORAGEUIPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ClearPixelLocalStorageuiEXT);
return _ClearPixelLocalStorageui(offset, n, values);
}
inline void DYNAMICGLES_FUNCTION(GetFramebufferPixelLocalStorageSizeEXT)(GLuint target)
{
typedef void (GL_APIENTRY * PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEPROC)(GLuint target);
PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEPROC _GetFramebufferPixelLocalStorageSize = (PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetFramebufferPixelLocalStorageSizeEXT);
return _GetFramebufferPixelLocalStorageSize(target);
}
inline void DYNAMICGLES_FUNCTION(BufferStorageEXT)(GLenum target, GLsizei size, const void* data, GLbitfield flags)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLBUFFERSTORAGEEXTPROC _BufferStorageEXT = (PFNGLBUFFERSTORAGEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::BufferStorageEXT);
return _BufferStorageEXT(target, size, data, flags);
#endif
}
inline void DYNAMICGLES_FUNCTION(ClearTexImageEXT)(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCLEARTEXIMAGEEXTPROC _ClearTexImageEXT = (PFNGLCLEARTEXIMAGEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ClearTexImageEXT);
return _ClearTexImageEXT(texture, level, format, type, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(ClearTexSubImageEXT)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLCLEARTEXSUBIMAGEEXTPROC _ClearTexSubImageEXT = (PFNGLCLEARTEXSUBIMAGEEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ClearTexSubImageEXT);
return _ClearTexSubImageEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
#endif
}
inline void DYNAMICGLES_FUNCTION(ClearTexSubImageIMG)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data)
{
typedef void (GL_APIENTRY * PFNGLCLEARTEXSUBIMAGEIMGPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* data);
PFNGLCLEARTEXSUBIMAGEIMGPROC _ClearTexSubImageIMG = (PFNGLCLEARTEXSUBIMAGEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ClearTexSubImageIMG);
return _ClearTexSubImageIMG(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
}
inline void DYNAMICGLES_FUNCTION(FramebufferTexture2DDownsampleIMG)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLuint xscale, GLuint yscale)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC _FramebufferTexture2DDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferTexture2DDownsampleIMG);
return _FramebufferTexture2DDownsampleIMG(target, attachment, textarget, texture, level, xscale, yscale);
#endif
}
inline void DYNAMICGLES_FUNCTION(FramebufferTextureLayerDownsampleIMG)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLuint xscale, GLuint yscale)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC _FramebufferTextureLayerDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::FramebufferTextureLayerDownsampleIMG);
return _FramebufferTextureLayerDownsampleIMG(target, attachment, texture, level, layer, xscale, yscale);
#endif
}
inline void DYNAMICGLES_FUNCTION(PatchParameteriEXT)(GLenum pname, GLint val)
{
#if TARGET_OS_IPHONE
assert(0);
#else
PFNGLPATCHPARAMETERIEXTPROC _PatchParameteriEXT = (PFNGLPATCHPARAMETERIEXTPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::PatchParameteriEXT);
return _PatchParameteriEXT(pname, val);
#endif
}
#ifdef GL_IMG_bindless_texture
inline GLuint64 DYNAMICGLES_FUNCTION(GetTextureHandleIMG)(GLuint texture)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetTextureHandleIMG) PFNGLGETTEXTUREHANDLEIMGPROC;
#endif
PFNGLGETTEXTUREHANDLEIMGPROC _GetTextureHandleIMG = (PFNGLGETTEXTUREHANDLEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetTextureHandleIMG);
return _GetTextureHandleIMG(texture);
}
inline GLuint64 DYNAMICGLES_FUNCTION(GetTextureSamplerHandleIMG)(GLuint texture, GLuint sampler)
{
#if TARGET_OS_IPHONE
typedef decltype(&glGetTextureSamplerHandleIMG) PFNGLGETTEXTURESAMPLERHANDLEIMGPROC;
#endif
PFNGLGETTEXTURESAMPLERHANDLEIMGPROC _GetTextureSamplerHandleIMG = (PFNGLGETTEXTURESAMPLERHANDLEIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::GetTextureSamplerHandleIMG);
return _GetTextureSamplerHandleIMG(texture, sampler);
}
inline void DYNAMICGLES_FUNCTION(UniformHandleui64IMG)(GLint location, GLuint64 value)
{
#if TARGET_OS_IPHONE
assert(0);
#endif
PFNGLUNIFORMHANDLEUI64IMGPROC _UniformHandleui64IMG = (PFNGLUNIFORMHANDLEUI64IMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::UniformHandleui64IMG);
return _UniformHandleui64IMG(location, value);
}
inline void DYNAMICGLES_FUNCTION(UniformHandleui64vIMG)(GLint location, GLsizei count, const GLuint64* value)
{
#if TARGET_OS_IPHONE
assert(0);
#endif
PFNGLUNIFORMHANDLEUI64VIMGPROC _UniformHandleui64vIMG = (PFNGLUNIFORMHANDLEUI64VIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::UniformHandleui64vIMG);
return _UniformHandleui64vIMG(location, count, value);
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformHandleui64IMG)(GLuint program, GLint location, GLuint64 value)
{
#if TARGET_OS_IPHONE
assert(0);
#endif
PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC _ProgramUniformHandleui64IMG = (PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformHandleui64IMG);
return _ProgramUniformHandleui64IMG(program, location, value);
}
inline void DYNAMICGLES_FUNCTION(ProgramUniformHandleui64vIMG)(GLuint program, GLint location, GLsizei count, const GLuint64* values)
{
#if TARGET_OS_IPHONE
assert(0);
#endif
PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC _ProgramUniformHandleui64vIMG = (PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC)gl::internals::getGlesExtFunction(gl::internals::GlExtFuncName::ProgramUniformHandleui64vIMG);
return _ProgramUniformHandleui64vIMG(program, location, count, values);
}
#endif
#ifndef DYNAMICGLES_NO_NAMESPACE
}
#elif TARGET_OS_IPHONE
}
}
#endif
inline bool isGlExtensionSupported(const char* extensionName, bool resetExtensionCache = false)
{
#ifndef DYNAMICGLES_NO_NAMESPACE
const unsigned char* extensionString = GetString(GL_EXTENSIONS);
#else
const unsigned char* extensionString = glGetString(GL_EXTENSIONS);
#endif
return gl::internals::isExtensionSupported(extensionString, extensionName);
}
#ifndef DYNAMICGLES_NO_NAMESPACE
}
#endif