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
154- (BOOL)haveExtension:(NSString *)extension;
156- (BOOL)shadersSupported;
159- (GLint)textureImageUnitCount;
163- (BOOL)textureCombinersSupported;
164- (GLint)textureUnitCount;
166- (NSUInteger)majorVersionNumber;
167- (NSUInteger)minorVersionNumber;
168- (NSUInteger)releaseVersionNumber;
169- (void)getVersionMajor:(
unsigned *)outMajor minor:(
unsigned *)outMinor release:(
unsigned *)outRelease;
170- (BOOL) versionIsAtLeastMajor:(
unsigned)maj minor:(
unsigned)min;
172- (NSString *) vendorString;
173- (NSString *) rendererString;
176- (BOOL) usePointSmoothing;
177- (BOOL) useLineSmoothing;
180- (BOOL) useDustShader;
199PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
200PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
201PFNGLUNIFORM1IARBPROC glUniform1iARB;
202PFNGLUNIFORM1FARBPROC glUniform1fARB;
203PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
204PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
205PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
206PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
207PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
208PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
209PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
210PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
211PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
212PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
213PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
214PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
215PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
216PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
217PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
218PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
219PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
220PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
224#if OO_SHADERS || OO_MULTITEXTURE
225PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
229PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
233PFNGLGENBUFFERSARBPROC glGenBuffersARB;
234PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
235PFNGLBINDBUFFERARBPROC glBindBufferARB;
236PFNGLBUFFERDATAARBPROC glBufferDataARB;
240PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
241PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
242PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
243PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
244PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
245PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
246PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
247PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
248PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
249PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
250PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
251PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
252PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
253PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
254PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
255PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
256PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
257PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
258PFNGLGENBUFFERSPROC glGenBuffers;
259PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
260PFNGLBINDBUFFERPROC glBindBuffer;
261PFNGLBUFFERDATAPROC glBufferData;
262PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
263PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
264PFNGLUSEPROGRAMPROC glUseProgram;
265PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
266PFNGLUNIFORM1IPROC glUniform1i;
267PFNGLACTIVETEXTUREPROC glActiveTexture;
268PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
269PFNGLUNIFORM1FPROC glUniform1f;
270PFNGLUNIFORM2FVPROC glUniform2fv;
271PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
272PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
273PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
274PFNGLDELETEBUFFERSPROC glDeleteBuffers;
275PFNGLDRAWBUFFERSPROC glDrawBuffers;
276PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
277PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
278PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
279PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
280PFNGLCLAMPCOLORPROC glClampColor;
OOINLINE BOOL OOShadersSupported(void) INLINE_PURE_FUNC
BOOL textureCombinersSupported()
OOShaderSetting defaultShaderSetting
OOOpenGLExtensionManager * sharedManager()
GLint textureImageUnitCount
OOShaderSetting maximumShaderSetting