source: trunk/nv/lib/gl.hh @ 37

Last change on this file since 37 was 37, checked in by epyon, 12 years ago
  • gl_context added
  • removed geometry shader support from gl_program (non-GL 2.1/GLES 2.0 compatible)
  • cleaned up warnings
File size: 28.5 KB
Line 
1// Copyright (C) 2012-2013 ChaosForge / Kornel Kisielewicz
2// http://chaosforge.org/
3//
4// This file is part of NV Libraries.
5// For conditions of distribution and use, see copyright notice in nv.hh
6
7#ifndef NV_LIB_GL_HH
8#define NV_LIB_GL_HH
9
10#include <nv/common.hh>
11#include <stddef.h>
12
13//#define NV_SDL_GL
14#define NV_GL_DYNAMIC
15//#define NV_GL_SHARED
16
17#if NV_PLATFORM == NV_WINDOWS
18#       define NV_GL_PATH "opengl32.dll"
19#elif NV_PLATFORM == NV_APPLE
20#       define NV_GL_PATH "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib"
21#else
22#       define NV_GL_PATH "libGL.so"
23#endif
24
25#include <stdint.h>
26
27extern "C" {
28
29#if NV_PLATFORM == NV_WINDOWS
30#       define NV_GL_APIENTRY __stdcall
31#else
32#       define NV_GL_APIENTRY
33#endif
34
35#if defined(NV_GL_SHARED) && (NV_PLATFORM == NV_WINDOWS)
36#       define NV_GL_API __declspec(dllimport)
37#else
38#       define NV_GL_API extern
39#endif
40
41#if defined(NV_GL_DYNAMIC)
42#       define NV_GL_FUN( rtype, fname, fparams ) NV_GL_API rtype ( NV_GL_APIENTRY *fname) fparams
43#else
44#       define NV_GL_FUN( rtype, fname, fparams ) NV_GL_API rtype NV_GL_APIENTRY fname fparams
45#endif
46
47typedef unsigned int GLenum;
48typedef unsigned int GLbitfield;
49typedef unsigned int GLuint;
50typedef int GLint;
51typedef int GLsizei;
52typedef unsigned char GLboolean;
53typedef signed char GLbyte;
54typedef short GLshort;
55typedef unsigned char GLubyte;
56typedef unsigned short GLushort;
57typedef unsigned long GLulong;
58typedef float GLfloat;
59typedef float GLclampf;
60typedef double GLdouble;
61typedef double GLclampd;
62typedef void GLvoid;
63typedef char GLchar;
64typedef ptrdiff_t GLintptr;
65typedef ptrdiff_t GLsizeiptr;
66
67
68/* OpenGL 1.1 non-deprecated defines */
69#define GL_DEPTH_BUFFER_BIT 0x00000100
70#define GL_STENCIL_BUFFER_BIT 0x00000400
71#define GL_COLOR_BUFFER_BIT 0x00004000
72#define GL_ZERO 0
73#define GL_FALSE 0
74#define GL_TRUE 1
75#define GL_POINTS 0x0000
76#define GL_LINES 0x0001
77#define GL_LINE_LOOP 0x0002
78#define GL_LINE_STRIP 0x0003
79#define GL_TRIANGLES 0x0004
80#define GL_TRIANGLE_STRIP 0x0005
81#define GL_TRIANGLE_FAN 0x0006
82#define GL_NEVER 0x0200
83#define GL_LESS 0x0201
84#define GL_EQUAL 0x0202
85#define GL_LEQUAL 0x0203
86#define GL_GREATER 0x0204
87#define GL_NOTEQUAL 0x0205
88#define GL_GEQUAL 0x0206
89#define GL_ALWAYS 0x0207
90#define GL_ONE 1
91#define GL_SRC_COLOR 0x0300
92#define GL_ONE_MINUS_SRC_COLOR 0x0301
93#define GL_SRC_ALPHA 0x0302
94#define GL_ONE_MINUS_SRC_ALPHA 0x0303
95#define GL_DST_ALPHA 0x0304
96#define GL_ONE_MINUS_DST_ALPHA 0x0305
97#define GL_DST_COLOR 0x0306
98#define GL_ONE_MINUS_DST_COLOR 0x0307
99#define GL_SRC_ALPHA_SATURATE 0x0308
100#define GL_FRONT_LEFT 0x0400
101#define GL_FRONT_RIGHT 0x0401
102#define GL_BACK_LEFT 0x0402
103#define GL_BACK_RIGHT 0x0403
104#define GL_FRONT 0x0404
105#define GL_BACK 0x0405
106#define GL_LEFT 0x0406
107#define GL_RIGHT 0x0407
108#define GL_FRONT_AND_BACK 0x0408
109#define GL_INVALID_ENUM 0x0500
110#define GL_INVALID_VALUE 0x0501
111#define GL_INVALID_OPERATION 0x0502
112#define GL_OUT_OF_MEMORY 0x0505
113#define GL_CW 0x0900
114#define GL_CCW 0x0901
115#define GL_POINT_SIZE 0x0B11
116#define GL_POINT_SIZE_RANGE 0x0B12
117#define GL_POINT_SIZE_GRANULARITY 0x0B13
118#define GL_LINE_SMOOTH 0x0B20
119#define GL_LINE_WIDTH 0x0B21
120#define GL_LINE_WIDTH_RANGE 0x0B22
121#define GL_LINE_WIDTH_GRANULARITY 0x0B23
122#define GL_POLYGON_SMOOTH 0x0B41
123#define GL_CULL_FACE 0x0B44
124#define GL_CULL_FACE_MODE 0x0B45
125#define GL_FRONT_FACE 0x0B46
126#define GL_DEPTH_TEST 0x0B71
127#define GL_DEPTH_WRITEMASK 0x0B72
128#define GL_DEPTH_CLEAR_VALUE 0x0B73
129#define GL_DEPTH_FUNC 0x0B74
130#define GL_STENCIL_TEST 0x0B90
131#define GL_STENCIL_CLEAR_VALUE 0x0B91
132#define GL_STENCIL_FUNC 0x0B92
133#define GL_STENCIL_VALUE_MASK 0x0B93
134#define GL_STENCIL_FAIL 0x0B94
135#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
136#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
137#define GL_STENCIL_REF 0x0B97
138#define GL_STENCIL_WRITEMASK 0x0B98
139#define GL_DITHER 0x0BD0
140#define GL_BLEND_DST 0x0BE0
141#define GL_BLEND_SRC 0x0BE1
142#define GL_BLEND 0x0BE2
143#define GL_LOGIC_OP_MODE 0x0BF0
144#define GL_COLOR_LOGIC_OP 0x0BF2
145#define GL_DRAW_BUFFER 0x0C01
146#define GL_READ_BUFFER 0x0C02
147#define GL_SCISSOR_TEST 0x0C11
148#define GL_COLOR_CLEAR_VALUE 0x0C22
149#define GL_COLOR_WRITEMASK 0x0C23
150#define GL_DOUBLEBUFFER 0x0C32
151#define GL_STEREO 0x0C33
152#define GL_LINE_SMOOTH_HINT 0x0C52
153#define GL_POLYGON_SMOOTH_HINT 0x0C53
154#define GL_UNPACK_SWAP_BYTES 0x0CF0
155#define GL_UNPACK_LSB_FIRST 0x0CF1
156#define GL_UNPACK_ROW_LENGTH 0x0CF2
157#define GL_UNPACK_SKIP_ROWS 0x0CF3
158#define GL_UNPACK_SKIP_PIXELS 0x0CF4
159#define GL_UNPACK_ALIGNMENT 0x0CF5
160#define GL_PACK_SWAP_BYTES 0x0D00
161#define GL_PACK_LSB_FIRST 0x0D01
162#define GL_PACK_ROW_LENGTH 0x0D02
163#define GL_PACK_SKIP_ROWS 0x0D03
164#define GL_PACK_SKIP_PIXELS 0x0D04
165#define GL_PACK_ALIGNMENT 0x0D05
166#define GL_MAX_TEXTURE_SIZE 0x0D33
167#define GL_MAX_VIEWPORT_DIMS 0x0D3A
168#define GL_SUBPIXEL_BITS 0x0D50
169#define GL_TEXTURE_2D 0x0DE1
170#define GL_POLYGON_OFFSET_UNITS 0x2A00
171#define GL_POLYGON_OFFSET_POINT 0x2A01
172#define GL_POLYGON_OFFSET_LINE 0x2A02
173#define GL_POLYGON_OFFSET_FILL 0x8037
174#define GL_POLYGON_OFFSET_FACTOR 0x8038
175#define GL_TEXTURE_BINDING_1D 0x8068
176#define GL_TEXTURE_BINDING_2D 0x8069
177#define GL_TEXTURE_WIDTH 0x1000
178#define GL_TEXTURE_HEIGHT 0x1001
179#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
180#define GL_TEXTURE_BORDER_COLOR 0x1004
181#define GL_TEXTURE_RED_SIZE 0x805C
182#define GL_TEXTURE_GREEN_SIZE 0x805D
183#define GL_TEXTURE_BLUE_SIZE 0x805E
184#define GL_TEXTURE_ALPHA_SIZE 0x805F
185#define GL_DONT_CARE 0x1100
186#define GL_FASTEST 0x1101
187#define GL_NICEST 0x1102
188#define GL_BYTE 0x1400
189#define GL_UNSIGNED_BYTE 0x1401
190#define GL_SHORT 0x1402
191#define GL_UNSIGNED_SHORT 0x1403
192#define GL_INT 0x1404
193#define GL_UNSIGNED_INT 0x1405
194#define GL_FLOAT 0x1406
195#define GL_CLEAR 0x1500
196#define GL_AND 0x1501
197#define GL_AND_REVERSE 0x1502
198#define GL_COPY 0x1503
199#define GL_AND_INVERTED 0x1504
200#define GL_NOOP 0x1505
201#define GL_XOR 0x1506
202#define GL_OR 0x1507
203#define GL_NOR 0x1508
204#define GL_EQUIV 0x1509
205#define GL_INVERT 0x150A
206#define GL_OR_REVERSE 0x150B
207#define GL_COPY_INVERTED 0x150C
208#define GL_OR_INVERTED 0x150D
209#define GL_NAND 0x150E
210#define GL_SET 0x150F
211#define GL_TEXTURE 0x1702
212#define GL_COLOR 0x1800
213#define GL_DEPTH 0x1801
214#define GL_STENCIL 0x1802
215#define GL_STENCIL_INDEX 0x1901
216#define GL_DEPTH_COMPONENT 0x1902
217#define GL_RED 0x1903
218#define GL_GREEN 0x1904
219#define GL_BLUE 0x1905
220#define GL_ALPHA 0x1906
221#define GL_RGB 0x1907
222#define GL_RGBA 0x1908
223#define GL_POINT 0x1B00
224#define GL_LINE 0x1B01
225#define GL_FILL 0x1B02
226#define GL_KEEP 0x1E00
227#define GL_REPLACE 0x1E01
228#define GL_INCR 0x1E02
229#define GL_DECR 0x1E03
230#define GL_VENDOR 0x1F00
231#define GL_RENDERER 0x1F01
232#define GL_VERSION 0x1F02
233#define GL_EXTENSIONS 0x1F03
234#define GL_NEAREST 0x2600
235#define GL_LINEAR 0x2601
236#define GL_NEAREST_MIPMAP_NEAREST 0x2700
237#define GL_LINEAR_MIPMAP_NEAREST 0x2701
238#define GL_NEAREST_MIPMAP_LINEAR 0x2702
239#define GL_LINEAR_MIPMAP_LINEAR 0x2703
240#define GL_TEXTURE_MAG_FILTER 0x2800
241#define GL_TEXTURE_MIN_FILTER 0x2801
242#define GL_TEXTURE_WRAP_S 0x2802
243#define GL_TEXTURE_WRAP_T 0x2803
244#define GL_PROXY_TEXTURE_1D 0x8063
245#define GL_PROXY_TEXTURE_2D 0x8064
246#define GL_REPEAT 0x2901
247#define GL_R3_G3_B2 0x2A10
248#define GL_RGB4 0x804F
249#define GL_RGB5 0x8050
250#define GL_RGB8 0x8051
251#define GL_RGB10 0x8052
252#define GL_RGB12 0x8053
253#define GL_RGB16 0x8054
254#define GL_RGBA2 0x8055
255#define GL_RGBA4 0x8056
256#define GL_RGB5_A1 0x8057
257#define GL_RGBA8 0x8058
258#define GL_RGB10_A2 0x8059
259#define GL_RGBA12 0x805A
260#define GL_RGBA16 0x805B
261
262/* OpenGL 1.2 non-deprecated defines */
263#define GL_UNSIGNED_BYTE_3_3_2 0x8032
264#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
265#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
266#define GL_UNSIGNED_INT_8_8_8_8 0x8035
267#define GL_UNSIGNED_INT_10_10_10_2 0x8036
268#define GL_TEXTURE_BINDING_3D 0x806A
269#define GL_PACK_SKIP_IMAGES 0x806B
270#define GL_PACK_IMAGE_HEIGHT 0x806C
271#define GL_UNPACK_SKIP_IMAGES 0x806D
272#define GL_UNPACK_IMAGE_HEIGHT 0x806E
273#define GL_PROXY_TEXTURE_3D 0x8070
274#define GL_TEXTURE_DEPTH 0x8071
275#define GL_TEXTURE_WRAP_R 0x8072
276#define GL_MAX_3D_TEXTURE_SIZE 0x8073
277#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
278#define GL_UNSIGNED_SHORT_5_6_5 0x8363
279#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
280#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
281#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
282#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
283#define GL_BGR 0x80E0
284#define GL_MAX_ELEMENTS_VERTICES 0x80E8
285#define GL_MAX_ELEMENTS_INDICES 0x80E9
286#define GL_CLAMP_TO_EDGE 0x812F
287#define GL_TEXTURE_MIN_LOD 0x813A
288#define GL_TEXTURE_MAX_LOD 0x813B
289#define GL_TEXTURE_BASE_LEVEL 0x813C
290#define GL_TEXTURE_MAX_LEVEL 0x813D
291#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
292#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
293#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
294#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
295#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
296#define GL_CONSTANT_COLOR 0x8001
297#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
298#define GL_CONSTANT_ALPHA 0x8003
299#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
300#define GL_FUNC_ADD 0x8006
301#define GL_MIN 0x8007
302#define GL_MAX 0x8008
303#define GL_FUNC_SUBTRACT 0x800A
304#define GL_FUNC_REVERSE_SUBTRACT 0x800B
305
306/* OpenGL 1.3 non-deprecated defines */
307#define GL_TEXTURE0 0x84C0
308#define GL_TEXTURE1 0x84C1
309#define GL_TEXTURE2 0x84C2
310#define GL_TEXTURE3 0x84C3
311#define GL_TEXTURE4 0x84C4
312#define GL_TEXTURE5 0x84C5
313#define GL_TEXTURE6 0x84C6
314#define GL_TEXTURE7 0x84C7
315#define GL_TEXTURE8 0x84C8
316#define GL_TEXTURE9 0x84C9
317#define GL_TEXTURE10 0x84CA
318#define GL_TEXTURE11 0x84CB
319#define GL_TEXTURE12 0x84CC
320#define GL_TEXTURE13 0x84CD
321#define GL_TEXTURE14 0x84CE
322#define GL_TEXTURE15 0x84CF
323#define GL_TEXTURE16 0x84D0
324#define GL_TEXTURE17 0x84D1
325#define GL_TEXTURE18 0x84D2
326#define GL_TEXTURE19 0x84D3
327#define GL_TEXTURE20 0x84D4
328#define GL_TEXTURE21 0x84D5
329#define GL_TEXTURE22 0x84D6
330#define GL_TEXTURE23 0x84D7
331#define GL_TEXTURE24 0x84D8
332#define GL_TEXTURE25 0x84D9
333#define GL_TEXTURE26 0x84DA
334#define GL_TEXTURE27 0x84DB
335#define GL_TEXTURE28 0x84DC
336#define GL_TEXTURE29 0x84DD
337#define GL_TEXTURE30 0x84DE
338#define GL_TEXTURE31 0x84DF
339#define GL_ACTIVE_TEXTURE 0x84E0
340#define GL_MULTISAMPLE 0x809D
341#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
342#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
343#define GL_SAMPLE_COVERAGE 0x80A0
344#define GL_SAMPLE_BUFFERS 0x80A8
345#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
346#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
347#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
348#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
349#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
350#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
351#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
352#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
353#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
354#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
355#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
356#define GL_COMPRESSED_RGB 0x84ED
357#define GL_COMPRESSED_RGBA 0x84EE
358#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
359#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
360#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
361#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
362#define GL_CLAMP_TO_BORDER 0x812D
363
364/* OpenGL 1.4 non-deprecated defines */
365#define GL_BLEND_DST_RGB 0x80C8
366#define GL_BLEND_SRC_RGB 0x80C9
367#define GL_BLEND_DST_ALPHA 0x80CA
368#define GL_BLEND_SRC_ALPHA 0x80CB
369#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
370#define GL_DEPTH_COMPONENT16 0x81A5
371#define GL_DEPTH_COMPONENT24 0x81A6
372#define GL_DEPTH_COMPONENT32 0x81A7
373#define GL_MIRRORED_REPEAT 0x8370
374#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
375#define GL_TEXTURE_LOD_BIAS 0x8501
376#define GL_INCR_WRAP 0x8507
377#define GL_DECR_WRAP 0x8508
378#define GL_TEXTURE_DEPTH_SIZE 0x884A
379#define GL_TEXTURE_COMPARE_MODE 0x884C
380#define GL_TEXTURE_COMPARE_FUNC 0x884D
381
382/* OpenGL 1.5 non-deprecated defines */
383#define GL_BUFFER_SIZE 0x8764
384#define GL_BUFFER_USAGE 0x8765
385#define GL_QUERY_COUNTER_BITS 0x8864
386#define GL_CURRENT_QUERY 0x8865
387#define GL_QUERY_RESULT 0x8866
388#define GL_QUERY_RESULT_AVAILABLE 0x8867
389#define GL_ARRAY_BUFFER 0x8892
390#define GL_ELEMENT_ARRAY_BUFFER 0x8893
391#define GL_ARRAY_BUFFER_BINDING 0x8894
392#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
393#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
394#define GL_READ_ONLY 0x88B8
395#define GL_BUFFER_ACCESS 0x88BB
396#define GL_BUFFER_MAPPED 0x88BC
397#define GL_BUFFER_MAP_POINTER 0x88BD
398#define GL_STREAM_DRAW 0x88E0
399#define GL_STREAM_READ 0x88E1
400#define GL_STREAM_COPY 0x88E2
401#define GL_STATIC_DRAW 0x88E4
402#define GL_STATIC_READ 0x88E5
403#define GL_STATIC_COPY 0x88E6
404#define GL_DYNAMIC_DRAW 0x88E8
405#define GL_DYNAMIC_READ 0x88E9
406#define GL_DYNAMIC_COPY 0x88EA
407#define GL_SAMPLES_PASSED 0x8914
408
409/* OpenGL 2.0 non-deprecated defines */
410#define GL_BLEND_EQUATION_RGB 0x8009
411#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
412#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
413#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
414#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
415#define GL_CURRENT_VERTEX_ATTRIB 0x8626
416#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
417#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
418#define GL_STENCIL_BACK_FUNC 0x8800
419#define GL_STENCIL_BACK_FAIL 0x8801
420#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
421#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
422#define GL_MAX_DRAW_BUFFERS 0x8824
423#define GL_DRAW_BUFFER0 0x8825
424#define GL_DRAW_BUFFER1 0x8826
425#define GL_DRAW_BUFFER2 0x8827
426#define GL_DRAW_BUFFER3 0x8828
427#define GL_DRAW_BUFFER4 0x8829
428#define GL_DRAW_BUFFER5 0x882A
429#define GL_DRAW_BUFFER6 0x882B
430#define GL_DRAW_BUFFER7 0x882C
431#define GL_DRAW_BUFFER8 0x882D
432#define GL_DRAW_BUFFER9 0x882E
433#define GL_DRAW_BUFFER10 0x882F
434#define GL_DRAW_BUFFER11 0x8830
435#define GL_DRAW_BUFFER12 0x8831
436#define GL_DRAW_BUFFER13 0x8832
437#define GL_DRAW_BUFFER14 0x8833
438#define GL_DRAW_BUFFER15 0x8834
439#define GL_BLEND_EQUATION_ALPHA 0x883D
440#define GL_MAX_VERTEX_ATTRIBS 0x8869
441#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
442#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
443#define GL_FRAGMENT_SHADER 0x8B30
444#define GL_VERTEX_SHADER 0x8B31
445#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
446#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
447#define GL_MAX_VARYING_FLOATS 0x8B4B
448#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
449#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
450#define GL_SHADER_TYPE 0x8B4F
451#define GL_FLOAT_VEC2 0x8B50
452#define GL_FLOAT_VEC3 0x8B51
453#define GL_FLOAT_VEC4 0x8B52
454#define GL_INT_VEC2 0x8B53
455#define GL_INT_VEC3 0x8B54
456#define GL_INT_VEC4 0x8B55
457#define GL_BOOL 0x8B56
458#define GL_BOOL_VEC2 0x8B57
459#define GL_BOOL_VEC3 0x8B58
460#define GL_BOOL_VEC4 0x8B59
461#define GL_FLOAT_MAT2 0x8B5A
462#define GL_FLOAT_MAT3 0x8B5B
463#define GL_FLOAT_MAT4 0x8B5C
464#define GL_SAMPLER_1D 0x8B5D
465#define GL_SAMPLER_2D 0x8B5E
466#define GL_SAMPLER_3D 0x8B5F
467#define GL_SAMPLER_CUBE 0x8B60
468#define GL_SAMPLER_1D_SHADOW 0x8B61
469#define GL_SAMPLER_2D_SHADOW 0x8B62
470#define GL_DELETE_STATUS 0x8B80
471#define GL_COMPILE_STATUS 0x8B81
472#define GL_LINK_STATUS 0x8B82
473#define GL_VALIDATE_STATUS 0x8B83
474#define GL_INFO_LOG_LENGTH 0x8B84
475#define GL_ATTACHED_SHADERS 0x8B85
476#define GL_ACTIVE_UNIFORMS 0x8B86
477#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
478#define GL_SHADER_SOURCE_LENGTH 0x8B88
479#define GL_ACTIVE_ATTRIBUTES 0x8B89
480#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
481#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
482#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
483#define GL_CURRENT_PROGRAM 0x8B8D
484#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
485#define GL_LOWER_LEFT 0x8CA1
486#define GL_UPPER_LEFT 0x8CA2
487#define GL_STENCIL_BACK_REF 0x8CA3
488#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
489#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
490
491/* OpenGL 2.1 non-deprecated defines */
492#define GL_PIXEL_PACK_BUFFER 0x88EB
493#define GL_PIXEL_UNPACK_BUFFER 0x88EC
494#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
495#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
496#define GL_FLOAT_MAT2x3 0x8B65
497#define GL_FLOAT_MAT2x4 0x8B66
498#define GL_FLOAT_MAT3x2 0x8B67
499#define GL_FLOAT_MAT3x4 0x8B68
500#define GL_FLOAT_MAT4x2 0x8B69
501#define GL_FLOAT_MAT4x3 0x8B6A
502#define GL_SRGB 0x8C40
503#define GL_SRGB8 0x8C41
504#define GL_SRGB_ALPHA 0x8C42
505#define GL_SRGB8_ALPHA8 0x8C43
506#define GL_COMPRESSED_SRGB 0x8C48
507#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
508
509/* OpenGL 1.1 non-deprecated functions */
510NV_GL_FUN( void , glCullFace , ( GLenum ) );
511NV_GL_FUN( void , glFrontFace , ( GLenum ) );
512NV_GL_FUN( void , glHint , ( GLenum, GLenum ) );
513NV_GL_FUN( void , glLineWidth , ( GLfloat ) );
514NV_GL_FUN( void , glPointSize , ( GLfloat ) );
515NV_GL_FUN( void , glPolygonMode , ( GLenum, GLenum ) );
516NV_GL_FUN( void , glScissor , ( GLint , GLint , GLsizei , GLsizei ) );
517NV_GL_FUN( void , glTexParameterf , ( GLenum , GLenum , GLfloat ) );
518NV_GL_FUN( void , glTexParameterfv , ( GLenum , GLenum , const GLfloat *) );
519NV_GL_FUN( void , glTexParameteri , ( GLenum , GLenum , GLint ) );
520NV_GL_FUN( void , glTexParameteriv , ( GLenum , GLenum , const GLint *) );
521NV_GL_FUN( void , glTexImage1D , ( GLenum , GLint , GLint , GLsizei , GLint , GLenum , GLenum , const GLvoid *) );
522NV_GL_FUN( void , glTexImage2D , ( GLenum , GLint , GLint , GLsizei , GLsizei , GLint , GLenum , GLenum , const GLvoid *) );
523NV_GL_FUN( void , glDrawBuffer , ( GLenum ) );
524NV_GL_FUN( void , glClear , ( GLbitfield ) );
525NV_GL_FUN( void , glClearColor , ( GLfloat , GLfloat , GLfloat , GLfloat ) );
526NV_GL_FUN( void , glClearStencil , ( GLint ) );
527NV_GL_FUN( void , glClearDepth , ( GLdouble ) );
528NV_GL_FUN( void , glStencilMask , ( GLuint ) );
529NV_GL_FUN( void , glColorMask , ( GLboolean , GLboolean , GLboolean , GLboolean ) );
530NV_GL_FUN( void , glDepthMask , ( GLboolean ) );
531NV_GL_FUN( void , glDisable , ( GLenum ) );
532NV_GL_FUN( void , glEnable , ( GLenum ) );
533NV_GL_FUN( void , glFinish , ( void ) );
534NV_GL_FUN( void , glFlush , ( void ) );
535NV_GL_FUN( void , glBlendFunc , ( GLenum, GLenum ) );
536NV_GL_FUN( void , glLogicOp , ( GLenum ) );
537NV_GL_FUN( void , glStencilFunc , ( GLenum , GLint , GLuint ) );
538NV_GL_FUN( void , glStencilOp , ( GLenum , GLenum , GLenum ) );
539NV_GL_FUN( void , glDepthFunc , ( GLenum ) );
540NV_GL_FUN( void , glPixelStoref , ( GLenum , GLfloat ) );
541NV_GL_FUN( void , glPixelStorei , ( GLenum , GLint ) );
542NV_GL_FUN( void , glReadBuffer , ( GLenum ) );
543NV_GL_FUN( void , glReadPixels , ( GLint , GLint , GLsizei , GLsizei , GLenum , GLenum , GLvoid *) );
544NV_GL_FUN( void , glGetBooleanv , ( GLenum , GLboolean *) );
545NV_GL_FUN( void , glGetDoublev , ( GLenum , GLdouble *) );
546NV_GL_FUN( GLenum , glGetError , ( void ) );
547NV_GL_FUN( void , glGetFloatv , ( GLenum , GLfloat *) );
548NV_GL_FUN( void , glGetIntegerv , ( GLenum , GLint *) );
549NV_GL_FUN( const GLubyte * , glGetString , ( GLenum ) );
550NV_GL_FUN( void , glGetTexImage , ( GLenum , GLint , GLenum , GLenum , GLvoid *) );
551NV_GL_FUN( void , glGetTexParameterfv , ( GLenum , GLenum , GLfloat *) );
552NV_GL_FUN( void , glGetTexParameteriv , ( GLenum , GLenum , GLint *) );
553NV_GL_FUN( void , glGetTexLevelParameterfv , ( GLenum , GLint , GLenum , GLfloat *) );
554NV_GL_FUN( void , glGetTexLevelParameteriv , ( GLenum , GLint , GLenum , GLint *) );
555NV_GL_FUN( GLboolean , glIsEnabled , ( GLenum ) );
556NV_GL_FUN( void , glDepthRange , ( GLdouble , GLdouble ) );
557NV_GL_FUN( void , glViewport , ( GLint , GLint , GLsizei , GLsizei ) );
558NV_GL_FUN( void , glDrawArrays , ( GLenum , GLint , GLsizei ) );
559NV_GL_FUN( void , glDrawElements , ( GLenum , GLsizei , GLenum , const GLvoid *) );
560NV_GL_FUN( void , glGetPointerv , ( GLenum , GLvoid* *) );
561NV_GL_FUN( void , glPolygonOffset , ( GLfloat , GLfloat ) );
562NV_GL_FUN( void , glCopyTexImage1D , ( GLenum , GLint , GLenum , GLint , GLint , GLsizei , GLint ) );
563NV_GL_FUN( void , glCopyTexImage2D , ( GLenum , GLint , GLenum , GLint , GLint , GLsizei , GLsizei , GLint ) );
564NV_GL_FUN( void , glCopyTexSubImage1D , ( GLenum , GLint , GLint , GLint , GLint , GLsizei ) );
565NV_GL_FUN( void , glCopyTexSubImage2D , ( GLenum , GLint , GLint , GLint , GLint , GLint , GLsizei , GLsizei ) );
566NV_GL_FUN( void , glTexSubImage1D , ( GLenum , GLint , GLint , GLsizei , GLenum , GLenum , const GLvoid *) );
567NV_GL_FUN( void , glTexSubImage2D , ( GLenum , GLint , GLint , GLsizei , GLenum , GLenum , const GLvoid *) );
568NV_GL_FUN( void , glBindTexture , ( GLenum , GLuint ) );
569NV_GL_FUN( void , glDeleteTextures , ( GLsizei , const GLuint *) );
570NV_GL_FUN( void , glGenTextures , ( GLsizei , GLuint *) );
571NV_GL_FUN( GLboolean , glIsTexture , ( GLuint ) );
572NV_GL_FUN( void , glIndexub , ( GLubyte ) );
573NV_GL_FUN( void , glIndexubv , ( const GLubyte *) );
574
575/* OpenGL 1.2 non-deprecated functions */
576NV_GL_FUN( void , glBlendColor , ( GLfloat , GLfloat , GLfloat , GLfloat ) );
577NV_GL_FUN( void , glBlendEquation , ( GLenum ) );
578NV_GL_FUN( void , glDrawRangeElements , ( GLenum , GLuint , GLuint , GLsizei , GLenum , const GLvoid *) );
579NV_GL_FUN( void , glTexSubImage3D , ( GLenum , GLint , GLint , GLint , GLint , GLsizei , GLsizei , GLsizei , GLenum , GLenum , const GLvoid *) );
580NV_GL_FUN( void , glCopyTexSubImage3D , ( GLenum , GLint , GLint , GLint , GLint , GLint , GLint , GLsizei , GLsizei ) );
581
582/* OpenGL 1.3 non-deprecated functions */
583NV_GL_FUN( void , glActiveTexture , ( GLenum ) );
584NV_GL_FUN( void , glSampleCoverage , ( GLfloat , GLboolean ) );
585NV_GL_FUN( void , glCompressedTexImage3D , ( GLenum , GLint , GLenum , GLsizei , GLsizei , GLsizei , GLint , GLsizei , const GLvoid *) );
586NV_GL_FUN( void , glCompressedTexImage2D , ( GLenum , GLint , GLenum , GLsizei , GLsizei , GLint , GLsizei , const GLvoid *) );
587NV_GL_FUN( void , glCompressedTexImage1D , ( GLenum , GLint , GLenum , GLsizei , GLint , GLsizei , const GLvoid *) );
588NV_GL_FUN( void , glCompressedTexSubImage3D , ( GLenum , GLint , GLint , GLint , GLint , GLsizei , GLsizei , GLsizei , GLenum , GLsizei , const GLvoid *) );
589NV_GL_FUN( void , glCompressedTexSubImage2D , ( GLenum , GLint , GLint , GLint , GLsizei , GLsizei , GLenum , GLsizei , const GLvoid *) );
590NV_GL_FUN( void , glCompressedTexSubImage1D , ( GLenum , GLint , GLint , GLsizei , GLenum , GLsizei , const GLvoid *) );
591NV_GL_FUN( void , glGetCompressedTexImage , ( GLenum , GLint , GLvoid *) );
592
593/* OpenGL 1.4 non-deprecated functions */
594NV_GL_FUN( void , glBlendFuncSeparate , ( GLenum , GLenum , GLenum , GLenum ) );
595NV_GL_FUN( void , glMultiDrawArrays , ( GLenum , const GLint *, const GLsizei *, GLsizei ) );
596NV_GL_FUN( void , glMultiDrawElements , ( GLenum , const GLsizei *, GLenum , const GLvoid* const *, GLsizei ) );
597NV_GL_FUN( void , glPointParameterf , ( GLenum , GLfloat ) );
598NV_GL_FUN( void , glPointParameterfv , ( GLenum , const GLfloat *) );
599NV_GL_FUN( void , glPointParameteri , ( GLenum , GLint ) );
600NV_GL_FUN( void , glPointParameteriv , ( GLenum , const GLint *) );
601
602/* OpenGL 1.5 non-deprecated functions */
603NV_GL_FUN( void , glGenQueries , ( GLsizei , GLuint *) );
604NV_GL_FUN( void , glDeleteQueries , ( GLsizei , const GLuint *) );
605NV_GL_FUN( GLboolean , glIsQuery , ( GLuint ) );
606NV_GL_FUN( void , glBeginQuery , ( GLenum , GLuint ) );
607NV_GL_FUN( void , glEndQuery , ( GLenum ) );
608NV_GL_FUN( void , glGetQueryiv , ( GLenum , GLenum , GLint *) );
609NV_GL_FUN( void , glGetQueryObjectiv , ( GLuint , GLenum , GLint *) );
610NV_GL_FUN( void , glGetQueryObjectuiv , ( GLuint , GLenum , GLuint *) );
611NV_GL_FUN( void , glBindBuffer , ( GLenum , GLuint ) );
612NV_GL_FUN( void , glDeleteBuffers , ( GLsizei , const GLuint *) );
613NV_GL_FUN( void , glGenBuffers , ( GLsizei , GLuint *) );
614NV_GL_FUN( GLboolean , glIsBuffer , ( GLuint ) );
615NV_GL_FUN( void , glBufferData , ( GLenum , GLsizeiptr , const GLvoid *, GLenum ) );
616NV_GL_FUN( void , glBufferSubData , ( GLenum , GLintptr , GLsizeiptr , const GLvoid *) );
617NV_GL_FUN( void , glGetBufferSubData , ( GLenum , GLintptr , GLsizeiptr , GLvoid *) );
618NV_GL_FUN( GLvoid* , glMapBuffer , ( GLenum , GLenum ) );
619NV_GL_FUN( GLboolean , glUnmapBuffer , ( GLenum ) );
620NV_GL_FUN( void , glGetBufferParameteriv , ( GLenum , GLenum , GLint *) );
621NV_GL_FUN( void , glGetBufferPointerv , ( GLenum , GLenum , GLvoid* *) );
622
623/* OpenGL 2.0 non-deprecated functions */
624NV_GL_FUN( void , glBlendEquationSeparate , ( GLenum , GLenum ) );
625NV_GL_FUN( void , glDrawBuffers , ( GLsizei , const GLenum *) );
626NV_GL_FUN( void , glStencilOpSeparate , ( GLenum , GLenum , GLenum , GLenum ) );
627NV_GL_FUN( void , glStencilFuncSeparate , ( GLenum , GLenum , GLint , GLuint ) );
628NV_GL_FUN( void , glStencilMaskSeparate , ( GLenum , GLuint ) );
629NV_GL_FUN( void , glAttachShader , ( GLuint , GLuint ) );
630NV_GL_FUN( void , glBindAttribLocation , ( GLuint , GLuint , const GLchar *) );
631NV_GL_FUN( void , glCompileShader , ( GLuint ) );
632NV_GL_FUN( GLuint , glCreateProgram , ( void ) );
633NV_GL_FUN( GLuint , glCreateShader , ( GLenum ) );
634NV_GL_FUN( void , glDeleteProgram , ( GLuint ) );
635NV_GL_FUN( void , glDeleteShader , ( GLuint ) );
636NV_GL_FUN( void , glDetachShader , ( GLuint, GLuint ) );
637NV_GL_FUN( void , glDisableVertexAttribArray , ( GLuint ) );
638NV_GL_FUN( void , glEnableVertexAttribArray , ( GLuint ) );
639NV_GL_FUN( void , glGetActiveAttrib , ( GLuint , GLuint , GLsizei , GLsizei *, GLint *, GLenum *, GLchar *) );
640NV_GL_FUN( void , glGetActiveUniform , ( GLuint , GLuint , GLsizei , GLsizei *, GLint *, GLenum *, GLchar *) );
641NV_GL_FUN( void , glGetAttachedShaders , ( GLuint , GLsizei , GLsizei *, GLuint *) );
642NV_GL_FUN( GLint , glGetAttribLocation , ( GLuint , const GLchar *) );
643NV_GL_FUN( void , glGetProgramiv , ( GLuint , GLenum , GLint *) );
644NV_GL_FUN( void , glGetProgramInfoLog , ( GLuint , GLsizei , GLsizei *, GLchar *) );
645NV_GL_FUN( void , glGetShaderiv , ( GLuint , GLenum , GLint *) );
646NV_GL_FUN( void , glGetShaderInfoLog , ( GLuint , GLsizei , GLsizei *, GLchar *) );
647NV_GL_FUN( void , glGetShaderSource , ( GLuint , GLsizei , GLsizei *, GLchar *) );
648NV_GL_FUN( GLint , glGetUniformLocation , ( GLuint , const GLchar *) );
649NV_GL_FUN( void , glGetUniformfv , ( GLuint , GLint , GLfloat *) );
650NV_GL_FUN( void , glGetUniformiv , ( GLuint , GLint , GLint *) );
651NV_GL_FUN( void , glGetVertexAttribdv , ( GLuint , GLenum , GLdouble *) );
652NV_GL_FUN( void , glGetVertexAttribfv , ( GLuint , GLenum , GLfloat *) );
653NV_GL_FUN( void , glGetVertexAttribiv , ( GLuint , GLenum , GLint *) );
654NV_GL_FUN( void , glGetVertexAttribPointerv , ( GLuint , GLenum , GLvoid* *) );
655NV_GL_FUN( GLboolean , glIsProgram , ( GLuint ) );
656NV_GL_FUN( GLboolean , glIsShader , ( GLuint ) );
657NV_GL_FUN( void , glLinkProgram , ( GLuint ) );
658NV_GL_FUN( void , glShaderSource , ( GLuint , GLsizei , const GLchar* const *, const GLint *) );
659NV_GL_FUN( void , glUseProgram , ( GLuint ) );
660NV_GL_FUN( void , glUniform1f , ( GLint , GLfloat ) );
661NV_GL_FUN( void , glUniform2f , ( GLint , GLfloat , GLfloat ) );
662NV_GL_FUN( void , glUniform3f , ( GLint , GLfloat , GLfloat , GLfloat ) );
663NV_GL_FUN( void , glUniform4f , ( GLint , GLfloat , GLfloat , GLfloat , GLfloat ) );
664NV_GL_FUN( void , glUniform1i , ( GLint , GLint ) );
665NV_GL_FUN( void , glUniform2i , ( GLint , GLint , GLint ) );
666NV_GL_FUN( void , glUniform3i , ( GLint , GLint , GLint , GLint ) );
667NV_GL_FUN( void , glUniform4i , ( GLint , GLint , GLint , GLint , GLint ) );
668NV_GL_FUN( void , glUniform1fv , ( GLint , GLsizei , const GLfloat *) );
669NV_GL_FUN( void , glUniform2fv , ( GLint , GLsizei , const GLfloat *) );
670NV_GL_FUN( void , glUniform3fv , ( GLint , GLsizei , const GLfloat *) );
671NV_GL_FUN( void , glUniform4fv , ( GLint , GLsizei , const GLfloat *) );
672NV_GL_FUN( void , glUniform1iv , ( GLint , GLsizei , const GLint *) );
673NV_GL_FUN( void , glUniform2iv , ( GLint , GLsizei , const GLint *) );
674NV_GL_FUN( void , glUniform3iv , ( GLint , GLsizei , const GLint *) );
675NV_GL_FUN( void , glUniform4iv , ( GLint , GLsizei , const GLint *) );
676NV_GL_FUN( void , glUniformMatrix2fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
677NV_GL_FUN( void , glUniformMatrix3fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
678NV_GL_FUN( void , glUniformMatrix4fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
679NV_GL_FUN( void , glValidateProgram , ( GLuint ) );
680NV_GL_FUN( void , glVertexAttribPointer , ( GLuint , GLint , GLenum , GLboolean , GLsizei , const GLvoid *) );
681
682/* OpenGL 2.1 non-deprecated functions */
683NV_GL_FUN( void , glUniformMatrix2x3fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
684NV_GL_FUN( void , glUniformMatrix3x2fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
685NV_GL_FUN( void , glUniformMatrix2x4fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
686NV_GL_FUN( void , glUniformMatrix4x2fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
687NV_GL_FUN( void , glUniformMatrix3x4fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
688NV_GL_FUN( void , glUniformMatrix4x3fv , ( GLint , GLsizei , GLboolean , const GLfloat *) );
689
690#undef NV_GL_FUN
691
692}
693
694namespace nv {
695/* Dynamic load support */
696#       if defined( NV_GL_DYNAMIC )
697                bool load_gl_library( const char* path = NV_GL_PATH );
698#       else
699                inline bool load_gl_library( const char* path = "" ) { return true; }
700#       endif
701}
702
703#endif // NV_LIB_GL_HH
Note: See TracBrowser for help on using the repository browser.