1 #include "gldefs.h"
2 
3 // FBO
4 PFNGLISRENDERBUFFEREXTPROC                       my_glIsRenderBuffer;
5 PFNGLBINDRENDERBUFFEREXTPROC                     my_glBindRenderbuffer;
6 PFNGLDELETERENDERBUFFERSEXTPROC                  my_glDeleteRenderbuffers;
7 PFNGLGENRENDERBUFFERSEXTPROC                     my_glGenRenderbuffers;
8 PFNGLRENDERBUFFERSTORAGEEXTPROC                  my_glRenderbufferStorage;
9 PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC           my_glGetRenderbufferParameteriv;
10 PFNGLISFRAMEBUFFEREXTPROC                        my_glIsFramebuffer;
11 PFNGLBINDFRAMEBUFFEREXTPROC                      my_glBindFramebuffer;
12 PFNGLDELETEFRAMEBUFFERSEXTPROC                   my_glDeleteFramebuffers;
13 PFNGLGENFRAMEBUFFERSEXTPROC                      my_glGenFramebuffers;
14 PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC               my_glCheckFramebufferStatus;
15 PFNGLFRAMEBUFFERTEXTURE1DEXTPROC                 my_glFramebufferTexture1D;
16 PFNGLFRAMEBUFFERTEXTURE2DEXTPROC                 my_glFramebufferTexture2D;
17 PFNGLFRAMEBUFFERTEXTURE3DEXTPROC                 my_glFramebufferTexture3D;
18 PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC              my_glFramebufferRenderbuffer;
19 PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC  my_glGetFramebufferAttachmentParameteriv;
20 PFNGLGENERATEMIPMAPEXTPROC                       my_glGenerateMipmap;
21 PFNGLBLITFRAMEBUFFEREXTPROC                      my_glBlitFramebuffer;
22 PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC       my_glRenderbufferStorageMultisample;
23 
24 // shaders
25 
26 PFNGLATTACHSHADERPROC	my_glAttachShader;
27 PFNGLBINDATTRIBLOCATIONPROC	my_glBindAttribLocation;
28 PFNGLCOMPILESHADERPROC	my_glCompileShader;
29 PFNGLCREATEPROGRAMPROC	my_glCreateProgram;
30 PFNGLCREATESHADERPROC	my_glCreateShader;
31 PFNGLDELETEPROGRAMPROC	my_glDeleteProgram;
32 PFNGLDELETESHADERPROC	my_glDeleteShader;
33 PFNGLDETACHSHADERPROC	my_glDetachShader;
34 PFNGLDISABLEVERTEXATTRIBARRAYPROC	my_glDisableVertexAttribArray;
35 PFNGLENABLEVERTEXATTRIBARRAYPROC	my_glEnableVertexAttribArray;
36 PFNGLGETACTIVEATTRIBPROC	my_glGetActiveAttrib;
37 PFNGLGETACTIVEUNIFORMPROC	my_glGetActiveUniform;
38 PFNGLGETATTACHEDSHADERSPROC	my_glGetAttachedShaders;
39 PFNGLGETATTRIBLOCATIONPROC	my_glGetAttribLocation;
40 PFNGLGETPROGRAMIVPROC	my_glGetProgramiv;
41 PFNGLGETPROGRAMINFOLOGPROC	my_glGetProgramInfoLog;
42 PFNGLGETSHADERIVPROC	my_glGetShaderiv;
43 PFNGLGETSHADERINFOLOGPROC	my_glGetShaderInfoLog;
44 PFNGLGETSHADERSOURCEPROC	my_glGetShaderSource;
45 PFNGLGETUNIFORMLOCATIONPROC	my_glGetUniformLocation;
46 PFNGLGETUNIFORMFVPROC	my_glGetUniformfv;
47 PFNGLGETUNIFORMIVPROC	my_glGetUniformiv;
48 PFNGLGETVERTEXATTRIBDVPROC	my_glGetVertexAttribdv;
49 PFNGLGETVERTEXATTRIBFVPROC	my_glGetVertexAttribfv;
50 PFNGLGETVERTEXATTRIBIVPROC	my_glGetVertexAttribiv;
51 PFNGLGETVERTEXATTRIBPOINTERVPROC	my_glGetVertexAttribPointerv;
52 PFNGLISPROGRAMPROC	my_glIsProgram;
53 PFNGLISSHADERPROC	my_glIsShader;
54 PFNGLLINKPROGRAMPROC	my_glLinkProgram;
55 PFNGLSHADERSOURCEPROC	my_glShaderSource;
56 PFNGLUSEPROGRAMPROC	my_glUseProgram;
57 PFNGLUNIFORM1FPROC	my_glUniform1f;
58 PFNGLUNIFORM2FPROC	my_glUniform2f;
59 PFNGLUNIFORM3FPROC	my_glUniform3f;
60 PFNGLUNIFORM4FPROC	my_glUniform4f;
61 PFNGLUNIFORM1IPROC	my_glUniform1i;
62 PFNGLUNIFORM2IPROC	my_glUniform2i;
63 PFNGLUNIFORM3IPROC	my_glUniform3i;
64 PFNGLUNIFORM4IPROC	my_glUniform4i;
65 PFNGLUNIFORM1FVPROC	my_glUniform1fv;
66 PFNGLUNIFORM2FVPROC	my_glUniform2fv;
67 PFNGLUNIFORM3FVPROC	my_glUniform3fv;
68 PFNGLUNIFORM4FVPROC	my_glUniform4fv;
69 PFNGLUNIFORM1IVPROC	my_glUniform1iv;
70 PFNGLUNIFORM2IVPROC	my_glUniform2iv;
71 PFNGLUNIFORM3IVPROC	my_glUniform3iv;
72 PFNGLUNIFORM4IVPROC	my_glUniform4iv;
73 PFNGLUNIFORMMATRIX2FVPROC	my_glUniformMatrix2fv;
74 PFNGLUNIFORMMATRIX3FVPROC	my_glUniformMatrix3fv;
75 PFNGLUNIFORMMATRIX4FVPROC	my_glUniformMatrix4fv;
76 PFNGLVALIDATEPROGRAMPROC	my_glValidateProgram;
77 PFNGLVERTEXATTRIB1DPROC	my_glVertexAttrib1d;
78 PFNGLVERTEXATTRIB1DVPROC	my_glVertexAttrib1dv;
79 PFNGLVERTEXATTRIB1FPROC	my_glVertexAttrib1f;
80 PFNGLVERTEXATTRIB1FVPROC	my_glVertexAttrib1fv;
81 PFNGLVERTEXATTRIB1SPROC	my_glVertexAttrib1s;
82 PFNGLVERTEXATTRIB1SVPROC	my_glVertexAttrib1sv;
83 PFNGLVERTEXATTRIB2DPROC	my_glVertexAttrib2d;
84 PFNGLVERTEXATTRIB2DVPROC	my_glVertexAttrib2dv;
85 PFNGLVERTEXATTRIB2FPROC	my_glVertexAttrib2f;
86 PFNGLVERTEXATTRIB2FVPROC	my_glVertexAttrib2fv;
87 PFNGLVERTEXATTRIB2SPROC	my_glVertexAttrib2s;
88 PFNGLVERTEXATTRIB2SVPROC	my_glVertexAttrib2sv;
89 PFNGLVERTEXATTRIB3DPROC	my_glVertexAttrib3d;
90 PFNGLVERTEXATTRIB3DVPROC	my_glVertexAttrib3dv;
91 PFNGLVERTEXATTRIB3FPROC	my_glVertexAttrib3f;
92 PFNGLVERTEXATTRIB3FVPROC	my_glVertexAttrib3fv;
93 PFNGLVERTEXATTRIB3SPROC	my_glVertexAttrib3s;
94 PFNGLVERTEXATTRIB3SVPROC	my_glVertexAttrib3sv;
95 PFNGLVERTEXATTRIB4NBVPROC	my_glVertexAttrib4Nbv;
96 PFNGLVERTEXATTRIB4NIVPROC	my_glVertexAttrib4Niv;
97 PFNGLVERTEXATTRIB4NSVPROC	my_glVertexAttrib4Nsv;
98 PFNGLVERTEXATTRIB4NUBPROC	my_glVertexAttrib4Nub;
99 PFNGLVERTEXATTRIB4NUBVPROC	my_glVertexAttrib4Nubv;
100 PFNGLVERTEXATTRIB4NUIVPROC	my_glVertexAttrib4Nuiv;
101 PFNGLVERTEXATTRIB4NUSVPROC	my_glVertexAttrib4Nusv;
102 PFNGLVERTEXATTRIB4BVPROC	my_glVertexAttrib4bv;
103 PFNGLVERTEXATTRIB4DPROC	my_glVertexAttrib4d;
104 PFNGLVERTEXATTRIB4DVPROC	my_glVertexAttrib4dv;
105 PFNGLVERTEXATTRIB4FPROC	my_glVertexAttrib4f;
106 PFNGLVERTEXATTRIB4FVPROC	my_glVertexAttrib4fv;
107 PFNGLVERTEXATTRIB4IVPROC	my_glVertexAttrib4iv;
108 PFNGLVERTEXATTRIB4SPROC	my_glVertexAttrib4s;
109 PFNGLVERTEXATTRIB4SVPROC	my_glVertexAttrib4sv;
110 PFNGLVERTEXATTRIB4UBVPROC	my_glVertexAttrib4ubv;
111 PFNGLVERTEXATTRIB4UIVPROC	my_glVertexAttrib4uiv;
112 PFNGLVERTEXATTRIB4USVPROC	my_glVertexAttrib4usv;
113 PFNGLVERTEXATTRIBPOINTERPROC	my_glVertexAttribPointer;
114 
115 // VBO
116 PFNGLBINDBUFFERPROC	my_glBindBuffer;
117 PFNGLDELETEBUFFERSPROC	my_glDeleteBuffers;
118 PFNGLGENBUFFERSPROC	my_glGenBuffers;
119 PFNGLISBUFFERPROC	my_glIsBuffer;
120 PFNGLBUFFERDATAPROC	my_glBufferData;
121 PFNGLBUFFERSUBDATAPROC	my_glBufferSubData;
122 PFNGLGETBUFFERSUBDATAPROC	my_glGetBufferSubData;
123 PFNGLMAPBUFFERPROC	my_glMapBuffer;
124 PFNGLUNMAPBUFFERPROC	my_glUnmapBuffer;
125 PFNGLGETBUFFERPARAMETERIVPROC	my_glGetBufferParameteriv;
126 PFNGLGETBUFFERPOINTERVPROC	my_glGetBufferPointerv;
127 
128 #include <stdio.h>
129 
load_exts_entry_points(void)130 void load_exts_entry_points(void)
131 {
132   // commented-out functions aren't used in the app and even the entry points are eliminated during compilation (so no size increase)
133 
134 	// FBO (GL 3.0 or EXT_framebuffer_objects)
135   my_glIsRenderBuffer = (PFNGLISRENDERBUFFEREXTPROC)(glfwGetProcAddress("glIsRenderBufferEXT"));
136   my_glBindRenderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC)(glfwGetProcAddress("glBindRenderbufferEXT"));
137   my_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC)(glfwGetProcAddress("glDeleteRenderbuffersEXT"));
138   my_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC)(glfwGetProcAddress("glGenRenderbuffersEXT"));
139   my_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEEXTPROC)(glfwGetProcAddress("glRenderbufferStorageEXT"));
140   my_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(glfwGetProcAddress("glGetRenderbufferParameterivEXT"));
141   my_glIsFramebuffer = (PFNGLISFRAMEBUFFEREXTPROC)(glfwGetProcAddress("glIsFramebufferEXT"));
142   my_glBindFramebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC)(glfwGetProcAddress("glBindFramebufferEXT"));
143   my_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC)(glfwGetProcAddress("glDeleteFramebuffersEXT"));
144   my_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC)(glfwGetProcAddress("glGenFramebuffersEXT"));
145   my_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(glfwGetProcAddress("glCheckFramebufferStatusEXT"));
146   my_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(glfwGetProcAddress("glFramebufferTexture1DEXT"));
147   my_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(glfwGetProcAddress("glFramebufferTexture2DEXT"));
148   my_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(glfwGetProcAddress("glFramebufferTexture3DEXT"));
149   my_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(glfwGetProcAddress("glFramebufferRenderbufferEXT"));
150   my_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(glfwGetProcAddress("glGetFramebufferAttachmentParameterivEXT"));
151   my_glGenerateMipmap = (PFNGLGENERATEMIPMAPEXTPROC)(glfwGetProcAddress("glGenerateMipmapEXT"));
152   my_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFEREXTPROC)(glfwGetProcAddress("glBlitFramebufferEXT"));
153   my_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(glfwGetProcAddress("glRenderbufferStorageMultisampleEXT"));
154 
155 	// shaders (GL 2.0 or ARB_shader_objects + ARB_vertex_shader + ARB_fragment_shader + ARB_shading_language_100)
156   my_glAttachShader = (PFNGLATTACHSHADERPROC)(glfwGetProcAddress("glAttachObjectARB"));
157   my_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)(glfwGetProcAddress("glBindAttribLocationARB"));
158   my_glCompileShader = (PFNGLCOMPILESHADERPROC)(glfwGetProcAddress("glCompileShaderARB"));
159   my_glCreateProgram = (PFNGLCREATEPROGRAMPROC)(glfwGetProcAddress("glCreateProgramObjectARB"));
160   my_glCreateShader = (PFNGLCREATESHADERPROC)(glfwGetProcAddress("glCreateShaderObjectARB"));
161   my_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)(glfwGetProcAddress("glDeleteObjectARB"));
162   my_glDeleteShader = (PFNGLDELETESHADERPROC)(glfwGetProcAddress("glDeleteObjectARB"));
163   my_glDetachShader = (PFNGLDETACHSHADERPROC)(glfwGetProcAddress("glDetachObjectARB"));
164   my_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)(glfwGetProcAddress("glDisableVertexAttribArrayARB"));
165   my_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)(glfwGetProcAddress("glEnableVertexAttribArrayARB"));
166   my_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)(glfwGetProcAddress("glGetActiveAttribARB"));
167   my_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)(glfwGetProcAddress("glGetActiveUniformARB"));
168   my_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)(glfwGetProcAddress("glGetAttachedObjectsARB"));
169   my_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)(glfwGetProcAddress("glGetAttribLocationARB"));
170   my_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)(glfwGetProcAddress("glGetObjectParameterivARB"));
171   my_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)(glfwGetProcAddress("glGetInfoLogARB"));
172   my_glGetShaderiv = (PFNGLGETSHADERIVPROC)(glfwGetProcAddress("glGetObjectParameterivARB"));
173   my_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)(glfwGetProcAddress("glGetInfoLogARB"));
174   my_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)(glfwGetProcAddress("glGetShaderSourceARB"));
175   my_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)(glfwGetProcAddress("glGetUniformLocationARB"));
176   my_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)(glfwGetProcAddress("glGetUniformfvARB"));
177   my_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)(glfwGetProcAddress("glGetUniformivARB"));
178   my_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)(glfwGetProcAddress("glGetVertexAttribdvARB"));
179   my_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)(glfwGetProcAddress("glGetVertexAttribfvARB"));
180   my_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)(glfwGetProcAddress("glGetVertexAttribivARB"));
181   my_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)(glfwGetProcAddress("glGetVertexAttribPointervARB"));
182   //my_glIsProgram = (PFNGLISPROGRAMPROC)(glfwGetProcAddress("glIsProgram"));
183   //my_glIsShader = (PFNGLISSHADERPROC)(glfwGetProcAddress("glIsShader"));
184   my_glLinkProgram = (PFNGLLINKPROGRAMPROC)(glfwGetProcAddress("glLinkProgramARB"));
185   my_glShaderSource = (PFNGLSHADERSOURCEPROC)(glfwGetProcAddress("glShaderSourceARB"));
186   my_glUseProgram = (PFNGLUSEPROGRAMPROC)(glfwGetProcAddress("glUseProgramObjectARB"));
187   my_glUniform1f = (PFNGLUNIFORM1FPROC)(glfwGetProcAddress("glUniform1fARB"));
188   my_glUniform2f = (PFNGLUNIFORM2FPROC)(glfwGetProcAddress("glUniform2fARB"));
189   my_glUniform3f = (PFNGLUNIFORM3FPROC)(glfwGetProcAddress("glUniform3fARB"));
190   my_glUniform4f = (PFNGLUNIFORM4FPROC)(glfwGetProcAddress("glUniform4fARB"));
191   my_glUniform1i = (PFNGLUNIFORM1IPROC)(glfwGetProcAddress("glUniform1iARB"));
192   my_glUniform2i = (PFNGLUNIFORM2IPROC)(glfwGetProcAddress("glUniform2iARB"));
193   my_glUniform3i = (PFNGLUNIFORM3IPROC)(glfwGetProcAddress("glUniform3iARB"));
194   my_glUniform4i = (PFNGLUNIFORM4IPROC)(glfwGetProcAddress("glUniform4iARB"));
195   my_glUniform1fv = (PFNGLUNIFORM1FVPROC)(glfwGetProcAddress("glUniform1fvARB"));
196   my_glUniform2fv = (PFNGLUNIFORM2FVPROC)(glfwGetProcAddress("glUniform2fvARB"));
197   my_glUniform3fv = (PFNGLUNIFORM3FVPROC)(glfwGetProcAddress("glUniform3fvARB"));
198   my_glUniform4fv = (PFNGLUNIFORM4FVPROC)(glfwGetProcAddress("glUniform4fvARB"));
199   my_glUniform1iv = (PFNGLUNIFORM1IVPROC)(glfwGetProcAddress("glUniform1ivARB"));
200   my_glUniform2iv = (PFNGLUNIFORM2IVPROC)(glfwGetProcAddress("glUniform2ivARB"));
201   my_glUniform3iv = (PFNGLUNIFORM3IVPROC)(glfwGetProcAddress("glUniform3ivARB"));
202   my_glUniform4iv = (PFNGLUNIFORM4IVPROC)(glfwGetProcAddress("glUniform4ivARB"));
203   my_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)(glfwGetProcAddress("glUniformMatrix2fvARB"));
204   my_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)(glfwGetProcAddress("glUniformMatrix3fvARB"));
205   my_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)(glfwGetProcAddress("glUniformMatrix4fvARB"));
206   my_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)(glfwGetProcAddress("glValidateProgramARB"));
207   //my_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)(glfwGetProcAddress("glVertexAttrib1dARB"));
208   //my_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)(glfwGetProcAddress("glVertexAttrib1dvARB"));
209   //my_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)(glfwGetProcAddress("glVertexAttrib1fARB"));
210   //my_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)(glfwGetProcAddress("glVertexAttrib1fvARB"));
211   //my_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)(glfwGetProcAddress("glVertexAttrib1sARB"));
212   //my_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)(glfwGetProcAddress("glVertexAttrib1svARB"));
213   //my_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)(glfwGetProcAddress("glVertexAttrib2dARB"));
214   //my_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)(glfwGetProcAddress("glVertexAttrib2dvARB"));
215   //my_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)(glfwGetProcAddress("glVertexAttrib2fARB"));
216   //my_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)(glfwGetProcAddress("glVertexAttrib2fvARB"));
217   //my_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)(glfwGetProcAddress("glVertexAttrib2sARB"));
218   //my_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)(glfwGetProcAddress("glVertexAttrib2svARB"));
219   //my_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)(glfwGetProcAddress("glVertexAttrib3dARB"));
220   //my_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)(glfwGetProcAddress("glVertexAttrib3dvARB"));
221   //my_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)(glfwGetProcAddress("glVertexAttrib3fARB"));
222   //my_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)(glfwGetProcAddress("glVertexAttrib3fvARB"));
223   //my_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)(glfwGetProcAddress("glVertexAttrib3sARB"));
224   //my_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)(glfwGetProcAddress("glVertexAttrib3svARB"));
225   //my_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)(glfwGetProcAddress("glVertexAttrib4NbvARB"));
226   //my_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)(glfwGetProcAddress("glVertexAttrib4NivARB"));
227   //my_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)(glfwGetProcAddress("glVertexAttrib4NsvARB"));
228 //  my_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)(glfwGetProcAddress("glVertexAttrib4NubARB"));
229   //my_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)(glfwGetProcAddress("glVertexAttrib4NubvARB"));
230   //my_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)(glfwGetProcAddress("glVertexAttrib4NuivARB"));
231   //my_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)(glfwGetProcAddress("glVertexAttrib4NusvARB"));
232   //my_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)(glfwGetProcAddress("glVertexAttrib4bvARB"));
233   //my_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)(glfwGetProcAddress("glVertexAttrib4dARB"));
234   //my_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)(glfwGetProcAddress("glVertexAttrib4dvARB"));
235   //my_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)(glfwGetProcAddress("glVertexAttrib4fARB"));
236   //my_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)(glfwGetProcAddress("glVertexAttrib4fvARB"));
237   //my_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)(glfwGetProcAddress("glVertexAttrib4ivARB"));
238   //my_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)(glfwGetProcAddress("glVertexAttrib4sARB"));
239   //my_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)(glfwGetProcAddress("glVertexAttrib4svARB"));
240   //my_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)(glfwGetProcAddress("glVertexAttrib4ubvARB"));
241   //my_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)(glfwGetProcAddress("glVertexAttrib4uivARB"));
242   //my_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)(glfwGetProcAddress("glVertexAttrib4usvARB"));
243   my_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)(glfwGetProcAddress("glVertexAttribPointerARB"));
244 
245 	// VBO (GL 1.5 or GL_ARB_vertex_buffer_object)
246   my_glBindBuffer = (PFNGLBINDBUFFERPROC)(glfwGetProcAddress("glBindBufferARB"));
247   my_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)(glfwGetProcAddress("glDeleteBuffersARB"));
248   my_glGenBuffers = (PFNGLGENBUFFERSPROC)(glfwGetProcAddress("glGenBuffersARB"));
249   my_glIsBuffer = (PFNGLISBUFFERPROC)(glfwGetProcAddress("glIsBufferARB"));
250   my_glBufferData = (PFNGLBUFFERDATAPROC)(glfwGetProcAddress("glBufferDataARB"));
251   my_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)(glfwGetProcAddress("glBufferSubDataARB"));
252   my_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)(glfwGetProcAddress("glGetBufferSubDataARB"));
253   my_glMapBuffer = (PFNGLMAPBUFFERPROC)(glfwGetProcAddress("glMapBufferARB"));
254   my_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)(glfwGetProcAddress("glUnmapBufferARB"));
255   my_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)(glfwGetProcAddress("glGetBufferParameterivARB"));
256   my_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)(glfwGetProcAddress("glGetBufferPointervARB"));
257 }
258