llglheaders.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLGLHEADERS_H
00033 #define LL_LLGLHEADERS_H
00034 
00035 #if LL_LINUX
00036 # ifndef LL_MESA
00037 #  define LL_MESA 1 // force MESA
00038 # endif
00039 # ifndef LL_MESA_HEADLESS
00040 #  define LL_MESA_HEADLESS 1 // force MESA HEADLESS
00041 # endif
00042 #endif
00043 
00044 #if LL_MESA
00045 //----------------------------------------------------------------------------
00046 // MESA headers
00047 // quotes so we get libraries/.../GL/ version
00048 #define GL_GLEXT_PROTOTYPES
00049 #include "GL/gl.h"
00050 #include "GL/glext.h"
00051 #include "GL/glu.h"
00052 
00053 // The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
00054 # define __APPLE__
00055 # include "GL/glh_extensions.h"
00056 # undef __APPLE__
00057 
00058 #elif LL_LINUX
00059 //----------------------------------------------------------------------------
00060 // Linux, MESA headers, but not necessarily assuming MESA runtime.
00061 // quotes so we get libraries/.../GL/ version
00062 #include "GL/gl.h"
00063 #include "GL/glext.h"
00064 #include "GL/glu.h"
00065 
00066 
00067 #if LL_LINUX && !LL_MESA_HEADLESS
00068 // The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
00069 # define __APPLE__
00070 # include "GL/glh_extensions.h"
00071 # undef __APPLE__
00072 
00073 /* Although SDL very likely ends up calling glXGetProcAddress() itself,
00074    if we use SDL_GL_GetProcAddress() then we get bogus addresses back on
00075    some systems.  Weird. */
00076 /*# include "SDL/SDL.h"
00077   # define GLH_EXT_GET_PROC_ADDRESS(p) SDL_GL_GetProcAddress(p) */
00078 #define GLX_GLXEXT_PROTOTYPES 1
00079 # include "GL/glx.h"
00080 # include "GL/glxext.h"
00081 // Use glXGetProcAddressARB instead of glXGetProcAddress - the ARB symbol
00082 // is considered 'legacy' but works on more machines.
00083 # define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddressARB((const GLubyte*)(p))
00084 // Whee, the X headers define 'Status'.  Undefine to avoid confusion.
00085 #undef Status
00086 #endif // LL_LINUX && !LL_MESA_HEADLESS
00087 
00088 
00089 // GL_ARB_vertex_buffer_object
00090 extern PFNGLBINDBUFFERARBPROC           glBindBufferARB;
00091 extern PFNGLDELETEBUFFERSARBPROC        glDeleteBuffersARB;
00092 extern PFNGLGENBUFFERSARBPROC           glGenBuffersARB;
00093 extern PFNGLISBUFFERARBPROC                     glIsBufferARB;
00094 extern PFNGLBUFFERDATAARBPROC           glBufferDataARB;
00095 extern PFNGLBUFFERSUBDATAARBPROC        glBufferSubDataARB;
00096 extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
00097 extern PFNGLMAPBUFFERARBPROC            glMapBufferARB;
00098 extern PFNGLUNMAPBUFFERARBPROC          glUnmapBufferARB;
00099 extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
00100 extern PFNGLGETBUFFERPOINTERVARBPROC    glGetBufferPointervARB;
00101 
00102 // GL_ATI_vertex_array_object
00103 extern PFNGLNEWOBJECTBUFFERATIPROC                      glNewObjectBufferATI;
00104 extern PFNGLISOBJECTBUFFERATIPROC                       glIsObjectBufferATI;
00105 extern PFNGLUPDATEOBJECTBUFFERATIPROC           glUpdateObjectBufferATI;
00106 extern PFNGLGETOBJECTBUFFERFVATIPROC            glGetObjectBufferfvATI;
00107 extern PFNGLGETOBJECTBUFFERIVATIPROC            glGetObjectBufferivATI;
00108 extern PFNGLFREEOBJECTBUFFERATIPROC                 glFreeObjectBufferATI;
00109 extern PFNGLARRAYOBJECTATIPROC                          glArrayObjectATI;
00110 extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC      glVertexAttribArrayObjectATI;
00111 extern PFNGLGETARRAYOBJECTFVATIPROC                     glGetArrayObjectfvATI;
00112 extern PFNGLGETARRAYOBJECTIVATIPROC                     glGetArrayObjectivATI;
00113 extern PFNGLVARIANTARRAYOBJECTATIPROC           glVariantObjectArrayATI;
00114 extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC      glGetVariantArrayObjectfvATI;
00115 extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC      glGetVariantArrayObjectivATI;
00116 
00117 // GL_ARB_occlusion_query
00118 extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
00119 extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
00120 extern PFNGLISQUERYARBPROC glIsQueryARB;
00121 extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
00122 extern PFNGLENDQUERYARBPROC glEndQueryARB;
00123 extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
00124 extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
00125 extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
00126 
00127 // GL_ARB_point_parameters
00128 extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
00129 extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
00130 
00131 // GL_ARB_shader_objects
00132 extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
00133 extern PFNGLGETHANDLEARBPROC glGetHandleARB;
00134 extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
00135 extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
00136 extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
00137 extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
00138 extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
00139 extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
00140 extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
00141 extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
00142 extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
00143 extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
00144 extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
00145 extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
00146 extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
00147 extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
00148 extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
00149 extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
00150 extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
00151 extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
00152 extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
00153 extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
00154 extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
00155 extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
00156 extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
00157 extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
00158 extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
00159 extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
00160 extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
00161 extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
00162 extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
00163 extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
00164 extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
00165 extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
00166 extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
00167 extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
00168 extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
00169 extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
00170 extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
00171 
00172 // GL_ARB_vertex_shader
00173 extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
00174 extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
00175 extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
00176 extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
00177 extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
00178 extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
00179 extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
00180 extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
00181 extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
00182 extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
00183 extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
00184 extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
00185 extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
00186 extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
00187 extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
00188 extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
00189 extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
00190 extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
00191 extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
00192 extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
00193 extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
00194 extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
00195 extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
00196 extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
00197 extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
00198 extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
00199 extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
00200 extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
00201 extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
00202 extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
00203 extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
00204 extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
00205 extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
00206 extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
00207 extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
00208 extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
00209 extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
00210 extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
00211 extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
00212 extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
00213 extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
00214 extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
00215 extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
00216 extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
00217 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
00218 extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
00219 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
00220 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
00221 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
00222 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
00223 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
00224 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
00225 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
00226 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
00227 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
00228 extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
00229 extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
00230 extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
00231 extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
00232 extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
00233 extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
00234 extern PFNGLISPROGRAMARBPROC glIsProgramARB;
00235 extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
00236 extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
00237 extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
00238 
00239 extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
00240 extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
00241 
00242 extern PFNGLCOLORTABLEEXTPROC glColorTableEXT;
00243 
00244 //GL_EXT_framebuffer_object
00245 extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
00246 extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
00247 extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
00248 extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
00249 extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
00250 extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
00251 extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
00252 extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
00253 extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
00254 extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
00255 extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
00256 extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
00257 extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
00258 extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
00259 extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
00260 extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
00261 extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
00262 
00263 
00264 #elif LL_WINDOWS
00265 
00266 // windows gl headers depend on things like APIENTRY, so include windows.
00267 #define WIN32_LEAN_AND_MEAN
00268 #include <winsock2.h>
00269 #include <windows.h>
00270 
00271 //----------------------------------------------------------------------------
00272 #include <GL/gl.h>
00273 #include <GL/glu.h>
00274 
00275 // quotes so we get libraries/.../GL/ version
00276 #include "GL/glext.h"
00277 #include "GL/glh_extensions.h"
00278 
00279 
00280 // GL_ARB_vertex_buffer_object
00281 extern PFNGLBINDBUFFERARBPROC           glBindBufferARB;
00282 extern PFNGLDELETEBUFFERSARBPROC        glDeleteBuffersARB;
00283 extern PFNGLGENBUFFERSARBPROC           glGenBuffersARB;
00284 extern PFNGLISBUFFERARBPROC                     glIsBufferARB;
00285 extern PFNGLBUFFERDATAARBPROC           glBufferDataARB;
00286 extern PFNGLBUFFERSUBDATAARBPROC        glBufferSubDataARB;
00287 extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
00288 extern PFNGLMAPBUFFERARBPROC            glMapBufferARB;
00289 extern PFNGLUNMAPBUFFERARBPROC          glUnmapBufferARB;
00290 extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
00291 extern PFNGLGETBUFFERPOINTERVARBPROC    glGetBufferPointervARB;
00292 
00293 // GL_ATI_vertex_array_object
00294 extern PFNGLNEWOBJECTBUFFERATIPROC                      glNewObjectBufferATI;
00295 extern PFNGLISOBJECTBUFFERATIPROC                       glIsObjectBufferATI;
00296 extern PFNGLUPDATEOBJECTBUFFERATIPROC           glUpdateObjectBufferATI;
00297 extern PFNGLGETOBJECTBUFFERFVATIPROC            glGetObjectBufferfvATI;
00298 extern PFNGLGETOBJECTBUFFERIVATIPROC            glGetObjectBufferivATI;
00299 extern PFNGLFREEOBJECTBUFFERATIPROC                 glFreeObjectBufferATI;
00300 extern PFNGLARRAYOBJECTATIPROC                          glArrayObjectATI;
00301 extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC      glVertexAttribArrayObjectATI;
00302 extern PFNGLGETARRAYOBJECTFVATIPROC                     glGetArrayObjectfvATI;
00303 extern PFNGLGETARRAYOBJECTIVATIPROC                     glGetArrayObjectivATI;
00304 extern PFNGLVARIANTARRAYOBJECTATIPROC           glVariantObjectArrayATI;
00305 extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC      glGetVariantArrayObjectfvATI;
00306 extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC      glGetVariantArrayObjectivATI;
00307 
00308 extern PFNWGLSWAPINTERVALEXTPROC                        wglSwapIntervalEXT;
00309 
00310 // GL_ARB_occlusion_query
00311 extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
00312 extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
00313 extern PFNGLISQUERYARBPROC glIsQueryARB;
00314 extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
00315 extern PFNGLENDQUERYARBPROC glEndQueryARB;
00316 extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
00317 extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
00318 extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
00319 
00320 // GL_ARB_point_parameters
00321 extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
00322 extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
00323 
00324 // GL_ARB_shader_objects
00325 extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
00326 extern PFNGLGETHANDLEARBPROC glGetHandleARB;
00327 extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
00328 extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
00329 extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
00330 extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
00331 extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
00332 extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
00333 extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
00334 extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
00335 extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
00336 extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
00337 extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
00338 extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
00339 extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
00340 extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
00341 extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
00342 extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
00343 extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
00344 extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
00345 extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
00346 extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
00347 extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
00348 extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
00349 extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
00350 extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
00351 extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
00352 extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
00353 extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
00354 extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
00355 extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
00356 extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
00357 extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
00358 extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
00359 extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
00360 extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
00361 extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
00362 extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
00363 extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
00364 
00365 // GL_ARB_vertex_shader
00366 extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
00367 extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
00368 extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
00369 extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
00370 extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
00371 extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
00372 extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
00373 extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
00374 extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
00375 extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
00376 extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
00377 extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
00378 extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
00379 extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
00380 extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
00381 extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
00382 extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
00383 extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
00384 extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
00385 extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
00386 extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
00387 extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
00388 extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
00389 extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
00390 extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
00391 extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
00392 extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
00393 extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
00394 extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
00395 extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
00396 extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
00397 extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
00398 extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
00399 extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
00400 extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
00401 extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
00402 extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
00403 extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
00404 extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
00405 extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
00406 extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
00407 extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
00408 extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
00409 extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
00410 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
00411 extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
00412 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
00413 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
00414 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
00415 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
00416 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
00417 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
00418 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
00419 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
00420 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
00421 extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
00422 extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
00423 extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
00424 extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
00425 extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
00426 extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
00427 extern PFNGLISPROGRAMARBPROC glIsProgramARB;
00428 extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
00429 extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
00430 extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
00431 
00432 //GL_EXT_framebuffer_object
00433 extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
00434 extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
00435 extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
00436 extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
00437 extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
00438 extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
00439 extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
00440 extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
00441 extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
00442 extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
00443 extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
00444 extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
00445 extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
00446 extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
00447 extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
00448 extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
00449 extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
00450 
00451 
00452 #elif LL_DARWIN
00453 //----------------------------------------------------------------------------
00454 // LL_DARWIN
00455 
00456 #include <OpenGL/gl.h>
00457 #include <OpenGL/glu.h>
00458 
00459 #define GL_EXT_separate_specular_color 1
00460 #include <OpenGL/glext.h>
00461 
00462 #include "GL/glh_extensions.h"
00463 
00464 // These symbols don't exist on 10.3.9, so they have to be declared weak.  Redeclaring them here fixes the problem.
00465 // 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.
00466 #include <AvailabilityMacros.h>
00467 
00468 // GL_EXT_framebuffer_object
00469 extern GLboolean glIsRenderbufferEXT(GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00470 extern void glBindRenderbufferEXT(GLenum target, GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00471 extern void glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00472 extern void glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00473 extern void glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00474 extern void glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00475 extern GLboolean glIsFramebufferEXT(GLuint framebuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00476 extern void glBindFramebufferEXT(GLenum target, GLuint framebuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00477 extern void glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00478 extern void glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00479 extern GLenum glCheckFramebufferStatusEXT(GLenum target) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00480 extern void glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00481 extern void glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00482 extern void glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00483 extern void glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00484 extern void glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00485 extern void glGenerateMipmapEXT(GLenum target) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
00486 
00487 
00488 #ifdef __cplusplus
00489 extern "C" {
00490 #endif
00491 //
00492 // Define vertex buffer object headers on Mac
00493 //
00494 #ifndef GL_ARB_vertex_buffer_object
00495 #define GL_BUFFER_SIZE_ARB                0x8764
00496 #define GL_BUFFER_USAGE_ARB               0x8765
00497 #define GL_ARRAY_BUFFER_ARB               0x8892
00498 #define GL_ELEMENT_ARRAY_BUFFER_ARB       0x8893
00499 #define GL_ARRAY_BUFFER_BINDING_ARB       0x8894
00500 #define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
00501 #define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
00502 #define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
00503 #define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
00504 #define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
00505 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
00506 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
00507 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
00508 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
00509 #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
00510 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
00511 #define GL_READ_ONLY_ARB                  0x88B8
00512 #define GL_WRITE_ONLY_ARB                 0x88B9
00513 #define GL_READ_WRITE_ARB                 0x88BA
00514 #define GL_BUFFER_ACCESS_ARB              0x88BB
00515 #define GL_BUFFER_MAPPED_ARB              0x88BC
00516 #define GL_BUFFER_MAP_POINTER_ARB         0x88BD
00517 #define GL_STREAM_DRAW_ARB                0x88E0
00518 #define GL_STREAM_READ_ARB                0x88E1
00519 #define GL_STREAM_COPY_ARB                0x88E2
00520 #define GL_STATIC_DRAW_ARB                0x88E4
00521 #define GL_STATIC_READ_ARB                0x88E5
00522 #define GL_STATIC_COPY_ARB                0x88E6
00523 #define GL_DYNAMIC_DRAW_ARB               0x88E8
00524 #define GL_DYNAMIC_READ_ARB               0x88E9
00525 #define GL_DYNAMIC_COPY_ARB               0x88EA
00526 #endif
00527 
00528 
00529 
00530 #ifndef GL_ARB_vertex_buffer_object
00531 /* GL types for handling large vertex buffer objects */
00532 typedef intptr_t GLintptrARB;
00533 typedef intptr_t GLsizeiptrARB;
00534 #endif
00535 
00536 
00537 #ifndef GL_ARB_vertex_buffer_object
00538 #define GL_ARB_vertex_buffer_object 1
00539 #ifdef GL_GLEXT_FUNCTION_POINTERS
00540 typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer);
00541 typedef void (* glDeleteBufferARBProcPtr) (GLsizei n, const GLuint *buffers);
00542 typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers);
00543 typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer);
00544 typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
00545 typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
00546 typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
00547 typedef GLvoid* (* glMapBufferARBProcPtr) (GLenum target, GLenum access);       /* Flawfinder: ignore */
00548 typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target);
00549 typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum pname, GLint *params);
00550 typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, GLvoid* *params);
00551 #else
00552 extern void glBindBufferARB (GLenum, GLuint);
00553 extern void glDeleteBuffersARB (GLsizei, const GLuint *);
00554 extern void glGenBuffersARB (GLsizei, GLuint *);
00555 extern GLboolean glIsBufferARB (GLuint);
00556 extern void glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
00557 extern void glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
00558 extern void glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
00559 extern GLvoid* glMapBufferARB (GLenum, GLenum);
00560 extern GLboolean glUnmapBufferARB (GLenum);
00561 extern void glGetBufferParameterivARB (GLenum, GLenum, GLint *);
00562 extern void glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
00563 #endif /* GL_GLEXT_FUNCTION_POINTERS */
00564 #endif
00565 
00566 // May be needed for DARWIN...
00567 // #ifndef GL_ARB_compressed_tex_image
00568 // #define GL_ARB_compressed_tex_image 1
00569 // #ifdef GL_GLEXT_FUNCTION_POINTERS
00570 // typedef void (* glCompressedTexImage1D) (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*);
00571 // typedef void (* glCompressedTexImage2D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
00572 // typedef void (* glCompressedTexImage3D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
00573 // typedef void (* glCompressedTexSubImage1D) (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*);
00574 // typedef void (* glCompressedTexSubImage2D) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
00575 // typedef void (* glCompressedTexSubImage3D) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
00576 // typedef void (* glGetCompressedTexImage) (GLenum, GLint, GLvoid*);
00577 // #else
00578 // extern void glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*);
00579 // extern void glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
00580 // extern void glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
00581 // extern void glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*);
00582 // extern void glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
00583 // extern void glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
00584 // extern void glGetCompressedTexImage (GLenum, GLint, GLvoid*);
00585 // #endif /* GL_GLEXT_FUNCTION_POINTERS */
00586 // #endif
00587 
00588 #ifdef __cplusplus
00589 }
00590 #endif
00591 
00592 #include <AGL/gl.h>
00593 
00594 #endif // LL_MESA / LL_WINDOWS / LL_DARWIN
00595 
00596 
00597 #endif // LL_LLGLHEADERS_H

Generated on Fri May 16 08:33:02 2008 for SecondLife by  doxygen 1.5.5