aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llwindow/llglheaders.h
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llwindow/llglheaders.h')
-rw-r--r--linden/indra/llwindow/llglheaders.h597
1 files changed, 0 insertions, 597 deletions
diff --git a/linden/indra/llwindow/llglheaders.h b/linden/indra/llwindow/llglheaders.h
deleted file mode 100644
index d66fbe4..0000000
--- a/linden/indra/llwindow/llglheaders.h
+++ /dev/null
@@ -1,597 +0,0 @@
1/**
2 * @file llglheaders.h
3 * @brief LLGL definitions
4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#ifndef LL_LLGLHEADERS_H
33#define LL_LLGLHEADERS_H
34
35#if LL_LINUX
36# ifndef LL_MESA
37# define LL_MESA 1 // force MESA
38# endif
39# ifndef LL_MESA_HEADLESS
40# define LL_MESA_HEADLESS 1 // force MESA HEADLESS
41# endif
42#endif
43
44#if LL_MESA
45//----------------------------------------------------------------------------
46// MESA headers
47// quotes so we get libraries/.../GL/ version
48#define GL_GLEXT_PROTOTYPES
49#include "GL/gl.h"
50#include "GL/glext.h"
51#include "GL/glu.h"
52
53// The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
54# define __APPLE__
55# include "GL/glh_extensions.h"
56# undef __APPLE__
57
58#elif LL_LINUX
59//----------------------------------------------------------------------------
60// Linux, MESA headers, but not necessarily assuming MESA runtime.
61// quotes so we get libraries/.../GL/ version
62#include "GL/gl.h"
63#include "GL/glext.h"
64#include "GL/glu.h"
65
66
67#if LL_LINUX && !LL_MESA_HEADLESS
68// The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
69# define __APPLE__
70# include "GL/glh_extensions.h"
71# undef __APPLE__
72
73/* Although SDL very likely ends up calling glXGetProcAddress() itself,
74 if we use SDL_GL_GetProcAddress() then we get bogus addresses back on
75 some systems. Weird. */
76/*# include "SDL/SDL.h"
77 # define GLH_EXT_GET_PROC_ADDRESS(p) SDL_GL_GetProcAddress(p) */
78#define GLX_GLXEXT_PROTOTYPES 1
79# include "GL/glx.h"
80# include "GL/glxext.h"
81// Use glXGetProcAddressARB instead of glXGetProcAddress - the ARB symbol
82// is considered 'legacy' but works on more machines.
83# define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddressARB((const GLubyte*)(p))
84// Whee, the X headers define 'Status'. Undefine to avoid confusion.
85#undef Status
86#endif // LL_LINUX && !LL_MESA_HEADLESS
87
88
89// GL_ARB_vertex_buffer_object
90extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
91extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
92extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
93extern PFNGLISBUFFERARBPROC glIsBufferARB;
94extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
95extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
96extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
97extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
98extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
99extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
100extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
101
102// GL_ATI_vertex_array_object
103extern PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI;
104extern PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI;
105extern PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI;
106extern PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI;
107extern PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI;
108extern PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI;
109extern PFNGLARRAYOBJECTATIPROC glArrayObjectATI;
110extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI;
111extern PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI;
112extern PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI;
113extern PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI;
114extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI;
115extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI;
116
117// GL_ARB_occlusion_query
118extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
119extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
120extern PFNGLISQUERYARBPROC glIsQueryARB;
121extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
122extern PFNGLENDQUERYARBPROC glEndQueryARB;
123extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
124extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
125extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
126
127// GL_ARB_point_parameters
128extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
129extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
130
131// GL_ARB_shader_objects
132extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
133extern PFNGLGETHANDLEARBPROC glGetHandleARB;
134extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
135extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
136extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
137extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
138extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
139extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
140extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
141extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
142extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
143extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
144extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
145extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
146extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
147extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
148extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
149extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
150extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
151extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
152extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
153extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
154extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
155extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
156extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
157extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
158extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
159extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
160extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
161extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
162extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
163extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
164extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
165extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
166extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
167extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
168extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
169extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
170extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
171
172// GL_ARB_vertex_shader
173extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
174extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
175extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
176extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
177extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
178extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
179extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
180extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
181extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
182extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
183extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
184extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
185extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
186extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
187extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
188extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
189extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
190extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
191extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
192extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
193extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
194extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
195extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
196extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
197extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
198extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
199extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
200extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
201extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
202extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
203extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
204extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
205extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
206extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
207extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
208extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
209extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
210extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
211extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
212extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
213extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
214extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
215extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
216extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
217extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
218extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
219extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
220extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
221extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
222extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
223extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
224extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
225extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
226extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
227extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
228extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
229extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
230extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
231extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
232extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
233extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
234extern PFNGLISPROGRAMARBPROC glIsProgramARB;
235extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
236extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
237extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
238
239extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
240extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
241
242extern PFNGLCOLORTABLEEXTPROC glColorTableEXT;
243
244//GL_EXT_framebuffer_object
245extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
246extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
247extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
248extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
249extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
250extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
251extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
252extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
253extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
254extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
255extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
256extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
257extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
258extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
259extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
260extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
261extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
262
263
264#elif LL_WINDOWS
265
266// windows gl headers depend on things like APIENTRY, so include windows.
267#define WIN32_LEAN_AND_MEAN
268#include <winsock2.h>
269#include <windows.h>
270
271//----------------------------------------------------------------------------
272#include <GL/gl.h>
273#include <GL/glu.h>
274
275// quotes so we get libraries/.../GL/ version
276#include "GL/glext.h"
277#include "GL/glh_extensions.h"
278
279
280// GL_ARB_vertex_buffer_object
281extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
282extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
283extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
284extern PFNGLISBUFFERARBPROC glIsBufferARB;
285extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
286extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
287extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
288extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
289extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
290extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
291extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
292
293// GL_ATI_vertex_array_object
294extern PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI;
295extern PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI;
296extern PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI;
297extern PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI;
298extern PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI;
299extern PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI;
300extern PFNGLARRAYOBJECTATIPROC glArrayObjectATI;
301extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI;
302extern PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI;
303extern PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI;
304extern PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI;
305extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI;
306extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI;
307
308extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
309
310// GL_ARB_occlusion_query
311extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
312extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
313extern PFNGLISQUERYARBPROC glIsQueryARB;
314extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
315extern PFNGLENDQUERYARBPROC glEndQueryARB;
316extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
317extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
318extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
319
320// GL_ARB_point_parameters
321extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
322extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
323
324// GL_ARB_shader_objects
325extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
326extern PFNGLGETHANDLEARBPROC glGetHandleARB;
327extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
328extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
329extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
330extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
331extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
332extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
333extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
334extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
335extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
336extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
337extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
338extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
339extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
340extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
341extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
342extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
343extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
344extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
345extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
346extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
347extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
348extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
349extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
350extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
351extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
352extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
353extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
354extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
355extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
356extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
357extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
358extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
359extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
360extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
361extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
362extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
363extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
364
365// GL_ARB_vertex_shader
366extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
367extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
368extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
369extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
370extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
371extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
372extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
373extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
374extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
375extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
376extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
377extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
378extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
379extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
380extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
381extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
382extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
383extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
384extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
385extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
386extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
387extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
388extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
389extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
390extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
391extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
392extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
393extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
394extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
395extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
396extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
397extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
398extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
399extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
400extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
401extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
402extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
403extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
404extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
405extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
406extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
407extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
408extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
409extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
410extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
411extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
412extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
413extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
414extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
415extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
416extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
417extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
418extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
419extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
420extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
421extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
422extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
423extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
424extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
425extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
426extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
427extern PFNGLISPROGRAMARBPROC glIsProgramARB;
428extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
429extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
430extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
431
432//GL_EXT_framebuffer_object
433extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
434extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
435extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
436extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
437extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
438extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
439extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
440extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
441extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
442extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
443extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
444extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
445extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
446extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
447extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
448extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
449extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
450
451
452#elif LL_DARWIN
453//----------------------------------------------------------------------------
454// LL_DARWIN
455
456#include <OpenGL/gl.h>
457#include <OpenGL/glu.h>
458
459#define GL_EXT_separate_specular_color 1
460#include <OpenGL/glext.h>
461
462#include "GL/glh_extensions.h"
463
464// These symbols don't exist on 10.3.9, so they have to be declared weak. Redeclaring them here fixes the problem.
465// 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.
466#include <AvailabilityMacros.h>
467
468// GL_EXT_framebuffer_object
469extern GLboolean glIsRenderbufferEXT(GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
470extern void glBindRenderbufferEXT(GLenum target, GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
471extern void glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
472extern void glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
473extern void glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
474extern void glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
475extern GLboolean glIsFramebufferEXT(GLuint framebuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
476extern void glBindFramebufferEXT(GLenum target, GLuint framebuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
477extern void glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
478extern void glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
479extern GLenum glCheckFramebufferStatusEXT(GLenum target) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
480extern void glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
481extern void glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
482extern void glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
483extern void glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
484extern void glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
485extern void glGenerateMipmapEXT(GLenum target) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
486
487
488#ifdef __cplusplus
489extern "C" {
490#endif
491//
492// Define vertex buffer object headers on Mac
493//
494#ifndef GL_ARB_vertex_buffer_object
495#define GL_BUFFER_SIZE_ARB 0x8764
496#define GL_BUFFER_USAGE_ARB 0x8765
497#define GL_ARRAY_BUFFER_ARB 0x8892
498#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
499#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
500#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
501#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
502#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
503#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
504#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
505#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
506#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
507#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
508#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
509#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
510#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
511#define GL_READ_ONLY_ARB 0x88B8
512#define GL_WRITE_ONLY_ARB 0x88B9
513#define GL_READ_WRITE_ARB 0x88BA
514#define GL_BUFFER_ACCESS_ARB 0x88BB
515#define GL_BUFFER_MAPPED_ARB 0x88BC
516#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
517#define GL_STREAM_DRAW_ARB 0x88E0
518#define GL_STREAM_READ_ARB 0x88E1
519#define GL_STREAM_COPY_ARB 0x88E2
520#define GL_STATIC_DRAW_ARB 0x88E4
521#define GL_STATIC_READ_ARB 0x88E5
522#define GL_STATIC_COPY_ARB 0x88E6
523#define GL_DYNAMIC_DRAW_ARB 0x88E8
524#define GL_DYNAMIC_READ_ARB 0x88E9
525#define GL_DYNAMIC_COPY_ARB 0x88EA
526#endif
527
528
529
530#ifndef GL_ARB_vertex_buffer_object
531/* GL types for handling large vertex buffer objects */
532typedef intptr_t GLintptrARB;
533typedef intptr_t GLsizeiptrARB;
534#endif
535
536
537#ifndef GL_ARB_vertex_buffer_object
538#define GL_ARB_vertex_buffer_object 1
539#ifdef GL_GLEXT_FUNCTION_POINTERS
540typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer);
541typedef void (* glDeleteBufferARBProcPtr) (GLsizei n, const GLuint *buffers);
542typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers);
543typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer);
544typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
545typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
546typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
547typedef GLvoid* (* glMapBufferARBProcPtr) (GLenum target, GLenum access); /* Flawfinder: ignore */
548typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target);
549typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum pname, GLint *params);
550typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, GLvoid* *params);
551#else
552extern void glBindBufferARB (GLenum, GLuint);
553extern void glDeleteBuffersARB (GLsizei, const GLuint *);
554extern void glGenBuffersARB (GLsizei, GLuint *);
555extern GLboolean glIsBufferARB (GLuint);
556extern void glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
557extern void glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
558extern void glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
559extern GLvoid* glMapBufferARB (GLenum, GLenum);
560extern GLboolean glUnmapBufferARB (GLenum);
561extern void glGetBufferParameterivARB (GLenum, GLenum, GLint *);
562extern void glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
563#endif /* GL_GLEXT_FUNCTION_POINTERS */
564#endif
565
566// May be needed for DARWIN...
567// #ifndef GL_ARB_compressed_tex_image
568// #define GL_ARB_compressed_tex_image 1
569// #ifdef GL_GLEXT_FUNCTION_POINTERS
570// typedef void (* glCompressedTexImage1D) (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*);
571// typedef void (* glCompressedTexImage2D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
572// typedef void (* glCompressedTexImage3D) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
573// typedef void (* glCompressedTexSubImage1D) (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*);
574// typedef void (* glCompressedTexSubImage2D) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
575// typedef void (* glCompressedTexSubImage3D) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
576// typedef void (* glGetCompressedTexImage) (GLenum, GLint, GLvoid*);
577// #else
578// extern void glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*);
579// extern void glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
580// extern void glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
581// extern void glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*);
582// extern void glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
583// extern void glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
584// extern void glGetCompressedTexImage (GLenum, GLint, GLvoid*);
585// #endif /* GL_GLEXT_FUNCTION_POINTERS */
586// #endif
587
588#ifdef __cplusplus
589}
590#endif
591
592#include <AGL/gl.h>
593
594#endif // LL_MESA / LL_WINDOWS / LL_DARWIN
595
596
597#endif // LL_LLGLHEADERS_H