llglheaders.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:41k
- /**
- * @file llglheaders.h
- * @brief LLGL definitions
- *
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2010, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
- #ifndef LL_LLGLHEADERS_H
- #define LL_LLGLHEADERS_H
- #if LL_SOLARIS
- # if defined(__sparc)
- # define I_NEED_OS2_H // avoiding BOOL conflicts
- # endif
- # include "GL/gl.h"
- # if defined(__sparc)
- # undef I_NEED_OS2_H
- # ifdef BOOL
- # undef BOOL // now get rid of Xmd.h crap
- # endif
- # endif
- # include "GL/glx.h"
- # define GL_GLEXT_PROTOTYPES 1
- # include "GL/glext.h"
- # include "GL/glu.h"
- # include "GL/glx.h"
- # define GLX_GLXEXT_PROTOTYPES 1
- # include "GL/glxext.h"
- //# define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddressARB((const GLubyte*)(p))
- # define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddress((const GLubyte*)(p))
- // The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
- // This header is distributed with SL. You'll find it in linden/libraries/include/GL/
- # define __APPLE__
- # include "GL/glh_extensions.h"
- # undef __APPLE__
- // GL_ARB_vertex_buffer_object
- extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
- extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
- extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
- extern PFNGLISBUFFERARBPROC glIsBufferARB;
- extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
- extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
- extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
- extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
- extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
- extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
- extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
- // GL_ATI_vertex_array_object
- extern PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI;
- extern PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI;
- extern PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI;
- extern PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI;
- extern PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI;
- extern PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI;
- extern PFNGLARRAYOBJECTATIPROC glArrayObjectATI;
- extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI;
- extern PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI;
- extern PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI;
- extern PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI;
- extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI;
- extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI;
- // GL_ARB_occlusion_query
- extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
- extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
- extern PFNGLISQUERYARBPROC glIsQueryARB;
- extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
- extern PFNGLENDQUERYARBPROC glEndQueryARB;
- extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
- extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
- extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
- // GL_ARB_point_parameters
- extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
- extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
- // GL_ARB_shader_objects
- extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
- extern PFNGLGETHANDLEARBPROC glGetHandleARB;
- extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
- extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
- extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
- extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
- extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
- extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
- extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
- extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
- extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
- extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
- extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
- extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
- extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
- extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
- extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
- extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
- extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
- extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
- extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
- extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
- extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
- extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
- extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
- extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
- extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
- extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
- extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
- extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
- extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
- extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
- extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
- extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
- extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
- extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
- extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
- extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
- extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
- // GL_ARB_vertex_shader
- extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
- extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
- extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
- extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
- extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
- extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
- extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
- extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
- extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
- extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
- extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
- extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
- extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
- extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
- extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
- extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
- extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
- extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
- extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
- extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
- extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
- extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
- extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
- extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
- extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
- extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
- extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
- extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
- extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
- extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
- extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
- extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
- extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
- extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
- extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
- extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
- extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
- extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
- extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
- extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
- extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
- extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
- extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
- extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
- extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
- extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
- extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
- extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
- extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
- extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
- extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
- extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
- extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
- extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
- extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
- extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
- extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
- extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
- extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
- extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
- extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
- extern PFNGLISPROGRAMARBPROC glIsProgramARB;
- extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
- extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
- extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
- extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
- extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
- extern PFNGLCOLORTABLEEXTPROC glColorTableEXT;
- //GL_EXT_framebuffer_object
- extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
- extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
- extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
- extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
- extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
- extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
- extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
- extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
- extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
- extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
- extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
- extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
- extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
- extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
- extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
- extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
- extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
- #elif LL_MESA
- //----------------------------------------------------------------------------
- // MESA headers
- // quotes so we get libraries/.../GL/ version
- #define GL_GLEXT_PROTOTYPES 1
- #include "GL/gl.h"
- #include "GL/glext.h"
- #include "GL/glu.h"
- // The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
- # define __APPLE__
- # include "GL/glh_extensions.h"
- # undef __APPLE__
- #elif LL_LINUX
- //----------------------------------------------------------------------------
- // Linux, MESA headers, but not necessarily assuming MESA runtime.
- // quotes so we get libraries/.../GL/ version
- #include "GL/gl.h"
- #include "GL/glext.h"
- #include "GL/glu.h"
- #if LL_LINUX && !LL_MESA_HEADLESS
- // The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
- # define __APPLE__
- # include "GL/glh_extensions.h"
- # undef __APPLE__
- /* Although SDL very likely ends up calling glXGetProcAddress() itself,
- if we use SDL_GL_GetProcAddress() then we get bogus addresses back on
- some systems. Weird. */
- /*# include "SDL/SDL.h"
- # define GLH_EXT_GET_PROC_ADDRESS(p) SDL_GL_GetProcAddress(p) */
- #define GLX_GLXEXT_PROTOTYPES 1
- # include "GL/glx.h"
- # include "GL/glxext.h"
- // Use glXGetProcAddressARB instead of glXGetProcAddress - the ARB symbol
- // is considered 'legacy' but works on more machines.
- # define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddressARB((const GLubyte*)(p))
- #endif // LL_LINUX && !LL_MESA_HEADLESS
- #if LL_LINUX && defined(WINGDIAPI)
- // WINGDIAPI gets set if we are using the linux nvidia gl.h header which needs
- // the functions below setting up.
- # define LL_LINUX_NV_GL_HEADERS 1
- #else
- # define LL_LINUX_NV_GL_HEADERS 0
- #endif // LL_LINUX && defined(WINGDIAPI)
- #if LL_LINUX_NV_GL_HEADERS
- // Missing functions when using nvidia headers:
- extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
- extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
- extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
- #endif // LL_LINUX_NV_GL_HEADERS
- // GL_ARB_vertex_buffer_object
- extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
- extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
- extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
- extern PFNGLISBUFFERARBPROC glIsBufferARB;
- extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
- extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
- extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
- extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
- extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
- extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
- extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
- // GL_ATI_vertex_array_object
- extern PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI;
- extern PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI;
- extern PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI;
- extern PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI;
- extern PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI;
- extern PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI;
- extern PFNGLARRAYOBJECTATIPROC glArrayObjectATI;
- extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI;
- extern PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI;
- extern PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI;
- extern PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI;
- extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI;
- extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI;
- // GL_ARB_occlusion_query
- extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
- extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
- extern PFNGLISQUERYARBPROC glIsQueryARB;
- extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
- extern PFNGLENDQUERYARBPROC glEndQueryARB;
- extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
- extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
- extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
- // GL_ARB_point_parameters
- extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
- extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
- // GL_ARB_shader_objects
- extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
- extern PFNGLGETHANDLEARBPROC glGetHandleARB;
- extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
- extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
- extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
- extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
- extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
- extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
- extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
- extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
- extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
- extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
- extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
- extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
- extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
- extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
- extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
- extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
- extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
- extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
- extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
- extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
- extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
- extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
- extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
- extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
- extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
- extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
- extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
- extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
- extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
- extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
- extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
- extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
- extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
- extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
- extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
- extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
- extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
- // GL_ARB_vertex_shader
- extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
- extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
- extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
- extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
- extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
- extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
- extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
- extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
- extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
- extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
- extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
- extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
- extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
- extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
- extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
- extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
- extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
- extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
- extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
- extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
- extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
- extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
- extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
- extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
- extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
- extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
- extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
- extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
- extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
- extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
- extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
- extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
- extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
- extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
- extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
- extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
- extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
- extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
- extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
- extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
- extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
- extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
- extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
- extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
- extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
- extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
- extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
- extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
- extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
- extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
- extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
- extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
- extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
- extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
- extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
- extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
- extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
- extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
- extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
- extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
- extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
- extern PFNGLISPROGRAMARBPROC glIsProgramARB;
- extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
- extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
- extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
- extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
- extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
- //GL_EXT_framebuffer_object
- extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
- extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
- extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
- extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
- extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
- extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
- extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
- extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
- extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
- extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
- extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
- extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
- extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
- extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
- extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
- extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
- extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
- // GL_EXT_framebuffer_multisample
- extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT;
- // GL_EXT_framebuffer_blit
- extern PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT;
- //GL_ARB_draw_buffers
- extern PFNGLDRAWBUFFERSARBPROC glDrawBuffersARB;
- #elif LL_WINDOWS
- // windows gl headers depend on things like APIENTRY, so include windows.
- #define WIN32_LEAN_AND_MEAN
- #include <winsock2.h>
- #include <windows.h>
- //----------------------------------------------------------------------------
- #include <GL/gl.h>
- #include <GL/glu.h>
- // quotes so we get libraries/.../GL/ version
- #include "GL/glext.h"
- #include "GL/glh_extensions.h"
- // GL_ARB_vertex_buffer_object
- extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
- extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
- extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
- extern PFNGLISBUFFERARBPROC glIsBufferARB;
- extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
- extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
- extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
- extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
- extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
- extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
- extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
- // GL_ATI_vertex_array_object
- extern PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI;
- extern PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI;
- extern PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI;
- extern PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI;
- extern PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI;
- extern PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI;
- extern PFNGLARRAYOBJECTATIPROC glArrayObjectATI;
- extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI;
- extern PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI;
- extern PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI;
- extern PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI;
- extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI;
- extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI;
- extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
- // GL_ARB_occlusion_query
- extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
- extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
- extern PFNGLISQUERYARBPROC glIsQueryARB;
- extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
- extern PFNGLENDQUERYARBPROC glEndQueryARB;
- extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
- extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
- extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
- // GL_ARB_point_parameters
- extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
- extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
- // GL_ARB_shader_objects
- extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
- extern PFNGLGETHANDLEARBPROC glGetHandleARB;
- extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
- extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
- extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
- extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
- extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
- extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
- extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
- extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
- extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
- extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
- extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
- extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
- extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
- extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
- extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
- extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
- extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
- extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
- extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
- extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
- extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
- extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
- extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
- extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
- extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
- extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
- extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
- extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
- extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
- extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
- extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
- extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
- extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
- extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
- extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
- extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
- extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
- // GL_ARB_vertex_shader
- extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
- extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
- extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
- extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
- extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
- extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
- extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
- extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
- extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
- extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
- extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
- extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
- extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
- extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
- extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
- extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
- extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
- extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
- extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
- extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
- extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
- extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
- extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
- extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
- extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
- extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
- extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
- extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
- extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
- extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
- extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
- extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
- extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
- extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
- extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
- extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
- extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
- extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
- extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
- extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
- extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
- extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
- extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
- extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
- extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
- extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
- extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
- extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
- extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
- extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
- extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
- extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
- extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
- extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
- extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
- extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
- extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
- extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
- extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
- extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
- extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
- extern PFNGLISPROGRAMARBPROC glIsProgramARB;
- extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
- extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
- extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
- //GL_EXT_framebuffer_object
- extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
- extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
- extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
- extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
- extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
- extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
- extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
- extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
- extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
- extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
- extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
- extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
- extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
- extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
- extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
- extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
- extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
- // GL_EXT_framebuffer_multisample
- extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT;
- // GL_EXT_framebuffer_blit
- extern PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT;
- //GL_ARB_draw_buffers
- extern PFNGLDRAWBUFFERSARBPROC glDrawBuffersARB;
- #elif LL_DARWIN
- //----------------------------------------------------------------------------
- // LL_DARWIN
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
- #define GL_EXT_separate_specular_color 1
- #include <OpenGL/glext.h>
- #include "GL/glh_extensions.h"
- // These symbols don't exist on 10.3.9, so they have to be declared weak. Redeclaring them here fixes the problem.
- // Note that they also must not be called on 10.3.9. This should be taken care of by a runtime check for the existence of the GL extension.
- #include <AvailabilityMacros.h>
- // GL_EXT_framebuffer_object
- extern GLboolean glIsRenderbufferEXT(GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glBindRenderbufferEXT(GLenum target, GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern GLboolean glIsFramebufferEXT(GLuint framebuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glBindFramebufferEXT(GLenum target, GLuint framebuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern GLenum glCheckFramebufferStatusEXT(GLenum target) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- extern void glGenerateMipmapEXT(GLenum target) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- // GL_ARB_draw_buffers
- extern void glDrawBuffersARB(GLsizei n, const GLenum* bufs) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
- #ifdef __cplusplus
- extern "C" {
- #endif
- //
- // Define vertex buffer object headers on Mac
- //
- #ifndef GL_ARB_vertex_buffer_object
- #define GL_BUFFER_SIZE_ARB 0x8764
- #define GL_BUFFER_USAGE_ARB 0x8765
- #define GL_ARRAY_BUFFER_ARB 0x8892
- #define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
- #define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
- #define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
- #define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
- #define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
- #define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
- #define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
- #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
- #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
- #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
- #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
- #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
- #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
- #define GL_READ_ONLY_ARB 0x88B8
- #define GL_WRITE_ONLY_ARB 0x88B9
- #define GL_READ_WRITE_ARB 0x88BA
- #define GL_BUFFER_ACCESS_ARB 0x88BB
- #define GL_BUFFER_MAPPED_ARB 0x88BC
- #define GL_BUFFER_MAP_POINTER_ARB 0x88BD
- #define GL_STREAM_DRAW_ARB 0x88E0
- #define GL_STREAM_READ_ARB 0x88E1
- #define GL_STREAM_COPY_ARB 0x88E2
- #define GL_STATIC_DRAW_ARB 0x88E4
- #define GL_STATIC_READ_ARB 0x88E5
- #define GL_STATIC_COPY_ARB 0x88E6
- #define GL_DYNAMIC_DRAW_ARB 0x88E8
- #define GL_DYNAMIC_READ_ARB 0x88E9
- #define GL_DYNAMIC_COPY_ARB 0x88EA
- #endif
- #ifndef GL_ARB_vertex_buffer_object
- /* GL types for handling large vertex buffer objects */
- typedef intptr_t GLintptrARB;
- typedef intptr_t GLsizeiptrARB;
- #endif
- #ifndef GL_ARB_vertex_buffer_object
- #define GL_ARB_vertex_buffer_object 1
- #ifdef GL_GLEXT_FUNCTION_POINTERS
- typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer);
- typedef void (* glDeleteBufferARBProcPtr) (GLsizei n, const GLuint *buffers);
- typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers);
- typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer);
- typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
- typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
- typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
- typedef GLvoid* (* glMapBufferARBProcPtr) (GLenum target, GLenum access); /* Flawfinder: ignore */
- typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target);
- typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum pname, GLint *params);
- typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, GLvoid* *params);
- #else
- extern void glBindBufferARB (GLenum, GLuint);
- extern void glDeleteBuffersARB (GLsizei, const GLuint *);
- extern void glGenBuffersARB (GLsizei, GLuint *);
- extern GLboolean glIsBufferARB (GLuint);
- extern void glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
- extern void glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
- extern void glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
- extern GLvoid* glMapBufferARB (GLenum, GLenum);
- extern GLboolean glUnmapBufferARB (GLenum);
- extern void glGetBufferParameterivARB (GLenum, GLenum, GLint *);
- extern void glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
- #endif /* GL_GLEXT_FUNCTION_POINTERS */
- #endif
- // May be needed for DARWIN...
- // #ifndef GL_ARB_compressed_tex_image
- // #define GL_ARB_compressed_tex_image 1
- // #ifdef GL_GLEXT_FUNCTION_POINTERS
- // typedef void (* glCompressedTexImage1D) (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*);
- // typedef void (* glCompressedTexImage2D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
- // typedef void (* glCompressedTexImage3D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
- // typedef void (* glCompressedTexSubImage1D) (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*);
- // typedef void (* glCompressedTexSubImage2D) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
- // typedef void (* glCompressedTexSubImage3D) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
- // typedef void (* glGetCompressedTexImage) (GLenum, GLint, GLvoid*);
- // #else
- // extern void glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*);
- // extern void glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
- // extern void glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
- // extern void glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*);
- // extern void glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
- // extern void glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
- // extern void glGetCompressedTexImage (GLenum, GLint, GLvoid*);
- // #endif /* GL_GLEXT_FUNCTION_POINTERS */
- // #endif
- #ifdef __cplusplus
- }
- #endif
- #include <AGL/gl.h>
- #endif // LL_MESA / LL_WINDOWS / LL_DARWIN
- #endif // LL_LLGLHEADERS_H