2 This file is part of the 3dengfx, realtime visualization system.
3 Copyright (C) 2004, 2005 John Tsiombikas <nuclear@siggraph.org>
5 3dengfx is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 3dengfx is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with 3dengfx; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #if defined(WIN32) || defined(__WIN32__)
24 #define WIN32_LEAN_AND_MEAN 1
30 #ifdef GL_ARB_transpose_matrix
31 #undef GL_ARB_transpose_matrix
34 #ifdef GL_ARB_multitexture
35 #undef GL_ARB_multitexture
38 #ifdef GL_ARB_vertex_array_object
39 #undef GL_ARB_vertex_array_object
42 #ifdef GL_ARB_fragment_program
43 #undef GL_ARB_fragment_program
46 #ifdef GL_ARB_vertex_program
47 #undef GL_ARB_vertex_program
50 #ifdef GL_ARB_point_parameters
51 #undef GL_ARB_point_parameters
54 #ifdef GL_ARB_shader_objects
55 #undef GL_ARB_shader_objects
58 #include "sgi_glext.h"
61 #ifdef GL_ARB_transpose_matrix
62 #ifdef SINGLE_PRECISION_MATH
63 extern PFNGLLOADTRANSPOSEMATRIXFARBPROC glLoadTransposeMatrix;
65 extern PFNGLLOADTRANSPOSEMATRIXDARBPROC glLoadTransposeMatrix;
66 #endif /* SINGLE_PRECISION_MATH */
67 #endif /* GL_ARB_transpose_matrix */
69 #ifdef GL_ARB_multitexture
70 extern PFNGLACTIVETEXTUREARBPROC glActiveTexture;
71 extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTexture;
72 #endif /* GL_ARB_multitexture */
74 #ifdef GL_ARB_vertex_buffer_object
75 extern PFNGLBINDBUFFERARBPROC glBindBuffer;
76 extern PFNGLBUFFERDATAARBPROC glBufferData;
77 extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffers;
78 extern PFNGLISBUFFERARBPROC glIsBuffer;
79 extern PFNGLMAPBUFFERARBPROC glMapBuffer;
80 extern PFNGLUNMAPBUFFERARBPROC glUnmapBuffer;
81 extern PFNGLGENBUFFERSARBPROC glGenBuffers;
82 #endif /* GL_ARB_vertex_buffer_object */
84 /* fragment/vertex program extensions */
85 #ifdef GL_ARB_vertex_program
86 extern PFNGLBINDPROGRAMARBPROC glBindProgram;
87 extern PFNGLGENPROGRAMSARBPROC glGenPrograms;
88 extern PFNGLDELETEPROGRAMSARBPROC glDeletePrograms;
89 extern PFNGLPROGRAMSTRINGARBPROC glProgramString;
90 #endif /* GL_ARB_vertex_program */
92 #ifdef GL_ARB_point_parameters
93 extern PFNGLPOINTPARAMETERFARBPROC glPointParameterf;
94 extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfv;
95 #endif /* GL_ARB_point_parameters */
97 /* --- OpenGL 2.0 Shading Language --- */
99 #ifdef GL_ARB_shader_objects
100 extern PFNGLDELETEOBJECTARBPROC glDeleteObject;
101 extern PFNGLATTACHOBJECTARBPROC glAttachObject;
102 extern PFNGLDETACHOBJECTARBPROC glDetachObject;
103 extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameteriv;
104 extern PFNGLGETINFOLOGARBPROC glGetInfoLog;
106 extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObject;
107 extern PFNGLLINKPROGRAMARBPROC glLinkProgram;
108 extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObject;
110 extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObject;
111 extern PFNGLSHADERSOURCEARBPROC glShaderSource;
112 extern PFNGLCOMPILESHADERARBPROC glCompileShader;
114 extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocation;
115 extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniform;
116 extern PFNGLUNIFORM1IARBPROC glUniform1i;
117 extern PFNGLUNIFORM1FARBPROC glUniform1f;
118 extern PFNGLUNIFORM2FARBPROC glUniform2f;
119 extern PFNGLUNIFORM3FARBPROC glUniform3f;
120 extern PFNGLUNIFORM4FARBPROC glUniform4f;
121 extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fv;
122 extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fv;
123 #endif /* GL_ARB_shader_objects */
127 #endif /* _OPENGL_H_ */