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

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