# Soya 3D
# Copyright (C) 2003-2004 Jean-Baptiste LAMY -- jiba@tuxfamily.org
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

ctypedef void (*_GLUfuncptr)()

cdef extern from "GL/glew.h":
  ctypedef unsigned int	  GLenum
  ctypedef unsigned char  GLboolean
  ctypedef unsigned int	  GLbitfield
  ctypedef void		        GLvoid
  ctypedef signed char    GLbyte
  ctypedef short		      GLshort
  ctypedef int		        GLint
  ctypedef unsigned char  GLubyte
  ctypedef unsigned short	GLushort
  ctypedef unsigned int	  GLuint
  ctypedef int		        GLsizei
  ctypedef float		      GLfloat
  ctypedef float		      GLclampf
  ctypedef double		      GLdouble
  ctypedef double		      GLclampd
  ctypedef char 		      GLchar
  ctypedef unsigned int   GLhandleARB
  
  int GL_FALSE
  int GL_TRUE
  int GL_BYTE
  int GL_UNSIGNED_BYTE
  int GL_SHORT
  int GL_UNSIGNED_SHORT
  int GL_INT
  int GL_UNSIGNED_INT
  int GL_FLOAT
  int GL_DOUBLE
  int GL_2_BYTES
  int GL_3_BYTES
  int GL_4_BYTES
  int GL_POINTS
  int GL_LINES
  int GL_LINE_LOOP
  int GL_LINE_STRIP
  int GL_TRIANGLES
  int GL_TRIANGLE_STRIP
  int GL_TRIANGLE_FAN
  int GL_QUADS
  int GL_QUAD_STRIP
  int GL_POLYGON
  int GL_VERTEX_ARRAY
  int GL_NORMAL_ARRAY
  int GL_COLOR_ARRAY
  int GL_INDEX_ARRAY
  int GL_TEXTURE_COORD_ARRAY
  int GL_EDGE_FLAG_ARRAY
  int GL_VERTEX_ARRAY_SIZE
  int GL_VERTEX_ARRAY_TYPE
  int GL_VERTEX_ARRAY_STRIDE
  int GL_NORMAL_ARRAY_TYPE
  int GL_NORMAL_ARRAY_STRIDE
  int GL_COLOR_ARRAY_SIZE
  int GL_COLOR_ARRAY_TYPE
  int GL_COLOR_ARRAY_STRIDE
  int GL_INDEX_ARRAY_TYPE
  int GL_INDEX_ARRAY_STRIDE
  int GL_TEXTURE_COORD_ARRAY_SIZE
  int GL_TEXTURE_COORD_ARRAY_TYPE
  int GL_TEXTURE_COORD_ARRAY_STRIDE
  int GL_EDGE_FLAG_ARRAY_STRIDE
  int GL_VERTEX_ARRAY_POINTER
  int GL_NORMAL_ARRAY_POINTER
  int GL_COLOR_ARRAY_POINTER
  int GL_INDEX_ARRAY_POINTER
  int GL_TEXTURE_COORD_ARRAY_POINTER
  int GL_EDGE_FLAG_ARRAY_POINTER
  int GL_V2F
  int GL_V3F
  int GL_C4UB_V2F
  int GL_C4UB_V3F
  int GL_C3F_V3F
  int GL_N3F_V3F
  int GL_C4F_N3F_V3F
  int GL_T2F_V3F
  int GL_T4F_V4F
  int GL_T2F_C4UB_V3F
  int GL_T2F_C3F_V3F
  int GL_T2F_N3F_V3F
  int GL_T2F_C4F_N3F_V3F
  int GL_T4F_C4F_N3F_V4F
  int GL_MATRIX_MODE
  int GL_MODELVIEW
  int GL_PROJECTION
  int GL_TEXTURE
  int GL_POINT_SMOOTH
  int GL_POINT_SIZE
  int GL_POINT_SIZE_GRANULARITY
  int GL_POINT_SIZE_RANGE
  int GL_LINE_SMOOTH
  int GL_LINE_STIPPLE
  int GL_LINE_STIPPLE_PATTERN
  int GL_LINE_STIPPLE_REPEAT
  int GL_LINE_WIDTH
  int GL_LINE_WIDTH_GRANULARITY
  int GL_LINE_WIDTH_RANGE
  int GL_POINT
  int GL_LINE
  int GL_FILL
  int GL_CW
  int GL_CCW
  int GL_FRONT
  int GL_BACK
  int GL_POLYGON_MODE
  int GL_POLYGON_SMOOTH
  int GL_POLYGON_STIPPLE
  int GL_EDGE_FLAG
  int GL_CULL_FACE
  int GL_CULL_FACE_MODE
  int GL_FRONT_FACE
  int GL_POLYGON_OFFSET_FACTOR
  int GL_POLYGON_OFFSET_UNITS
  int GL_POLYGON_OFFSET_POINT
  int GL_POLYGON_OFFSET_LINE
  int GL_POLYGON_OFFSET_FILL
  int GL_COMPILE
  int GL_COMPILE_AND_EXECUTE
  int GL_LIST_BASE
  int GL_LIST_INDEX
  int GL_LIST_MODE
  int GL_NEVER
  int GL_LESS
  int GL_EQUAL
  int GL_LEQUAL
  int GL_GREATER
  int GL_NOTEQUAL
  int GL_GEQUAL
  int GL_ALWAYS
  int GL_DEPTH_TEST
  int GL_DEPTH_BITS
  int GL_DEPTH_CLEAR_VALUE
  int GL_DEPTH_FUNC
  int GL_DEPTH_RANGE
  int GL_DEPTH_WRITEMASK
  int GL_DEPTH_COMPONENT
  int GL_LIGHTING
  int GL_LIGHT0
  int GL_LIGHT1
  int GL_LIGHT2
  int GL_LIGHT3
  int GL_LIGHT4
  int GL_LIGHT5
  int GL_LIGHT6
  int GL_LIGHT7
  int GL_SPOT_EXPONENT
  int GL_SPOT_CUTOFF
  int GL_CONSTANT_ATTENUATION
  int GL_LINEAR_ATTENUATION
  int GL_QUADRATIC_ATTENUATION
  int GL_AMBIENT
  int GL_DIFFUSE
  int GL_SPECULAR
  int GL_SHININESS
  int GL_EMISSION
  int GL_POSITION
  int GL_SPOT_DIRECTION
  int GL_AMBIENT_AND_DIFFUSE
  int GL_COLOR_INDEXES
  int GL_LIGHT_MODEL_TWO_SIDE
  int GL_LIGHT_MODEL_LOCAL_VIEWER
  int GL_LIGHT_MODEL_AMBIENT
  int GL_FRONT_AND_BACK
  int GL_SHADE_MODEL
  int GL_FLAT
  int GL_SMOOTH
  int GL_COLOR_MATERIAL
  int GL_COLOR_MATERIAL_FACE
  int GL_COLOR_MATERIAL_PARAMETER
  int GL_NORMALIZE
  int GL_CLIP_PLANE0
  int GL_CLIP_PLANE1
  int GL_CLIP_PLANE2
  int GL_CLIP_PLANE3
  int GL_CLIP_PLANE4
  int GL_CLIP_PLANE5
  int GL_ACCUM_RED_BITS
  int GL_ACCUM_GREEN_BITS
  int GL_ACCUM_BLUE_BITS
  int GL_ACCUM_ALPHA_BITS
  int GL_ACCUM_CLEAR_VALUE
  int GL_ACCUM
  int GL_ADD
  int GL_LOAD
  int GL_MULT
  int GL_RETURN
  int GL_ALPHA_TEST
  int GL_ALPHA_TEST_REF
  int GL_ALPHA_TEST_FUNC
  int GL_BLEND
  int GL_BLEND_SRC
  int GL_BLEND_DST
  int GL_ZERO
  int GL_ONE
  int GL_SRC_COLOR
  int GL_ONE_MINUS_SRC_COLOR
  int GL_SRC_ALPHA
  int GL_ONE_MINUS_SRC_ALPHA
  int GL_DST_ALPHA
  int GL_ONE_MINUS_DST_ALPHA
  int GL_DST_COLOR
  int GL_ONE_MINUS_DST_COLOR
  int GL_SRC_ALPHA_SATURATE
  int GL_CONSTANT_COLOR
  int GL_ONE_MINUS_CONSTANT_COLOR
  int GL_CONSTANT_ALPHA
  int GL_ONE_MINUS_CONSTANT_ALPHA
  int GL_FEEDBACK
  int GL_RENDER
  int GL_SELECT
  int GL_2D
  int GL_3D
  int GL_3D_COLOR
  int GL_3D_COLOR_TEXTURE
  int GL_4D_COLOR_TEXTURE
  int GL_POINT_TOKEN
  int GL_LINE_TOKEN
  int GL_LINE_RESET_TOKEN
  int GL_POLYGON_TOKEN
  int GL_BITMAP_TOKEN
  int GL_DRAW_PIXEL_TOKEN
  int GL_COPY_PIXEL_TOKEN
  int GL_PASS_THROUGH_TOKEN
  int GL_FEEDBACK_BUFFER_POINTER
  int GL_FEEDBACK_BUFFER_SIZE
  int GL_FEEDBACK_BUFFER_TYPE
  int GL_SELECTION_BUFFER_POINTER
  int GL_SELECTION_BUFFER_SIZE
  int GL_FOG
  int GL_FOG_MODE
  int GL_FOG_DENSITY
  int GL_FOG_COLOR
  int GL_FOG_INDEX
  int GL_FOG_START
  int GL_FOG_END
  int GL_LINEAR
  int GL_EXP
  int GL_EXP2
  int GL_LOGIC_OP
  int GL_INDEX_LOGIC_OP
  int GL_COLOR_LOGIC_OP
  int GL_LOGIC_OP_MODE
  int GL_CLEAR
  int GL_SET
  int GL_COPY
  int GL_COPY_INVERTED
  int GL_NOOP
  int GL_INVERT
  int GL_AND
  int GL_NAND
  int GL_OR
  int GL_NOR
  int GL_XOR
  int GL_EQUIV
  int GL_AND_REVERSE
  int GL_AND_INVERTED
  int GL_OR_REVERSE
  int GL_OR_INVERTED
  int GL_STENCIL_TEST
  int GL_STENCIL_WRITEMASK
  int GL_STENCIL_BITS
  int GL_STENCIL_FUNC
  int GL_STENCIL_VALUE_MASK
  int GL_STENCIL_REF
  int GL_STENCIL_FAIL
  int GL_STENCIL_PASS_DEPTH_PASS
  int GL_STENCIL_PASS_DEPTH_FAIL
  int GL_STENCIL_CLEAR_VALUE
  int GL_STENCIL_INDEX
  int GL_KEEP
  int GL_REPLACE
  int GL_INCR
  int GL_DECR
  int GL_NONE
  int GL_LEFT
  int GL_RIGHT
  int GL_FRONT_LEFT
  int GL_FRONT_RIGHT
  int GL_BACK_LEFT
  int GL_BACK_RIGHT
  int GL_AUX0
  int GL_AUX1
  int GL_AUX2
  int GL_AUX3
  int GL_COLOR_INDEX
  int GL_RED
  int GL_GREEN
  int GL_BLUE
  int GL_ALPHA
  int GL_LUMINANCE
  int GL_LUMINANCE_ALPHA
  int GL_ALPHA_BITS
  int GL_RED_BITS
  int GL_GREEN_BITS
  int GL_BLUE_BITS
  int GL_INDEX_BITS
  int GL_SUBPIXEL_BITS
  int GL_AUX_BUFFERS
  int GL_READ_BUFFER
  int GL_DRAW_BUFFER
  int GL_DOUBLEBUFFER
  int GL_STEREO
  int GL_BITMAP
  int GL_COLOR
  int GL_DEPTH
  int GL_STENCIL
  int GL_DITHER
  int GL_RGB
  int GL_RGBA
  int GL_MAX_LIST_NESTING
  int GL_MAX_ATTRIB_STACK_DEPTH
  int GL_MAX_MODELVIEW_STACK_DEPTH
  int GL_MAX_NAME_STACK_DEPTH
  int GL_MAX_PROJECTION_STACK_DEPTH
  int GL_MAX_TEXTURE_STACK_DEPTH
  int GL_MAX_EVAL_ORDER
  int GL_MAX_LIGHTS
  int GL_MAX_CLIP_PLANES
  int GL_MAX_TEXTURE_SIZE
  int GL_MAX_PIXEL_MAP_TABLE
  int GL_MAX_VIEWPORT_DIMS
  int GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
  int GL_ATTRIB_STACK_DEPTH
  int GL_CLIENT_ATTRIB_STACK_DEPTH
  int GL_COLOR_CLEAR_VALUE
  int GL_COLOR_WRITEMASK
  int GL_CURRENT_INDEX
  int GL_CURRENT_COLOR
  int GL_CURRENT_NORMAL
  int GL_CURRENT_RASTER_COLOR
  int GL_CURRENT_RASTER_DISTANCE
  int GL_CURRENT_RASTER_INDEX
  int GL_CURRENT_RASTER_POSITION
  int GL_CURRENT_RASTER_TEXTURE_COORDS
  int GL_CURRENT_RASTER_POSITION_VALID
  int GL_CURRENT_TEXTURE_COORDS
  int GL_INDEX_CLEAR_VALUE
  int GL_INDEX_MODE
  int GL_INDEX_WRITEMASK
  int GL_MODELVIEW_MATRIX
  int GL_MODELVIEW_STACK_DEPTH
  int GL_NAME_STACK_DEPTH
  int GL_PROJECTION_MATRIX
  int GL_PROJECTION_STACK_DEPTH
  int GL_RENDER_MODE
  int GL_RGBA_MODE
  int GL_TEXTURE_MATRIX
  int GL_TEXTURE_STACK_DEPTH
  int GL_VIEWPORT
  int GL_AUTO_NORMAL
  int GL_MAP1_COLOR_4
  int GL_MAP1_GRID_DOMAIN
  int GL_MAP1_GRID_SEGMENTS
  int GL_MAP1_INDEX
  int GL_MAP1_NORMAL
  int GL_MAP1_TEXTURE_COORD_1
  int GL_MAP1_TEXTURE_COORD_2
  int GL_MAP1_TEXTURE_COORD_3
  int GL_MAP1_TEXTURE_COORD_4
  int GL_MAP1_VERTEX_3
  int GL_MAP1_VERTEX_4
  int GL_MAP2_COLOR_4
  int GL_MAP2_GRID_DOMAIN
  int GL_MAP2_GRID_SEGMENTS
  int GL_MAP2_INDEX
  int GL_MAP2_NORMAL
  int GL_MAP2_TEXTURE_COORD_1
  int GL_MAP2_TEXTURE_COORD_2
  int GL_MAP2_TEXTURE_COORD_3
  int GL_MAP2_TEXTURE_COORD_4
  int GL_MAP2_VERTEX_3
  int GL_MAP2_VERTEX_4
  int GL_COEFF
  int GL_DOMAIN
  int GL_ORDER
  int GL_FOG_HINT
  int GL_LINE_SMOOTH_HINT
  int GL_PERSPECTIVE_CORRECTION_HINT
  int GL_POINT_SMOOTH_HINT
  int GL_POLYGON_SMOOTH_HINT
  int GL_DONT_CARE
  int GL_FASTEST
  int GL_NICEST
  int GL_SCISSOR_TEST
  int GL_SCISSOR_BOX
  int GL_MAP_COLOR
  int GL_MAP_STENCIL
  int GL_INDEX_SHIFT
  int GL_INDEX_OFFSET
  int GL_RED_SCALE
  int GL_RED_BIAS
  int GL_GREEN_SCALE
  int GL_GREEN_BIAS
  int GL_BLUE_SCALE
  int GL_BLUE_BIAS
  int GL_ALPHA_SCALE
  int GL_ALPHA_BIAS
  int GL_DEPTH_SCALE
  int GL_DEPTH_BIAS
  int GL_PIXEL_MAP_S_TO_S_SIZE
  int GL_PIXEL_MAP_I_TO_I_SIZE
  int GL_PIXEL_MAP_I_TO_R_SIZE
  int GL_PIXEL_MAP_I_TO_G_SIZE
  int GL_PIXEL_MAP_I_TO_B_SIZE
  int GL_PIXEL_MAP_I_TO_A_SIZE
  int GL_PIXEL_MAP_R_TO_R_SIZE
  int GL_PIXEL_MAP_G_TO_G_SIZE
  int GL_PIXEL_MAP_B_TO_B_SIZE
  int GL_PIXEL_MAP_A_TO_A_SIZE
  int GL_PIXEL_MAP_S_TO_S
  int GL_PIXEL_MAP_I_TO_I
  int GL_PIXEL_MAP_I_TO_R
  int GL_PIXEL_MAP_I_TO_G
  int GL_PIXEL_MAP_I_TO_B
  int GL_PIXEL_MAP_I_TO_A
  int GL_PIXEL_MAP_R_TO_R
  int GL_PIXEL_MAP_G_TO_G
  int GL_PIXEL_MAP_B_TO_B
  int GL_PIXEL_MAP_A_TO_A
  int GL_PACK_ALIGNMENT
  int GL_PACK_LSB_FIRST
  int GL_PACK_ROW_LENGTH
  int GL_PACK_SKIP_PIXELS
  int GL_PACK_SKIP_ROWS
  int GL_PACK_SWAP_BYTES
  int GL_UNPACK_ALIGNMENT
  int GL_UNPACK_LSB_FIRST
  int GL_UNPACK_ROW_LENGTH
  int GL_UNPACK_SKIP_PIXELS
  int GL_UNPACK_SKIP_ROWS
  int GL_UNPACK_SWAP_BYTES
  int GL_ZOOM_X
  int GL_ZOOM_Y
  int GL_TEXTURE_ENV
  int GL_TEXTURE_ENV_MODE
  int GL_TEXTURE_1D
  int GL_TEXTURE_2D
  int GL_TEXTURE_WRAP_S
  int GL_TEXTURE_WRAP_T
  int GL_TEXTURE_MAG_FILTER
  int GL_TEXTURE_MIN_FILTER
  int GL_TEXTURE_ENV_COLOR
  int GL_TEXTURE_GEN_S
  int GL_TEXTURE_GEN_T
  int GL_TEXTURE_GEN_MODE
  int GL_TEXTURE_BORDER_COLOR
  int GL_TEXTURE_WIDTH
  int GL_TEXTURE_HEIGHT
  int GL_TEXTURE_BORDER
  int GL_TEXTURE_COMPONENTS
  int GL_TEXTURE_RED_SIZE
  int GL_TEXTURE_GREEN_SIZE
  int GL_TEXTURE_BLUE_SIZE
  int GL_TEXTURE_ALPHA_SIZE
  int GL_TEXTURE_LUMINANCE_SIZE
  int GL_TEXTURE_INTENSITY_SIZE
  int GL_NEAREST_MIPMAP_NEAREST
  int GL_NEAREST_MIPMAP_LINEAR
  int GL_LINEAR_MIPMAP_NEAREST
  int GL_LINEAR_MIPMAP_LINEAR
  int GL_OBJECT_LINEAR
  int GL_OBJECT_PLANE
  int GL_EYE_LINEAR
  int GL_EYE_PLANE
  int GL_SPHERE_MAP
  int GL_DECAL
  int GL_MODULATE
  int GL_NEAREST
  int GL_REPEAT
  int GL_CLAMP
  int GL_S
  int GL_T
  int GL_R
  int GL_Q
  int GL_TEXTURE_GEN_R
  int GL_TEXTURE_GEN_Q
  int GL_VENDOR
  int GL_RENDERER
  int GL_VERSION
  int GL_EXTENSIONS
  int GL_NO_ERROR
  int GL_INVALID_VALUE
  int GL_INVALID_ENUM
  int GL_INVALID_OPERATION
  int GL_STACK_OVERFLOW
  int GL_STACK_UNDERFLOW
  int GL_OUT_OF_MEMORY
  int GL_CURRENT_BIT
  int GL_POINT_BIT
  int GL_LINE_BIT
  int GL_POLYGON_BIT
  int GL_POLYGON_STIPPLE_BIT
  int GL_PIXEL_MODE_BIT
  int GL_LIGHTING_BIT
  int GL_FOG_BIT
  int GL_DEPTH_BUFFER_BIT
  int GL_ACCUM_BUFFER_BIT
  int GL_STENCIL_BUFFER_BIT
  int GL_VIEWPORT_BIT
  int GL_TRANSFORM_BIT
  int GL_ENABLE_BIT
  int GL_COLOR_BUFFER_BIT
  int GL_HINT_BIT
  int GL_EVAL_BIT
  int GL_LIST_BIT
  int GL_TEXTURE_BIT
  int GL_SCISSOR_BIT
  int GL_ALL_ATTRIB_BITS
  int GL_PROXY_TEXTURE_1D
  int GL_PROXY_TEXTURE_2D
  int GL_TEXTURE_PRIORITY
  int GL_TEXTURE_RESIDENT
  int GL_TEXTURE_BINDING_1D
  int GL_TEXTURE_BINDING_2D
  int GL_TEXTURE_INTERNAL_FORMAT
  int GL_ALPHA4
  int GL_ALPHA8
  int GL_ALPHA12
  int GL_ALPHA16
  int GL_LUMINANCE4
  int GL_LUMINANCE8
  int GL_LUMINANCE12
  int GL_LUMINANCE16
  int GL_LUMINANCE4_ALPHA4
  int GL_LUMINANCE6_ALPHA2
  int GL_LUMINANCE8_ALPHA8
  int GL_LUMINANCE12_ALPHA4
  int GL_LUMINANCE12_ALPHA12
  int GL_LUMINANCE16_ALPHA16
  int GL_INTENSITY
  int GL_INTENSITY4
  int GL_INTENSITY8
  int GL_INTENSITY12
  int GL_INTENSITY16
  int GL_R3_G3_B2
  int GL_RGB4
  int GL_RGB5
  int GL_RGB8
  int GL_RGB10
  int GL_RGB12
  int GL_RGB16
  int GL_RGBA2
  int GL_RGBA4
  int GL_RGB5_A1
  int GL_RGBA8
  int GL_RGB10_A2
  int GL_RGBA12
  int GL_RGBA16
  int GL_CLIENT_PIXEL_STORE_BIT
  int GL_CLIENT_VERTEX_ARRAY_BIT
  int GL_CLIENT_ALL_ATTRIB_BITS
  int GL_RESCALE_NORMAL
  int GL_CLAMP_TO_EDGE
  int GL_MAX_ELEMENTS_VERTICES
  int GL_MAX_ELEMENTS_INDICES
  int GL_BGR
  int GL_BGRA
  int GL_UNSIGNED_BYTE_3_3_2
  int GL_UNSIGNED_BYTE_2_3_3_REV
  int GL_UNSIGNED_SHORT_5_6_5
  int GL_UNSIGNED_SHORT_5_6_5_REV
  int GL_UNSIGNED_SHORT_4_4_4_4
  int GL_UNSIGNED_SHORT_4_4_4_4_REV
  int GL_UNSIGNED_SHORT_5_5_5_1
  int GL_UNSIGNED_SHORT_1_5_5_5_REV
  int GL_UNSIGNED_INT_8_8_8_8
  int GL_UNSIGNED_INT_8_8_8_8_REV
  int GL_UNSIGNED_INT_10_10_10_2
  int GL_UNSIGNED_INT_2_10_10_10_REV
  int GL_LIGHT_MODEL_COLOR_CONTROL
  int GL_SINGLE_COLOR
  int GL_SEPARATE_SPECULAR_COLOR
  int GL_TEXTURE_MIN_LOD
  int GL_TEXTURE_MAX_LOD
  int GL_TEXTURE_BASE_LEVEL
  int GL_TEXTURE_MAX_LEVEL
  int GL_SMOOTH_POINT_SIZE_RANGE
  int GL_SMOOTH_POINT_SIZE_GRANULARITY
  int GL_SMOOTH_LINE_WIDTH_RANGE
  int GL_SMOOTH_LINE_WIDTH_GRANULARITY
  int GL_ALIASED_POINT_SIZE_RANGE
  int GL_ALIASED_LINE_WIDTH_RANGE
  int GL_PACK_SKIP_IMAGES
  int GL_PACK_IMAGE_HEIGHT
  int GL_UNPACK_SKIP_IMAGES
  int GL_UNPACK_IMAGE_HEIGHT
  int GL_TEXTURE_3D
  int GL_PROXY_TEXTURE_3D
  int GL_TEXTURE_DEPTH
  int GL_TEXTURE_WRAP_R
  int GL_MAX_3D_TEXTURE_SIZE
  int GL_TEXTURE_BINDING_3D
  int GL_COLOR_TABLE
  int GL_POST_CONVOLUTION_COLOR_TABLE
  int GL_POST_COLOR_MATRIX_COLOR_TABLE
  int GL_PROXY_COLOR_TABLE
  int GL_PROXY_POST_CONVOLUTION_COLOR_TABLE
  int GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE
  int GL_COLOR_TABLE_SCALE
  int GL_COLOR_TABLE_BIAS
  int GL_COLOR_TABLE_FORMAT
  int GL_COLOR_TABLE_WIDTH
  int GL_COLOR_TABLE_RED_SIZE
  int GL_COLOR_TABLE_GREEN_SIZE
  int GL_COLOR_TABLE_BLUE_SIZE
  int GL_COLOR_TABLE_ALPHA_SIZE
  int GL_COLOR_TABLE_LUMINANCE_SIZE
  int GL_COLOR_TABLE_INTENSITY_SIZE
  int GL_CONVOLUTION_1D
  int GL_CONVOLUTION_2D
  int GL_SEPARABLE_2D
  int GL_CONVOLUTION_BORDER_MODE
  int GL_CONVOLUTION_FILTER_SCALE
  int GL_CONVOLUTION_FILTER_BIAS
  int GL_REDUCE
  int GL_CONVOLUTION_FORMAT
  int GL_CONVOLUTION_WIDTH
  int GL_CONVOLUTION_HEIGHT
  int GL_MAX_CONVOLUTION_WIDTH
  int GL_MAX_CONVOLUTION_HEIGHT
  int GL_POST_CONVOLUTION_RED_SCALE
  int GL_POST_CONVOLUTION_GREEN_SCALE
  int GL_POST_CONVOLUTION_BLUE_SCALE
  int GL_POST_CONVOLUTION_ALPHA_SCALE
  int GL_POST_CONVOLUTION_RED_BIAS
  int GL_POST_CONVOLUTION_GREEN_BIAS
  int GL_POST_CONVOLUTION_BLUE_BIAS
  int GL_POST_CONVOLUTION_ALPHA_BIAS
  int GL_CONSTANT_BORDER
  int GL_REPLICATE_BORDER
  int GL_CONVOLUTION_BORDER_COLOR
  int GL_COLOR_MATRIX
  int GL_COLOR_MATRIX_STACK_DEPTH
  int GL_MAX_COLOR_MATRIX_STACK_DEPTH
  int GL_POST_COLOR_MATRIX_RED_SCALE
  int GL_POST_COLOR_MATRIX_GREEN_SCALE
  int GL_POST_COLOR_MATRIX_BLUE_SCALE
  int GL_POST_COLOR_MATRIX_ALPHA_SCALE
  int GL_POST_COLOR_MATRIX_RED_BIAS
  int GL_POST_COLOR_MATRIX_GREEN_BIAS
  int GL_POST_COLOR_MATRIX_BLUE_BIAS
  int GL_POST_COLOR_MATRIX_ALPHA_BIAS
  int GL_HISTOGRAM
  int GL_PROXY_HISTOGRAM
  int GL_HISTOGRAM_WIDTH
  int GL_HISTOGRAM_FORMAT
  int GL_HISTOGRAM_RED_SIZE
  int GL_HISTOGRAM_GREEN_SIZE
  int GL_HISTOGRAM_BLUE_SIZE
  int GL_HISTOGRAM_ALPHA_SIZE
  int GL_HISTOGRAM_LUMINANCE_SIZE
  int GL_HISTOGRAM_SINK
  int GL_MINMAX
  int GL_MINMAX_FORMAT
  int GL_MINMAX_SINK
  int GL_TABLE_TOO_LARGE
  int GL_BLEND_EQUATION
  int GL_MIN
  int GL_MAX
  int GL_FUNC_ADD
  int GL_FUNC_SUBTRACT
  int GL_FUNC_REVERSE_SUBTRACT
  int GL_BLEND_COLOR
  int GL_TEXTURE0
  int GL_TEXTURE1
  int GL_TEXTURE2
  int GL_TEXTURE3
  int GL_TEXTURE4
  int GL_TEXTURE5
  int GL_TEXTURE6
  int GL_TEXTURE7
  int GL_TEXTURE8
  int GL_TEXTURE9
  int GL_TEXTURE10
  int GL_TEXTURE11
  int GL_TEXTURE12
  int GL_TEXTURE13
  int GL_TEXTURE14
  int GL_TEXTURE15
  int GL_TEXTURE16
  int GL_TEXTURE17
  int GL_TEXTURE18
  int GL_TEXTURE19
  int GL_TEXTURE20
  int GL_TEXTURE21
  int GL_TEXTURE22
  int GL_TEXTURE23
  int GL_TEXTURE24
  int GL_TEXTURE25
  int GL_TEXTURE26
  int GL_TEXTURE27
  int GL_TEXTURE28
  int GL_TEXTURE29
  int GL_TEXTURE30
  int GL_TEXTURE31
  int GL_ACTIVE_TEXTURE
  int GL_CLIENT_ACTIVE_TEXTURE
  int GL_MAX_TEXTURE_UNITS
  int GL_NORMAL_MAP
  int GL_REFLECTION_MAP
  int GL_TEXTURE_CUBE_MAP
  int GL_TEXTURE_BINDING_CUBE_MAP
  int GL_TEXTURE_CUBE_MAP_POSITIVE_X
  int GL_TEXTURE_CUBE_MAP_NEGATIVE_X
  int GL_TEXTURE_CUBE_MAP_POSITIVE_Y
  int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
  int GL_TEXTURE_CUBE_MAP_POSITIVE_Z
  int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
  int GL_PROXY_TEXTURE_CUBE_MAP
  int GL_MAX_CUBE_MAP_TEXTURE_SIZE
  int GL_COMPRESSED_ALPHA
  int GL_COMPRESSED_LUMINANCE
  int GL_COMPRESSED_LUMINANCE_ALPHA
  int GL_COMPRESSED_INTENSITY
  int GL_COMPRESSED_RGB
  int GL_COMPRESSED_RGBA
  int GL_TEXTURE_COMPRESSION_HINT
  int GL_TEXTURE_COMPRESSED_IMAGE_SIZE
  int GL_TEXTURE_COMPRESSED
  int GL_NUM_COMPRESSED_TEXTURE_FORMATS
  int GL_COMPRESSED_TEXTURE_FORMATS
  int GL_MULTISAMPLE
  int GL_SAMPLE_ALPHA_TO_COVERAGE
  int GL_SAMPLE_ALPHA_TO_ONE
  int GL_SAMPLE_COVERAGE
  int GL_SAMPLE_BUFFERS
  int GL_SAMPLES
  int GL_SAMPLE_COVERAGE_VALUE
  int GL_SAMPLE_COVERAGE_INVERT
  int GL_MULTISAMPLE_BIT
  int GL_TRANSPOSE_MODELVIEW_MATRIX
  int GL_TRANSPOSE_PROJECTION_MATRIX
  int GL_TRANSPOSE_TEXTURE_MATRIX
  int GL_TRANSPOSE_COLOR_MATRIX
  int GL_COMBINE
  int GL_COMBINE_RGB
  int GL_COMBINE_ALPHA
  int GL_SOURCE0_RGB
  int GL_SOURCE1_RGB
  int GL_SOURCE2_RGB
  int GL_SOURCE0_ALPHA
  int GL_SOURCE1_ALPHA
  int GL_SOURCE2_ALPHA
  int GL_OPERAND0_RGB
  int GL_OPERAND1_RGB
  int GL_OPERAND2_RGB
  int GL_OPERAND0_ALPHA
  int GL_OPERAND1_ALPHA
  int GL_OPERAND2_ALPHA
  int GL_RGB_SCALE
  int GL_ADD_SIGNED
  int GL_INTERPOLATE
  int GL_SUBTRACT
  int GL_CONSTANT
  int GL_PRIMARY_COLOR
  int GL_PREVIOUS
  int GL_DOT3_RGB
  int GL_DOT3_RGBA
  int GL_CLAMP_TO_BORDER
  
  cdef void glClearIndex(GLfloat c)
  cdef void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
  cdef void glClear(GLbitfield mask)
  cdef void glIndexMask(GLuint mask)
  cdef void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
  cdef void glAlphaFunc(GLenum func, GLclampf ref)
  cdef void glBlendFunc(GLenum sfactor, GLenum dfactor)
  cdef void glLogicOp(GLenum opcode)
  cdef void glCullFace(GLenum mode)
  cdef void glFrontFace(GLenum mode)
  cdef void glPointSize(GLfloat size)
  cdef void glLineWidth(GLfloat width)
  cdef void glLineStipple(GLint factor, GLushort pattern)
  cdef void glPolygonMode(GLenum face, GLenum mode)
  cdef void glPolygonOffset(GLfloat factor, GLfloat units)
  cdef void glPolygonStipple(GLubyte *mask)
  cdef void glGetPolygonStipple(GLubyte *mask)
  cdef void glEdgeFlag(GLboolean flag)
  cdef void glEdgeFlagv(GLboolean *flag)
  cdef void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
  cdef void glClipPlane(GLenum plane, GLdouble *equation)
  cdef void glGetClipPlane(GLenum plane, GLdouble *equation)
  cdef void glDrawBuffer(GLenum mode)
  cdef void glReadBuffer(GLenum mode)
  cdef void glEnable(GLenum cap)
  cdef void glDisable(GLenum cap)
  cdef GLboolean glIsEnabled(GLenum cap)
  cdef void glEnableClientState(GLenum cap)
  cdef void glDisableClientState(GLenum cap)
  cdef void glGetBooleanv(GLenum pname, GLboolean *params)
  cdef void glGetDoublev(GLenum pname, GLdouble *params)
  cdef void glGetFloatv(GLenum pname, GLfloat *params)
  cdef void glGetIntegerv(GLenum pname, GLint *params)
  cdef void glPushAttrib(GLbitfield mask)
  cdef void glPopAttrib()
  cdef void glPushClientAttrib(GLbitfield mask)
  cdef void glPopClientAttrib()
  cdef GLint glRenderMode(GLenum mode)
  cdef GLenum glGetError()
  cdef GLubyte* glGetString(GLenum name)
  cdef void glFinish()
  cdef void glFlush()
  cdef void glHint(GLenum target, GLenum mode)
  cdef void glClearDepth(GLclampd depth)
  cdef void glDepthFunc(GLenum func)
  cdef void glDepthMask(GLboolean flag)
  cdef void glDepthRange(GLclampd near_val, GLclampd far_val)
  cdef void glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
  cdef void glAccum(GLenum op, GLfloat value)
  cdef void glMatrixMode(GLenum mode)
  cdef void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val)
  cdef void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val)
  cdef void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
  cdef void glPushMatrix()
  cdef void glPopMatrix()
  cdef void glLoadIdentity()
  cdef void glLoadMatrixd(GLdouble *m)
  cdef void glLoadMatrixf(GLfloat *m)
  cdef void glMultMatrixd(GLdouble *m)
  cdef void glMultMatrixf(GLfloat *m)
  cdef void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
  cdef void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
  cdef void glScaled(GLdouble x, GLdouble y, GLdouble z)
  cdef void glScalef(GLfloat x, GLfloat y, GLfloat z)
  cdef void glTranslated(GLdouble x, GLdouble y, GLdouble z)
  cdef void glTranslatef(GLfloat x, GLfloat y, GLfloat z)
  cdef GLboolean glIsList(GLuint list)
  cdef void glDeleteLists(GLuint list, GLsizei range)
  cdef GLuint glGenLists(GLsizei range)
  cdef void glNewList(GLuint list, GLenum mode)
  cdef void glEndList()
  cdef void glCallList(GLuint list)
  cdef void glCallLists(GLsizei n, GLenum type, GLvoid *lists)
  cdef void glListBase(GLuint base)
  cdef void glBegin(GLenum mode)
  cdef void glEnd()
  cdef void glVertex2d(GLdouble x, GLdouble y)
  cdef void glVertex2f(GLfloat x, GLfloat y)
  cdef void glVertex2i(GLint x, GLint y)
  cdef void glVertex2s(GLshort x, GLshort y)
  cdef void glVertex3d(GLdouble x, GLdouble y, GLdouble z)
  cdef void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
  cdef void glVertex3i(GLint x, GLint y, GLint z)
  cdef void glVertex3s(GLshort x, GLshort y, GLshort z)
  cdef void glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
  cdef void glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
  cdef void glVertex4i(GLint x, GLint y, GLint z, GLint w)
  cdef void glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w)
  cdef void glVertex2dv(GLdouble *v)
  cdef void glVertex2fv(GLfloat *v)
  cdef void glVertex2iv(GLint *v)
  cdef void glVertex2sv(GLshort *v)
  cdef void glVertex3dv(GLdouble *v)
  cdef void glVertex3fv(GLfloat *v)
  cdef void glVertex3iv(GLint *v)
  cdef void glVertex3sv(GLshort *v)
  cdef void glVertex4dv(GLdouble *v)
  cdef void glVertex4fv(GLfloat *v)
  cdef void glVertex4iv(GLint *v)
  cdef void glVertex4sv(GLshort *v)
  cdef void glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz)
  cdef void glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz)
  cdef void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
  cdef void glNormal3i(GLint nx, GLint ny, GLint nz)
  cdef void glNormal3s(GLshort nx, GLshort ny, GLshort nz)
  cdef void glNormal3bv(GLbyte *v)
  cdef void glNormal3dv(GLdouble *v)
  cdef void glNormal3fv(GLfloat *v)
  cdef void glNormal3iv(GLint *v)
  cdef void glNormal3sv(GLshort *v)
  cdef void glIndexd(GLdouble c)
  cdef void glIndexf(GLfloat c)
  cdef void glIndexi(GLint c)
  cdef void glIndexs(GLshort c)
  cdef void glIndexub(GLubyte c)
  cdef void glIndexdv(GLdouble *c)
  cdef void glIndexfv(GLfloat *c)
  cdef void glIndexiv(GLint *c)
  cdef void glIndexsv(GLshort *c)
  cdef void glIndexubv(GLubyte *c)
  cdef void glColor3b(GLbyte red, GLbyte green, GLbyte blue)
  cdef void glColor3d(GLdouble red, GLdouble green, GLdouble blue)
  cdef void glColor3f(GLfloat red, GLfloat green, GLfloat blue)
  cdef void glColor3i(GLint red, GLint green, GLint blue)
  cdef void glColor3s(GLshort red, GLshort green, GLshort blue)
  cdef void glColor3ub(GLubyte red, GLubyte green, GLubyte blue)
  cdef void glColor3ui(GLuint red, GLuint green, GLuint blue)
  cdef void glColor3us(GLushort red, GLushort green, GLushort blue)
  cdef void glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
  cdef void glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
  cdef void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
  cdef void glColor4i(GLint red, GLint green, GLint blue, GLint alpha)
  cdef void glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha)
  cdef void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
  cdef void glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha)
  cdef void glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha)
  cdef void glColor3bv(GLbyte *v)
  cdef void glColor3dv(GLdouble *v)
  cdef void glColor3fv(GLfloat *v)
  cdef void glColor3iv(GLint *v)
  cdef void glColor3sv(GLshort *v)
  cdef void glColor3ubv(GLubyte *v)
  cdef void glColor3uiv(GLuint *v)
  cdef void glColor3usv(GLushort *v)
  cdef void glColor4bv(GLbyte *v)
  cdef void glColor4dv(GLdouble *v)
  cdef void glColor4fv(GLfloat *v)
  cdef void glColor4iv(GLint *v)
  cdef void glColor4sv(GLshort *v)
  cdef void glColor4ubv(GLubyte *v)
  cdef void glColor4uiv(GLuint *v)
  cdef void glColor4usv(GLushort *v)
  cdef void glTexCoord1d(GLdouble s)
  cdef void glTexCoord1f(GLfloat s)
  cdef void glTexCoord1i(GLint s)
  cdef void glTexCoord1s(GLshort s)
  cdef void glTexCoord2d(GLdouble s, GLdouble t)
  cdef void glTexCoord2f(GLfloat s, GLfloat t)
  cdef void glTexCoord2i(GLint s, GLint t)
  cdef void glTexCoord2s(GLshort s, GLshort t)
  cdef void glTexCoord3d(GLdouble s, GLdouble t, GLdouble r)
  cdef void glTexCoord3f(GLfloat s, GLfloat t, GLfloat r)
  cdef void glTexCoord3i(GLint s, GLint t, GLint r)
  cdef void glTexCoord3s(GLshort s, GLshort t, GLshort r)
  cdef void glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
  cdef void glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
  cdef void glTexCoord4i(GLint s, GLint t, GLint r, GLint q)
  cdef void glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q)
  cdef void glTexCoord1dv(GLdouble *v)
  cdef void glTexCoord1fv(GLfloat *v)
  cdef void glTexCoord1iv(GLint *v)
  cdef void glTexCoord1sv(GLshort *v)
  cdef void glTexCoord2dv(GLdouble *v)
  cdef void glTexCoord2fv(GLfloat *v)
  cdef void glTexCoord2iv(GLint *v)
  cdef void glTexCoord2sv(GLshort *v)
  cdef void glTexCoord3dv(GLdouble *v)
  cdef void glTexCoord3fv(GLfloat *v)
  cdef void glTexCoord3iv(GLint *v)
  cdef void glTexCoord3sv(GLshort *v)
  cdef void glTexCoord4dv(GLdouble *v)
  cdef void glTexCoord4fv(GLfloat *v)
  cdef void glTexCoord4iv(GLint *v)
  cdef void glTexCoord4sv(GLshort *v)
  cdef void glRasterPos2d(GLdouble x, GLdouble y)
  cdef void glRasterPos2f(GLfloat x, GLfloat y)
  cdef void glRasterPos2i(GLint x, GLint y)
  cdef void glRasterPos2s(GLshort x, GLshort y)
  cdef void glRasterPos3d(GLdouble x, GLdouble y, GLdouble z)
  cdef void glRasterPos3f(GLfloat x, GLfloat y, GLfloat z)
  cdef void glRasterPos3i(GLint x, GLint y, GLint z)
  cdef void glRasterPos3s(GLshort x, GLshort y, GLshort z)
  cdef void glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
  cdef void glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
  cdef void glRasterPos4i(GLint x, GLint y, GLint z, GLint w)
  cdef void glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w)
  cdef void glRasterPos2dv(GLdouble *v)
  cdef void glRasterPos2fv(GLfloat *v)
  cdef void glRasterPos2iv(GLint *v)
  cdef void glRasterPos2sv(GLshort *v)
  cdef void glRasterPos3dv(GLdouble *v)
  cdef void glRasterPos3fv(GLfloat *v)
  cdef void glRasterPos3iv(GLint *v)
  cdef void glRasterPos3sv(GLshort *v)
  cdef void glRasterPos4dv(GLdouble *v)
  cdef void glRasterPos4fv(GLfloat *v)
  cdef void glRasterPos4iv(GLint *v)
  cdef void glRasterPos4sv(GLshort *v)
  cdef void glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
  cdef void glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
  cdef void glRecti(GLint x1, GLint y1, GLint x2, GLint y2)
  cdef void glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
  cdef void glRectdv(GLdouble *v1, GLdouble *v2)
  cdef void glRectfv(GLfloat *v1, GLfloat *v2)
  cdef void glRectiv(GLint *v1, GLint *v2)
  cdef void glRectsv(GLshort *v1, GLshort *v2)
  cdef void glVertexPointer(GLint size, GLenum type, GLsizei stride, GLvoid *ptr)
  cdef void glNormalPointer(GLenum type, GLsizei stride, GLvoid *ptr)
  cdef void glColorPointer(GLint size, GLenum type, GLsizei stride, GLvoid *ptr)
  cdef void glIndexPointer(GLenum type, GLsizei stride, GLvoid *ptr)
  cdef void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, GLvoid *ptr)
  cdef void glEdgeFlagPointer(GLsizei stride, GLvoid *ptr)
  cdef void glGetPointerv(GLenum pname, GLvoid **params)
  cdef void glArrayElement(GLint i)
  cdef void glDrawArrays(GLenum mode, GLint first, GLsizei count)
  cdef void glDrawElements(GLenum mode, GLsizei count, GLenum type, GLvoid *indices)
  cdef void glInterleavedArrays(GLenum format, GLsizei stride, GLvoid *pointer)
  cdef void glShadeModel(GLenum mode)
  cdef void glLightf(GLenum light, GLenum pname, GLfloat param)
  cdef void glLighti(GLenum light, GLenum pname, GLint param)
  cdef void glLightfv(GLenum light, GLenum pname, GLfloat *params)
  cdef void glLightiv(GLenum light, GLenum pname, GLint *params)
  cdef void glGetLightfv(GLenum light, GLenum pname, GLfloat *params)
  cdef void glGetLightiv(GLenum light, GLenum pname, GLint *params)
  cdef void glLightModelf(GLenum pname, GLfloat param)
  cdef void glLightModeli(GLenum pname, GLint param)
  cdef void glLightModelfv(GLenum pname, GLfloat *params)
  cdef void glLightModeliv(GLenum pname, GLint *params)
  cdef void glMaterialf(GLenum face, GLenum pname, GLfloat param)
  cdef void glMateriali(GLenum face, GLenum pname, GLint param)
  cdef void glMaterialfv(GLenum face, GLenum pname, GLfloat *params)
  cdef void glMaterialiv(GLenum face, GLenum pname, GLint *params)
  cdef void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
  cdef void glGetMaterialiv(GLenum face, GLenum pname, GLint *params)
  cdef void glColorMaterial(GLenum face, GLenum mode)
  cdef void glPixelZoom(GLfloat xfactor, GLfloat yfactor)
  cdef void glPixelStoref(GLenum pname, GLfloat param)
  cdef void glPixelStorei(GLenum pname, GLint param)
  cdef void glPixelTransferf(GLenum pname, GLfloat param)
  cdef void glPixelTransferi(GLenum pname, GLint param)
  cdef void glPixelMapfv(GLenum map, GLint mapsize, GLfloat *values)
  cdef void glPixelMapuiv(GLenum map, GLint mapsize, GLuint *values)
  cdef void glPixelMapusv(GLenum map, GLint mapsize, GLushort *values)
  cdef void glGetPixelMapfv(GLenum map, GLfloat *values)
  cdef void glGetPixelMapuiv(GLenum map, GLuint *values)
  cdef void glGetPixelMapusv(GLenum map, GLushort *values)
  cdef void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, GLubyte *bitmap)
  cdef void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
  cdef void glStencilFunc(GLenum func, GLint ref, GLuint mask)
  cdef void glStencilMask(GLuint mask)
  cdef void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
  cdef void glClearStencil(GLint s)
  cdef void glTexGend(GLenum coord, GLenum pname, GLdouble param)
  cdef void glTexGenf(GLenum coord, GLenum pname, GLfloat param)
  cdef void glTexGeni(GLenum coord, GLenum pname, GLint param)
  cdef void glTexGendv(GLenum coord, GLenum pname, GLdouble *params)
  cdef void glTexGenfv(GLenum coord, GLenum pname, GLfloat *params)
  cdef void glTexGeniv(GLenum coord, GLenum pname, GLint *params)
  cdef void glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params)
  cdef void glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params)
  cdef void glGetTexGeniv(GLenum coord, GLenum pname, GLint *params)
  cdef void glTexEnvf(GLenum target, GLenum pname, GLfloat param)
  cdef void glTexEnvi(GLenum target, GLenum pname, GLint param)
  cdef void glTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glTexEnviv(GLenum target, GLenum pname, GLint *params)
  cdef void glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glGetTexEnviv(GLenum target, GLenum pname, GLint *params)
  cdef void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
  cdef void glTexParameteri(GLenum target, GLenum pname, GLint param)
  cdef void glTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glTexParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)
  cdef void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)
  cdef void glTexImage1D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glGenTextures(GLsizei n, GLuint *textures)
  cdef void glDeleteTextures(GLsizei n, GLuint *textures)
  cdef void glBindTexture(GLenum target, GLuint texture)
  cdef void glPrioritizeTextures(GLsizei n, GLuint *textures, GLclampf *priorities)
  cdef GLboolean glAreTexturesResident(GLsizei n, GLuint *textures, GLboolean *residences)
  cdef GLboolean glIsTexture(GLuint texture)
  cdef void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
  cdef void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
  cdef void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
  cdef void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
  cdef void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, GLdouble *points)
  cdef void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, GLfloat *points)
  cdef void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble *points)
  cdef void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat *points)
  cdef void glGetMapdv(GLenum target, GLenum query, GLdouble *v)
  cdef void glGetMapfv(GLenum target, GLenum query, GLfloat *v)
  cdef void glGetMapiv(GLenum target, GLenum query, GLint *v)
  cdef void glEvalCoord1d(GLdouble u)
  cdef void glEvalCoord1f(GLfloat u)
  cdef void glEvalCoord1dv(GLdouble *u)
  cdef void glEvalCoord1fv(GLfloat *u)
  cdef void glEvalCoord2d(GLdouble u, GLdouble v)
  cdef void glEvalCoord2f(GLfloat u, GLfloat v)
  cdef void glEvalCoord2dv(GLdouble *u)
  cdef void glEvalCoord2fv(GLfloat *u)
  cdef void glMapGrid1d(GLint un, GLdouble u1, GLdouble u2)
  cdef void glMapGrid1f(GLint un, GLfloat u1, GLfloat u2)
  cdef void glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
  cdef void glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
  cdef void glEvalPoint1(GLint i)
  cdef void glEvalPoint2(GLint i, GLint j)
  cdef void glEvalMesh1(GLenum mode, GLint i1, GLint i2)
  cdef void glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
  cdef void glFogf(GLenum pname, GLfloat param)
  cdef void glFogi(GLenum pname, GLint param)
  cdef void glFogfv(GLenum pname, GLfloat *params)
  cdef void glFogiv(GLenum pname, GLint *params)
  cdef void glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer)
  cdef void glPassThrough(GLfloat token)
  cdef void glSelectBuffer(GLsizei size, GLuint *buffer)
  cdef void glInitNames()
  cdef void glLoadName(GLuint name)
  cdef void glPushName(GLuint name)
  cdef void glPopName()
  cdef void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid *indices)
  cdef void glTexImage3D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *pixels)
  cdef void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
  cdef void glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, GLvoid *table)
  cdef void glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, GLvoid *data)
  cdef void glColorTableParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
  cdef void glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
  cdef void glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table)
  cdef void glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glBlendEquation(GLenum mode)
  cdef void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
  cdef void glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
  cdef void glResetHistogram(GLenum target)
  cdef void glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
  cdef void glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glMinmax(GLenum target, GLenum internalformat, GLboolean sink)
  cdef void glResetMinmax(GLenum target)
  cdef void glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)
  cdef void glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, GLvoid *image)
  cdef void glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *image)
  cdef void glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params)
  cdef void glConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glConvolutionParameteri(GLenum target, GLenum pname, GLint params)
  cdef void glConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
  cdef void glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
  cdef void glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image)
  cdef void glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
  cdef void glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
  cdef void glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *row, GLvoid *column)
  cdef void glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
  cdef void glActiveTextureARB(GLenum texture)
  cdef void glClientActiveTexture(GLenum texture)
  cdef void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, GLvoid *data)
  cdef void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid *data)
  cdef void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLvoid *data)
  cdef void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, GLvoid *data)
  cdef void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid *data)
  cdef void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLvoid *data)
  cdef void glGetCompressedTexImage(GLenum target, GLint lod, GLvoid *img)
  cdef void glMultiTexCoord1dARB(GLenum target, GLdouble s)
  cdef void glMultiTexCoord1dvARB(GLenum target, GLdouble *v)
  cdef void glMultiTexCoord1fARB(GLenum target, GLfloat s)
  cdef void glMultiTexCoord1fvARB(GLenum target, GLfloat *v)
  cdef void glMultiTexCoord1iARB(GLenum target, GLint s)
  cdef void glMultiTexCoord1ivARB(GLenum target, GLint *v)
  cdef void glMultiTexCoord1sARB(GLenum target, GLshort s)
  cdef void glMultiTexCoord1svARB(GLenum target, GLshort *v)
  cdef void glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t)
  cdef void glMultiTexCoord2dvARB(GLenum target, GLdouble *v)
  cdef void glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t)
  cdef void glMultiTexCoord2fvARB(GLenum target, GLfloat *v)
  cdef void glMultiTexCoord2iARB(GLenum target, GLint s, GLint t)
  cdef void glMultiTexCoord2ivARB(GLenum target, GLint *v)
  cdef void glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t)
  cdef void glMultiTexCoord2svARB(GLenum target, GLshort *v)
  cdef void glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r)
  cdef void glMultiTexCoord3dvARB(GLenum target, GLdouble *v)
  cdef void glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r)
  cdef void glMultiTexCoord3fvARB(GLenum target, GLfloat *v)
  cdef void glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r)
  cdef void glMultiTexCoord3ivARB(GLenum target, GLint *v)
  cdef void glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r)
  cdef void glMultiTexCoord3svARB(GLenum target, GLshort *v)
  cdef void glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
  cdef void glMultiTexCoord4dvARB(GLenum target, GLdouble *v)
  cdef void glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
  cdef void glMultiTexCoord4fvARB(GLenum target, GLfloat *v)
  cdef void glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q)
  cdef void glMultiTexCoord4ivARB(GLenum target, GLint *v)
  cdef void glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
  cdef void glMultiTexCoord4svARB(GLenum target, GLshort *v)
  cdef void glLoadTransposeMatrixd(GLdouble m[16])
  cdef void glLoadTransposeMatrixf(GLfloat m[16])
  cdef void glMultTransposeMatrixd(GLdouble m[16])
  cdef void glMultTransposeMatrixf(GLfloat m[16])
  cdef void glSampleCoverage(GLclampf value, GLboolean invert)
  
  int GLU_EXT_object_space_tess
  int GLU_EXT_nurbs_tessellator
  int GLU_FALSE
  int GLU_TRUE
  int GLU_VERSION_1_1
  int GLU_VERSION_1_2
  int GLU_VERSION_1_3
  int GLU_VERSION
  int GLU_EXTENSIONS
  int GLU_INVALID_ENUM
  int GLU_INVALID_VALUE
  int GLU_OUT_OF_MEMORY
  int GLU_INVALID_OPERATION
  int GLU_OUTLINE_POLYGON
  int GLU_OUTLINE_PATCH
  int GLU_NURBS_ERROR
  int GLU_ERROR
  int GLU_NURBS_BEGIN
  int GLU_NURBS_BEGIN_EXT
  int GLU_NURBS_VERTEX
  int GLU_NURBS_VERTEX_EXT
  int GLU_NURBS_NORMAL
  int GLU_NURBS_NORMAL_EXT
  int GLU_NURBS_COLOR
  int GLU_NURBS_COLOR_EXT
  int GLU_NURBS_TEXTURE_COORD
  int GLU_NURBS_TEX_COORD_EXT
  int GLU_NURBS_END
  int GLU_NURBS_END_EXT
  int GLU_NURBS_BEGIN_DATA
  int GLU_NURBS_BEGIN_DATA_EXT
  int GLU_NURBS_VERTEX_DATA
  int GLU_NURBS_VERTEX_DATA_EXT
  int GLU_NURBS_NORMAL_DATA
  int GLU_NURBS_NORMAL_DATA_EXT
  int GLU_NURBS_COLOR_DATA
  int GLU_NURBS_COLOR_DATA_EXT
  int GLU_NURBS_TEXTURE_COORD_DATA
  int GLU_NURBS_TEX_COORD_DATA_EXT
  int GLU_NURBS_END_DATA
  int GLU_NURBS_END_DATA_EXT
  int GLU_NURBS_ERROR1
  int GLU_NURBS_ERROR2
  int GLU_NURBS_ERROR3
  int GLU_NURBS_ERROR4
  int GLU_NURBS_ERROR5
  int GLU_NURBS_ERROR6
  int GLU_NURBS_ERROR7
  int GLU_NURBS_ERROR8
  int GLU_NURBS_ERROR9
  int GLU_NURBS_ERROR10
  int GLU_NURBS_ERROR11
  int GLU_NURBS_ERROR12
  int GLU_NURBS_ERROR13
  int GLU_NURBS_ERROR14
  int GLU_NURBS_ERROR15
  int GLU_NURBS_ERROR16
  int GLU_NURBS_ERROR17
  int GLU_NURBS_ERROR18
  int GLU_NURBS_ERROR19
  int GLU_NURBS_ERROR20
  int GLU_NURBS_ERROR21
  int GLU_NURBS_ERROR22
  int GLU_NURBS_ERROR23
  int GLU_NURBS_ERROR24
  int GLU_NURBS_ERROR25
  int GLU_NURBS_ERROR26
  int GLU_NURBS_ERROR27
  int GLU_NURBS_ERROR28
  int GLU_NURBS_ERROR29
  int GLU_NURBS_ERROR30
  int GLU_NURBS_ERROR31
  int GLU_NURBS_ERROR32
  int GLU_NURBS_ERROR33
  int GLU_NURBS_ERROR34
  int GLU_NURBS_ERROR35
  int GLU_NURBS_ERROR36
  int GLU_NURBS_ERROR37
  int GLU_AUTO_LOAD_MATRIX
  int GLU_CULLING
  int GLU_SAMPLING_TOLERANCE
  int GLU_DISPLAY_MODE
  int GLU_PARAMETRIC_TOLERANCE
  int GLU_SAMPLING_METHOD
  int GLU_U_STEP
  int GLU_V_STEP
  int GLU_NURBS_MODE
  int GLU_NURBS_MODE_EXT
  int GLU_NURBS_TESSELLATOR
  int GLU_NURBS_TESSELLATOR_EXT
  int GLU_NURBS_RENDERER
  int GLU_NURBS_RENDERER_EXT
  int GLU_OBJECT_PARAMETRIC_ERROR
  int GLU_OBJECT_PARAMETRIC_ERROR_EXT
  int GLU_OBJECT_PATH_LENGTH
  int GLU_OBJECT_PATH_LENGTH_EXT
  int GLU_PATH_LENGTH
  int GLU_PARAMETRIC_ERROR
  int GLU_DOMAIN_DISTANCE
  int GLU_MAP1_TRIM_2
  int GLU_MAP1_TRIM_3
  int GLU_POINT
  int GLU_LINE
  int GLU_FILL
  int GLU_SILHOUETTE
  int GLU_SMOOTH
  int GLU_FLAT
  int GLU_NONE
  int GLU_OUTSIDE
  int GLU_INSIDE
  int GLU_TESS_BEGIN
  int GLU_BEGIN
  int GLU_TESS_VERTEX
  int GLU_VERTEX
  int GLU_TESS_END
  int GLU_END
  int GLU_TESS_ERROR
  int GLU_TESS_EDGE_FLAG
  int GLU_EDGE_FLAG
  int GLU_TESS_COMBINE
  int GLU_TESS_BEGIN_DATA
  int GLU_TESS_VERTEX_DATA
  int GLU_TESS_END_DATA
  int GLU_TESS_ERROR_DATA
  int GLU_TESS_EDGE_FLAG_DATA
  int GLU_TESS_COMBINE_DATA
  int GLU_CW
  int GLU_CCW
  int GLU_INTERIOR
  int GLU_EXTERIOR
  int GLU_UNKNOWN
  int GLU_TESS_WINDING_RULE
  int GLU_TESS_BOUNDARY_ONLY
  int GLU_TESS_TOLERANCE
  int GLU_TESS_ERROR1
  int GLU_TESS_ERROR2
  int GLU_TESS_ERROR3
  int GLU_TESS_ERROR4
  int GLU_TESS_ERROR5
  int GLU_TESS_ERROR6
  int GLU_TESS_ERROR7
  int GLU_TESS_ERROR8
  int GLU_TESS_MISSING_BEGIN_POLYGON
  int GLU_TESS_MISSING_BEGIN_CONTOUR
  int GLU_TESS_MISSING_END_POLYGON
  int GLU_TESS_MISSING_END_CONTOUR
  int GLU_TESS_COORD_TOO_LARGE
  int GLU_TESS_NEED_COMBINE_CALLBACK
  int GLU_TESS_WINDING_ODD
  int GLU_TESS_WINDING_NONZERO
  int GLU_TESS_WINDING_POSITIVE
  int GLU_TESS_WINDING_NEGATIVE
  int GLU_TESS_WINDING_ABS_GEQ_TWO
  
  float GLU_TESS_MAX_COORD

  ctypedef struct GLUnurbs:
    int _dummy
  ctypedef struct GLUquadric:
    int _dummy
  ctypedef struct GLUtesselator:
    int _dummy
  
  cdef void gluBeginCurve(GLUnurbs* nurb)
  cdef void gluBeginPolygon(GLUtesselator* tess)
  cdef void gluBeginSurface(GLUnurbs* nurb)
  cdef void gluBeginTrim(GLUnurbs* nurb)
  cdef GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *data)
  cdef GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, void *data)
  cdef GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *data)
  cdef GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, void *data)
  cdef GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *data)
  cdef GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *data)
  cdef GLboolean gluCheckExtension(GLubyte *extName, GLubyte *extString)
  cdef void gluCylinder(GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks)
  cdef void gluDeleteNurbsRenderer(GLUnurbs* nurb)
  cdef void gluDeleteQuadric(GLUquadric* quad)
  cdef void gluDeleteTess(GLUtesselator* tess)
  cdef void gluDisk(GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops)
  cdef void gluEndCurve(GLUnurbs* nurb)
  cdef void gluEndPolygon(GLUtesselator* tess)
  cdef void gluEndSurface(GLUnurbs* nurb)
  cdef void gluEndTrim(GLUnurbs* nurb)
  cdef GLubyte * gluErrorString(GLenum error)
  cdef void gluGetNurbsProperty(GLUnurbs* nurb, GLenum property, GLfloat* data)
  cdef GLubyte * gluGetString(GLenum name)
  cdef void gluGetTessProperty(GLUtesselator* tess, GLenum which, GLdouble* data)
  cdef void gluLoadSamplingMatrices(GLUnurbs* nurb, GLfloat *model, GLfloat *perspective, GLint *view)
  cdef void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ)
  cdef GLUnurbs* gluNewNurbsRenderer()
  cdef GLUquadric* gluNewQuadric()
  cdef GLUtesselator* gluNewTess()
  cdef void gluNextContour(GLUtesselator* tess, GLenum type)
  cdef void gluNurbsCallback(GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc)
  cdef void gluNurbsCallbackData(GLUnurbs* nurb, GLvoid* userData)
  cdef void gluNurbsCallbackDataEXT(GLUnurbs* nurb, GLvoid* userData)
  cdef void gluNurbsCurve(GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type)
  cdef void gluNurbsProperty(GLUnurbs* nurb, GLenum property, GLfloat value)
  cdef void gluNurbsSurface(GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type)
  cdef void gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top)
  cdef void gluPartialDisk(GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep)
  cdef void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
  cdef void gluPickMatrix(GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport)
  cdef GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, GLdouble *model, GLdouble *proj, GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ)
  cdef void gluPwlCurve(GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type)
  cdef void gluQuadricCallback(GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc)
  cdef void gluQuadricDrawStyle(GLUquadric* quad, GLenum draw)
  cdef void gluQuadricNormals(GLUquadric* quad, GLenum normal)
  cdef void gluQuadricOrientation(GLUquadric* quad, GLenum orientation)
  cdef void gluQuadricTexture(GLUquadric* quad, GLboolean texture)
  cdef GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut)
  cdef void gluSphere(GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks)
  cdef void gluTessBeginContour(GLUtesselator* tess)
  cdef void gluTessBeginPolygon(GLUtesselator* tess, GLvoid* data)
  cdef void gluTessCallback(GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc)
  cdef void gluTessEndContour(GLUtesselator* tess)
  cdef void gluTessEndPolygon(GLUtesselator* tess)
  cdef void gluTessNormal(GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ)
  cdef void gluTessProperty(GLUtesselator* tess, GLenum which, GLdouble data)
  cdef void gluTessVertex(GLUtesselator* tess, GLdouble *location, GLvoid* data)
  cdef GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble *model, GLdouble *proj, GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ)
  cdef GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, GLdouble *model, GLdouble *proj, GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW)
  
  cdef void glewInit()
  cdef GLboolean glewGetExtension(char* name)

  # Shaders

  int GL_PROGRAM_OBJECT_ARB
  int GL_SHADER_OBJECT_ARB
  int GL_OBJECT_TYPE_ARB
  int GL_OBJECT_SUBTYPE_ARB
  int GL_FLOAT_VEC2_ARB
  int GL_FLOAT_VEC3_ARB
  int GL_FLOAT_VEC4_ARB
  int GL_INT_VEC2_ARB
  int GL_INT_VEC3_ARB
  int GL_INT_VEC4_ARB
  int GL_BOOL_ARB
  int GL_BOOL_VEC2_ARB
  int GL_BOOL_VEC3_ARB
  int GL_BOOL_VEC4_ARB
  int GL_FLOAT_MAT2_ARB
  int GL_FLOAT_MAT3_ARB
  int GL_FLOAT_MAT4_ARB
  int GL_SAMPLER_1D_ARB
  int GL_SAMPLER_2D_ARB
  int GL_SAMPLER_3D_ARB
  int GL_SAMPLER_CUBE_ARB
  int GL_SAMPLER_1D_SHADOW_ARB
  int GL_SAMPLER_2D_SHADOW_ARB
  int GL_SAMPLER_2D_RECT_ARB
  int GL_SAMPLER_2D_RECT_SHADOW_ARB
  int GL_OBJECT_DELETE_STATUS_ARB
  int GL_OBJECT_COMPILE_STATUS_ARB
  int GL_OBJECT_LINK_STATUS_ARB
  int GL_OBJECT_VALIDATE_STATUS_ARB
  int GL_OBJECT_INFO_LOG_LENGTH_ARB
  int GL_OBJECT_ATTACHED_OBJECTS_ARB
  int GL_OBJECT_ACTIVE_UNIFORMS_ARB
  int GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
  int GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
  int GL_VERTEX_SHADER_ARB
  int GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
  int GL_MAX_VARYING_FLOATS_ARB
  int GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
  int GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
  int GL_OBJECT_ACTIVE_ATTRIBUTES_ARB
  int GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
  int GL_FRAGMENT_PROGRAM_ARB
  int GL_PROGRAM_ALU_INSTRUCTIONS_ARB
  int GL_PROGRAM_TEX_INSTRUCTIONS_ARB
  int GL_PROGRAM_TEX_INDIRECTIONS_ARB
  int GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
  int GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
  int GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
  int GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
  int GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
  int GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
  int GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
  int GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
  int GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
  int GL_MAX_TEXTURE_COORDS_ARB
  int GL_MAX_TEXTURE_IMAGE_UNITS_ARB

  cdef void glGetObjectParameterivARB(GLhandleARB object, GLenum pname, GLint *params)
  cdef void glGetInfoLogARB(GLhandleARB object, GLsizei maxLength, GLsizei *length, GLchar *infoLog)
  cdef void glShaderSourceARB(GLhandleARB shader, GLsizei nstrings, GLchar** strings, GLint *lengths)
  cdef void glCompileShaderARB(GLhandleARB shader)
  cdef GLhandleARB glCreateShaderObjectARB(GLenum shaderType)
  cdef void glAttachObjectARB(GLhandleARB program, GLhandleARB shader)
  cdef void glDetachObjectARB(GLhandleARB program, GLhandleARB shader)
  cdef void glLinkProgramARB(GLhandleARB program)
  cdef void glDeleteObjectARB(GLhandleARB object)


  
  #cdef void init_advanced_opengl()
