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

Last change on this file since 20 was 20, checked in by melon, 12 years ago

Various header and include fixes.

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