sig
  type clears = {
    clear_color : Gg.color option;
    clear_depth : float option;
    clear_stencil : int option;
  }
  val clears_default : Lit.Fbuf.clears
  module Rbuf :
    sig
      type t
      val create :
        ?multisample:int ->
        Gg.size2 -> Lit.Tex.sample_format -> Lit.Fbuf.Rbuf.t
      val multisample : Lit.Fbuf.Rbuf.t -> int option
      val size2 : Lit.Fbuf.Rbuf.t -> Gg.size2
      val sample_format : Lit.Fbuf.Rbuf.t -> Lit.Tex.sample_format
    end
  type image =
      [ `Rbuf of Lit.Fbuf.Rbuf.t
      | `Tex of int * Lit.tex
      | `Tex_layer of int * int * Lit.tex ]
  type attachement =
      [ `Color of int * Lit.Fbuf.image
      | `Depth of Lit.Fbuf.image
      | `Depth_stencil of Lit.Fbuf.image
      | `Stencil of Lit.Fbuf.image ]
  type t = Lit.fbuf
  val default : Lit.fbuf
  val create :
    ?clears:Lit.Fbuf.clears -> Lit.Fbuf.attachement list -> Lit.fbuf
  val attachements : Lit.fbuf -> Lit.Fbuf.attachement list
  val is_multisample : Lit.fbuf -> bool
  val clears : Lit.fbuf -> Lit.Fbuf.clears
  val set_clears : Lit.fbuf -> Lit.Fbuf.clears -> unit
  val clear : Lit.renderer -> Lit.fbuf -> unit
  type status =
      [ `Complete
      | `Incomplete_attachement
      | `Incomplete_draw_buffer
      | `Incomplete_layer_targets
      | `Incomplete_missing_attachement
      | `Incomplete_multisample
      | `Incomplete_read_buffer
      | `Undefined
      | `Unknown of int
      | `Unsupported ]
  val pp_status : Format.formatter -> Lit.Fbuf.status -> unit
  val status : Lit.renderer -> Lit.fbuf -> Lit.Fbuf.status
  type read =
      [ `Color_b of int
      | `Color_g of int
      | `Color_r of int
      | `Color_rgb of int
      | `Color_rgba of int
      | `Depth
      | `Depth_stencil
      | `Stencil ]
  val read :
    ?first:int ->
    ?w_stride:int ->
    Lit.renderer -> Lit.fbuf -> Lit.Fbuf.read -> Gg.box2 -> Lit.buf -> unit
  type blit_buffer = [ `Color | `Depth | `Stencil ]
  type blit_filter = [ `Linear | `Nearest ]
  val blit :
    ?filter:Lit.Fbuf.blit_filter ->
    Lit.renderer ->
    Lit.Fbuf.blit_buffer list ->
    src:Lit.fbuf -> Gg.box2 -> dst:Lit.fbuf -> Gg.box2 -> unit
end