1/*
2Copyright (c) 2012, Broadcom Europe Ltd
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, are permitted provided that the following conditions are met:
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in the
11 documentation and/or other materials provided with the distribution.
12 * Neither the name of the copyright holder nor the
13 names of its contributors may be used to endorse or promote products
14 derived from this software without specific prior written permission.
15
16THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*/
27#ifndef __gl2_h_
28#define __gl2_h_
29
30/* $Revision: 10602 $ on $Date:: 2010-03-05 06:35:34 +0000 #$ */
31
32#include "gl2platform.h"
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38/*
39 * This document is licensed under the SGI Free Software B License Version
40 * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
41 */
42
43/*-------------------------------------------------------------------------
44 * Data type definitions
45 *-----------------------------------------------------------------------*/
46
47#ifndef __gl_h_
48typedef void GLvoid;
49typedef char GLchar;
50typedef unsigned int GLenum;
51typedef unsigned char GLboolean;
52typedef unsigned int GLbitfield;
53typedef khronos_int8_t GLbyte;
54typedef short GLshort;
55typedef int GLint;
56typedef int GLsizei;
57typedef khronos_uint8_t GLubyte;
58typedef unsigned short GLushort;
59typedef unsigned int GLuint;
60typedef khronos_float_t GLfloat;
61typedef khronos_float_t GLclampf;
62typedef khronos_int32_t GLfixed;
63
64/* GL types for handling large vertex buffer objects */
65typedef khronos_intptr_t GLintptr;
66typedef khronos_ssize_t GLsizeiptr;
67#endif
68
69/* OpenGL ES core versions */
70#define GL_ES_VERSION_2_0 1
71
72/* ClearBufferMask */
73#define GL_DEPTH_BUFFER_BIT 0x00000100
74#define GL_STENCIL_BUFFER_BIT 0x00000400
75#define GL_COLOR_BUFFER_BIT 0x00004000
76
77/* Boolean */
78#define GL_FALSE (GLboolean)0
79#define GL_TRUE (GLboolean)1
80
81/* BeginMode */
82#define GL_POINTS 0x0000
83#define GL_LINES 0x0001
84#define GL_LINE_LOOP 0x0002
85#define GL_LINE_STRIP 0x0003
86#define GL_TRIANGLES 0x0004
87#define GL_TRIANGLE_STRIP 0x0005
88#define GL_TRIANGLE_FAN 0x0006
89
90/* AlphaFunction (not supported in ES20) */
91/* GL_NEVER */
92/* GL_LESS */
93/* GL_EQUAL */
94/* GL_LEQUAL */
95/* GL_GREATER */
96/* GL_NOTEQUAL */
97/* GL_GEQUAL */
98/* GL_ALWAYS */
99
100/* BlendingFactorDest */
101#define GL_ZERO 0
102#define GL_ONE 1
103#define GL_SRC_COLOR 0x0300
104#define GL_ONE_MINUS_SRC_COLOR 0x0301
105#define GL_SRC_ALPHA 0x0302
106#define GL_ONE_MINUS_SRC_ALPHA 0x0303
107#define GL_DST_ALPHA 0x0304
108#define GL_ONE_MINUS_DST_ALPHA 0x0305
109
110/* BlendingFactorSrc */
111/* GL_ZERO */
112/* GL_ONE */
113#define GL_DST_COLOR 0x0306
114#define GL_ONE_MINUS_DST_COLOR 0x0307
115#define GL_SRC_ALPHA_SATURATE 0x0308
116/* GL_SRC_ALPHA */
117/* GL_ONE_MINUS_SRC_ALPHA */
118/* GL_DST_ALPHA */
119/* GL_ONE_MINUS_DST_ALPHA */
120
121/* BlendEquationSeparate */
122#define GL_FUNC_ADD 0x8006
123#define GL_BLEND_EQUATION 0x8009
124#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */
125#define GL_BLEND_EQUATION_ALPHA 0x883D
126
127/* BlendSubtract */
128#define GL_FUNC_SUBTRACT 0x800A
129#define GL_FUNC_REVERSE_SUBTRACT 0x800B
130
131/* Separate Blend Functions */
132#define GL_BLEND_DST_RGB 0x80C8
133#define GL_BLEND_SRC_RGB 0x80C9
134#define GL_BLEND_DST_ALPHA 0x80CA
135#define GL_BLEND_SRC_ALPHA 0x80CB
136#define GL_CONSTANT_COLOR 0x8001
137#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
138#define GL_CONSTANT_ALPHA 0x8003
139#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
140#define GL_BLEND_COLOR 0x8005
141
142/* Buffer Objects */
143#define GL_ARRAY_BUFFER 0x8892
144#define GL_ELEMENT_ARRAY_BUFFER 0x8893
145#define GL_ARRAY_BUFFER_BINDING 0x8894
146#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
147
148#define GL_STREAM_DRAW 0x88E0
149#define GL_STATIC_DRAW 0x88E4
150#define GL_DYNAMIC_DRAW 0x88E8
151
152#define GL_BUFFER_SIZE 0x8764
153#define GL_BUFFER_USAGE 0x8765
154
155#define GL_CURRENT_VERTEX_ATTRIB 0x8626
156
157/* CullFaceMode */
158#define GL_FRONT 0x0404
159#define GL_BACK 0x0405
160#define GL_FRONT_AND_BACK 0x0408
161
162/* DepthFunction */
163/* GL_NEVER */
164/* GL_LESS */
165/* GL_EQUAL */
166/* GL_LEQUAL */
167/* GL_GREATER */
168/* GL_NOTEQUAL */
169/* GL_GEQUAL */
170/* GL_ALWAYS */
171
172/* EnableCap */
173#define GL_TEXTURE_2D 0x0DE1
174#define GL_CULL_FACE 0x0B44
175#define GL_BLEND 0x0BE2
176#define GL_DITHER 0x0BD0
177#define GL_STENCIL_TEST 0x0B90
178#define GL_DEPTH_TEST 0x0B71
179#define GL_SCISSOR_TEST 0x0C11
180#define GL_POLYGON_OFFSET_FILL 0x8037
181#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
182#define GL_SAMPLE_COVERAGE 0x80A0
183
184/* ErrorCode */
185#define GL_NO_ERROR 0
186#define GL_INVALID_ENUM 0x0500
187#define GL_INVALID_VALUE 0x0501
188#define GL_INVALID_OPERATION 0x0502
189#define GL_OUT_OF_MEMORY 0x0505
190
191/* FrontFaceDirection */
192#define GL_CW 0x0900
193#define GL_CCW 0x0901
194
195/* GetPName */
196#define GL_LINE_WIDTH 0x0B21
197#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
198#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
199#define GL_CULL_FACE_MODE 0x0B45
200#define GL_FRONT_FACE 0x0B46
201#define GL_DEPTH_RANGE 0x0B70
202#define GL_DEPTH_WRITEMASK 0x0B72
203#define GL_DEPTH_CLEAR_VALUE 0x0B73
204#define GL_DEPTH_FUNC 0x0B74
205#define GL_STENCIL_CLEAR_VALUE 0x0B91
206#define GL_STENCIL_FUNC 0x0B92
207#define GL_STENCIL_FAIL 0x0B94
208#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
209#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
210#define GL_STENCIL_REF 0x0B97
211#define GL_STENCIL_VALUE_MASK 0x0B93
212#define GL_STENCIL_WRITEMASK 0x0B98
213#define GL_STENCIL_BACK_FUNC 0x8800
214#define GL_STENCIL_BACK_FAIL 0x8801
215#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
216#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
217#define GL_STENCIL_BACK_REF 0x8CA3
218#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
219#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
220#define GL_VIEWPORT 0x0BA2
221#define GL_SCISSOR_BOX 0x0C10
222/* GL_SCISSOR_TEST */
223#define GL_COLOR_CLEAR_VALUE 0x0C22
224#define GL_COLOR_WRITEMASK 0x0C23
225#define GL_UNPACK_ALIGNMENT 0x0CF5
226#define GL_PACK_ALIGNMENT 0x0D05
227#define GL_MAX_TEXTURE_SIZE 0x0D33
228#define GL_MAX_VIEWPORT_DIMS 0x0D3A
229#define GL_SUBPIXEL_BITS 0x0D50
230#define GL_RED_BITS 0x0D52
231#define GL_GREEN_BITS 0x0D53
232#define GL_BLUE_BITS 0x0D54
233#define GL_ALPHA_BITS 0x0D55
234#define GL_DEPTH_BITS 0x0D56
235#define GL_STENCIL_BITS 0x0D57
236#define GL_POLYGON_OFFSET_UNITS 0x2A00
237/* GL_POLYGON_OFFSET_FILL */
238#define GL_POLYGON_OFFSET_FACTOR 0x8038
239#define GL_TEXTURE_BINDING_2D 0x8069
240#define GL_SAMPLE_BUFFERS 0x80A8
241#define GL_SAMPLES 0x80A9
242#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
243#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
244
245/* GetTextureParameter */
246/* GL_TEXTURE_MAG_FILTER */
247/* GL_TEXTURE_MIN_FILTER */
248/* GL_TEXTURE_WRAP_S */
249/* GL_TEXTURE_WRAP_T */
250
251#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
252#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
253
254/* HintMode */
255#define GL_DONT_CARE 0x1100
256#define GL_FASTEST 0x1101
257#define GL_NICEST 0x1102
258
259/* HintTarget */
260#define GL_GENERATE_MIPMAP_HINT 0x8192
261
262/* DataType */
263#define GL_BYTE 0x1400
264#define GL_UNSIGNED_BYTE 0x1401
265#define GL_SHORT 0x1402
266#define GL_UNSIGNED_SHORT 0x1403
267#define GL_INT 0x1404
268#define GL_UNSIGNED_INT 0x1405
269#define GL_FLOAT 0x1406
270#define GL_FIXED 0x140C
271
272/* PixelFormat */
273#define GL_DEPTH_COMPONENT 0x1902
274#define GL_ALPHA 0x1906
275#define GL_RGB 0x1907
276#define GL_RGBA 0x1908
277#define GL_LUMINANCE 0x1909
278#define GL_LUMINANCE_ALPHA 0x190A
279
280/* PixelType */
281/* GL_UNSIGNED_BYTE */
282#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
283#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
284#define GL_UNSIGNED_SHORT_5_6_5 0x8363
285
286/* Shaders */
287#define GL_FRAGMENT_SHADER 0x8B30
288#define GL_VERTEX_SHADER 0x8B31
289#define GL_MAX_VERTEX_ATTRIBS 0x8869
290#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
291#define GL_MAX_VARYING_VECTORS 0x8DFC
292#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
293#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
294#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
295#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
296#define GL_SHADER_TYPE 0x8B4F
297#define GL_DELETE_STATUS 0x8B80
298#define GL_LINK_STATUS 0x8B82
299#define GL_VALIDATE_STATUS 0x8B83
300#define GL_ATTACHED_SHADERS 0x8B85
301#define GL_ACTIVE_UNIFORMS 0x8B86
302#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
303#define GL_ACTIVE_ATTRIBUTES 0x8B89
304#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
305#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
306#define GL_CURRENT_PROGRAM 0x8B8D
307
308/* StencilFunction */
309#define GL_NEVER 0x0200
310#define GL_LESS 0x0201
311#define GL_EQUAL 0x0202
312#define GL_LEQUAL 0x0203
313#define GL_GREATER 0x0204
314#define GL_NOTEQUAL 0x0205
315#define GL_GEQUAL 0x0206
316#define GL_ALWAYS 0x0207
317
318/* StencilOp */
319/* GL_ZERO */
320#define GL_KEEP 0x1E00
321#define GL_REPLACE 0x1E01
322#define GL_INCR 0x1E02
323#define GL_DECR 0x1E03
324#define GL_INVERT 0x150A
325#define GL_INCR_WRAP 0x8507
326#define GL_DECR_WRAP 0x8508
327
328/* StringName */
329#define GL_VENDOR 0x1F00
330#define GL_RENDERER 0x1F01
331#define GL_VERSION 0x1F02
332#define GL_EXTENSIONS 0x1F03
333
334/* TextureMagFilter */
335#define GL_NEAREST 0x2600
336#define GL_LINEAR 0x2601
337
338/* TextureMinFilter */
339/* GL_NEAREST */
340/* GL_LINEAR */
341#define GL_NEAREST_MIPMAP_NEAREST 0x2700
342#define GL_LINEAR_MIPMAP_NEAREST 0x2701
343#define GL_NEAREST_MIPMAP_LINEAR 0x2702
344#define GL_LINEAR_MIPMAP_LINEAR 0x2703
345
346/* TextureParameterName */
347#define GL_TEXTURE_MAG_FILTER 0x2800
348#define GL_TEXTURE_MIN_FILTER 0x2801
349#define GL_TEXTURE_WRAP_S 0x2802
350#define GL_TEXTURE_WRAP_T 0x2803
351
352/* TextureTarget */
353/* GL_TEXTURE_2D */
354#define GL_TEXTURE 0x1702
355
356#define GL_TEXTURE_CUBE_MAP 0x8513
357#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
358#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
359#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
360#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
361#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
362#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
363#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
364#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
365
366/* TextureUnit */
367#define GL_TEXTURE0 0x84C0
368#define GL_TEXTURE1 0x84C1
369#define GL_TEXTURE2 0x84C2
370#define GL_TEXTURE3 0x84C3
371#define GL_TEXTURE4 0x84C4
372#define GL_TEXTURE5 0x84C5
373#define GL_TEXTURE6 0x84C6
374#define GL_TEXTURE7 0x84C7
375#define GL_TEXTURE8 0x84C8
376#define GL_TEXTURE9 0x84C9
377#define GL_TEXTURE10 0x84CA
378#define GL_TEXTURE11 0x84CB
379#define GL_TEXTURE12 0x84CC
380#define GL_TEXTURE13 0x84CD
381#define GL_TEXTURE14 0x84CE
382#define GL_TEXTURE15 0x84CF
383#define GL_TEXTURE16 0x84D0
384#define GL_TEXTURE17 0x84D1
385#define GL_TEXTURE18 0x84D2
386#define GL_TEXTURE19 0x84D3
387#define GL_TEXTURE20 0x84D4
388#define GL_TEXTURE21 0x84D5
389#define GL_TEXTURE22 0x84D6
390#define GL_TEXTURE23 0x84D7
391#define GL_TEXTURE24 0x84D8
392#define GL_TEXTURE25 0x84D9
393#define GL_TEXTURE26 0x84DA
394#define GL_TEXTURE27 0x84DB
395#define GL_TEXTURE28 0x84DC
396#define GL_TEXTURE29 0x84DD
397#define GL_TEXTURE30 0x84DE
398#define GL_TEXTURE31 0x84DF
399#define GL_ACTIVE_TEXTURE 0x84E0
400
401/* TextureWrapMode */
402#define GL_REPEAT 0x2901
403#define GL_CLAMP_TO_EDGE 0x812F
404#define GL_MIRRORED_REPEAT 0x8370
405
406/* Uniform Types */
407#define GL_FLOAT_VEC2 0x8B50
408#define GL_FLOAT_VEC3 0x8B51
409#define GL_FLOAT_VEC4 0x8B52
410#define GL_INT_VEC2 0x8B53
411#define GL_INT_VEC3 0x8B54
412#define GL_INT_VEC4 0x8B55
413#define GL_BOOL 0x8B56
414#define GL_BOOL_VEC2 0x8B57
415#define GL_BOOL_VEC3 0x8B58
416#define GL_BOOL_VEC4 0x8B59
417#define GL_FLOAT_MAT2 0x8B5A
418#define GL_FLOAT_MAT3 0x8B5B
419#define GL_FLOAT_MAT4 0x8B5C
420#define GL_SAMPLER_2D 0x8B5E
421#define GL_SAMPLER_CUBE 0x8B60
422
423/* Vertex Arrays */
424#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
425#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
426#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
427#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
428#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
429#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
430#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
431
432/* Read Format */
433#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
434#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
435
436/* Shader Source */
437#define GL_COMPILE_STATUS 0x8B81
438#define GL_INFO_LOG_LENGTH 0x8B84
439#define GL_SHADER_SOURCE_LENGTH 0x8B88
440#define GL_SHADER_COMPILER 0x8DFA
441
442/* Shader Binary */
443#define GL_SHADER_BINARY_FORMATS 0x8DF8
444#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
445
446/* Shader Precision-Specified Types */
447#define GL_LOW_FLOAT 0x8DF0
448#define GL_MEDIUM_FLOAT 0x8DF1
449#define GL_HIGH_FLOAT 0x8DF2
450#define GL_LOW_INT 0x8DF3
451#define GL_MEDIUM_INT 0x8DF4
452#define GL_HIGH_INT 0x8DF5
453
454/* Framebuffer Object. */
455#define GL_FRAMEBUFFER 0x8D40
456#define GL_RENDERBUFFER 0x8D41
457
458#define GL_RGBA4 0x8056
459#define GL_RGB5_A1 0x8057
460#define GL_RGB565 0x8D62
461#define GL_DEPTH_COMPONENT16 0x81A5
462#define GL_STENCIL_INDEX 0x1901
463#define GL_STENCIL_INDEX8 0x8D48
464
465#define GL_RENDERBUFFER_WIDTH 0x8D42
466#define GL_RENDERBUFFER_HEIGHT 0x8D43
467#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
468#define GL_RENDERBUFFER_RED_SIZE 0x8D50
469#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
470#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
471#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
472#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
473#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
474
475#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
476#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
477#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
478#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
479
480#define GL_COLOR_ATTACHMENT0 0x8CE0
481#define GL_DEPTH_ATTACHMENT 0x8D00
482#define GL_STENCIL_ATTACHMENT 0x8D20
483
484#define GL_NONE 0
485
486#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
487#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
488#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
489#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
490#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
491
492#define GL_FRAMEBUFFER_BINDING 0x8CA6
493#define GL_RENDERBUFFER_BINDING 0x8CA7
494#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
495
496#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
497
498/*-------------------------------------------------------------------------
499 * GL core functions.
500 *-----------------------------------------------------------------------*/
501
502GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
503GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
504GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
505GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
506GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
507GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
508GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
509GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
510GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode );
511GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
512GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
513GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
514GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
515GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
516GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target);
517GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
518GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
519GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth);
520GL_APICALL void GL_APIENTRY glClearStencil (GLint s);
521GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
522GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader);
523GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
524GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
525GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
526GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
527GL_APICALL GLuint GL_APIENTRY glCreateProgram (void);
528GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type);
529GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
530GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers);
531GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
532GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program);
533GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
534GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader);
535GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);
536GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
537GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
538GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
539GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
540GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
541GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index);
542GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
543GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
544GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
545GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index);
546GL_APICALL void GL_APIENTRY glFinish (void);
547GL_APICALL void GL_APIENTRY glFlush (void);
548GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
549GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
550GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode);
551GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers);
552GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);
553GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers);
554GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
555GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
556GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
557GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
558GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
559GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
560GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
561GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
562GL_APICALL GLenum GL_APIENTRY glGetError (void);
563GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params);
564GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
565GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params);
566GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params);
567GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
568GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
569GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
570GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
571GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
572GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
573GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name);
574GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
575GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
576GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
577GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
578GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
579GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
580GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
581GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
582GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode);
583GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
584GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
585GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
586GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program);
587GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
588GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader);
589GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture);
590GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width);
591GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program);
592GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
593GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
594GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
595GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void);
596GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
597GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
598GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
599GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
600GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
601GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
602GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
603GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
604GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
605GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
606GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
607GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
608GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
609GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
610GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
611GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
612GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
613GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x);
614GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
615GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x);
616GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v);
617GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y);
618GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
619GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y);
620GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v);
621GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
622GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
623GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z);
624GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v);
625GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
626GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
627GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
628GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v);
629GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
630GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
631GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
632GL_APICALL void GL_APIENTRY glUseProgram (GLuint program);
633GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program);
634GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x);
635GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values);
636GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
637GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values);
638GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
639GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values);
640GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
641GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
642GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
643GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
644
645#ifdef __cplusplus
646}
647#endif
648
649#endif /* __gl2_h_ */
650