sig
type mode = [ `Fullscreen | `Windowed ]
val mode : Useri.Surface.mode React.signal
val set_mode_setter : Useri.Surface.mode React.event -> unit
val mode_flip : 'a React.event -> Useri.Surface.mode React.event
val pp_mode : Format.formatter -> Useri.Surface.mode -> unit
module Gl :
sig
type colors = [ `RGBA_8888 | `RGB_565 ]
type depth = [ `D_16 | `D_24 ]
type stencil = [ `S_8 ]
type t = {
accelerated : bool option;
multisample : int option;
doublebuffer : bool;
stereo : bool;
srgb : bool;
colors : Useri.Surface.Gl.colors;
depth : Useri.Surface.Gl.depth option;
stencil : Useri.Surface.Gl.stencil option;
version : int * int;
}
val default : Useri.Surface.Gl.t
end
type handle = Useri_base.Surface.handle
type kind = [ `Gl of Useri.Surface.Gl.t | `Other ]
type t
val create :
?hidpi:bool ->
?pos:Gg.p2 ->
?size:Gg.size2 ->
?kind:Useri.Surface.kind ->
?handle:Useri.Surface.handle ->
?mode:Useri.Surface.mode -> unit -> Useri.Surface.t
val pos : Gg.p2 React.signal
val raster_size : Gg.size2 React.signal
val size : Gg.size2 React.signal
val update : unit -> unit
val handle : unit -> Useri_base.Surface.handle
val refresh : float React.event
val request_refresh : unit -> unit
val set_refresher : 'a React.event -> unit
val steady_refresh : until:'a React.event -> unit
val refresh_hz : int React.signal
val set_refresh_hz : int -> unit
end