sig
  type ('a, 'b) bigarray = ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
  val bigarray_byte_size : ('a, 'b) Tgl3.Gl.bigarray -> int
  val string_of_bigarray :
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> string
  type bitfield = int
  type enum = int
  type enum_bigarray = (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray
  type int16 = int
  type sync
  type uint32_bigarray = (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray
  type uint64 = int64
  type uint64_bigarray = (int64, Bigarray.int64_elt) Tgl3.Gl.bigarray
  type uint8 = int
  type debug_proc =
      Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> Tgl3.Gl.enum -> string -> unit
  val active_texture : Tgl3.Gl.enum -> unit
  val attach_shader : int -> int -> unit
  val begin_conditional_render : int -> Tgl3.Gl.enum -> unit
  val begin_query : Tgl3.Gl.enum -> int -> unit
  val begin_transform_feedback : Tgl3.Gl.enum -> unit
  val bind_attrib_location : int -> int -> string -> unit
  val bind_buffer : Tgl3.Gl.enum -> int -> unit
  val bind_buffer_base : Tgl3.Gl.enum -> int -> int -> unit
  val bind_buffer_range : Tgl3.Gl.enum -> int -> int -> int -> int -> unit
  val bind_frag_data_location : int -> int -> string -> unit
  val bind_frag_data_location_indexed : int -> int -> int -> string -> unit
  val bind_framebuffer : Tgl3.Gl.enum -> int -> unit
  val bind_renderbuffer : Tgl3.Gl.enum -> int -> unit
  val bind_sampler : int -> int -> unit
  val bind_texture : Tgl3.Gl.enum -> int -> unit
  val bind_vertex_array : int -> unit
  val blend_color : float -> float -> float -> float -> unit
  val blend_equation : Tgl3.Gl.enum -> unit
  val blend_equation_separate : Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val blend_func : Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val blend_func_separate :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val blit_framebuffer :
    int ->
    int ->
    int ->
    int ->
    int -> int -> int -> int -> Tgl3.Gl.bitfield -> Tgl3.Gl.enum -> unit
  val buffer_data :
    Tgl3.Gl.enum ->
    int -> ('a, 'b) Tgl3.Gl.bigarray option -> Tgl3.Gl.enum -> unit
  val buffer_sub_data :
    Tgl3.Gl.enum -> int -> int -> ('a, 'b) Tgl3.Gl.bigarray option -> unit
  val check_framebuffer_status : Tgl3.Gl.enum -> Tgl3.Gl.enum
  val clamp_color : Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val clear : Tgl3.Gl.bitfield -> unit
  val clear_bufferfi : Tgl3.Gl.enum -> int -> float -> int -> unit
  val clear_bufferfv :
    Tgl3.Gl.enum ->
    int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val clear_bufferiv :
    Tgl3.Gl.enum ->
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val clear_bufferuiv :
    Tgl3.Gl.enum -> int -> Tgl3.Gl.uint32_bigarray -> unit
  val clear_color : float -> float -> float -> float -> unit
  val clear_depth : float -> unit
  val clear_stencil : int -> unit
  val client_wait_sync :
    Tgl3.Gl.sync -> Tgl3.Gl.bitfield -> Tgl3.Gl.uint64 -> Tgl3.Gl.enum
  val color_mask : bool -> bool -> bool -> bool -> unit
  val color_maski : int -> bool -> bool -> bool -> bool -> unit
  val compile_shader : int -> unit
  val compressed_tex_image1d :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    int ->
    int ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val compressed_tex_image2d :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val compressed_tex_image3d :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val compressed_tex_sub_image1d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val compressed_tex_sub_image2d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val compressed_tex_sub_image3d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val copy_buffer_sub_data :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> int -> unit
  val copy_tex_image1d :
    Tgl3.Gl.enum -> int -> Tgl3.Gl.enum -> int -> int -> int -> int -> unit
  val copy_tex_image2d :
    Tgl3.Gl.enum ->
    int -> Tgl3.Gl.enum -> int -> int -> int -> int -> int -> unit
  val copy_tex_sub_image1d :
    Tgl3.Gl.enum -> int -> int -> int -> int -> int -> unit
  val copy_tex_sub_image2d :
    Tgl3.Gl.enum -> int -> int -> int -> int -> int -> int -> int -> unit
  val copy_tex_sub_image3d :
    Tgl3.Gl.enum ->
    int -> int -> int -> int -> int -> int -> int -> int -> unit
  val create_program : unit -> int
  val create_shader : Tgl3.Gl.enum -> int
  val cull_face : Tgl3.Gl.enum -> unit
  val delete_buffers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val delete_framebuffers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val delete_program : int -> unit
  val delete_queries : int -> Tgl3.Gl.uint32_bigarray -> unit
  val delete_renderbuffers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val delete_samplers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val delete_shader : int -> unit
  val delete_sync : Tgl3.Gl.sync -> unit
  val delete_textures : int -> Tgl3.Gl.uint32_bigarray -> unit
  val delete_vertex_arrays : int -> Tgl3.Gl.uint32_bigarray -> unit
  val depth_func : Tgl3.Gl.enum -> unit
  val depth_mask : bool -> unit
  val depth_range : float -> float -> unit
  val detach_shader : int -> int -> unit
  val disable : Tgl3.Gl.enum -> unit
  val disable_vertex_attrib_array : int -> unit
  val disablei : Tgl3.Gl.enum -> int -> unit
  val draw_arrays : Tgl3.Gl.enum -> int -> int -> unit
  val draw_arrays_instanced : Tgl3.Gl.enum -> int -> int -> int -> unit
  val draw_buffer : Tgl3.Gl.enum -> unit
  val draw_buffers : int -> Tgl3.Gl.enum_bigarray -> unit
  val draw_elements :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val draw_elements_base_vertex :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> int -> unit
  val draw_elements_instanced :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> int -> unit
  val draw_elements_instanced_base_vertex :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] ->
    int -> int -> unit
  val draw_range_elements :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val draw_range_elements_base_vertex :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> int -> unit
  val enable : Tgl3.Gl.enum -> unit
  val enable_vertex_attrib_array : int -> unit
  val enablei : Tgl3.Gl.enum -> int -> unit
  val end_conditional_render : unit -> unit
  val end_query : Tgl3.Gl.enum -> unit
  val end_transform_feedback : unit -> unit
  val fence_sync : Tgl3.Gl.enum -> Tgl3.Gl.bitfield -> Tgl3.Gl.sync
  val finish : unit -> unit
  val flush : unit -> unit
  val flush_mapped_buffer_range : Tgl3.Gl.enum -> int -> int -> unit
  val framebuffer_renderbuffer :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> unit
  val framebuffer_texture :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> unit
  val framebuffer_texture1d :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> unit
  val framebuffer_texture2d :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> unit
  val framebuffer_texture3d :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> int -> unit
  val framebuffer_texture_layer :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> int -> unit
  val front_face : Tgl3.Gl.enum -> unit
  val gen_buffers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val gen_framebuffers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val gen_queries : int -> Tgl3.Gl.uint32_bigarray -> unit
  val gen_renderbuffers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val gen_samplers : int -> Tgl3.Gl.uint32_bigarray -> unit
  val gen_textures : int -> Tgl3.Gl.uint32_bigarray -> unit
  val gen_vertex_arrays : int -> Tgl3.Gl.uint32_bigarray -> unit
  val generate_mipmap : Tgl3.Gl.enum -> unit
  val get_active_attrib :
    int ->
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray ->
    Tgl3.Gl.enum_bigarray ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_active_uniform :
    int ->
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray ->
    Tgl3.Gl.enum_bigarray ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_active_uniform_block_name :
    int ->
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_active_uniform_blockiv :
    int ->
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_active_uniform_name :
    int ->
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_active_uniformsiv :
    int ->
    int ->
    Tgl3.Gl.uint32_bigarray ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_attached_shaders :
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    Tgl3.Gl.uint32_bigarray -> unit
  val get_attrib_location : int -> string -> int
  val get_booleani_v :
    Tgl3.Gl.enum ->
    int -> (int, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_booleanv :
    Tgl3.Gl.enum ->
    (int, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_buffer_parameteri64v :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int64, Bigarray.int64_elt) Tgl3.Gl.bigarray -> unit
  val get_buffer_parameteriv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_buffer_pointerv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    (nativeint, Bigarray.nativeint_elt) Tgl3.Gl.bigarray -> unit
  val get_buffer_sub_data :
    Tgl3.Gl.enum -> int -> int -> ('a, 'b) Tgl3.Gl.bigarray -> unit
  val get_compressed_tex_image :
    Tgl3.Gl.enum ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val get_doublev :
    Tgl3.Gl.enum -> (float, Bigarray.float64_elt) Tgl3.Gl.bigarray -> unit
  val get_error : unit -> Tgl3.Gl.enum
  val get_floatv :
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_frag_data_index : int -> string -> int
  val get_frag_data_location : int -> string -> int
  val get_framebuffer_attachment_parameteriv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_integer64i_v :
    Tgl3.Gl.enum ->
    int -> (int64, Bigarray.int64_elt) Tgl3.Gl.bigarray -> unit
  val get_integer64v :
    Tgl3.Gl.enum -> (int64, Bigarray.int64_elt) Tgl3.Gl.bigarray -> unit
  val get_integeri_v :
    Tgl3.Gl.enum ->
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_integerv :
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_multisamplefv :
    Tgl3.Gl.enum ->
    int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_program_info_log :
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_programiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_query_objecti64v :
    int ->
    Tgl3.Gl.enum -> (int64, Bigarray.int64_elt) Tgl3.Gl.bigarray -> unit
  val get_query_objectiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_query_objectui64v :
    int -> Tgl3.Gl.enum -> Tgl3.Gl.uint64_bigarray -> unit
  val get_query_objectuiv :
    int -> Tgl3.Gl.enum -> Tgl3.Gl.uint32_bigarray -> unit
  val get_queryiv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_renderbuffer_parameteriv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_sampler_parameter_iiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_sampler_parameter_iuiv :
    int -> Tgl3.Gl.enum -> Tgl3.Gl.uint32_bigarray -> unit
  val get_sampler_parameterfv :
    int ->
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_sampler_parameteriv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_shader_info_log :
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_shader_source :
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_shaderiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_string : Tgl3.Gl.enum -> string option
  val get_stringi : Tgl3.Gl.enum -> int -> string option
  val get_synciv :
    Tgl3.Gl.sync ->
    Tgl3.Gl.enum ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_tex_image :
    Tgl3.Gl.enum ->
    int -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> ('a, 'b) Tgl3.Gl.bigarray -> unit
  val get_tex_level_parameterfv :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_tex_level_parameteriv :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_tex_parameter_iiv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_tex_parameter_iuiv :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.uint32_bigarray -> unit
  val get_tex_parameterfv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_tex_parameteriv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_transform_feedback_varying :
    int ->
    int ->
    int ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray option ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray ->
    Tgl3.Gl.enum_bigarray ->
    (char, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val get_uniform_block_index : int -> string -> int
  val get_uniform_indices :
    int -> string list -> Tgl3.Gl.uint32_bigarray -> unit
  val get_uniform_location : int -> string -> int
  val get_uniformfv :
    int -> int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_uniformiv :
    int -> int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_uniformuiv : int -> int -> Tgl3.Gl.uint32_bigarray -> unit
  val get_vertex_attrib_iiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val get_vertex_attrib_iuiv :
    int -> Tgl3.Gl.enum -> Tgl3.Gl.uint32_bigarray -> unit
  val get_vertex_attrib_pointerv :
    int ->
    Tgl3.Gl.enum ->
    (nativeint, Bigarray.nativeint_elt) Tgl3.Gl.bigarray -> unit
  val get_vertex_attribdv :
    int ->
    Tgl3.Gl.enum -> (float, Bigarray.float64_elt) Tgl3.Gl.bigarray -> unit
  val get_vertex_attribfv :
    int ->
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val get_vertex_attribiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val hint : Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val is_buffer : int -> bool
  val is_enabled : Tgl3.Gl.enum -> bool
  val is_enabledi : Tgl3.Gl.enum -> int -> bool
  val is_framebuffer : int -> bool
  val is_program : int -> bool
  val is_query : int -> bool
  val is_renderbuffer : int -> bool
  val is_sampler : int -> bool
  val is_shader : int -> bool
  val is_sync : Tgl3.Gl.sync -> bool
  val is_texture : int -> bool
  val is_vertex_array : int -> bool
  val line_width : float -> unit
  val link_program : int -> unit
  val logic_op : Tgl3.Gl.enum -> unit
  val map_buffer :
    Tgl3.Gl.enum ->
    int ->
    Tgl3.Gl.enum -> ('a, 'b) Bigarray.kind -> ('a, 'b) Tgl3.Gl.bigarray
  val map_buffer_range :
    Tgl3.Gl.enum ->
    int ->
    int ->
    Tgl3.Gl.enum -> ('a, 'b) Bigarray.kind -> ('a, 'b) Tgl3.Gl.bigarray
  val multi_draw_arrays :
    Tgl3.Gl.enum ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> int -> unit
  val multi_draw_elements :
    Tgl3.Gl.enum ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray ->
    Tgl3.Gl.enum -> ('a, 'b) Tgl3.Gl.bigarray -> int -> unit
  val multi_draw_elements_base_vertex :
    Tgl3.Gl.enum ->
    (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray ->
    Tgl3.Gl.enum ->
    ('a, 'b) Tgl3.Gl.bigarray ->
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val pixel_storef : Tgl3.Gl.enum -> float -> unit
  val pixel_storei : Tgl3.Gl.enum -> int -> unit
  val point_parameterf : Tgl3.Gl.enum -> float -> unit
  val point_parameterfv :
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val point_parameteri : Tgl3.Gl.enum -> int -> unit
  val point_parameteriv :
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val point_size : float -> unit
  val polygon_mode : Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val polygon_offset : float -> float -> unit
  val primitive_restart_index : int -> unit
  val provoking_vertex : Tgl3.Gl.enum -> unit
  val query_counter : int -> Tgl3.Gl.enum -> unit
  val read_buffer : Tgl3.Gl.enum -> unit
  val read_pixels :
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val renderbuffer_storage :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> unit
  val renderbuffer_storage_multisample :
    Tgl3.Gl.enum -> int -> Tgl3.Gl.enum -> int -> int -> unit
  val sample_coverage : float -> bool -> unit
  val sample_maski : int -> Tgl3.Gl.bitfield -> unit
  val sampler_parameter_iiv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val sampler_parameter_iuiv :
    int -> Tgl3.Gl.enum -> Tgl3.Gl.uint32_bigarray -> unit
  val sampler_parameterf : int -> Tgl3.Gl.enum -> float -> unit
  val sampler_parameterfv :
    int ->
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val sampler_parameteri : int -> Tgl3.Gl.enum -> int -> unit
  val sampler_parameteriv :
    int ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val scissor : int -> int -> int -> int -> unit
  val shader_source : int -> string -> unit
  val stencil_func : Tgl3.Gl.enum -> int -> int -> unit
  val stencil_func_separate :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> int -> unit
  val stencil_mask : int -> unit
  val stencil_mask_separate : Tgl3.Gl.enum -> int -> unit
  val stencil_op : Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val stencil_op_separate :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.enum -> unit
  val tex_buffer : Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> unit
  val tex_image1d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val tex_image2d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val tex_image2d_multisample :
    Tgl3.Gl.enum -> int -> Tgl3.Gl.enum -> int -> int -> bool -> unit
  val tex_image3d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val tex_image3d_multisample :
    Tgl3.Gl.enum -> int -> Tgl3.Gl.enum -> int -> int -> int -> bool -> unit
  val tex_parameter_iiv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val tex_parameter_iuiv :
    Tgl3.Gl.enum -> Tgl3.Gl.enum -> Tgl3.Gl.uint32_bigarray -> unit
  val tex_parameterf : Tgl3.Gl.enum -> Tgl3.Gl.enum -> float -> unit
  val tex_parameterfv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val tex_parameteri : Tgl3.Gl.enum -> Tgl3.Gl.enum -> int -> unit
  val tex_parameteriv :
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val tex_sub_image1d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val tex_sub_image2d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val tex_sub_image3d :
    Tgl3.Gl.enum ->
    int ->
    int ->
    int ->
    int ->
    int ->
    int ->
    int ->
    Tgl3.Gl.enum ->
    Tgl3.Gl.enum ->
    [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val transform_feedback_varyings :
    int -> string list -> Tgl3.Gl.enum -> unit
  val uniform1f : int -> float -> unit
  val uniform1fv :
    int -> int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform1i : int -> int -> unit
  val uniform1iv :
    int -> int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val uniform1ui : int -> int -> unit
  val uniform1uiv : int -> int -> Tgl3.Gl.uint32_bigarray -> unit
  val uniform2f : int -> float -> float -> unit
  val uniform2fv :
    int -> int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform2i : int -> int -> int -> unit
  val uniform2iv :
    int -> int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val uniform2ui : int -> int -> int -> unit
  val uniform2uiv : int -> int -> Tgl3.Gl.uint32_bigarray -> unit
  val uniform3f : int -> float -> float -> float -> unit
  val uniform3fv :
    int -> int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform3i : int -> int -> int -> int -> unit
  val uniform3iv :
    int -> int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val uniform3ui : int -> int -> int -> int -> unit
  val uniform3uiv : int -> int -> Tgl3.Gl.uint32_bigarray -> unit
  val uniform4f : int -> float -> float -> float -> float -> unit
  val uniform4fv :
    int -> int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform4i : int -> int -> int -> int -> int -> unit
  val uniform4iv :
    int -> int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val uniform4ui : int -> int -> int -> int -> int -> unit
  val uniform4uiv : int -> int -> Tgl3.Gl.uint32_bigarray -> unit
  val uniform_block_binding : int -> int -> int -> unit
  val uniform_matrix2fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix2x3fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix2x4fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix3fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix3x2fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix3x4fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix4fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix4x2fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val uniform_matrix4x3fv :
    int ->
    int -> bool -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val unmap_buffer : Tgl3.Gl.enum -> bool
  val use_program : int -> unit
  val validate_program : int -> unit
  val vertex_attrib1d : int -> float -> unit
  val vertex_attrib1dv :
    int -> (float, Bigarray.float64_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib1f : int -> float -> unit
  val vertex_attrib1fv :
    int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib1s : int -> Tgl3.Gl.int16 -> unit
  val vertex_attrib1sv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib2d : int -> float -> float -> unit
  val vertex_attrib2dv :
    int -> (float, Bigarray.float64_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib2f : int -> float -> float -> unit
  val vertex_attrib2fv :
    int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib2s : int -> Tgl3.Gl.int16 -> Tgl3.Gl.int16 -> unit
  val vertex_attrib2sv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib3d : int -> float -> float -> float -> unit
  val vertex_attrib3dv :
    int -> (float, Bigarray.float64_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib3f : int -> float -> float -> float -> unit
  val vertex_attrib3fv :
    int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib3s :
    int -> Tgl3.Gl.int16 -> Tgl3.Gl.int16 -> Tgl3.Gl.int16 -> unit
  val vertex_attrib3sv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4nbv :
    int -> (int, Bigarray.int8_signed_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4niv :
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4nsv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4nub :
    int ->
    Tgl3.Gl.uint8 -> Tgl3.Gl.uint8 -> Tgl3.Gl.uint8 -> Tgl3.Gl.uint8 -> unit
  val vertex_attrib4nubv :
    int -> (int, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4nuiv : int -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib4nusv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4bv :
    int -> (int, Bigarray.int8_signed_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4d : int -> float -> float -> float -> float -> unit
  val vertex_attrib4dv :
    int -> (float, Bigarray.float64_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4f : int -> float -> float -> float -> float -> unit
  val vertex_attrib4fv :
    int -> (float, Bigarray.float32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4iv :
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4s :
    int ->
    Tgl3.Gl.int16 -> Tgl3.Gl.int16 -> Tgl3.Gl.int16 -> Tgl3.Gl.int16 -> unit
  val vertex_attrib4sv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4ubv :
    int -> (int, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib4uiv : int -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib4usv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_divisor : int -> int -> unit
  val vertex_attrib_i1i : int -> int -> unit
  val vertex_attrib_i1iv :
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i1ui : int -> int -> unit
  val vertex_attrib_i1uiv : int -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_i2i : int -> int -> int -> unit
  val vertex_attrib_i2iv :
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i2ui : int -> int -> int -> unit
  val vertex_attrib_i2uiv : int -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_i3i : int -> int -> int -> int -> unit
  val vertex_attrib_i3iv :
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i3ui : int -> int -> int -> int -> unit
  val vertex_attrib_i3uiv : int -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_i4bv :
    int -> (int, Bigarray.int8_signed_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i4i : int -> int -> int -> int -> int -> unit
  val vertex_attrib_i4iv :
    int -> (int32, Bigarray.int32_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i4sv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i4ubv :
    int -> (int, Bigarray.int8_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_i4ui : int -> int -> int -> int -> int -> unit
  val vertex_attrib_i4uiv : int -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_i4usv :
    int -> (int, Bigarray.int16_unsigned_elt) Tgl3.Gl.bigarray -> unit
  val vertex_attrib_ipointer :
    int ->
    int ->
    Tgl3.Gl.enum ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val vertex_attrib_p1ui : int -> Tgl3.Gl.enum -> bool -> int -> unit
  val vertex_attrib_p1uiv :
    int -> Tgl3.Gl.enum -> bool -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_p2ui : int -> Tgl3.Gl.enum -> bool -> int -> unit
  val vertex_attrib_p2uiv :
    int -> Tgl3.Gl.enum -> bool -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_p3ui : int -> Tgl3.Gl.enum -> bool -> int -> unit
  val vertex_attrib_p3uiv :
    int -> Tgl3.Gl.enum -> bool -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_p4ui : int -> Tgl3.Gl.enum -> bool -> int -> unit
  val vertex_attrib_p4uiv :
    int -> Tgl3.Gl.enum -> bool -> Tgl3.Gl.uint32_bigarray -> unit
  val vertex_attrib_pointer :
    int ->
    int ->
    Tgl3.Gl.enum ->
    bool ->
    int -> [ `Data of ('a, 'b) Tgl3.Gl.bigarray | `Offset of int ] -> unit
  val viewport : int -> int -> int -> int -> unit
  val wait_sync : Tgl3.Gl.sync -> Tgl3.Gl.bitfield -> Tgl3.Gl.uint64 -> unit
  val active_attributes : Tgl3.Gl.enum
  val active_attribute_max_length : Tgl3.Gl.enum
  val active_texture_enum : Tgl3.Gl.enum
  val active_uniforms : Tgl3.Gl.enum
  val active_uniform_blocks : Tgl3.Gl.enum
  val active_uniform_block_max_name_length : Tgl3.Gl.enum
  val active_uniform_max_length : Tgl3.Gl.enum
  val aliased_line_width_range : Tgl3.Gl.enum
  val alpha : Tgl3.Gl.enum
  val already_signaled : Tgl3.Gl.enum
  val always : Tgl3.Gl.enum
  val and_ : Tgl3.Gl.enum
  val and_inverted : Tgl3.Gl.enum
  val and_reverse : Tgl3.Gl.enum
  val any_samples_passed : Tgl3.Gl.enum
  val array_buffer : Tgl3.Gl.enum
  val array_buffer_binding : Tgl3.Gl.enum
  val attached_shaders : Tgl3.Gl.enum
  val back : Tgl3.Gl.enum
  val back_left : Tgl3.Gl.enum
  val back_right : Tgl3.Gl.enum
  val bgr : Tgl3.Gl.enum
  val bgra : Tgl3.Gl.enum
  val bgra_integer : Tgl3.Gl.enum
  val bgr_integer : Tgl3.Gl.enum
  val blend : Tgl3.Gl.enum
  val blend_dst : Tgl3.Gl.enum
  val blend_dst_alpha : Tgl3.Gl.enum
  val blend_dst_rgb : Tgl3.Gl.enum
  val blend_equation_alpha : Tgl3.Gl.enum
  val blend_equation_rgb : Tgl3.Gl.enum
  val blend_src : Tgl3.Gl.enum
  val blend_src_alpha : Tgl3.Gl.enum
  val blend_src_rgb : Tgl3.Gl.enum
  val blue : Tgl3.Gl.enum
  val blue_integer : Tgl3.Gl.enum
  val bool : Tgl3.Gl.enum
  val bool_vec2 : Tgl3.Gl.enum
  val bool_vec3 : Tgl3.Gl.enum
  val bool_vec4 : Tgl3.Gl.enum
  val buffer_access : Tgl3.Gl.enum
  val buffer_access_flags : Tgl3.Gl.enum
  val buffer_mapped : Tgl3.Gl.enum
  val buffer_map_length : Tgl3.Gl.enum
  val buffer_map_offset : Tgl3.Gl.enum
  val buffer_map_pointer : Tgl3.Gl.enum
  val buffer_size : Tgl3.Gl.enum
  val buffer_usage : Tgl3.Gl.enum
  val byte : Tgl3.Gl.enum
  val ccw : Tgl3.Gl.enum
  val clamp_read_color : Tgl3.Gl.enum
  val clamp_to_border : Tgl3.Gl.enum
  val clamp_to_edge : Tgl3.Gl.enum
  val clear_enum : Tgl3.Gl.enum
  val clip_distance0 : Tgl3.Gl.enum
  val clip_distance1 : Tgl3.Gl.enum
  val clip_distance2 : Tgl3.Gl.enum
  val clip_distance3 : Tgl3.Gl.enum
  val clip_distance4 : Tgl3.Gl.enum
  val clip_distance5 : Tgl3.Gl.enum
  val clip_distance6 : Tgl3.Gl.enum
  val clip_distance7 : Tgl3.Gl.enum
  val color : Tgl3.Gl.enum
  val color_attachment0 : Tgl3.Gl.enum
  val color_attachment1 : Tgl3.Gl.enum
  val color_attachment10 : Tgl3.Gl.enum
  val color_attachment11 : Tgl3.Gl.enum
  val color_attachment12 : Tgl3.Gl.enum
  val color_attachment13 : Tgl3.Gl.enum
  val color_attachment14 : Tgl3.Gl.enum
  val color_attachment15 : Tgl3.Gl.enum
  val color_attachment16 : Tgl3.Gl.enum
  val color_attachment17 : Tgl3.Gl.enum
  val color_attachment18 : Tgl3.Gl.enum
  val color_attachment19 : Tgl3.Gl.enum
  val color_attachment2 : Tgl3.Gl.enum
  val color_attachment20 : Tgl3.Gl.enum
  val color_attachment21 : Tgl3.Gl.enum
  val color_attachment22 : Tgl3.Gl.enum
  val color_attachment23 : Tgl3.Gl.enum
  val color_attachment24 : Tgl3.Gl.enum
  val color_attachment25 : Tgl3.Gl.enum
  val color_attachment26 : Tgl3.Gl.enum
  val color_attachment27 : Tgl3.Gl.enum
  val color_attachment28 : Tgl3.Gl.enum
  val color_attachment29 : Tgl3.Gl.enum
  val color_attachment3 : Tgl3.Gl.enum
  val color_attachment30 : Tgl3.Gl.enum
  val color_attachment31 : Tgl3.Gl.enum
  val color_attachment4 : Tgl3.Gl.enum
  val color_attachment5 : Tgl3.Gl.enum
  val color_attachment6 : Tgl3.Gl.enum
  val color_attachment7 : Tgl3.Gl.enum
  val color_attachment8 : Tgl3.Gl.enum
  val color_attachment9 : Tgl3.Gl.enum
  val color_buffer_bit : Tgl3.Gl.enum
  val color_clear_value : Tgl3.Gl.enum
  val color_logic_op : Tgl3.Gl.enum
  val color_writemask : Tgl3.Gl.enum
  val compare_ref_to_texture : Tgl3.Gl.enum
  val compile_status : Tgl3.Gl.enum
  val compressed_red : Tgl3.Gl.enum
  val compressed_red_rgtc1 : Tgl3.Gl.enum
  val compressed_rg : Tgl3.Gl.enum
  val compressed_rgb : Tgl3.Gl.enum
  val compressed_rgba : Tgl3.Gl.enum
  val compressed_rg_rgtc2 : Tgl3.Gl.enum
  val compressed_signed_red_rgtc1 : Tgl3.Gl.enum
  val compressed_signed_rg_rgtc2 : Tgl3.Gl.enum
  val compressed_srgb : Tgl3.Gl.enum
  val compressed_srgb_alpha : Tgl3.Gl.enum
  val compressed_texture_formats : Tgl3.Gl.enum
  val condition_satisfied : Tgl3.Gl.enum
  val constant_alpha : Tgl3.Gl.enum
  val constant_color : Tgl3.Gl.enum
  val context_compatibility_profile_bit : Tgl3.Gl.enum
  val context_core_profile_bit : Tgl3.Gl.enum
  val context_flags : Tgl3.Gl.enum
  val context_flag_forward_compatible_bit : Tgl3.Gl.enum
  val context_profile_mask : Tgl3.Gl.enum
  val copy : Tgl3.Gl.enum
  val copy_inverted : Tgl3.Gl.enum
  val copy_read_buffer : Tgl3.Gl.enum
  val copy_write_buffer : Tgl3.Gl.enum
  val cull_face_enum : Tgl3.Gl.enum
  val cull_face_mode : Tgl3.Gl.enum
  val current_program : Tgl3.Gl.enum
  val current_query : Tgl3.Gl.enum
  val current_vertex_attrib : Tgl3.Gl.enum
  val cw : Tgl3.Gl.enum
  val decr : Tgl3.Gl.enum
  val decr_wrap : Tgl3.Gl.enum
  val delete_status : Tgl3.Gl.enum
  val depth : Tgl3.Gl.enum
  val depth24_stencil8 : Tgl3.Gl.enum
  val depth32f_stencil8 : Tgl3.Gl.enum
  val depth_attachment : Tgl3.Gl.enum
  val depth_buffer_bit : Tgl3.Gl.enum
  val depth_clamp : Tgl3.Gl.enum
  val depth_clear_value : Tgl3.Gl.enum
  val depth_component : Tgl3.Gl.enum
  val depth_component16 : Tgl3.Gl.enum
  val depth_component24 : Tgl3.Gl.enum
  val depth_component32 : Tgl3.Gl.enum
  val depth_component32f : Tgl3.Gl.enum
  val depth_func_enum : Tgl3.Gl.enum
  val depth_range_enum : Tgl3.Gl.enum
  val depth_stencil : Tgl3.Gl.enum
  val depth_stencil_attachment : Tgl3.Gl.enum
  val depth_test : Tgl3.Gl.enum
  val depth_writemask : Tgl3.Gl.enum
  val dither : Tgl3.Gl.enum
  val dont_care : Tgl3.Gl.enum
  val double : Tgl3.Gl.enum
  val doublebuffer : Tgl3.Gl.enum
  val draw_buffer_enum : Tgl3.Gl.enum
  val draw_buffer0 : Tgl3.Gl.enum
  val draw_buffer1 : Tgl3.Gl.enum
  val draw_buffer10 : Tgl3.Gl.enum
  val draw_buffer11 : Tgl3.Gl.enum
  val draw_buffer12 : Tgl3.Gl.enum
  val draw_buffer13 : Tgl3.Gl.enum
  val draw_buffer14 : Tgl3.Gl.enum
  val draw_buffer15 : Tgl3.Gl.enum
  val draw_buffer2 : Tgl3.Gl.enum
  val draw_buffer3 : Tgl3.Gl.enum
  val draw_buffer4 : Tgl3.Gl.enum
  val draw_buffer5 : Tgl3.Gl.enum
  val draw_buffer6 : Tgl3.Gl.enum
  val draw_buffer7 : Tgl3.Gl.enum
  val draw_buffer8 : Tgl3.Gl.enum
  val draw_buffer9 : Tgl3.Gl.enum
  val draw_framebuffer : Tgl3.Gl.enum
  val draw_framebuffer_binding : Tgl3.Gl.enum
  val dst_alpha : Tgl3.Gl.enum
  val dst_color : Tgl3.Gl.enum
  val dynamic_copy : Tgl3.Gl.enum
  val dynamic_draw : Tgl3.Gl.enum
  val dynamic_read : Tgl3.Gl.enum
  val element_array_buffer : Tgl3.Gl.enum
  val element_array_buffer_binding : Tgl3.Gl.enum
  val equal : Tgl3.Gl.enum
  val equiv : Tgl3.Gl.enum
  val extensions : Tgl3.Gl.enum
  val false_ : Tgl3.Gl.enum
  val fastest : Tgl3.Gl.enum
  val fill : Tgl3.Gl.enum
  val first_vertex_convention : Tgl3.Gl.enum
  val fixed_only : Tgl3.Gl.enum
  val float : Tgl3.Gl.enum
  val float_32_unsigned_int_24_8_rev : Tgl3.Gl.enum
  val float_mat2 : Tgl3.Gl.enum
  val float_mat2x3 : Tgl3.Gl.enum
  val float_mat2x4 : Tgl3.Gl.enum
  val float_mat3 : Tgl3.Gl.enum
  val float_mat3x2 : Tgl3.Gl.enum
  val float_mat3x4 : Tgl3.Gl.enum
  val float_mat4 : Tgl3.Gl.enum
  val float_mat4x2 : Tgl3.Gl.enum
  val float_mat4x3 : Tgl3.Gl.enum
  val float_vec2 : Tgl3.Gl.enum
  val float_vec3 : Tgl3.Gl.enum
  val float_vec4 : Tgl3.Gl.enum
  val fragment_shader : Tgl3.Gl.enum
  val fragment_shader_derivative_hint : Tgl3.Gl.enum
  val framebuffer : Tgl3.Gl.enum
  val framebuffer_attachment_alpha_size : Tgl3.Gl.enum
  val framebuffer_attachment_blue_size : Tgl3.Gl.enum
  val framebuffer_attachment_color_encoding : Tgl3.Gl.enum
  val framebuffer_attachment_component_type : Tgl3.Gl.enum
  val framebuffer_attachment_depth_size : Tgl3.Gl.enum
  val framebuffer_attachment_green_size : Tgl3.Gl.enum
  val framebuffer_attachment_layered : Tgl3.Gl.enum
  val framebuffer_attachment_object_name : Tgl3.Gl.enum
  val framebuffer_attachment_object_type : Tgl3.Gl.enum
  val framebuffer_attachment_red_size : Tgl3.Gl.enum
  val framebuffer_attachment_stencil_size : Tgl3.Gl.enum
  val framebuffer_attachment_texture_cube_map_face : Tgl3.Gl.enum
  val framebuffer_attachment_texture_layer : Tgl3.Gl.enum
  val framebuffer_attachment_texture_level : Tgl3.Gl.enum
  val framebuffer_binding : Tgl3.Gl.enum
  val framebuffer_complete : Tgl3.Gl.enum
  val framebuffer_default : Tgl3.Gl.enum
  val framebuffer_incomplete_attachment : Tgl3.Gl.enum
  val framebuffer_incomplete_draw_buffer : Tgl3.Gl.enum
  val framebuffer_incomplete_layer_targets : Tgl3.Gl.enum
  val framebuffer_incomplete_missing_attachment : Tgl3.Gl.enum
  val framebuffer_incomplete_multisample : Tgl3.Gl.enum
  val framebuffer_incomplete_read_buffer : Tgl3.Gl.enum
  val framebuffer_srgb : Tgl3.Gl.enum
  val framebuffer_undefined : Tgl3.Gl.enum
  val framebuffer_unsupported : Tgl3.Gl.enum
  val front : Tgl3.Gl.enum
  val front_and_back : Tgl3.Gl.enum
  val front_face_enum : Tgl3.Gl.enum
  val front_left : Tgl3.Gl.enum
  val front_right : Tgl3.Gl.enum
  val func_add : Tgl3.Gl.enum
  val func_reverse_subtract : Tgl3.Gl.enum
  val func_subtract : Tgl3.Gl.enum
  val geometry_input_type : Tgl3.Gl.enum
  val geometry_output_type : Tgl3.Gl.enum
  val geometry_shader : Tgl3.Gl.enum
  val geometry_vertices_out : Tgl3.Gl.enum
  val gequal : Tgl3.Gl.enum
  val greater : Tgl3.Gl.enum
  val green : Tgl3.Gl.enum
  val green_integer : Tgl3.Gl.enum
  val half_float : Tgl3.Gl.enum
  val incr : Tgl3.Gl.enum
  val incr_wrap : Tgl3.Gl.enum
  val info_log_length : Tgl3.Gl.enum
  val int : Tgl3.Gl.enum
  val interleaved_attribs : Tgl3.Gl.enum
  val int_2_10_10_10_rev : Tgl3.Gl.enum
  val int_sampler_1d : Tgl3.Gl.enum
  val int_sampler_1d_array : Tgl3.Gl.enum
  val int_sampler_2d : Tgl3.Gl.enum
  val int_sampler_2d_array : Tgl3.Gl.enum
  val int_sampler_2d_multisample : Tgl3.Gl.enum
  val int_sampler_2d_multisample_array : Tgl3.Gl.enum
  val int_sampler_2d_rect : Tgl3.Gl.enum
  val int_sampler_3d : Tgl3.Gl.enum
  val int_sampler_buffer : Tgl3.Gl.enum
  val int_sampler_cube : Tgl3.Gl.enum
  val int_vec2 : Tgl3.Gl.enum
  val int_vec3 : Tgl3.Gl.enum
  val int_vec4 : Tgl3.Gl.enum
  val invalid_enum : Tgl3.Gl.enum
  val invalid_framebuffer_operation : Tgl3.Gl.enum
  val invalid_index : int32
  val invalid_operation : Tgl3.Gl.enum
  val invalid_value : Tgl3.Gl.enum
  val invert : Tgl3.Gl.enum
  val keep : Tgl3.Gl.enum
  val last_vertex_convention : Tgl3.Gl.enum
  val left : Tgl3.Gl.enum
  val lequal : Tgl3.Gl.enum
  val less : Tgl3.Gl.enum
  val line : Tgl3.Gl.enum
  val linear : Tgl3.Gl.enum
  val linear_mipmap_linear : Tgl3.Gl.enum
  val linear_mipmap_nearest : Tgl3.Gl.enum
  val lines : Tgl3.Gl.enum
  val lines_adjacency : Tgl3.Gl.enum
  val line_loop : Tgl3.Gl.enum
  val line_smooth : Tgl3.Gl.enum
  val line_smooth_hint : Tgl3.Gl.enum
  val line_strip : Tgl3.Gl.enum
  val line_strip_adjacency : Tgl3.Gl.enum
  val line_width_enum : Tgl3.Gl.enum
  val line_width_granularity : Tgl3.Gl.enum
  val line_width_range : Tgl3.Gl.enum
  val link_status : Tgl3.Gl.enum
  val logic_op_mode : Tgl3.Gl.enum
  val lower_left : Tgl3.Gl.enum
  val major_version : Tgl3.Gl.enum
  val map_flush_explicit_bit : Tgl3.Gl.enum
  val map_invalidate_buffer_bit : Tgl3.Gl.enum
  val map_invalidate_range_bit : Tgl3.Gl.enum
  val map_read_bit : Tgl3.Gl.enum
  val map_unsynchronized_bit : Tgl3.Gl.enum
  val map_write_bit : Tgl3.Gl.enum
  val max : Tgl3.Gl.enum
  val max_3d_texture_size : Tgl3.Gl.enum
  val max_array_texture_layers : Tgl3.Gl.enum
  val max_clip_distances : Tgl3.Gl.enum
  val max_color_attachments : Tgl3.Gl.enum
  val max_color_texture_samples : Tgl3.Gl.enum
  val max_combined_fragment_uniform_components : Tgl3.Gl.enum
  val max_combined_geometry_uniform_components : Tgl3.Gl.enum
  val max_combined_texture_image_units : Tgl3.Gl.enum
  val max_combined_uniform_blocks : Tgl3.Gl.enum
  val max_combined_vertex_uniform_components : Tgl3.Gl.enum
  val max_cube_map_texture_size : Tgl3.Gl.enum
  val max_depth_texture_samples : Tgl3.Gl.enum
  val max_draw_buffers : Tgl3.Gl.enum
  val max_dual_source_draw_buffers : Tgl3.Gl.enum
  val max_elements_indices : Tgl3.Gl.enum
  val max_elements_vertices : Tgl3.Gl.enum
  val max_fragment_input_components : Tgl3.Gl.enum
  val max_fragment_uniform_blocks : Tgl3.Gl.enum
  val max_fragment_uniform_components : Tgl3.Gl.enum
  val max_geometry_input_components : Tgl3.Gl.enum
  val max_geometry_output_components : Tgl3.Gl.enum
  val max_geometry_output_vertices : Tgl3.Gl.enum
  val max_geometry_texture_image_units : Tgl3.Gl.enum
  val max_geometry_total_output_components : Tgl3.Gl.enum
  val max_geometry_uniform_blocks : Tgl3.Gl.enum
  val max_geometry_uniform_components : Tgl3.Gl.enum
  val max_integer_samples : Tgl3.Gl.enum
  val max_program_texel_offset : Tgl3.Gl.enum
  val max_rectangle_texture_size : Tgl3.Gl.enum
  val max_renderbuffer_size : Tgl3.Gl.enum
  val max_samples : Tgl3.Gl.enum
  val max_sample_mask_words : Tgl3.Gl.enum
  val max_server_wait_timeout : Tgl3.Gl.enum
  val max_texture_buffer_size : Tgl3.Gl.enum
  val max_texture_image_units : Tgl3.Gl.enum
  val max_texture_lod_bias : Tgl3.Gl.enum
  val max_texture_size : Tgl3.Gl.enum
  val max_transform_feedback_interleaved_components : Tgl3.Gl.enum
  val max_transform_feedback_separate_attribs : Tgl3.Gl.enum
  val max_transform_feedback_separate_components : Tgl3.Gl.enum
  val max_uniform_block_size : Tgl3.Gl.enum
  val max_uniform_buffer_bindings : Tgl3.Gl.enum
  val max_varying_components : Tgl3.Gl.enum
  val max_varying_floats : Tgl3.Gl.enum
  val max_vertex_attribs : Tgl3.Gl.enum
  val max_vertex_output_components : Tgl3.Gl.enum
  val max_vertex_texture_image_units : Tgl3.Gl.enum
  val max_vertex_uniform_blocks : Tgl3.Gl.enum
  val max_vertex_uniform_components : Tgl3.Gl.enum
  val max_viewport_dims : Tgl3.Gl.enum
  val min : Tgl3.Gl.enum
  val minor_version : Tgl3.Gl.enum
  val min_program_texel_offset : Tgl3.Gl.enum
  val mirrored_repeat : Tgl3.Gl.enum
  val multisample : Tgl3.Gl.enum
  val nand : Tgl3.Gl.enum
  val nearest : Tgl3.Gl.enum
  val nearest_mipmap_linear : Tgl3.Gl.enum
  val nearest_mipmap_nearest : Tgl3.Gl.enum
  val never : Tgl3.Gl.enum
  val nicest : Tgl3.Gl.enum
  val none : Tgl3.Gl.enum
  val noop : Tgl3.Gl.enum
  val nor : Tgl3.Gl.enum
  val notequal : Tgl3.Gl.enum
  val no_error : Tgl3.Gl.enum
  val num_compressed_texture_formats : Tgl3.Gl.enum
  val num_extensions : Tgl3.Gl.enum
  val object_type : Tgl3.Gl.enum
  val one : Tgl3.Gl.enum
  val one_minus_constant_alpha : Tgl3.Gl.enum
  val one_minus_constant_color : Tgl3.Gl.enum
  val one_minus_dst_alpha : Tgl3.Gl.enum
  val one_minus_dst_color : Tgl3.Gl.enum
  val one_minus_src1_alpha : Tgl3.Gl.enum
  val one_minus_src1_color : Tgl3.Gl.enum
  val one_minus_src_alpha : Tgl3.Gl.enum
  val one_minus_src_color : Tgl3.Gl.enum
  val or_ : Tgl3.Gl.enum
  val or_inverted : Tgl3.Gl.enum
  val or_reverse : Tgl3.Gl.enum
  val out_of_memory : Tgl3.Gl.enum
  val pack_alignment : Tgl3.Gl.enum
  val pack_image_height : Tgl3.Gl.enum
  val pack_lsb_first : Tgl3.Gl.enum
  val pack_row_length : Tgl3.Gl.enum
  val pack_skip_images : Tgl3.Gl.enum
  val pack_skip_pixels : Tgl3.Gl.enum
  val pack_skip_rows : Tgl3.Gl.enum
  val pack_swap_bytes : Tgl3.Gl.enum
  val pixel_pack_buffer : Tgl3.Gl.enum
  val pixel_pack_buffer_binding : Tgl3.Gl.enum
  val pixel_unpack_buffer : Tgl3.Gl.enum
  val pixel_unpack_buffer_binding : Tgl3.Gl.enum
  val point : Tgl3.Gl.enum
  val points : Tgl3.Gl.enum
  val point_fade_threshold_size : Tgl3.Gl.enum
  val point_size_enum : Tgl3.Gl.enum
  val point_size_granularity : Tgl3.Gl.enum
  val point_size_range : Tgl3.Gl.enum
  val point_sprite_coord_origin : Tgl3.Gl.enum
  val polygon_mode_enum : Tgl3.Gl.enum
  val polygon_offset_factor : Tgl3.Gl.enum
  val polygon_offset_fill : Tgl3.Gl.enum
  val polygon_offset_line : Tgl3.Gl.enum
  val polygon_offset_point : Tgl3.Gl.enum
  val polygon_offset_units : Tgl3.Gl.enum
  val polygon_smooth : Tgl3.Gl.enum
  val polygon_smooth_hint : Tgl3.Gl.enum
  val primitives_generated : Tgl3.Gl.enum
  val primitive_restart : Tgl3.Gl.enum
  val primitive_restart_index_enum : Tgl3.Gl.enum
  val program_point_size : Tgl3.Gl.enum
  val provoking_vertex_enum : Tgl3.Gl.enum
  val proxy_texture_1d : Tgl3.Gl.enum
  val proxy_texture_1d_array : Tgl3.Gl.enum
  val proxy_texture_2d : Tgl3.Gl.enum
  val proxy_texture_2d_array : Tgl3.Gl.enum
  val proxy_texture_2d_multisample : Tgl3.Gl.enum
  val proxy_texture_2d_multisample_array : Tgl3.Gl.enum
  val proxy_texture_3d : Tgl3.Gl.enum
  val proxy_texture_cube_map : Tgl3.Gl.enum
  val proxy_texture_rectangle : Tgl3.Gl.enum
  val quads_follow_provoking_vertex_convention : Tgl3.Gl.enum
  val query_by_region_no_wait : Tgl3.Gl.enum
  val query_by_region_wait : Tgl3.Gl.enum
  val query_counter_bits : Tgl3.Gl.enum
  val query_no_wait : Tgl3.Gl.enum
  val query_result : Tgl3.Gl.enum
  val query_result_available : Tgl3.Gl.enum
  val query_wait : Tgl3.Gl.enum
  val r11f_g11f_b10f : Tgl3.Gl.enum
  val r16 : Tgl3.Gl.enum
  val r16f : Tgl3.Gl.enum
  val r16i : Tgl3.Gl.enum
  val r16ui : Tgl3.Gl.enum
  val r16_snorm : Tgl3.Gl.enum
  val r32f : Tgl3.Gl.enum
  val r32i : Tgl3.Gl.enum
  val r32ui : Tgl3.Gl.enum
  val r3_g3_b2 : Tgl3.Gl.enum
  val r8 : Tgl3.Gl.enum
  val r8i : Tgl3.Gl.enum
  val r8ui : Tgl3.Gl.enum
  val r8_snorm : Tgl3.Gl.enum
  val rasterizer_discard : Tgl3.Gl.enum
  val read_buffer_enum : Tgl3.Gl.enum
  val read_framebuffer : Tgl3.Gl.enum
  val read_framebuffer_binding : Tgl3.Gl.enum
  val read_only : Tgl3.Gl.enum
  val read_write : Tgl3.Gl.enum
  val red : Tgl3.Gl.enum
  val red_integer : Tgl3.Gl.enum
  val renderbuffer : Tgl3.Gl.enum
  val renderbuffer_alpha_size : Tgl3.Gl.enum
  val renderbuffer_binding : Tgl3.Gl.enum
  val renderbuffer_blue_size : Tgl3.Gl.enum
  val renderbuffer_depth_size : Tgl3.Gl.enum
  val renderbuffer_green_size : Tgl3.Gl.enum
  val renderbuffer_height : Tgl3.Gl.enum
  val renderbuffer_internal_format : Tgl3.Gl.enum
  val renderbuffer_red_size : Tgl3.Gl.enum
  val renderbuffer_samples : Tgl3.Gl.enum
  val renderbuffer_stencil_size : Tgl3.Gl.enum
  val renderbuffer_width : Tgl3.Gl.enum
  val renderer : Tgl3.Gl.enum
  val repeat : Tgl3.Gl.enum
  val replace : Tgl3.Gl.enum
  val rg : Tgl3.Gl.enum
  val rg16 : Tgl3.Gl.enum
  val rg16f : Tgl3.Gl.enum
  val rg16i : Tgl3.Gl.enum
  val rg16ui : Tgl3.Gl.enum
  val rg16_snorm : Tgl3.Gl.enum
  val rg32f : Tgl3.Gl.enum
  val rg32i : Tgl3.Gl.enum
  val rg32ui : Tgl3.Gl.enum
  val rg8 : Tgl3.Gl.enum
  val rg8i : Tgl3.Gl.enum
  val rg8ui : Tgl3.Gl.enum
  val rg8_snorm : Tgl3.Gl.enum
  val rgb : Tgl3.Gl.enum
  val rgb10 : Tgl3.Gl.enum
  val rgb10_a2 : Tgl3.Gl.enum
  val rgb10_a2ui : Tgl3.Gl.enum
  val rgb12 : Tgl3.Gl.enum
  val rgb16 : Tgl3.Gl.enum
  val rgb16f : Tgl3.Gl.enum
  val rgb16i : Tgl3.Gl.enum
  val rgb16ui : Tgl3.Gl.enum
  val rgb16_snorm : Tgl3.Gl.enum
  val rgb32f : Tgl3.Gl.enum
  val rgb32i : Tgl3.Gl.enum
  val rgb32ui : Tgl3.Gl.enum
  val rgb4 : Tgl3.Gl.enum
  val rgb5 : Tgl3.Gl.enum
  val rgb5_a1 : Tgl3.Gl.enum
  val rgb8 : Tgl3.Gl.enum
  val rgb8i : Tgl3.Gl.enum
  val rgb8ui : Tgl3.Gl.enum
  val rgb8_snorm : Tgl3.Gl.enum
  val rgb9_e5 : Tgl3.Gl.enum
  val rgba : Tgl3.Gl.enum
  val rgba12 : Tgl3.Gl.enum
  val rgba16 : Tgl3.Gl.enum
  val rgba16f : Tgl3.Gl.enum
  val rgba16i : Tgl3.Gl.enum
  val rgba16ui : Tgl3.Gl.enum
  val rgba16_snorm : Tgl3.Gl.enum
  val rgba2 : Tgl3.Gl.enum
  val rgba32f : Tgl3.Gl.enum
  val rgba32i : Tgl3.Gl.enum
  val rgba32ui : Tgl3.Gl.enum
  val rgba4 : Tgl3.Gl.enum
  val rgba8 : Tgl3.Gl.enum
  val rgba8i : Tgl3.Gl.enum
  val rgba8ui : Tgl3.Gl.enum
  val rgba8_snorm : Tgl3.Gl.enum
  val rgba_integer : Tgl3.Gl.enum
  val rgb_integer : Tgl3.Gl.enum
  val rg_integer : Tgl3.Gl.enum
  val right : Tgl3.Gl.enum
  val sampler_1d : Tgl3.Gl.enum
  val sampler_1d_array : Tgl3.Gl.enum
  val sampler_1d_array_shadow : Tgl3.Gl.enum
  val sampler_1d_shadow : Tgl3.Gl.enum
  val sampler_2d : Tgl3.Gl.enum
  val sampler_2d_array : Tgl3.Gl.enum
  val sampler_2d_array_shadow : Tgl3.Gl.enum
  val sampler_2d_multisample : Tgl3.Gl.enum
  val sampler_2d_multisample_array : Tgl3.Gl.enum
  val sampler_2d_rect : Tgl3.Gl.enum
  val sampler_2d_rect_shadow : Tgl3.Gl.enum
  val sampler_2d_shadow : Tgl3.Gl.enum
  val sampler_3d : Tgl3.Gl.enum
  val sampler_binding : Tgl3.Gl.enum
  val sampler_buffer : Tgl3.Gl.enum
  val sampler_cube : Tgl3.Gl.enum
  val sampler_cube_shadow : Tgl3.Gl.enum
  val samples : Tgl3.Gl.enum
  val samples_passed : Tgl3.Gl.enum
  val sample_alpha_to_coverage : Tgl3.Gl.enum
  val sample_alpha_to_one : Tgl3.Gl.enum
  val sample_buffers : Tgl3.Gl.enum
  val sample_coverage_enum : Tgl3.Gl.enum
  val sample_coverage_invert : Tgl3.Gl.enum
  val sample_coverage_value : Tgl3.Gl.enum
  val sample_mask : Tgl3.Gl.enum
  val sample_mask_value : Tgl3.Gl.enum
  val sample_position : Tgl3.Gl.enum
  val scissor_box : Tgl3.Gl.enum
  val scissor_test : Tgl3.Gl.enum
  val separate_attribs : Tgl3.Gl.enum
  val set : Tgl3.Gl.enum
  val shader_source_length : Tgl3.Gl.enum
  val shader_type : Tgl3.Gl.enum
  val shading_language_version : Tgl3.Gl.enum
  val short : Tgl3.Gl.enum
  val signaled : Tgl3.Gl.enum
  val signed_normalized : Tgl3.Gl.enum
  val smooth_line_width_granularity : Tgl3.Gl.enum
  val smooth_line_width_range : Tgl3.Gl.enum
  val smooth_point_size_granularity : Tgl3.Gl.enum
  val smooth_point_size_range : Tgl3.Gl.enum
  val src1_alpha : Tgl3.Gl.enum
  val src1_color : Tgl3.Gl.enum
  val src_alpha : Tgl3.Gl.enum
  val src_alpha_saturate : Tgl3.Gl.enum
  val src_color : Tgl3.Gl.enum
  val srgb : Tgl3.Gl.enum
  val srgb8 : Tgl3.Gl.enum
  val srgb8_alpha8 : Tgl3.Gl.enum
  val srgb_alpha : Tgl3.Gl.enum
  val static_copy : Tgl3.Gl.enum
  val static_draw : Tgl3.Gl.enum
  val static_read : Tgl3.Gl.enum
  val stencil : Tgl3.Gl.enum
  val stencil_attachment : Tgl3.Gl.enum
  val stencil_back_fail : Tgl3.Gl.enum
  val stencil_back_func : Tgl3.Gl.enum
  val stencil_back_pass_depth_fail : Tgl3.Gl.enum
  val stencil_back_pass_depth_pass : Tgl3.Gl.enum
  val stencil_back_ref : Tgl3.Gl.enum
  val stencil_back_value_mask : Tgl3.Gl.enum
  val stencil_back_writemask : Tgl3.Gl.enum
  val stencil_buffer_bit : Tgl3.Gl.enum
  val stencil_clear_value : Tgl3.Gl.enum
  val stencil_fail : Tgl3.Gl.enum
  val stencil_func_enum : Tgl3.Gl.enum
  val stencil_index : Tgl3.Gl.enum
  val stencil_index1 : Tgl3.Gl.enum
  val stencil_index16 : Tgl3.Gl.enum
  val stencil_index4 : Tgl3.Gl.enum
  val stencil_index8 : Tgl3.Gl.enum
  val stencil_pass_depth_fail : Tgl3.Gl.enum
  val stencil_pass_depth_pass : Tgl3.Gl.enum
  val stencil_ref : Tgl3.Gl.enum
  val stencil_test : Tgl3.Gl.enum
  val stencil_value_mask : Tgl3.Gl.enum
  val stencil_writemask : Tgl3.Gl.enum
  val stereo : Tgl3.Gl.enum
  val stream_copy : Tgl3.Gl.enum
  val stream_draw : Tgl3.Gl.enum
  val stream_read : Tgl3.Gl.enum
  val subpixel_bits : Tgl3.Gl.enum
  val sync_condition : Tgl3.Gl.enum
  val sync_fence : Tgl3.Gl.enum
  val sync_flags : Tgl3.Gl.enum
  val sync_flush_commands_bit : Tgl3.Gl.enum
  val sync_gpu_commands_complete : Tgl3.Gl.enum
  val sync_status : Tgl3.Gl.enum
  val texture : Tgl3.Gl.enum
  val texture0 : Tgl3.Gl.enum
  val texture1 : Tgl3.Gl.enum
  val texture10 : Tgl3.Gl.enum
  val texture11 : Tgl3.Gl.enum
  val texture12 : Tgl3.Gl.enum
  val texture13 : Tgl3.Gl.enum
  val texture14 : Tgl3.Gl.enum
  val texture15 : Tgl3.Gl.enum
  val texture16 : Tgl3.Gl.enum
  val texture17 : Tgl3.Gl.enum
  val texture18 : Tgl3.Gl.enum
  val texture19 : Tgl3.Gl.enum
  val texture2 : Tgl3.Gl.enum
  val texture20 : Tgl3.Gl.enum
  val texture21 : Tgl3.Gl.enum
  val texture22 : Tgl3.Gl.enum
  val texture23 : Tgl3.Gl.enum
  val texture24 : Tgl3.Gl.enum
  val texture25 : Tgl3.Gl.enum
  val texture26 : Tgl3.Gl.enum
  val texture27 : Tgl3.Gl.enum
  val texture28 : Tgl3.Gl.enum
  val texture29 : Tgl3.Gl.enum
  val texture3 : Tgl3.Gl.enum
  val texture30 : Tgl3.Gl.enum
  val texture31 : Tgl3.Gl.enum
  val texture4 : Tgl3.Gl.enum
  val texture5 : Tgl3.Gl.enum
  val texture6 : Tgl3.Gl.enum
  val texture7 : Tgl3.Gl.enum
  val texture8 : Tgl3.Gl.enum
  val texture9 : Tgl3.Gl.enum
  val texture_1d : Tgl3.Gl.enum
  val texture_1d_array : Tgl3.Gl.enum
  val texture_2d : Tgl3.Gl.enum
  val texture_2d_array : Tgl3.Gl.enum
  val texture_2d_multisample : Tgl3.Gl.enum
  val texture_2d_multisample_array : Tgl3.Gl.enum
  val texture_3d : Tgl3.Gl.enum
  val texture_alpha_size : Tgl3.Gl.enum
  val texture_alpha_type : Tgl3.Gl.enum
  val texture_base_level : Tgl3.Gl.enum
  val texture_binding_1d : Tgl3.Gl.enum
  val texture_binding_1d_array : Tgl3.Gl.enum
  val texture_binding_2d : Tgl3.Gl.enum
  val texture_binding_2d_array : Tgl3.Gl.enum
  val texture_binding_2d_multisample : Tgl3.Gl.enum
  val texture_binding_2d_multisample_array : Tgl3.Gl.enum
  val texture_binding_3d : Tgl3.Gl.enum
  val texture_binding_buffer : Tgl3.Gl.enum
  val texture_binding_cube_map : Tgl3.Gl.enum
  val texture_binding_rectangle : Tgl3.Gl.enum
  val texture_blue_size : Tgl3.Gl.enum
  val texture_blue_type : Tgl3.Gl.enum
  val texture_border_color : Tgl3.Gl.enum
  val texture_buffer : Tgl3.Gl.enum
  val texture_buffer_data_store_binding : Tgl3.Gl.enum
  val texture_compare_func : Tgl3.Gl.enum
  val texture_compare_mode : Tgl3.Gl.enum
  val texture_compressed : Tgl3.Gl.enum
  val texture_compressed_image_size : Tgl3.Gl.enum
  val texture_compression_hint : Tgl3.Gl.enum
  val texture_cube_map : Tgl3.Gl.enum
  val texture_cube_map_negative_x : Tgl3.Gl.enum
  val texture_cube_map_negative_y : Tgl3.Gl.enum
  val texture_cube_map_negative_z : Tgl3.Gl.enum
  val texture_cube_map_positive_x : Tgl3.Gl.enum
  val texture_cube_map_positive_y : Tgl3.Gl.enum
  val texture_cube_map_positive_z : Tgl3.Gl.enum
  val texture_cube_map_seamless : Tgl3.Gl.enum
  val texture_depth : Tgl3.Gl.enum
  val texture_depth_size : Tgl3.Gl.enum
  val texture_depth_type : Tgl3.Gl.enum
  val texture_fixed_sample_locations : Tgl3.Gl.enum
  val texture_green_size : Tgl3.Gl.enum
  val texture_green_type : Tgl3.Gl.enum
  val texture_height : Tgl3.Gl.enum
  val texture_internal_format : Tgl3.Gl.enum
  val texture_lod_bias : Tgl3.Gl.enum
  val texture_mag_filter : Tgl3.Gl.enum
  val texture_max_level : Tgl3.Gl.enum
  val texture_max_lod : Tgl3.Gl.enum
  val texture_min_filter : Tgl3.Gl.enum
  val texture_min_lod : Tgl3.Gl.enum
  val texture_rectangle : Tgl3.Gl.enum
  val texture_red_size : Tgl3.Gl.enum
  val texture_red_type : Tgl3.Gl.enum
  val texture_samples : Tgl3.Gl.enum
  val texture_shared_size : Tgl3.Gl.enum
  val texture_stencil_size : Tgl3.Gl.enum
  val texture_swizzle_a : Tgl3.Gl.enum
  val texture_swizzle_b : Tgl3.Gl.enum
  val texture_swizzle_g : Tgl3.Gl.enum
  val texture_swizzle_r : Tgl3.Gl.enum
  val texture_swizzle_rgba : Tgl3.Gl.enum
  val texture_width : Tgl3.Gl.enum
  val texture_wrap_r : Tgl3.Gl.enum
  val texture_wrap_s : Tgl3.Gl.enum
  val texture_wrap_t : Tgl3.Gl.enum
  val timeout_expired : Tgl3.Gl.enum
  val timeout_ignored : int64
  val timestamp : Tgl3.Gl.enum
  val time_elapsed : Tgl3.Gl.enum
  val transform_feedback_buffer : Tgl3.Gl.enum
  val transform_feedback_buffer_binding : Tgl3.Gl.enum
  val transform_feedback_buffer_mode : Tgl3.Gl.enum
  val transform_feedback_buffer_size : Tgl3.Gl.enum
  val transform_feedback_buffer_start : Tgl3.Gl.enum
  val transform_feedback_primitives_written : Tgl3.Gl.enum
  val transform_feedback_varyings_enum : Tgl3.Gl.enum
  val transform_feedback_varying_max_length : Tgl3.Gl.enum
  val triangles : Tgl3.Gl.enum
  val triangles_adjacency : Tgl3.Gl.enum
  val triangle_fan : Tgl3.Gl.enum
  val triangle_strip : Tgl3.Gl.enum
  val triangle_strip_adjacency : Tgl3.Gl.enum
  val true_ : Tgl3.Gl.enum
  val uniform_array_stride : Tgl3.Gl.enum
  val uniform_block_active_uniforms : Tgl3.Gl.enum
  val uniform_block_active_uniform_indices : Tgl3.Gl.enum
  val uniform_block_binding_enum : Tgl3.Gl.enum
  val uniform_block_data_size : Tgl3.Gl.enum
  val uniform_block_index : Tgl3.Gl.enum
  val uniform_block_name_length : Tgl3.Gl.enum
  val uniform_block_referenced_by_fragment_shader : Tgl3.Gl.enum
  val uniform_block_referenced_by_geometry_shader : Tgl3.Gl.enum
  val uniform_block_referenced_by_vertex_shader : Tgl3.Gl.enum
  val uniform_buffer : Tgl3.Gl.enum
  val uniform_buffer_binding : Tgl3.Gl.enum
  val uniform_buffer_offset_alignment : Tgl3.Gl.enum
  val uniform_buffer_size : Tgl3.Gl.enum
  val uniform_buffer_start : Tgl3.Gl.enum
  val uniform_is_row_major : Tgl3.Gl.enum
  val uniform_matrix_stride : Tgl3.Gl.enum
  val uniform_name_length : Tgl3.Gl.enum
  val uniform_offset : Tgl3.Gl.enum
  val uniform_size : Tgl3.Gl.enum
  val uniform_type : Tgl3.Gl.enum
  val unpack_alignment : Tgl3.Gl.enum
  val unpack_image_height : Tgl3.Gl.enum
  val unpack_lsb_first : Tgl3.Gl.enum
  val unpack_row_length : Tgl3.Gl.enum
  val unpack_skip_images : Tgl3.Gl.enum
  val unpack_skip_pixels : Tgl3.Gl.enum
  val unpack_skip_rows : Tgl3.Gl.enum
  val unpack_swap_bytes : Tgl3.Gl.enum
  val unsignaled : Tgl3.Gl.enum
  val unsigned_byte : Tgl3.Gl.enum
  val unsigned_byte_2_3_3_rev : Tgl3.Gl.enum
  val unsigned_byte_3_3_2 : Tgl3.Gl.enum
  val unsigned_int : Tgl3.Gl.enum
  val unsigned_int_10f_11f_11f_rev : Tgl3.Gl.enum
  val unsigned_int_10_10_10_2 : Tgl3.Gl.enum
  val unsigned_int_24_8 : Tgl3.Gl.enum
  val unsigned_int_2_10_10_10_rev : Tgl3.Gl.enum
  val unsigned_int_5_9_9_9_rev : Tgl3.Gl.enum
  val unsigned_int_8_8_8_8 : Tgl3.Gl.enum
  val unsigned_int_8_8_8_8_rev : Tgl3.Gl.enum
  val unsigned_int_sampler_1d : Tgl3.Gl.enum
  val unsigned_int_sampler_1d_array : Tgl3.Gl.enum
  val unsigned_int_sampler_2d : Tgl3.Gl.enum
  val unsigned_int_sampler_2d_array : Tgl3.Gl.enum
  val unsigned_int_sampler_2d_multisample : Tgl3.Gl.enum
  val unsigned_int_sampler_2d_multisample_array : Tgl3.Gl.enum
  val unsigned_int_sampler_2d_rect : Tgl3.Gl.enum
  val unsigned_int_sampler_3d : Tgl3.Gl.enum
  val unsigned_int_sampler_buffer : Tgl3.Gl.enum
  val unsigned_int_sampler_cube : Tgl3.Gl.enum
  val unsigned_int_vec2 : Tgl3.Gl.enum
  val unsigned_int_vec3 : Tgl3.Gl.enum
  val unsigned_int_vec4 : Tgl3.Gl.enum
  val unsigned_normalized : Tgl3.Gl.enum
  val unsigned_short : Tgl3.Gl.enum
  val unsigned_short_1_5_5_5_rev : Tgl3.Gl.enum
  val unsigned_short_4_4_4_4 : Tgl3.Gl.enum
  val unsigned_short_4_4_4_4_rev : Tgl3.Gl.enum
  val unsigned_short_5_5_5_1 : Tgl3.Gl.enum
  val unsigned_short_5_6_5 : Tgl3.Gl.enum
  val unsigned_short_5_6_5_rev : Tgl3.Gl.enum
  val upper_left : Tgl3.Gl.enum
  val validate_status : Tgl3.Gl.enum
  val vendor : Tgl3.Gl.enum
  val version : Tgl3.Gl.enum
  val vertex_array_binding : Tgl3.Gl.enum
  val vertex_attrib_array_buffer_binding : Tgl3.Gl.enum
  val vertex_attrib_array_divisor : Tgl3.Gl.enum
  val vertex_attrib_array_enabled : Tgl3.Gl.enum
  val vertex_attrib_array_integer : Tgl3.Gl.enum
  val vertex_attrib_array_normalized : Tgl3.Gl.enum
  val vertex_attrib_array_pointer : Tgl3.Gl.enum
  val vertex_attrib_array_size : Tgl3.Gl.enum
  val vertex_attrib_array_stride : Tgl3.Gl.enum
  val vertex_attrib_array_type : Tgl3.Gl.enum
  val vertex_program_point_size : Tgl3.Gl.enum
  val vertex_shader : Tgl3.Gl.enum
  val viewport_enum : Tgl3.Gl.enum
  val wait_failed : Tgl3.Gl.enum
  val write_only : Tgl3.Gl.enum
  val xor : Tgl3.Gl.enum
  val zero : Tgl3.Gl.enum
end