52#ifndef GL_ARB_multitexture
53#warning NO_SHADERS not defined and GL_ARB_multitexture not defined; if possible, use a newer version of glext.h.
56#ifndef GL_ARB_shader_objects
57#warning NO_SHADERS not defined and GL_ARB_shader_objects not defined; if possible, use a newer version of glext.h.
60#ifndef GL_ARB_shading_language_100
61#warning NO_SHADERS not defined and GL_ARB_shading_language_100 not defined; if possible, use a newer version of glext.h.
64#ifndef GL_ARB_fragment_shader
65#warning NO_SHADERS not defined and GL_ARB_fragment_shader not defined; if possible, use a newer version of glext.h.
68#ifndef GL_ARB_vertex_shader
69#warning NO_SHADERS not defined and GL_ARB_vertex_shader not defined; if possible, use a newer version of glext.h.
75#if GL_ARB_vertex_buffer_object
79#warning Building without vertex buffer object support, are your OpenGL headers up to date?
83#if GL_EXT_framebuffer_object
87#warning Building without frame buffer object support, are your OpenGL headers up to date?
96#if GL_ARB_texture_env_combine
97#define OO_MULTITEXTURE 1
99#warning Building without texture combiner support, are your OpenGL headers up to date?
100#define OO_MULTITEXTURE 0
103#if defined(GL_ARB_texture_cube_map) || defined(GL_VERSION_1_3)
104#define OO_TEXTURE_CUBE_MAP 1
106#warning Building without cube map support, are your OpenGL headers up to date?
107#define OO_TEXTURE_CUBE_MAP 0
112#define OOOPENGLEXTMGR_LOCK_SET_ACCESS (!OOLITE_MAC_OS_X)
118#if OOOPENGLEXTMGR_LOCK_SET_ACCESS
155- (BOOL)haveExtension:(NSString *)extension;
157- (BOOL)shadersSupported;
158- (BOOL)shadersForceDisabled;
161- (GLint)textureImageUnitCount;
165- (BOOL)textureCombinersSupported;
166- (GLint)textureUnitCount;
168- (NSUInteger)majorVersionNumber;
169- (NSUInteger)minorVersionNumber;
170- (NSUInteger)releaseVersionNumber;
171- (void)getVersionMajor:(
unsigned *)outMajor minor:(
unsigned *)outMinor release:(
unsigned *)outRelease;
172- (BOOL) versionIsAtLeastMajor:(
unsigned)maj minor:(
unsigned)min;
174- (NSString *) vendorString;
175- (NSString *) rendererString;
178- (BOOL) usePointSmoothing;
179- (BOOL) useLineSmoothing;
182- (BOOL) useDustShader;
201extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
202extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
203extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
204extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
205extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
206extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
207extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
208extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
209extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
210extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
211extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
212extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
213extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
214extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
215extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
216extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
217extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
218extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
219extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
220extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
221extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
222extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
226#if OO_SHADERS || OO_MULTITEXTURE
232#define glActiveTextureARB glActiveTextureARBPtr
233extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
238#define glClientActiveTextureARB glClientActiveTextureARBPtr
239extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
243extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
244extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
245extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
246extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
250extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
251extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
252extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
253extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
254extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
255extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
256extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
257extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
258extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
259extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
260extern PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
261extern PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
262extern PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
263extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
264extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
265extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
266extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
267extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
268extern PFNGLGENBUFFERSPROC glGenBuffers;
269extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
270extern PFNGLBINDBUFFERPROC glBindBuffer;
271extern PFNGLBUFFERDATAPROC glBufferData;
272extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
273extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
274extern PFNGLUSEPROGRAMPROC glUseProgram;
275extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
276extern PFNGLUNIFORM1IPROC glUniform1i;
278#define glActiveTexture glActiveTexturePtr
279extern PFNGLACTIVETEXTUREPROC glActiveTexture;
280extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
281extern PFNGLUNIFORM1FPROC glUniform1f;
282extern PFNGLUNIFORM2FVPROC glUniform2fv;
283extern PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
284extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
285extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
286extern PFNGLDELETEBUFFERSPROC glDeleteBuffers;
287extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
288extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
289extern PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
290extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
291extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
292extern PFNGLCLAMPCOLORPROC glClampColor;
OOINLINE BOOL OOShadersSupported(void) INLINE_PURE_FUNC
BOOL textureCombinersSupported()
OOShaderSetting defaultShaderSetting
OOOpenGLExtensionManager * sharedManager()
GLint textureImageUnitCount
BOOL shadersForceDisabled
OOShaderSetting maximumShaderSetting