# Module GlTex

    module GlTex: sig .. end

    val coord : s:float -> ?t:float -> ?r:float -> ?q:float -> unit -> unit

    val coord2 : float * float -> unit

    val coord3 : float * float * float -> unit

    val coord4 : float * float * float * float -> unit

    type env_param = [ `color of Gl.rgba | `mode of [ `blend | `decal | `modulate | `replace ] ]

    val env : env_param -> unit

    type coord = [ `q | `r | `s | `t ]

    type gen_param = [ `eye_plane of Gl.point4
           | `mode of [ `eye_linear | `object_linear | `sphere_map ]
           | `object_plane of Gl.point4 ]

    val gen : coord:coord -> gen_param -> unit

    type format = [ `alpha
           | `bgr
           | `bgra
           | `blue
           | `color_index
           | `green
           | `luminance
           | `luminance_alpha
           | `red
           | `rgb
           | `rgba ]

    val image1d : ?proxy:bool ->
           ?level:int ->
           ?internal:int ->
           ?border:bool -> ([< format ], [< Gl.kind ]) GlPix.t -> unit

    val image2d : ?proxy:bool ->
           ?level:int ->
           ?internal:int ->
           ?border:bool -> ([< format ], [< Gl.kind ]) GlPix.t -> unit

    type filter = [ `linear
           | `linear_mipmap_linear
           | `linear_mipmap_nearest
           | `nearest
           | `nearest_mipmap_linear
           | `nearest_mipmap_nearest ]

    type wrap = [ `clamp | `repeat ]

    type parameter = [ `border_color of Gl.rgba
           | `generate_mipmap of bool
           | `mag_filter of [ `linear | `nearest ]
           | `min_filter of filter
           | `priority of Gl.clampf
           | `wrap_s of wrap
           | `wrap_t of wrap ]

    val parameter : target:[ `texture_1d | `texture_2d ] -> parameter -> unit

    type texture_id

    val gen_texture : unit -> texture_id

    val gen_textures : len:int -> texture_id array

    val bind_texture : target:[ `texture_1d | `texture_2d ] -> texture_id -> unit

    val delete_texture : texture_id -> unit

    val delete_textures : texture_id array -> unit