1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de>
6 // Copyright (C) 2013-2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
8 // This program is free software: you can redistribute it and/or modify
9 // it under the terms of the GNU Affero General Public License as
10 // published by the Free Software Foundation, either version 3 of the
11 // License, or (at your option) any later version.
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU Affero General Public License for more details.
18 // You should have received a copy of the GNU Affero General Public License
19 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef NL_OPENGL_EXTENSION_H
22 #define NL_OPENGL_EXTENSION_H
25 #include "nel/misc/types_nl.h"
26 #include "nel/misc/string_common.h"
28 #include "driver_opengl_extension_def.h"
34 namespace NLDRIVERGLES
{
36 namespace NLDRIVERGL
{
40 // ***************************************************************************
41 /// The extensions used by NL3D.
44 // Is this driver a correct OpenGL 1.2 driver?
47 // Required Extensions.
50 bool EXTTextureEnvCombine
;
52 // Optional Extensions.
53 // NB: Fence extension is not here, because NVVertexArrayRange is false if GL_NV_fence is not here.
54 bool NVVertexArrayRange
;
55 uint NVVertexArrayRangeMaxVertex
;
56 bool EXTTextureCompressionS3TC
;
57 bool EXTVertexWeighting
;
58 bool EXTSeparateSpecularColor
;
59 bool NVTextureEnvCombine4
;
60 bool ARBTextureCubeMap
;
64 bool NVOcclusionQuery
;
65 bool ARBOcclusionQuery
;
66 bool NVTextureRectangle
;
67 bool EXTTextureRectangle
;
68 bool ARBTextureRectangle
;
69 bool FrameBufferObject
;
71 bool FrameBufferMultisample
;
72 bool PackedDepthStencil
;
73 bool EXTTextureFilterAnisotropic
;
74 float EXTTextureFilterAnisotropicMaximum
;
76 // true if NVVertexProgram and if we know that VP is emulated
77 bool NVVertexProgramEmulated
;
78 bool EXTSecondaryColor
;
80 // NVVertexArrayRange2.
81 bool NVVertexArrayRange2
;
82 // equal to GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV if possible, or GL_VERTEX_ARRAY_RANGE_NV
83 uint NVStateVARWithoutFlush
;
85 // WGL ARB extensions, true if supported
87 bool WGLARBPixelFormat
;
88 bool WGLEXTSwapControl
;
90 // GLX extensions, true if supported
91 bool GLXEXTSwapControl
;
92 bool GLXSGISwapControl
;
93 bool GLXMESASwapControl
;
94 bool GLXMESAQueryRenderer
;
97 bool ATIVertexArrayObject
;
98 bool ATIMapObjectBuffer
;
99 bool ATITextureEnvCombine3
;
100 bool ATIEnvMapBumpMap
;
101 bool ATIFragmentShader
;
102 bool ATIXTextureEnvRoute
;
103 bool ATIVertexAttribArrayObject
;
105 bool ARBTextureCompression
;
106 bool ARBFragmentProgram
;
107 bool ARBVertexBufferObject
;
108 bool ARBMapBufferRange
;
109 bool ARBVertexProgram
;
110 bool ARBTextureNonPowerOfTwo
;
112 bool ARBFragmentShader
;
115 bool NVFragmentProgram2
;
120 // extensions to get memory info
122 // GL_NVX_gpu_memory_info
123 bool NVXGPUMemoryInfo
;
128 // WGL_AMD_gpu_association
129 bool WGLAMDGPUAssociation
;
131 // WGL_NV_gpu_affinity
132 bool WGLNVGPUAffinity
;
136 /// \name Disable Hardware feature. False by default. setuped by IDriver
138 bool DisableHardwareVertexProgram
;
139 bool DisableHardwarePixelProgram
;
140 bool DisableHardwareVertexArrayAGP
;
141 bool DisableHardwareTextureShader
;
147 // Fill all false by default.
149 ARBMultiTexture
= false;
151 EXTTextureEnvCombine
= false;
152 ARBTextureCompression
= false;
153 NVVertexArrayRange
= false;
154 NVVertexArrayRangeMaxVertex
= 0;
155 EXTTextureCompressionS3TC
= false;
156 EXTVertexWeighting
= false;
157 EXTSeparateSpecularColor
= false;
158 NVTextureEnvCombine4
= false;
159 ATITextureEnvCombine3
= false;
160 ATIXTextureEnvRoute
= false;
161 ARBTextureCubeMap
= false;
162 NVTextureShader
= false;
163 NVVertexProgram
= false;
164 NVVertexProgramEmulated
= false;
165 EXTSecondaryColor
= false;
166 WGLARBPBuffer
= false;
167 WGLARBPixelFormat
= false;
168 WGLEXTSwapControl
= false;
169 GLXEXTSwapControl
= false;
170 GLXSGISwapControl
= false;
171 GLXMESASwapControl
= false;
172 GLXMESAQueryRenderer
= false;
173 EXTBlendColor
= false;
174 ATIVertexArrayObject
= false;
175 ATIEnvMapBumpMap
= false;
176 ATIFragmentShader
= false;
177 ATIMapObjectBuffer
= false;
178 ATIVertexAttribArrayObject
= false;
179 EXTVertexShader
= false;
180 ARBFragmentProgram
= false;
181 ARBVertexBufferObject
= false;
182 ARBMapBufferRange
= false;
183 ARBVertexProgram
= false;
184 NVTextureRectangle
= false;
185 EXTTextureRectangle
= false;
186 EXTTextureFilterAnisotropic
= false;
187 EXTTextureFilterAnisotropicMaximum
= 0.f
;
188 ARBTextureRectangle
= false;
189 ARBTextureNonPowerOfTwo
= false;
190 ARBMultisample
= false;
191 ARBFragmentShader
= false;
192 NVOcclusionQuery
= false;
193 ARBOcclusionQuery
= false;
194 FrameBufferObject
= false;
195 FrameBufferBlit
= false;
196 FrameBufferMultisample
= false;
197 PackedDepthStencil
= false;
198 NVVertexArrayRange2
= false;
199 NVStateVARWithoutFlush
= 0;
201 OESDrawTexture
= false;
202 OESMapBuffer
= false;
204 NVXGPUMemoryInfo
= false;
206 WGLAMDGPUAssociation
= false;
208 /// \name Disable Hardware feature. False by default. setuped by IDriver
209 DisableHardwareVertexProgram
= false;
210 DisableHardwarePixelProgram
= false;
211 DisableHardwareVertexArrayAGP
= false;
212 DisableHardwareTextureShader
= false;
215 std::string
toString()
217 std::string result
= "OpenGL version ";
218 result
+= Version1_2
? "1.2 or above(*)" : "1.1 or below";
219 result
+= "; Available extensions:";
221 result
+= "\n Texturing: ";
222 result
+= ARBMultiTexture
? "ARBMultiTexture " : "";
223 result
+= EXTTextureEnvCombine
? "EXTTextureEnvCombine(*) " : "";
224 result
+= ARBTextureCompression
? "ARBTextureCompression " : "";
225 result
+= EXTTextureCompressionS3TC
? "EXTTextureCompressionS3TC " : "";
226 result
+= NVTextureEnvCombine4
? "NVTextureEnvCombine4 " : "";
227 result
+= ATITextureEnvCombine3
? "ATITextureEnvCombine3 " : "";
228 result
+= ATIXTextureEnvRoute
? "ATITextureEnvRoute " : "";
229 result
+= ARBTextureCubeMap
? "ARBTextureCubeMap " : "";
230 result
+= ATIEnvMapBumpMap
? "ATIEnvMapBumpMap " : "";
231 result
+= NVTextureRectangle
? "NVTextureRectangle " : "";
232 result
+= EXTTextureRectangle
? "EXTTextureRectangle " : "";
233 result
+= ARBTextureRectangle
? "ARBTextureRectangle " : "";
234 result
+= EXTTextureFilterAnisotropic
? "EXTTextureFilterAnisotropic (Maximum = " + NLMISC::toString(EXTTextureFilterAnisotropicMaximum
) + ") " : "";
235 result
+= ARBTextureNonPowerOfTwo
? "ARBTextureNonPowerOfTwo " : "";
236 result
+= "texture stages(*) = ";
237 result
+= NLMISC::toString(NbTextureStages
);
239 result
+= "\n Programs: ";
240 result
+= NVTextureShader
? "NVTextureShader " : "";
241 result
+= ATIFragmentShader
? "ATIFragmentShader " : "";
242 result
+= ARBFragmentProgram
? "ARBFragmentProgram " : "";
243 result
+= NVFragmentProgram2
? "NVFragmentProgram2 " : "";
244 result
+= ARBVertexProgram
? "ARBVertexProgram " : "";
245 result
+= NVVertexProgram
? "NVVertexProgram " : "";
246 result
+= EXTVertexShader
? "EXTVertexShader " : "";
247 result
+= NVVertexProgramEmulated
? "NVVertexProgramEmulated " : "";
249 result
+= "\n Misc: ";
250 result
+= EXTVertexWeighting
? "EXTVertexWeighting " : "";
251 result
+= EXTSeparateSpecularColor
? "EXTSeparateSpecularColor " : "";
252 result
+= EXTSecondaryColor
? "EXTSecondaryColor " : "";
253 result
+= EXTBlendColor
? "EXTBlendColor " : "";
254 result
+= NVOcclusionQuery
? "NVOcclusionQuery " : "";
255 result
+= ARBOcclusionQuery
? "ARBOcclusionQuery " : "";
256 result
+= NVStateVARWithoutFlush
? "NVStateVARWithoutFlush " : "";
257 result
+= ARBMultisample
? "ARBMultisample " : "";
258 result
+= NVXGPUMemoryInfo
? "NVXGPUMemoryInfo " : "";
259 result
+= ATIMeminfo
? "ATIMeminfo " : "";
262 result
+= "\n WindowsGL: ";
263 result
+= WGLARBPBuffer
? "WGLARBPBuffer " : "";
264 result
+= WGLARBPixelFormat
? "WGLARBPixelFormat " : "";
265 result
+= WGLEXTSwapControl
? "WGLEXTSwapControl " : "";
266 result
+= WGLAMDGPUAssociation
? "WGLAMDGPUAssociation " : "";
267 #elif defined(NL_OS_MAC)
268 #elif defined(NL_OS_UNIX)
269 result
+= "\n GLX: ";
270 result
+= GLXEXTSwapControl
? "GLXEXTSwapControl " : "";
271 result
+= GLXSGISwapControl
? "GLXSGISwapControl " : "";
272 result
+= GLXMESASwapControl
? "GLXMESASwapControl " : "";
273 result
+= GLXMESAQueryRenderer
? "GLXMESAQueryRenderer " : "";
276 result
+= "\n Array/VBO: ";
277 result
+= NVVertexArrayRange
? ("NVVertexArrayRange (MaxVertex = " + NLMISC::toString(NVVertexArrayRangeMaxVertex
) + ") ") : "";
278 result
+= NVVertexArrayRange2
? "NVVertexArrayRange2 " : "";
279 result
+= ATIVertexArrayObject
? "ATIVertexArrayObject " : "";
280 result
+= ATIVertexAttribArrayObject
? "ATIVertexAttribArrayObject " : "";
281 result
+= ARBVertexBufferObject
? "ARBVertexBufferObject " : "";
282 result
+= ARBMapBufferRange
? "ARBMapBufferRange " : "";
283 result
+= ATIMapObjectBuffer
? "ATIMapObjectBuffer " : "";
285 result
+= "\n FBO: ";
286 result
+= FrameBufferObject
? "FramebufferObject " : "";
287 result
+= FrameBufferBlit
? "FrameBufferBlit " : "";
288 result
+= FrameBufferMultisample
? "FrameBufferMultisample " : "";
289 result
+= PackedDepthStencil
? "PackedDepthStencil " : "";
296 // ***************************************************************************
299 /// This function will test and register EGL functions before than the gl context is created
300 bool registerEGlExtensions(CGlExtensions
&ext
, EGLDisplay dpy
);
301 #elif defined(NL_OS_WINDOWS)
302 /// This function will test and register WGL functions before than the gl context is created
303 bool registerWGlExtensions(CGlExtensions
&ext
, HDC hDC
);
304 #elif defined(NL_OS_MAC)
305 #elif defined(NL_OS_UNIX)
306 /// This function will test and register GLX functions before than the gl context is created
307 bool registerGlXExtensions(CGlExtensions
&ext
, Display
*dpy
, sint screen
);
308 #endif // NL_OS_WINDOWS
310 /// This function test and register the extensions for the current GL context.
311 void registerGlExtensions(CGlExtensions
&ext
);
319 // ***************************************************************************
320 // The exported function names
321 /* NB: We named all like nglActiveTextureARB (n for NEL :)
322 to avoid compilation conflict with future version of gl.h
323 eg: gl.h Version 1.2 define glActiveTextureARB so we can't use it.
325 NB: we do it for all (EXT, NV, ARB extension) even it should be useful only for ARB ones.
332 extern PFNGLMAPBUFFEROESPROC nglMapBufferOES
;
333 extern PFNGLUNMAPBUFFEROESPROC nglUnmapBufferOES
;
334 extern PFNGLGETBUFFERPOINTERVOESPROC nglGetBufferPointervOES
;
336 extern PFNGLDRAWTEXFOESPROC nglDrawTexfOES
;
338 // GL_OES_framebuffer_object
339 extern PFNGLISRENDERBUFFEROESPROC nglIsRenderbufferOES
;
340 extern PFNGLBINDRENDERBUFFEROESPROC nglBindRenderbufferOES
;
341 extern PFNGLDELETERENDERBUFFERSOESPROC nglDeleteRenderbuffersOES
;
342 extern PFNGLGENRENDERBUFFERSOESPROC nglGenRenderbuffersOES
;
343 extern PFNGLRENDERBUFFERSTORAGEOESPROC nglRenderbufferStorageOES
;
344 extern PFNGLGETRENDERBUFFERPARAMETERIVOESPROC nglGetRenderbufferParameterivOES
;
345 extern PFNGLISFRAMEBUFFEROESPROC nglIsFramebufferOES
;
346 extern PFNGLBINDFRAMEBUFFEROESPROC nglBindFramebufferOES
;
347 extern PFNGLDELETEFRAMEBUFFERSOESPROC nglDeleteFramebuffersOES
;
348 extern PFNGLGENFRAMEBUFFERSOESPROC nglGenFramebuffersOES
;
349 extern PFNGLCHECKFRAMEBUFFERSTATUSOESPROC nglCheckFramebufferStatusOES
;
350 extern PFNGLFRAMEBUFFERRENDERBUFFEROESPROC nglFramebufferRenderbufferOES
;
351 extern PFNGLFRAMEBUFFERTEXTURE2DOESPROC nglFramebufferTexture2DOES
;
352 extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC nglGetFramebufferAttachmentParameterivOES
;
353 extern PFNGLGENERATEMIPMAPOESPROC nglGenerateMipmapOES
;
355 // GL_OES_texture_cube_map
356 extern PFNGLTEXGENFOESPROC nglTexGenfOES
;
357 extern PFNGLTEXGENFVOESPROC nglTexGenfvOES
;
358 extern PFNGLTEXGENIOESPROC nglTexGeniOES
;
359 extern PFNGLTEXGENIVOESPROC nglTexGenivOES
;
360 extern PFNGLTEXGENXOESPROC nglTexGenxOES
;
361 extern PFNGLTEXGENXVOESPROC nglTexGenxvOES
;
362 extern PFNGLGETTEXGENFVOESPROC nglGetTexGenfvOES
;
363 extern PFNGLGETTEXGENIVOESPROC nglGetTexGenivOES
;
364 extern PFNGLGETTEXGENXVOESPROC nglGetTexGenxvOES
;
370 extern PFNGLACTIVETEXTUREARBPROC nglActiveTextureARB
;
371 extern PFNGLCLIENTACTIVETEXTUREARBPROC nglClientActiveTextureARB
;
373 extern PFNGLMULTITEXCOORD1SARBPROC nglMultiTexCoord1sARB
;
374 extern PFNGLMULTITEXCOORD1IARBPROC nglMultiTexCoord1iARB
;
375 extern PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB
;
376 extern PFNGLMULTITEXCOORD1FARBPROC nglMultiTexCoord1fARB
;
377 extern PFNGLMULTITEXCOORD1DARBPROC nglMultiTexCoord1dARB
;
378 extern PFNGLMULTITEXCOORD2SARBPROC nglMultiTexCoord2sARB
;
379 extern PFNGLMULTITEXCOORD2IARBPROC nglMultiTexCoord2iARB
;
380 extern PFNGLMULTITEXCOORD2FARBPROC nglMultiTexCoord2fARB
;
381 extern PFNGLMULTITEXCOORD2DARBPROC nglMultiTexCoord2dARB
;
382 extern PFNGLMULTITEXCOORD3SARBPROC nglMultiTexCoord3sARB
;
383 extern PFNGLMULTITEXCOORD3IARBPROC nglMultiTexCoord3iARB
;
384 extern PFNGLMULTITEXCOORD3FARBPROC nglMultiTexCoord3fARB
;
385 extern PFNGLMULTITEXCOORD3DARBPROC nglMultiTexCoord3dARB
;
386 extern PFNGLMULTITEXCOORD4SARBPROC nglMultiTexCoord4sARB
;
387 extern PFNGLMULTITEXCOORD4IARBPROC nglMultiTexCoord4iARB
;
388 extern PFNGLMULTITEXCOORD4FARBPROC nglMultiTexCoord4fARB
;
389 extern PFNGLMULTITEXCOORD4DARBPROC nglMultiTexCoord4dARB
;
391 extern PFNGLMULTITEXCOORD1SVARBPROC nglMultiTexCoord1svARB
;
392 extern PFNGLMULTITEXCOORD1IVARBPROC nglMultiTexCoord1ivARB
;
393 extern PFNGLMULTITEXCOORD1FVARBPROC nglMultiTexCoord1fvARB
;
394 extern PFNGLMULTITEXCOORD1DVARBPROC nglMultiTexCoord1dvARB
;
395 extern PFNGLMULTITEXCOORD2SVARBPROC nglMultiTexCoord2svARB
;
396 extern PFNGLMULTITEXCOORD2IVARBPROC nglMultiTexCoord2ivARB
;
397 extern PFNGLMULTITEXCOORD2FVARBPROC nglMultiTexCoord2fvARB
;
398 extern PFNGLMULTITEXCOORD2DVARBPROC nglMultiTexCoord2dvARB
;
399 extern PFNGLMULTITEXCOORD3SVARBPROC nglMultiTexCoord3svARB
;
400 extern PFNGLMULTITEXCOORD3IVARBPROC nglMultiTexCoord3ivARB
;
401 extern PFNGLMULTITEXCOORD3FVARBPROC nglMultiTexCoord3fvARB
;
402 extern PFNGLMULTITEXCOORD3DVARBPROC nglMultiTexCoord3dvARB
;
403 extern PFNGLMULTITEXCOORD4SVARBPROC nglMultiTexCoord4svARB
;
404 extern PFNGLMULTITEXCOORD4IVARBPROC nglMultiTexCoord4ivARB
;
405 extern PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB
;
406 extern PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB
;
409 // ARB_TextureCompression.
410 //========================
411 extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB
;
412 extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB
;
413 extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB
;
414 extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB
;
415 extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB
;
416 extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB
;
417 extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB
;
420 // VertexArrayRangeNV.
421 //====================
422 extern PFNGLFLUSHVERTEXARRAYRANGENVPROC nglFlushVertexArrayRangeNV
;
423 extern PFNGLVERTEXARRAYRANGENVPROC nglVertexArrayRangeNV
;
426 extern PFNWGLALLOCATEMEMORYNVPROC nwglAllocateMemoryNV
;
427 extern PFNWGLFREEMEMORYNVPROC nwglFreeMemoryNV
;
428 #elif defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
429 extern PFNGLXALLOCATEMEMORYNVPROC nglXAllocateMemoryNV
;
430 extern PFNGLXFREEMEMORYNVPROC nglXFreeMemoryNV
;
435 //====================
436 extern PFNGLDELETEFENCESNVPROC nglDeleteFencesNV
;
437 extern PFNGLGENFENCESNVPROC nglGenFencesNV
;
438 extern PFNGLISFENCENVPROC nglIsFenceNV
;
439 extern PFNGLTESTFENCENVPROC nglTestFenceNV
;
440 extern PFNGLGETFENCEIVNVPROC nglGetFenceivNV
;
441 extern PFNGLFINISHFENCENVPROC nglFinishFenceNV
;
442 extern PFNGLSETFENCENVPROC nglSetFenceNV
;
447 extern PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT
;
448 extern PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT
;
449 extern PFNGLVERTEXWEIGHTPOINTEREXTPROC nglVertexWeightPointerEXT
;
452 // VertexProgramExtension.
453 //========================
454 extern PFNGLAREPROGRAMSRESIDENTNVPROC nglAreProgramsResidentNV
;
455 extern PFNGLBINDPROGRAMNVPROC nglBindProgramNV
;
456 extern PFNGLDELETEPROGRAMSNVPROC nglDeleteProgramsNV
;
457 extern PFNGLEXECUTEPROGRAMNVPROC nglExecuteProgramNV
;
458 extern PFNGLGENPROGRAMSNVPROC nglGenProgramsNV
;
459 extern PFNGLGETPROGRAMPARAMETERDVNVPROC nglGetProgramParameterdvNV
;
460 extern PFNGLGETPROGRAMPARAMETERFVNVPROC nglGetProgramParameterfvNV
;
461 extern PFNGLGETPROGRAMIVNVPROC nglGetProgramivNV
;
462 extern PFNGLGETPROGRAMSTRINGNVPROC nglGetProgramStringNV
;
463 extern PFNGLGETTRACKMATRIXIVNVPROC nglGetTrackMatrixivNV
;
464 extern PFNGLGETVERTEXATTRIBDVNVPROC nglGetVertexAttribdvNV
;
465 extern PFNGLGETVERTEXATTRIBFVNVPROC nglGetVertexAttribfvNV
;
466 extern PFNGLGETVERTEXATTRIBIVNVPROC nglGetVertexAttribivNV
;
467 extern PFNGLGETVERTEXATTRIBPOINTERVNVPROC nglGetVertexAttribPointervNV
;
468 extern PFNGLISPROGRAMNVPROC nglIsProgramNV
;
469 extern PFNGLLOADPROGRAMNVPROC nglLoadProgramNV
;
470 extern PFNGLPROGRAMPARAMETER4DNVPROC nglProgramParameter4dNV
;
471 extern PFNGLPROGRAMPARAMETER4DVNVPROC nglProgramParameter4dvNV
;
472 extern PFNGLPROGRAMPARAMETER4FNVPROC nglProgramParameter4fNV
;
473 extern PFNGLPROGRAMPARAMETER4FVNVPROC nglProgramParameter4fvNV
;
474 extern PFNGLPROGRAMPARAMETERS4DVNVPROC nglProgramParameters4dvNV
;
475 extern PFNGLPROGRAMPARAMETERS4FVNVPROC nglProgramParameters4fvNV
;
476 extern PFNGLREQUESTRESIDENTPROGRAMSNVPROC nglRequestResidentProgramsNV
;
477 extern PFNGLTRACKMATRIXNVPROC nglTrackMatrixNV
;
478 extern PFNGLVERTEXATTRIBPOINTERNVPROC nglVertexAttribPointerNV
;
479 extern PFNGLVERTEXATTRIB1DNVPROC nglVertexAttrib1dNV
;
480 extern PFNGLVERTEXATTRIB1DVNVPROC nglVertexAttrib1dvNV
;
481 extern PFNGLVERTEXATTRIB1FNVPROC nglVertexAttrib1fNV
;
482 extern PFNGLVERTEXATTRIB1FVNVPROC nglVertexAttrib1fvNV
;
483 extern PFNGLVERTEXATTRIB1SNVPROC nglVertexAttrib1sNV
;
484 extern PFNGLVERTEXATTRIB1SVNVPROC nglVertexAttrib1svNV
;
485 extern PFNGLVERTEXATTRIB2DNVPROC nglVertexAttrib2dNV
;
486 extern PFNGLVERTEXATTRIB2DVNVPROC nglVertexAttrib2dvNV
;
487 extern PFNGLVERTEXATTRIB2FNVPROC nglVertexAttrib2fNV
;
488 extern PFNGLVERTEXATTRIB2FVNVPROC nglVertexAttrib2fvNV
;
489 extern PFNGLVERTEXATTRIB2SNVPROC nglVertexAttrib2sNV
;
490 extern PFNGLVERTEXATTRIB2SVNVPROC nglVertexAttrib2svNV
;
491 extern PFNGLVERTEXATTRIB3DNVPROC nglVertexAttrib3dNV
;
492 extern PFNGLVERTEXATTRIB3DVNVPROC nglVertexAttrib3dvNV
;
493 extern PFNGLVERTEXATTRIB3FNVPROC nglVertexAttrib3fNV
;
494 extern PFNGLVERTEXATTRIB3FVNVPROC nglVertexAttrib3fvNV
;
495 extern PFNGLVERTEXATTRIB3SNVPROC nglVertexAttrib3sNV
;
496 extern PFNGLVERTEXATTRIB3SVNVPROC nglVertexAttrib3svNV
;
497 extern PFNGLVERTEXATTRIB4DNVPROC nglVertexAttrib4dNV
;
498 extern PFNGLVERTEXATTRIB4DVNVPROC nglVertexAttrib4dvNV
;
499 extern PFNGLVERTEXATTRIB4FNVPROC nglVertexAttrib4fNV
;
500 extern PFNGLVERTEXATTRIB4FVNVPROC nglVertexAttrib4fvNV
;
501 extern PFNGLVERTEXATTRIB4SNVPROC nglVertexAttrib4sNV
;
502 extern PFNGLVERTEXATTRIB4SVNVPROC nglVertexAttrib4svNV
;
503 extern PFNGLVERTEXATTRIB4UBVNVPROC nglVertexAttrib4ubvNV
;
504 extern PFNGLVERTEXATTRIBS1DVNVPROC nglVertexAttribs1dvNV
;
505 extern PFNGLVERTEXATTRIBS1FVNVPROC nglVertexAttribs1fvNV
;
506 extern PFNGLVERTEXATTRIBS1SVNVPROC nglVertexAttribs1svNV
;
507 extern PFNGLVERTEXATTRIBS2DVNVPROC nglVertexAttribs2dvNV
;
508 extern PFNGLVERTEXATTRIBS2FVNVPROC nglVertexAttribs2fvNV
;
509 extern PFNGLVERTEXATTRIBS2SVNVPROC nglVertexAttribs2svNV
;
510 extern PFNGLVERTEXATTRIBS3DVNVPROC nglVertexAttribs3dvNV
;
511 extern PFNGLVERTEXATTRIBS3FVNVPROC nglVertexAttribs3fvNV
;
512 extern PFNGLVERTEXATTRIBS3SVNVPROC nglVertexAttribs3svNV
;
513 extern PFNGLVERTEXATTRIBS4DVNVPROC nglVertexAttribs4dvNV
;
514 extern PFNGLVERTEXATTRIBS4FVNVPROC nglVertexAttribs4fvNV
;
515 extern PFNGLVERTEXATTRIBS4SVNVPROC nglVertexAttribs4svNV
;
516 extern PFNGLVERTEXATTRIBS4UBVNVPROC nglVertexAttribs4ubvNV
;
518 // VertexShaderExtension.
519 //========================
520 extern PFNGLBEGINVERTEXSHADEREXTPROC nglBeginVertexShaderEXT
;
521 extern PFNGLENDVERTEXSHADEREXTPROC nglEndVertexShaderEXT
;
522 extern PFNGLBINDVERTEXSHADEREXTPROC nglBindVertexShaderEXT
;
523 extern PFNGLGENVERTEXSHADERSEXTPROC nglGenVertexShadersEXT
;
524 extern PFNGLDELETEVERTEXSHADEREXTPROC nglDeleteVertexShaderEXT
;
525 extern PFNGLSHADEROP1EXTPROC nglShaderOp1EXT
;
526 extern PFNGLSHADEROP2EXTPROC nglShaderOp2EXT
;
527 extern PFNGLSHADEROP3EXTPROC nglShaderOp3EXT
;
528 extern PFNGLSWIZZLEEXTPROC nglSwizzleEXT
;
529 extern PFNGLWRITEMASKEXTPROC nglWriteMaskEXT
;
530 extern PFNGLINSERTCOMPONENTEXTPROC nglInsertComponentEXT
;
531 extern PFNGLEXTRACTCOMPONENTEXTPROC nglExtractComponentEXT
;
532 extern PFNGLGENSYMBOLSEXTPROC nglGenSymbolsEXT
;
533 extern PFNGLSETINVARIANTEXTPROC nglSetInvariantEXT
;
534 extern PFNGLSETLOCALCONSTANTEXTPROC nglSetLocalConstantEXT
;
535 extern PFNGLVARIANTPOINTEREXTPROC nglVariantPointerEXT
;
536 extern PFNGLENABLEVARIANTCLIENTSTATEEXTPROC nglEnableVariantClientStateEXT
;
537 extern PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC nglDisableVariantClientStateEXT
;
538 extern PFNGLBINDLIGHTPARAMETEREXTPROC nglBindLightParameterEXT
;
539 extern PFNGLBINDMATERIALPARAMETEREXTPROC nglBindMaterialParameterEXT
;
540 extern PFNGLBINDTEXGENPARAMETEREXTPROC nglBindTexGenParameterEXT
;
541 extern PFNGLBINDTEXTUREUNITPARAMETEREXTPROC nglBindTextureUnitParameterEXT
;
542 extern PFNGLBINDPARAMETEREXTPROC nglBindParameterEXT
;
543 extern PFNGLISVARIANTENABLEDEXTPROC nglIsVariantEnabledEXT
;
544 extern PFNGLGETVARIANTBOOLEANVEXTPROC nglGetVariantBooleanvEXT
;
545 extern PFNGLGETVARIANTINTEGERVEXTPROC nglGetVariantIntegervEXT
;
546 extern PFNGLGETVARIANTFLOATVEXTPROC nglGetVariantFloatvEXT
;
547 extern PFNGLGETVARIANTPOINTERVEXTPROC nglGetVariantPointervEXT
;
548 extern PFNGLGETINVARIANTBOOLEANVEXTPROC nglGetInvariantBooleanvEXT
;
549 extern PFNGLGETINVARIANTINTEGERVEXTPROC nglGetInvariantIntegervEXT
;
550 extern PFNGLGETINVARIANTFLOATVEXTPROC nglGetInvariantFloatvEXT
;
551 extern PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC nglGetLocalConstantBooleanvEXT
;
552 extern PFNGLGETLOCALCONSTANTINTEGERVEXTPROC nglGetLocalConstantIntegervEXT
;
553 extern PFNGLGETLOCALCONSTANTFLOATVEXTPROC nglGetLocalConstantFloatvEXT
;
556 // ATI_envmap_bumpmap extension
558 extern PFNGLTEXBUMPPARAMETERIVATIPROC nglTexBumpParameterivATI
;
559 extern PFNGLTEXBUMPPARAMETERFVATIPROC nglTexBumpParameterfvATI
;
560 extern PFNGLGETTEXBUMPPARAMETERIVATIPROC nglGetTexBumpParameterivATI
;
561 extern PFNGLGETTEXBUMPPARAMETERFVATIPROC nglGetTexBumpParameterfvATI
;
564 // SecondaryColor extension
565 //========================
566 extern PFNGLSECONDARYCOLOR3BEXTPROC nglSecondaryColor3bEXT
;
567 extern PFNGLSECONDARYCOLOR3BVEXTPROC nglSecondaryColor3bvEXT
;
568 extern PFNGLSECONDARYCOLOR3DEXTPROC nglSecondaryColor3dEXT
;
569 extern PFNGLSECONDARYCOLOR3DVEXTPROC nglSecondaryColor3dvEXT
;
570 extern PFNGLSECONDARYCOLOR3FEXTPROC nglSecondaryColor3fEXT
;
571 extern PFNGLSECONDARYCOLOR3FVEXTPROC nglSecondaryColor3fvEXT
;
572 extern PFNGLSECONDARYCOLOR3IEXTPROC nglSecondaryColor3iEXT
;
573 extern PFNGLSECONDARYCOLOR3IVEXTPROC nglSecondaryColor3ivEXT
;
574 extern PFNGLSECONDARYCOLOR3SEXTPROC nglSecondaryColor3sEXT
;
575 extern PFNGLSECONDARYCOLOR3SVEXTPROC nglSecondaryColor3svEXT
;
576 extern PFNGLSECONDARYCOLOR3UBEXTPROC nglSecondaryColor3ubEXT
;
577 extern PFNGLSECONDARYCOLOR3UBVEXTPROC nglSecondaryColor3ubvEXT
;
578 extern PFNGLSECONDARYCOLOR3UIEXTPROC nglSecondaryColor3uiEXT
;
579 extern PFNGLSECONDARYCOLOR3UIVEXTPROC nglSecondaryColor3uivEXT
;
580 extern PFNGLSECONDARYCOLOR3USEXTPROC nglSecondaryColor3usEXT
;
581 extern PFNGLSECONDARYCOLOR3USVEXTPROC nglSecondaryColor3usvEXT
;
582 extern PFNGLSECONDARYCOLORPOINTEREXTPROC nglSecondaryColorPointerEXT
;
585 // BlendColor extension
586 //========================
587 extern PFNGLBLENDCOLOREXTPROC nglBlendColorEXT
;
590 // GL_ATI_vertex_array_object extension
591 //========================
592 extern PFNGLNEWOBJECTBUFFERATIPROC nglNewObjectBufferATI
;
593 extern PFNGLISOBJECTBUFFERATIPROC nglIsObjectBufferATI
;
594 extern PFNGLUPDATEOBJECTBUFFERATIPROC nglUpdateObjectBufferATI
;
595 extern PFNGLGETOBJECTBUFFERFVATIPROC nglGetObjectBufferfvATI
;
596 extern PFNGLGETOBJECTBUFFERIVATIPROC nglGetObjectBufferivATI
;
597 extern PFNGLFREEOBJECTBUFFERATIPROC nglFreeObjectBufferATI
;
598 extern PFNGLARRAYOBJECTATIPROC nglArrayObjectATI
;
599 extern PFNGLGETARRAYOBJECTFVATIPROC nglGetArrayObjectfvATI
;
600 extern PFNGLGETARRAYOBJECTIVATIPROC nglGetArrayObjectivATI
;
601 extern PFNGLVARIANTARRAYOBJECTATIPROC nglVariantArrayObjectATI
;
602 extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC nglGetVariantArrayObjectfvATI
;
603 extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC nglGetVariantArrayObjectivATI
;
605 // GL_ATI_map_object_buffer
606 //===================================
608 extern PFNGLMAPOBJECTBUFFERATIPROC nglMapObjectBufferATI
;
609 extern PFNGLUNMAPOBJECTBUFFERATIPROC nglUnmapObjectBufferATI
;
612 // GL_ATI_fragment_shader extension
613 //===================================
615 extern PFNGLGENFRAGMENTSHADERSATIPROC nglGenFragmentShadersATI
;
616 extern PFNGLBINDFRAGMENTSHADERATIPROC nglBindFragmentShaderATI
;
617 extern PFNGLDELETEFRAGMENTSHADERATIPROC nglDeleteFragmentShaderATI
;
618 extern PFNGLBEGINFRAGMENTSHADERATIPROC nglBeginFragmentShaderATI
;
619 extern PFNGLENDFRAGMENTSHADERATIPROC nglEndFragmentShaderATI
;
620 extern PFNGLPASSTEXCOORDATIPROC nglPassTexCoordATI
;
621 extern PFNGLSAMPLEMAPATIPROC nglSampleMapATI
;
622 extern PFNGLCOLORFRAGMENTOP1ATIPROC nglColorFragmentOp1ATI
;
623 extern PFNGLCOLORFRAGMENTOP2ATIPROC nglColorFragmentOp2ATI
;
624 extern PFNGLCOLORFRAGMENTOP3ATIPROC nglColorFragmentOp3ATI
;
625 extern PFNGLALPHAFRAGMENTOP1ATIPROC nglAlphaFragmentOp1ATI
;
626 extern PFNGLALPHAFRAGMENTOP2ATIPROC nglAlphaFragmentOp2ATI
;
627 extern PFNGLALPHAFRAGMENTOP3ATIPROC nglAlphaFragmentOp3ATI
;
628 extern PFNGLSETFRAGMENTSHADERCONSTANTATIPROC nglSetFragmentShaderConstantATI
;
630 // GL_ATI_vertex_attrib_array_object
631 //==================================
632 extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC nglVertexAttribArrayObjectATI
;
633 extern PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC nglGetVertexAttribArrayObjectfvATI
;
634 extern PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC nglGetVertexAttribArrayObjectivATI
;
639 // GL_ARB_fragment_shader_extension
640 //==================================
641 extern PFNGLPROGRAMSTRINGARBPROC nglProgramStringARB
;
642 extern PFNGLBINDPROGRAMARBPROC nglBindProgramARB
;
643 extern PFNGLDELETEPROGRAMSARBPROC nglDeleteProgramsARB
;
644 extern PFNGLGENPROGRAMSARBPROC nglGenProgramsARB
;
645 extern PFNGLPROGRAMENVPARAMETER4DARBPROC nglProgramEnvParameter4dARB
;
646 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC nglProgramEnvParameter4dvARB
;
647 extern PFNGLPROGRAMENVPARAMETER4FARBPROC nglProgramEnvParameter4fARB
;
648 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC nglProgramEnvParameter4fvARB
;
649 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC nglGetProgramLocalParameter4dARB
;
650 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC nglGetProgramLocalParameter4dvARB
;
651 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC nglGetProgramLocalParameter4fARB
;
652 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC nglGetProgramLocalParameter4fvARB
;
653 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC nglGetProgramEnvParameterdvARB
;
654 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC nglGetProgramEnvParameterfvARB
;
655 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC nglGetProgramLocalParameterdvARB
;
656 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC nglGetProgramLocalParameterfvARB
;
657 extern PFNGLGETPROGRAMIVARBPROC nglGetProgramivARB
;
658 extern PFNGLGETPROGRAMSTRINGARBPROC nglGetProgramStringARB
;
659 extern PFNGLISPROGRAMARBPROC nglIsProgramARB
;
661 // GL_ARB_vertex_buffer_object
662 //==================================
663 extern PFNGLBINDBUFFERARBPROC nglBindBufferARB
;
664 extern PFNGLDELETEBUFFERSARBPROC nglDeleteBuffersARB
;
665 extern PFNGLGENBUFFERSARBPROC nglGenBuffersARB
;
666 extern PFNGLISBUFFERARBPROC nglIsBufferARB
;
667 extern PFNGLBUFFERDATAARBPROC nglBufferDataARB
;
668 extern PFNGLBUFFERSUBDATAARBPROC nglBufferSubDataARB
;
669 extern PFNGLGETBUFFERSUBDATAARBPROC nglGetBufferSubDataARB
;
670 extern PFNGLMAPBUFFERARBPROC nglMapBufferARB
;
671 extern PFNGLUNMAPBUFFERARBPROC nglUnmapBufferARB
;
672 extern PFNGLGETBUFFERPARAMETERIVARBPROC nglGetBufferParameterivARB
;
673 extern PFNGLGETBUFFERPOINTERVARBPROC nglGetBufferPointervARB
;
675 // GL_ARB_map_buffer_range
676 //==================================
677 extern PFNGLMAPBUFFERRANGEPROC nglMapBufferRange
;
678 extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC nglFlushMappedBufferRange
;
680 // GL_ARB_vertex_program
681 //==================================
682 extern PFNGLVERTEXATTRIB1SARBPROC nglVertexAttrib1sARB
;
683 extern PFNGLVERTEXATTRIB1FARBPROC nglVertexAttrib1fARB
;
684 extern PFNGLVERTEXATTRIB1DARBPROC nglVertexAttrib1dARB
;
685 extern PFNGLVERTEXATTRIB2SARBPROC nglVertexAttrib2sARB
;
686 extern PFNGLVERTEXATTRIB2FARBPROC nglVertexAttrib2fARB
;
687 extern PFNGLVERTEXATTRIB2DARBPROC nglVertexAttrib2dARB
;
688 extern PFNGLVERTEXATTRIB3SARBPROC nglVertexAttrib3sARB
;
689 extern PFNGLVERTEXATTRIB3FARBPROC nglVertexAttrib3fARB
;
690 extern PFNGLVERTEXATTRIB3DARBPROC nglVertexAttrib3dARB
;
691 extern PFNGLVERTEXATTRIB4SARBPROC nglVertexAttrib4sARB
;
692 extern PFNGLVERTEXATTRIB4FARBPROC nglVertexAttrib4fARB
;
693 extern PFNGLVERTEXATTRIB4DARBPROC nglVertexAttrib4dARB
;
694 extern PFNGLVERTEXATTRIB4NUBARBPROC nglVertexAttrib4NubARB
;
695 extern PFNGLVERTEXATTRIB1SVARBPROC nglVertexAttrib1svARB
;
696 extern PFNGLVERTEXATTRIB1FVARBPROC nglVertexAttrib1fvARB
;
697 extern PFNGLVERTEXATTRIB1DVARBPROC nglVertexAttrib1dvARB
;
698 extern PFNGLVERTEXATTRIB2SVARBPROC nglVertexAttrib2svARB
;
699 extern PFNGLVERTEXATTRIB2FVARBPROC nglVertexAttrib2fvARB
;
700 extern PFNGLVERTEXATTRIB2DVARBPROC nglVertexAttrib2dvARB
;
701 extern PFNGLVERTEXATTRIB3SVARBPROC nglVertexAttrib3svARB
;
702 extern PFNGLVERTEXATTRIB3FVARBPROC nglVertexAttrib3fvARB
;
703 extern PFNGLVERTEXATTRIB3DVARBPROC nglVertexAttrib3dvARB
;
704 extern PFNGLVERTEXATTRIB4BVARBPROC nglVertexAttrib4bvARB
;
705 extern PFNGLVERTEXATTRIB4SVARBPROC nglVertexAttrib4svARB
;
706 extern PFNGLVERTEXATTRIB4IVARBPROC nglVertexAttrib4ivARB
;
707 extern PFNGLVERTEXATTRIB4UBVARBPROC nglVertexAttrib4ubvARB
;
708 extern PFNGLVERTEXATTRIB4USVARBPROC nglVertexAttrib4usvARB
;
709 extern PFNGLVERTEXATTRIB4UIVARBPROC nglVertexAttrib4uivARB
;
710 extern PFNGLVERTEXATTRIB4FVARBPROC nglVertexAttrib4fvARB
;
711 extern PFNGLVERTEXATTRIB4DVARBPROC nglVertexAttrib4dvARB
;
712 extern PFNGLVERTEXATTRIB4NBVARBPROC nglVertexAttrib4NbvARB
;
713 extern PFNGLVERTEXATTRIB4NSVARBPROC nglVertexAttrib4NsvARB
;
714 extern PFNGLVERTEXATTRIB4NIVARBPROC nglVertexAttrib4NivARB
;
715 extern PFNGLVERTEXATTRIB4NUBVARBPROC nglVertexAttrib4NubvARB
;
716 extern PFNGLVERTEXATTRIB4NUSVARBPROC nglVertexAttrib4NusvARB
;
717 extern PFNGLVERTEXATTRIB4NUIVARBPROC nglVertexAttrib4NuivARB
;
718 extern PFNGLVERTEXATTRIBPOINTERARBPROC nglVertexAttribPointerARB
;
719 extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC nglEnableVertexAttribArrayARB
;
720 extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC nglDisableVertexAttribArrayARB
;
721 extern PFNGLPROGRAMSTRINGARBPROC nglProgramStringARB
;
722 extern PFNGLBINDPROGRAMARBPROC nglBindProgramARB
;
723 extern PFNGLDELETEPROGRAMSARBPROC nglDeleteProgramsARB
;
724 extern PFNGLGENPROGRAMSARBPROC nglGenProgramsARB
;
725 extern PFNGLPROGRAMENVPARAMETER4FARBPROC nglProgramEnvParameter4fARB
;
726 extern PFNGLPROGRAMENVPARAMETER4DARBPROC nglProgramEnvParameter4dARB
;
727 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC nglProgramEnvParameter4fvARB
;
728 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC nglProgramEnvParameter4dvARB
;
729 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC nglProgramLocalParameter4fARB
;
730 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC nglProgramLocalParameter4dARB
;
731 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC nglProgramLocalParameter4fvARB
;
732 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC nglProgramLocalParameter4dvARB
;
733 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC nglGetProgramEnvParameterfvARB
;
734 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC nglGetProgramEnvParameterdvARB
;
735 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC nglGetProgramLocalParameterfvARB
;
736 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC nglGetProgramLocalParameterdvARB
;
737 extern PFNGLGETPROGRAMIVARBPROC nglGetProgramivARB
;
738 extern PFNGLGETPROGRAMSTRINGARBPROC nglGetProgramStringARB
;
739 extern PFNGLGETVERTEXATTRIBDVARBPROC nglGetVertexAttribdvARB
;
740 extern PFNGLGETVERTEXATTRIBFVARBPROC nglGetVertexAttribfvARB
;
741 extern PFNGLGETVERTEXATTRIBIVARBPROC nglGetVertexAttribivARB
;
742 extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC nglGetVertexAttribPointervARB
;
743 extern PFNGLISPROGRAMARBPROC nglIsProgramARB
;
745 // GL_NV_occlusion_query
746 //==================================
747 extern PFNGLGENOCCLUSIONQUERIESNVPROC nglGenOcclusionQueriesNV
;
748 extern PFNGLDELETEOCCLUSIONQUERIESNVPROC nglDeleteOcclusionQueriesNV
;
749 extern PFNGLISOCCLUSIONQUERYNVPROC nglIsOcclusionQueryNV
;
750 extern PFNGLBEGINOCCLUSIONQUERYNVPROC nglBeginOcclusionQueryNV
;
751 extern PFNGLENDOCCLUSIONQUERYNVPROC nglEndOcclusionQueryNV
;
752 extern PFNGLGETOCCLUSIONQUERYIVNVPROC nglGetOcclusionQueryivNV
;
753 extern PFNGLGETOCCLUSIONQUERYUIVNVPROC nglGetOcclusionQueryuivNV
;
755 // ARB_occlusion_query
756 //==================================
757 extern PFNGLGENQUERIESARBPROC nglGenQueriesARB
;
758 extern PFNGLDELETEQUERIESARBPROC nglDeleteQueriesARB
;
759 extern PFNGLISQUERYARBPROC nglIsQueryARB
;
760 extern PFNGLBEGINQUERYARBPROC nglBeginQueryARB
;
761 extern PFNGLENDQUERYARBPROC nglEndQueryARB
;
762 extern PFNGLGETQUERYIVARBPROC nglGetQueryivARB
;
763 extern PFNGLGETQUERYOBJECTIVARBPROC nglGetQueryObjectivARB
;
764 extern PFNGLGETQUERYOBJECTUIVARBPROC nglGetQueryObjectuivARB
;
770 extern PFNWGLCREATEPBUFFERARBPROC nwglCreatePbufferARB
;
771 extern PFNWGLGETPBUFFERDCARBPROC nwglGetPbufferDCARB
;
772 extern PFNWGLRELEASEPBUFFERDCARBPROC nwglReleasePbufferDCARB
;
773 extern PFNWGLDESTROYPBUFFERARBPROC nwglDestroyPbufferARB
;
774 extern PFNWGLQUERYPBUFFERARBPROC nwglQueryPbufferARB
;
777 // Get Pixel format extension
778 //===========================
779 extern PFNWGLGETPIXELFORMATATTRIBIVARBPROC nwglGetPixelFormatAttribivARB
;
780 extern PFNWGLGETPIXELFORMATATTRIBFVARBPROC nwglGetPixelFormatAttribfvARB
;
781 extern PFNWGLCHOOSEPIXELFORMATARBPROC nwglChoosePixelFormatARB
;
784 // Swap control extension
785 //===========================
786 extern PFNWGLSWAPINTERVALEXTPROC nwglSwapIntervalEXT
;
787 extern PFNWGLGETSWAPINTERVALEXTPROC nwglGetSwapIntervalEXT
;
790 // WGL_ARB_extensions_string
791 extern PFNWGLGETEXTENSIONSSTRINGARBPROC nwglGetExtensionsStringARB
;
794 // WGL_AMD_gpu_association
795 //========================
796 extern PFNWGLGETGPUIDSAMDPROC nwglGetGPUIDsAMD
;
797 extern PFNWGLGETGPUINFOAMDPROC nwglGetGPUInfoAMD
;
798 extern PFNWGLGETCONTEXTGPUIDAMDPROC nwglGetContextGPUIDAMD
;
799 extern PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC nwglCreateAssociatedContextAMD
;
800 extern PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC nwglCreateAssociatedContextAttribsAMD
;
801 extern PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC nwglDeleteAssociatedContextAMD
;
802 extern PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC nwglMakeAssociatedContextCurrentAMD
;
803 extern PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC nwglGetCurrentAssociatedContextAMD
;
804 extern PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC nwglBlitContextFramebufferAMD
;
806 // WGL_NV_gpu_affinity
807 //====================
808 extern PFNWGLENUMGPUSNVPROC nwglEnumGpusNV
;
809 extern PFNWGLENUMGPUDEVICESNVPROC nwglEnumGpuDevicesNV
;
810 extern PFNWGLCREATEAFFINITYDCNVPROC nwglCreateAffinityDCNV
;
811 extern PFNWGLENUMGPUSFROMAFFINITYDCNVPROC nwglEnumGpusFromAffinityDCNV
;
812 extern PFNWGLDELETEDCNVPROC nwglDeleteDCNV
;
814 #elif defined(NL_OS_MAC)
815 #elif defined(NL_OS_UNIX)
817 // Swap control extensions
818 //===========================
819 extern PFNGLXSWAPINTERVALEXTPROC nglXSwapIntervalEXT
;
821 extern PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI
;
823 extern PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA
;
824 extern PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA
;
826 // GLX_MESA_query_renderer
827 // =======================
828 extern PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC nglXQueryCurrentRendererIntegerMESA
;
832 // GL_EXT_framebuffer_object
833 extern PFNGLISRENDERBUFFEREXTPROC nglIsRenderbufferEXT
;
834 extern PFNGLISFRAMEBUFFEREXTPROC nglIsFramebufferEXT
;
835 extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC nglCheckFramebufferStatusEXT
;
836 extern PFNGLGENFRAMEBUFFERSEXTPROC nglGenFramebuffersEXT
;
837 extern PFNGLBINDFRAMEBUFFEREXTPROC nglBindFramebufferEXT
;
838 extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC nglFramebufferTexture2DEXT
;
839 extern PFNGLGENRENDERBUFFERSEXTPROC nglGenRenderbuffersEXT
;
840 extern PFNGLBINDRENDERBUFFEREXTPROC nglBindRenderbufferEXT
;
841 extern PFNGLRENDERBUFFERSTORAGEEXTPROC nglRenderbufferStorageEXT
;
842 extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC nglFramebufferRenderbufferEXT
;
843 extern PFNGLDELETERENDERBUFFERSEXTPROC nglDeleteRenderbuffersEXT
;
844 extern PFNGLDELETEFRAMEBUFFERSEXTPROC nglDeleteFramebuffersEXT
;
845 extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC nglGetRenderbufferParameterivEXT
;
846 extern PFNGLGENERATEMIPMAPEXTPROC nglGenerateMipmapEXT
;
848 // GL_EXT_framebuffer_blit
849 extern PFNGLBLITFRAMEBUFFEREXTPROC nglBlitFramebufferEXT
;
851 // GL_EXT_framebuffer_multisample
852 extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC nglRenderbufferStorageMultisampleEXT
;
854 // GL_ARB_multisample
855 extern PFNGLSAMPLECOVERAGEARBPROC nglSampleCoverageARB
;
857 #endif // USE_OPENGLES
859 #endif // NL_OPENGL_EXTENSION_H