sig
  type t = Lit.view
  val create :
    ?tr:Gg.m4 -> ?proj:Gg.m4 -> ?viewport:Gg.box2 -> unit -> Lit.View.t
  val tr : Lit.view -> Gg.m4
  val set_tr : Lit.view -> Gg.m4 -> unit
  val proj : Lit.view -> Gg.m4
  val set_proj : Lit.view -> Gg.m4 -> unit
  val viewport : Lit.view -> Gg.box2
  val set_viewport : Lit.view -> Gg.box2 -> unit
  val viewport_of_surface : Lit.view -> Gg.p2 -> Gg.p2
  val viewport_of_ndc : Lit.view -> Gg.p2 -> Gg.p2
  val surface_of_viewport : Lit.view -> Gg.p2 -> Gg.p2
  val surface_of_ndc : Lit.view -> Gg.p2 -> Gg.p2
  val ndc_of_viewport : Lit.view -> Gg.p2 -> Gg.p2
  val ndc_of_surface : Lit.view -> Gg.p2 -> Gg.p2
  type fov = [ `H of float | `V of float ]
  val persp :
    fov:Lit.View.fov -> aspect:float -> near:float -> far:float -> Gg.m4
  val look : ?up:Gg.v3 -> at:Gg.p3 -> from:Gg.p3 -> unit -> Gg.m4
end