{-# LANGUAGE NoImplicitPrelude #-}

{-|
The following resources were used in the making of this module:

  * <http://www.jwz.org/xscreensaver/glfns.txt>

  * <http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&printTitle=Forward_compatible_OpenGL_3.0_defines&entry=3398275422>
-}
module Graphics.Rendering.OpenGL.Raw.Core21
       ( -- * Functions
         glActiveTexture
       , glAttachShader
       , glBeginQuery
       , glBindAttribLocation
       , glBindBuffer
       , glBindTexture
       , glBlendColor
       , glBlendEquation
       , glBlendEquationSeparate
       , glBlendFunc
       , glBlendFuncSeparate
       , glBufferData
       , glBufferSubData
       , glClear
       , glClearColor
       , glClearDepth
       , glClearStencil
       , glColorMask
       , glCompileShader
       , glCompressedTexImage1D
       , glCompressedTexImage2D
       , glCompressedTexImage3D
       , glCompressedTexSubImage1D
       , glCompressedTexSubImage2D
       , glCompressedTexSubImage3D
       , glCopyTexImage1D
       , glCopyTexImage2D
       , glCopyTexSubImage1D
       , glCopyTexSubImage2D
       , glCopyTexSubImage3D
       , glCreateProgram
       , glCreateShader
       , glCullFace
       , glDeleteBuffers
       , glDeleteProgram
       , glDeleteQueries
       , glDeleteShader
       , glDeleteTextures
       , glDepthFunc
       , glDepthMask
       , glDepthRange
       , glDetachShader
       , glDisable
       , glDisableVertexAttribArray
       , glDrawArrays
       , glDrawBuffer
       , glDrawBuffers
       , glDrawElements
       , glDrawRangeElements
       , glEnable
       , glEnableVertexAttribArray
       , glEndQuery
       , glFinish
       , glFlush
       , glFrontFace
       , glGenBuffers
       , glGenQueries
       , glGenTextures
       , glGetActiveAttrib
       , glGetActiveUniform
       , glGetAttachedShaders
       , glGetAttribLocation
       , glGetBooleanv
       , glGetBufferParameteriv
       , glGetBufferPointerv
       , glGetBufferSubData
       , glGetCompressedTexImage
       , glGetDoublev
       , glGetError
       , glGetFloatv
       , glGetIntegerv
       , glGetProgramInfoLog
       , glGetProgramiv
       , glGetQueryiv
       , glGetShaderInfoLog
       , glGetShaderSource
       , glGetShaderiv
       , glGetString
       , glGetTexImage
       , glGetTexParameterfv
       , glGetTexParameteriv
       , glGetUniformLocation
       , glGetUniformfv
       , glGetUniformiv
       , glGetVertexAttribPointerv
       , glGetVertexAttribfv
       , glGetVertexAttribiv
       , glHint
       , glIsBuffer
       , glIsEnabled
       , glIsProgram
       , glIsQuery
       , glIsShader
       , glIsTexture
       , glLineWidth
       , glLinkProgram
       , glLogicOp
       , glMapBuffer
       , glMultiDrawArrays
       , glMultiDrawElements
       , glPixelStorei
       , glPointParameterf
       , glPointParameterfv
       , glPointSize
       , glPolygonMode
       , glPolygonOffset
       , glReadBuffer
       , glReadPixels
       , glSampleCoverage
       , glScissor
       , glShaderSource
       , glStencilFunc
       , glStencilFuncSeparate
       , glStencilMask
       , glStencilMaskSeparate
       , glStencilOp
       , glStencilOpSeparate
       , glTexImage1D
       , glTexImage2D
       , glTexImage3D
       , glTexParameterf
       , glTexParameterfv
       , glTexParameteri
       , glTexParameteriv
       , glTexSubImage1D
       , glTexSubImage2D
       , glTexSubImage3D
       , glUniform1f
       , glUniform1fv
       , glUniform1i
       , glUniform1iv
       , glUniform2f
       , glUniform2fv
       , glUniform2i
       , glUniform2iv
       , glUniform3f
       , glUniform3fv
       , glUniform3i
       , glUniform3iv
       , glUniform4f
       , glUniform4fv
       , glUniform4i
       , glUniform4iv
       , glUnmapBuffer
       , glUseProgram
       , glValidateProgram
       , glVertexAttrib1f
       , glVertexAttrib1fv
       , glVertexAttrib2f
       , glVertexAttrib2fv
       , glVertexAttrib3f
       , glVertexAttrib3fv
       , glVertexAttrib4f
       , glVertexAttrib4fv
       , glVertexAttribPointer
       , glViewport
         -- * Constants
       , gl_FALSE
       , gl_TRUE
       , gl_ARRAY_BUFFER
       , gl_BUFFER_ACCESS
       , gl_BUFFER_MAPPED
       , gl_BUFFER_MAP_POINTER
       , gl_BUFFER_SIZE
       , gl_BUFFER_USAGE
       , gl_DYNAMIC_COPY
       , gl_DYNAMIC_DRAW
       , gl_DYNAMIC_READ
       , gl_ELEMENT_ARRAY_BUFFER
       , gl_PIXEL_PACK_BUFFER
       , gl_PIXEL_UNPACK_BUFFER
       , gl_READ_ONLY
       , gl_READ_WRITE
       , gl_STATIC_COPY
       , gl_STATIC_DRAW
       , gl_STATIC_READ
       , gl_STREAM_COPY
       , gl_STREAM_DRAW
       , gl_STREAM_READ
       , gl_WRITE_ONLY
       , gl_BOOL
       , gl_BOOL_VEC2
       , gl_BOOL_VEC3
       , gl_BOOL_VEC4
       , gl_BYTE
       , gl_DOUBLE
       , gl_FLOAT
       , gl_FLOAT_MAT2
       , gl_FLOAT_MAT2x3
       , gl_FLOAT_MAT2x4
       , gl_FLOAT_MAT3
       , gl_FLOAT_MAT3x2
       , gl_FLOAT_MAT3x4
       , gl_FLOAT_MAT4
       , gl_FLOAT_MAT4x2
       , gl_FLOAT_MAT4x3
       , gl_FLOAT_VEC2
       , gl_FLOAT_VEC3
       , gl_FLOAT_VEC4
       , gl_INT
       , gl_INT_VEC2
       , gl_INT_VEC3
       , gl_INT_VEC4
       , gl_SAMPLER_1D
       , gl_SAMPLER_1D_SHADOW
       , gl_SAMPLER_2D
       , gl_SAMPLER_2D_SHADOW
       , gl_SAMPLER_3D
       , gl_SAMPLER_CUBE
       , gl_SHORT
       , gl_UNSIGNED_BYTE
       , gl_UNSIGNED_INT
       , gl_UNSIGNED_SHORT
       , gl_LINES
       , gl_LINE_LOOP
       , gl_LINE_STRIP
       , gl_MAX_ELEMENTS_INDICES
       , gl_MAX_ELEMENTS_VERTICES
       , gl_POINTS
       , gl_TRIANGLES
       , gl_TRIANGLE_FAN
       , gl_TRIANGLE_STRIP
       , gl_ALIASED_LINE_WIDTH_RANGE
       , gl_BACK
       , gl_CCW
       , gl_CLIP_DISTANCE0
       , gl_CLIP_DISTANCE1
       , gl_CLIP_DISTANCE2
       , gl_CLIP_DISTANCE3
       , gl_CLIP_DISTANCE4
       , gl_CLIP_DISTANCE5
       , gl_CULL_FACE
       , gl_CULL_FACE_MODE
       , gl_CW
       , gl_DONT_CARE
       , gl_FASTEST
       , gl_FILL
       , gl_FRAGMENT_SHADER_DERIVATIVE_HINT
       , gl_FRONT
       , gl_FRONT_AND_BACK
       , gl_FRONT_FACE
       , gl_LINE
       , gl_LINE_SMOOTH
       , gl_LINE_SMOOTH_HINT
       , gl_LINE_WIDTH
       , gl_LOWER_LEFT
       , gl_MAX_CLIP_DISTANCES
       , gl_MAX_VIEWPORT_DIMS
       , gl_MULTISAMPLE
       , gl_NICEST
       , gl_POINT
       , gl_POINT_FADE_THRESHOLD_SIZE
       , gl_POINT_SIZE
       , gl_POINT_SIZE_GRANULARITY
       , gl_POINT_SIZE_RANGE
       , gl_POLYGON_OFFSET_FACTOR
       , gl_POLYGON_OFFSET_FILL
       , gl_POLYGON_OFFSET_LINE
       , gl_POLYGON_OFFSET_POINT
       , gl_POLYGON_OFFSET_UNITS
       , gl_POLYGON_SMOOTH
       , gl_POLYGON_SMOOTH_HINT
       , gl_SAMPLES
       , gl_SAMPLE_ALPHA_TO_COVERAGE
       , gl_SAMPLE_ALPHA_TO_ONE
       , gl_SAMPLE_BUFFERS
       , gl_SAMPLE_COVERAGE
       , gl_SAMPLE_COVERAGE_INVERT
       , gl_SAMPLE_COVERAGE_VALUE
       , gl_SCISSOR_BOX
       , gl_SCISSOR_TEST
       , gl_SMOOTH_LINE_WIDTH_GRANULARITY
       , gl_SMOOTH_LINE_WIDTH_RANGE
       , gl_SMOOTH_POINT_SIZE_GRANULARITY
       , gl_SMOOTH_POINT_SIZE_RANGE
       , gl_TEXTURE_COMPRESSION_HINT
       , gl_UPPER_LEFT
       , gl_VERTEX_PROGRAM_POINT_SIZE
       , gl_VIEWPORT
       , gl_INVALID_ENUM
       , gl_INVALID_OPERATION
       , gl_INVALID_VALUE
       , gl_NO_ERROR
       , gl_OUT_OF_MEMORY
       , gl_ALPHA
       , gl_BGR
       , gl_BGRA
       , gl_COMPRESSED_RGB
       , gl_COMPRESSED_RGBA
       , gl_COMPRESSED_SRGB
       , gl_COMPRESSED_SRGB_ALPHA
       , gl_COMPRESSED_TEXTURE_FORMATS
       , gl_DEPTH_COMPONENT
       , gl_DEPTH_COMPONENT16
       , gl_DEPTH_COMPONENT24
       , gl_DEPTH_COMPONENT32
       , gl_NUM_COMPRESSED_TEXTURE_FORMATS
       , gl_R3_G3_B2
       , gl_RGB
       , gl_RGB10
       , gl_RGB10_A2
       , gl_RGB12
       , gl_RGB16
       , gl_RGB4
       , gl_RGB5
       , gl_RGB5_A1
       , gl_RGB8
       , gl_RGBA
       , gl_RGBA12
       , gl_RGBA16
       , gl_RGBA2
       , gl_RGBA4
       , gl_RGBA8
       , gl_SRGB
       , gl_SRGB8
       , gl_SRGB8_ALPHA8
       , gl_SRGB_ALPHA
       , gl_UNSIGNED_BYTE_2_3_3_REV
       , gl_UNSIGNED_BYTE_3_3_2
       , gl_UNSIGNED_INT_10_10_10_2
       , gl_UNSIGNED_INT_2_10_10_10_REV
       , gl_UNSIGNED_INT_8_8_8_8
       , gl_UNSIGNED_INT_8_8_8_8_REV
       , gl_UNSIGNED_SHORT_1_5_5_5_REV
       , gl_UNSIGNED_SHORT_4_4_4_4
       , gl_UNSIGNED_SHORT_4_4_4_4_REV
       , gl_UNSIGNED_SHORT_5_5_5_1
       , gl_UNSIGNED_SHORT_5_6_5
       , gl_UNSIGNED_SHORT_5_6_5_REV
       , gl_BACK_LEFT
       , gl_BACK_RIGHT
       , gl_COLOR
       , gl_COLOR_BUFFER_BIT
       , gl_COLOR_CLEAR_VALUE
       , gl_DEPTH
       , gl_DEPTH_BUFFER_BIT
       , gl_DEPTH_CLEAR_VALUE
       , gl_DRAW_BUFFER
       , gl_DRAW_BUFFER0
       , gl_DRAW_BUFFER1
       , gl_DRAW_BUFFER10
       , gl_DRAW_BUFFER11
       , gl_DRAW_BUFFER12
       , gl_DRAW_BUFFER13
       , gl_DRAW_BUFFER14
       , gl_DRAW_BUFFER15
       , gl_DRAW_BUFFER2
       , gl_DRAW_BUFFER3
       , gl_DRAW_BUFFER4
       , gl_DRAW_BUFFER5
       , gl_DRAW_BUFFER6
       , gl_DRAW_BUFFER7
       , gl_DRAW_BUFFER8
       , gl_DRAW_BUFFER9
       , gl_FRONT_LEFT
       , gl_FRONT_RIGHT
       , gl_LEFT
       , gl_MAX_DRAW_BUFFERS
       , gl_PACK_ALIGNMENT
       , gl_PACK_IMAGE_HEIGHT
       , gl_PACK_LSB_FIRST
       , gl_PACK_ROW_LENGTH
       , gl_PACK_SKIP_IMAGES
       , gl_PACK_SKIP_PIXELS
       , gl_PACK_SKIP_ROWS
       , gl_PACK_SWAP_BYTES
       , gl_READ_BUFFER
       , gl_RIGHT
       , gl_STENCIL
       , gl_STENCIL_BUFFER_BIT
       , gl_STENCIL_CLEAR_VALUE
       , gl_STENCIL_INDEX
       , gl_UNPACK_ALIGNMENT
       , gl_UNPACK_IMAGE_HEIGHT
       , gl_UNPACK_LSB_FIRST
       , gl_UNPACK_ROW_LENGTH
       , gl_UNPACK_SKIP_IMAGES
       , gl_UNPACK_SKIP_PIXELS
       , gl_UNPACK_SKIP_ROWS
       , gl_UNPACK_SWAP_BYTES
       , gl_DITHER
       , gl_DOUBLEBUFFER
       , gl_MAX_TEXTURE_LOD_BIAS
       , gl_MAX_VARYING_FLOATS
       , gl_STEREO
       , gl_ALWAYS
       , gl_AND
       , gl_AND_INVERTED
       , gl_AND_REVERSE
       , gl_BLEND
       , gl_BLEND_COLOR
       , gl_BLEND_DST_ALPHA
       , gl_BLEND_DST_RGB
       , gl_BLEND_EQUATION_ALPHA
       , gl_BLEND_EQUATION_RGB
       , gl_BLEND_SRC_ALPHA
       , gl_BLEND_SRC_RGB
       , gl_CLEAR
       , gl_COLOR_LOGIC_OP
       , gl_COLOR_WRITEMASK
       , gl_COPY
       , gl_COPY_INVERTED
       , gl_DECR
       , gl_DECR_WRAP
       , gl_DEPTH_FUNC
       , gl_DEPTH_RANGE
       , gl_DEPTH_TEST
       , gl_DEPTH_WRITEMASK
       , gl_DST_ALPHA
       , gl_DST_COLOR
       , gl_EQUAL
       , gl_EQUIV
       , gl_FUNC_ADD
       , gl_FUNC_REVERSE_SUBTRACT
       , gl_FUNC_SUBTRACT
       , gl_GEQUAL
       , gl_GREATER
       , gl_INCR
       , gl_INCR_WRAP
       , gl_INVERT
       , gl_KEEP
       , gl_LEQUAL
       , gl_LESS
       , gl_MAX
       , gl_MIN
       , gl_NAND
       , gl_NEVER
       , gl_NOOP
       , gl_NOR
       , gl_NOTEQUAL
       , gl_ONE
       , gl_ONE_MINUS_CONSTANT_ALPHA
       , gl_ONE_MINUS_CONSTANT_COLOR
       , gl_ONE_MINUS_DST_ALPHA
       , gl_ONE_MINUS_DST_COLOR
       , gl_ONE_MINUS_SRC_ALPHA
       , gl_ONE_MINUS_SRC_COLOR
       , gl_OR
       , gl_OR_INVERTED
       , gl_OR_REVERSE
       , gl_REPLACE
       , gl_SET
       , gl_SRC_ALPHA
       , gl_SRC_ALPHA_SATURATE
       , gl_SRC_COLOR
       , gl_STENCIL_BACK_FAIL
       , gl_STENCIL_BACK_FUNC
       , gl_STENCIL_BACK_PASS_DEPTH_FAIL
       , gl_STENCIL_BACK_PASS_DEPTH_PASS
       , gl_STENCIL_BACK_REF
       , gl_STENCIL_BACK_VALUE_MASK
       , gl_STENCIL_BACK_WRITEMASK
       , gl_STENCIL_FAIL
       , gl_STENCIL_FUNC
       , gl_STENCIL_PASS_DEPTH_FAIL
       , gl_STENCIL_PASS_DEPTH_PASS
       , gl_STENCIL_REF
       , gl_STENCIL_TEST
       , gl_STENCIL_VALUE_MASK
       , gl_STENCIL_WRITEMASK
       , gl_XOR
       , gl_ZERO
       , gl_CURRENT_QUERY
       , gl_QUERY_COUNTER_BITS
       , gl_QUERY_RESULT
       , gl_QUERY_RESULT_AVAILABLE
       , gl_SAMPLES_PASSED
       , gl_ACTIVE_ATTRIBUTES
       , gl_ACTIVE_ATTRIBUTE_MAX_LENGTH
       , gl_ACTIVE_UNIFORMS
       , gl_ACTIVE_UNIFORM_MAX_LENGTH
       , gl_ATTACHED_SHADERS
       , gl_COMPILE_STATUS
       , gl_CURRENT_PROGRAM
       , gl_DELETE_STATUS
       , gl_FRAGMENT_SHADER
       , gl_INFO_LOG_LENGTH
       , gl_LINK_STATUS
       , gl_SHADER_SOURCE_LENGTH
       , gl_SHADER_TYPE
       , gl_VALIDATE_STATUS
       , gl_VERTEX_SHADER
       , gl_MAX_FRAGMENT_UNIFORM_COMPONENTS
       , gl_MAX_VERTEX_UNIFORM_COMPONENTS
       , gl_RENDERER
       , gl_SHADING_LANGUAGE_VERSION
       , gl_VENDOR
       , gl_VERSION
       , gl_ACTIVE_TEXTURE
       , gl_BLUE
       , gl_CLAMP_TO_EDGE
       , gl_COMPARE_REF_TO_TEXTURE
       , gl_GREEN
       , gl_LINEAR
       , gl_LINEAR_MIPMAP_LINEAR
       , gl_LINEAR_MIPMAP_NEAREST
       , gl_MAX_3D_TEXTURE_SIZE
       , gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS
       , gl_MAX_CUBE_MAP_TEXTURE_SIZE
       , gl_MAX_TEXTURE_IMAGE_UNITS
       , gl_MAX_TEXTURE_SIZE
       , gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS
       , gl_MIRRORED_REPEAT
       , gl_NEAREST
       , gl_NEAREST_MIPMAP_LINEAR
       , gl_NEAREST_MIPMAP_NEAREST
       , gl_NONE
       , gl_PROXY_TEXTURE_1D
       , gl_PROXY_TEXTURE_2D
       , gl_PROXY_TEXTURE_3D
       , gl_PROXY_TEXTURE_CUBE_MAP
       , gl_RED
       , gl_REPEAT
       , gl_TEXTURE
       , gl_TEXTURE0
       , gl_TEXTURE1
       , gl_TEXTURE2
       , gl_TEXTURE3
       , gl_TEXTURE4
       , gl_TEXTURE5
       , gl_TEXTURE6
       , gl_TEXTURE7
       , gl_TEXTURE8
       , gl_TEXTURE9
       , gl_TEXTURE10
       , gl_TEXTURE11
       , gl_TEXTURE12
       , gl_TEXTURE13
       , gl_TEXTURE14
       , gl_TEXTURE15
       , gl_TEXTURE16
       , gl_TEXTURE17
       , gl_TEXTURE18
       , gl_TEXTURE19
       , gl_TEXTURE20
       , gl_TEXTURE21
       , gl_TEXTURE22
       , gl_TEXTURE23
       , gl_TEXTURE24
       , gl_TEXTURE25
       , gl_TEXTURE26
       , gl_TEXTURE27
       , gl_TEXTURE28
       , gl_TEXTURE29
       , gl_TEXTURE30
       , gl_TEXTURE31
       , gl_TEXTURE_1D
       , gl_TEXTURE_2D
       , gl_TEXTURE_3D
       , gl_TEXTURE_ALPHA_SIZE
       , gl_TEXTURE_BASE_LEVEL
       , gl_TEXTURE_BINDING_1D
       , gl_TEXTURE_BINDING_2D
       , gl_TEXTURE_BINDING_3D
       , gl_TEXTURE_BINDING_CUBE_MAP
       , gl_TEXTURE_BLUE_SIZE
       , gl_TEXTURE_COMPARE_FUNC
       , gl_TEXTURE_COMPARE_MODE
       , gl_TEXTURE_COMPRESSED
       , gl_TEXTURE_COMPRESSED_IMAGE_SIZE
       , gl_TEXTURE_CUBE_MAP
       , gl_TEXTURE_CUBE_MAP_NEGATIVE_X
       , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y
       , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z
       , gl_TEXTURE_CUBE_MAP_POSITIVE_X
       , gl_TEXTURE_CUBE_MAP_POSITIVE_Y
       , gl_TEXTURE_CUBE_MAP_POSITIVE_Z
       , gl_TEXTURE_DEPTH
       , gl_TEXTURE_DEPTH_SIZE
       , gl_TEXTURE_GREEN_SIZE
       , gl_TEXTURE_HEIGHT
       , gl_TEXTURE_INTERNAL_FORMAT
       , gl_TEXTURE_LOD_BIAS
       , gl_TEXTURE_MAG_FILTER
       , gl_TEXTURE_MAX_LEVEL
       , gl_TEXTURE_MAX_LOD
       , gl_TEXTURE_MIN_FILTER
       , gl_TEXTURE_MIN_LOD
       , gl_TEXTURE_RED_SIZE
       , gl_TEXTURE_WIDTH
       , gl_TEXTURE_WRAP_R
       , gl_TEXTURE_WRAP_S
       , gl_TEXTURE_WRAP_T
       , gl_VERTEX_ATTRIB_ARRAY_POINTER
       , gl_CURRENT_VERTEX_ATTRIB
       , gl_MAX_VERTEX_ATTRIBS
       , gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
       , gl_VERTEX_ATTRIB_ARRAY_ENABLED
       , gl_VERTEX_ATTRIB_ARRAY_NORMALIZED
       , gl_VERTEX_ATTRIB_ARRAY_SIZE
       , gl_VERTEX_ATTRIB_ARRAY_STRIDE
       , gl_VERTEX_ATTRIB_ARRAY_TYPE
         -- * Types
       , GLbitfield
       , GLboolean
       , GLbyte
       , GLchar
       , GLclampd
       , GLclampf
       , GLdouble
       , GLenum
       , GLfloat
       , GLint
       , GLintptr
       , GLshort
       , GLsizei
       , GLsizeiptr
       , GLubyte
       , GLuint
       , GLushort
       ) where       

import Graphics.Rendering.OpenGL.Raw.Core30
import Graphics.Rendering.OpenGL.Raw.Tokens