sig
  type t
  external init : unit -> CL_BlendMode.t = "caml_CL_BlendMode_init"
  external delete : unit -> CL_BlendMode.t = "caml_CL_BlendMode_delete"
  external eq : CL_BlendMode.t -> CL_BlendMode.t -> bool
    = "caml_CL_BlendMode_eq"
  external ( = ) : CL_BlendMode.t -> CL_BlendMode.t -> bool
    = "caml_CL_BlendMode_eq"
  external get_blend_color : CL_BlendMode.t -> CL_Colorf.t
    = "caml_CL_BlendMode_get_blend_color"
  external get_blend_equation : CL_BlendMode.t -> CL_BlendEquation.t
    = "caml_CL_BlendMode_get_blend_equation"
  external get_blend_equation_alpha : CL_BlendMode.t -> CL_BlendEquation.t
    = "caml_CL_BlendMode_get_blend_equation_alpha"
  external get_blend_function_src : CL_BlendMode.t -> CL_BlendFunc.t
    = "caml_CL_BlendMode_get_blend_function_src"
  external get_blend_function_dest : CL_BlendMode.t -> CL_BlendFunc.t
    = "caml_CL_BlendMode_get_blend_function_dest"
  external get_blend_function_src_alpha : CL_BlendMode.t -> CL_BlendFunc.t
    = "caml_CL_BlendMode_get_blend_function_src_alpha"
  external get_blend_function_dest_alpha : CL_BlendMode.t -> CL_BlendFunc.t
    = "caml_CL_BlendMode_get_blend_function_dest_alpha"
  external is_blend_enabled : CL_BlendMode.t -> bool
    = "caml_CL_BlendMode_is_blend_enabled"
  external enable_blending : CL_BlendMode.t -> bool -> unit
    = "caml_CL_BlendMode_enable_blending" [@@noalloc]
  external set_blend_color : CL_BlendMode.t -> CL_Colorf.t -> unit
    = "caml_CL_BlendMode_set_blend_color" [@@noalloc]
  external set_blend_equation :
    CL_BlendMode.t ->
    color:CL_BlendEquation.t -> alpha:CL_BlendEquation.t -> unit
    = "caml_CL_BlendMode_set_blend_equation" [@@noalloc]
  external set_blend_function :
    CL_BlendMode.t ->
    src:CL_BlendFunc.t ->
    dest:CL_BlendFunc.t ->
    src_alpha:CL_BlendFunc.t -> dest_alpha:CL_BlendFunc.t -> unit
    = "caml_CL_BlendMode_set_blend_function" [@@noalloc]
end