module FunGlut: sig
.. end
An experimental attempt at a functional interface to Glut.
val fun_glut : display:('a -> unit) ->
?reshape:('a -> width:int -> height:int -> 'a) ->
?keyboard:('a -> key:char -> x:int -> y:int -> 'a) ->
?keyboard_up:('a -> key:char -> x:int -> y:int -> 'a) ->
?special:('a -> key:Glut.special_key -> x:int -> y:int -> 'a) ->
?special_up:('a -> key:Glut.special_key -> x:int -> y:int -> 'a) ->
?mouse:('a ->
button:Glut.mouse_button ->
state:Glut.mouse_button_state -> x:int -> y:int -> 'a) ->
?motion:('a -> x:int -> y:int -> 'a) ->
?passive:('a -> x:int -> y:int -> 'a) ->
?visibility:('a -> state:Glut.visibility_state -> 'a) ->
?entry:('a -> state:Glut.entry_state -> 'a) ->
?timer:(('a -> 'a) * int) list ->
?idle:('a -> 'a) ->
?full_screen:bool ->
?window_size:int * int ->
?window_position:int * int ->
?title:string ->
?display_mode:Glut.init_mode list ->
?init_gl:(unit -> unit) -> init:(unit -> 'a) -> unit -> unit
This function works like a List.fold_left
which means that the application
data is given as the parameter init
and then passed through each callback.
A callback get the app data as first argument and then returns with this data,
modified or not, which will be provided to the next callback in the same way.
val post_redisplay : ('a -> 'b) -> 'a -> 'b