Module FunGlut


module FunGlut: sig .. end
An experimental attempt at a functional interface to Glut.


type next =
| Continue
| Stop
val fun_glut : display:('a -> unit) ->
?reshape:(width:int -> height:int -> unit) ->
?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 -> next * 'a) * int) list ->
?idle:('a -> next * 'a) ->
?full_screen:bool ->
?window_size:int * int ->
?title:string -> ?display_mode:Glut.init_mode list -> init:'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.