2.2. Data Definitions for libGL

This section defines global identifiers and their values that are associated with interfaces contained in libGL. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content.

These definitions are intended to supplement those provided in the referenced underlying specifications.

This specification uses ISO/IEC 9899 C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.

2.2.1. GL/gl.h


typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef void GLvoid;
typedef char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef int GLsizei;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;

#define GL_UNSIGNED_BYTE	0x1401
#define GL_SHORT	0x1402
#define GL_UNSIGNED_SHORT	0x1403
#define GL_INT	0x1404
#define GL_UNSIGNED_INT	0x1405
#define GL_FLOAT	0x1406
#define GL_2_BYTES	0x1407
#define GL_3_BYTES	0x1408
#define GL_4_BYTES	0x1409
#define GL_DOUBLE	0x140A

#define GL_POINTS	0x0000
#define GL_LINES	0x0001
#define GL_LINE_LOOP	0x0002
#define GL_LINE_STRIP	0x0003
#define GL_TRIANGLES	0x0004
#define GL_TRIANGLE_STRIP	0x0005
#define GL_TRIANGLE_FAN	0x0006
#define GL_QUADS	0x0007
#define GL_QUAD_STRIP	0x0008
#define GL_POLYGON	0x0009

#define GL_V2F	0x2A20
#define GL_V3F	0x2A21
#define GL_C4UB_V2F	0x2A22
#define GL_C4UB_V3F	0x2A23
#define GL_C3F_V3F	0x2A24
#define GL_N3F_V3F	0x2A25
#define GL_C4F_N3F_V3F	0x2A26
#define GL_T2F_V3F	0x2A27
#define GL_T4F_V4F	0x2A28
#define GL_T2F_C4UB_V3F	0x2A29
#define GL_T2F_C3F_V3F	0x2A2A
#define GL_T2F_N3F_V3F	0x2A2B
#define GL_T2F_C4F_N3F_V3F	0x2A2C
#define GL_T4F_C4F_N3F_V4F	0x2A2D
#define GL_VERTEX_ARRAY	0x8074
#define GL_NORMAL_ARRAY	0x8075
#define GL_COLOR_ARRAY	0x8076
#define GL_INDEX_ARRAY	0x8077
#define GL_TEXTURE_COORD_ARRAY	0x8078
#define GL_EDGE_FLAG_ARRAY	0x8079
#define GL_VERTEX_ARRAY_SIZE	0x807A
#define GL_VERTEX_ARRAY_TYPE	0x807B
#define GL_VERTEX_ARRAY_STRIDE	0x807C
#define GL_NORMAL_ARRAY_TYPE	0x807E
#define GL_NORMAL_ARRAY_STRIDE	0x807F
#define GL_COLOR_ARRAY_SIZE	0x8081
#define GL_COLOR_ARRAY_TYPE	0x8082
#define GL_COLOR_ARRAY_STRIDE	0x8083
#define GL_INDEX_ARRAY_TYPE	0x8085
#define GL_INDEX_ARRAY_STRIDE	0x8086
#define GL_TEXTURE_COORD_ARRAY_SIZE	0x8088
#define GL_TEXTURE_COORD_ARRAY_TYPE	0x8089
#define GL_TEXTURE_COORD_ARRAY_STRIDE	0x808A
#define GL_EDGE_FLAG_ARRAY_STRIDE	0x808C
#define GL_VERTEX_ARRAY_POINTER	0x808E
#define GL_NORMAL_ARRAY_POINTER	0x808F
#define GL_COLOR_ARRAY_POINTER	0x8090
#define GL_INDEX_ARRAY_POINTER	0x8091
#define GL_TEXTURE_COORD_ARRAY_POINTER	0x8092

#define GL_MATRIX_MODE	0x0BA0
#define GL_MODELVIEW	0x1700
#define GL_PROJECTION	0x1701
#define GL_TEXTURE	0x1702

2.2.2. GL/glx.h


typedef struct __GLXcontextRec *GLXContext;
typedef struct __GLXFBConfigRec *GLXFBConfig;
typedef XID GLXContextID;
typedef XID GLXPixmap;
typedef XID GLXDrawable;
typedef XID GLXPbuffer;
typedef XID GLXWindow;