sig
  type tex_param_target =
      GL_TEXTURE_1D
    | GL_TEXTURE_2D
    | GL_TEXTURE_3D
    | GL_TEXTURE_CUBE_MAP
  type texture_compare_mode = GL_NONE
  type depth_texture_mode = GL_LUMINANCE | GL_INTENSITY | GL_ALPHA
  type tex_param =
      GL_TEXTURE_MIN_FILTER of GL.Min.min_filter
    | GL_TEXTURE_MAG_FILTER of GL.Mag.mag_filter
    | GL_TEXTURE_MIN_LOD of float
    | GL_TEXTURE_MAX_LOD of float
    | GL_TEXTURE_BASE_LEVEL of int
    | GL_TEXTURE_MAX_LEVEL of int
    | GL_TEXTURE_WRAP_S of GL.wrap_param
    | GL_TEXTURE_WRAP_T of GL.wrap_param
    | GL_TEXTURE_WRAP_R of GL.wrap_param
    | GL_TEXTURE_BORDER_COLOR of (float * float * float * float)
    | GL_TEXTURE_PRIORITY of float
    | GL_TEXTURE_COMPARE_MODE of GL.TexParam.texture_compare_mode
    | GL_TEXTURE_COMPARE_FUNC of GL.gl_func
    | GL_DEPTH_TEXTURE_MODE of GL.TexParam.depth_texture_mode
    | GL_GENERATE_MIPMAP of bool
end