Library
Module
Module type
Parameter
Class
Class type
OCaml binding for GLFW 3.2.1
type key =
| Unknown
| Space
| Apostrophe
| Comma
| Minus
| Period
| Slash
| Num0
| Num1
| Num2
| Num3
| Num4
| Num5
| Num6
| Num7
| Num8
| Num9
| Semicolon
| Equal
| A
| B
| C
| D
| E
| F
| G
| H
| I
| J
| K
| L
| M
| N
| O
| P
| Q
| R
| S
| T
| U
| V
| W
| X
| Y
| Z
| LeftBracket
| Backslash
| RightBracket
| GraveAccent
| World1
| World2
| Escape
| Enter
| Tab
| Backspace
| Insert
| Delete
| Right
| Left
| Down
| Up
| PageUp
| PageDown
| Home
| End
| CapsLock
| ScrollLock
| NumLock
| PrintScreen
| Pause
| F1
| F2
| F3
| F4
| F5
| F6
| F7
| F8
| F9
| F10
| F11
| F12
| F13
| F14
| F15
| F16
| F17
| F18
| F19
| F20
| F21
| F22
| F23
| F24
| F25
| Kp0
| Kp1
| Kp2
| Kp3
| Kp4
| Kp5
| Kp6
| Kp7
| Kp8
| Kp9
| KpDecimal
| KpDivide
| KpMultiply
| KpSubtract
| KpAdd
| KpEnter
| KpEqual
| LeftShift
| LeftControl
| LeftAlt
| LeftSuper
| RightShift
| RightControl
| RightAlt
| RightSuper
| Menu
Keyboard keys.
Context robustness hint
Context release behavior hint
module WindowHint : sig ... end
Window hints. Use with setWindowHint like this:
module WindowAttribute : sig ... end
Windows attributes. Use with getWindowAttrib in a similar manner as with window hints.
type _ input_mode =
| Cursor : cursor_mode input_mode
| StickyKeys : bool input_mode
| StickyMouseButtons : bool input_mode
Input modes. Use with setInputMode and getInputMode in a similar manner as with window hints.
module GammaRamp : sig ... end
GammaRamp module. Describes the gamma ramp for a monitor.
Module functions. These are mostly identical to their original GLFW counterparts.
There are no bindings for the glfwSetWindowUserPointer and glfwGetWindowUserPointer functions because you would have to use unsafe features to set the correct type for your data. If you need to make user data accessible inside a callback you can instead capture it in a closure and use that closure as your callback function.
There is no binding for the glfwGetProcAddress function because it would basicaly require to write an entire OpenGL wrapper to make the functions returned by GLFW usable from OCaml. Incidentaly the glfwExtensionSupported function is not provided either. There are numerous OpenGL bindings available for OCaml that you can use instead.
The Vulkan related functions are not supported as of now but we might look into it at some point.
val getMonitors : unit -> monitor list
val getPrimaryMonitor : unit -> monitor
val getMonitorPos : monitor:monitor -> int * int
val getMonitorPhysicalSize : monitor:monitor -> int * int
val getMonitorName : monitor:monitor -> string
val setMonitorCallback :
f:(monitor -> connection_event -> unit) option ->
(monitor -> connection_event -> unit) option
val getVideoModes : monitor:monitor -> video_mode list
val getVideoMode : monitor:monitor -> video_mode
val setGamma : monitor:monitor -> gamma:float -> unit
val getGammaRamp : monitor:monitor -> GammaRamp.t
val setGammaRamp : monitor:monitor -> gamma_ramp:GammaRamp.t -> unit
val windowHint : hint:'a WindowHint.t -> value:'a -> unit
val destroyWindow : window:window -> unit
val windowShouldClose : window:window -> bool
val setWindowShouldClose : window:window -> b:bool -> unit
val setWindowTitle : window:window -> title:string -> unit
val getWindowPos : window:window -> int * int
val setWindowPos : window:window -> xpos:int -> ypos:int -> unit
val getWindowSize : window:window -> int * int
val setWindowSizeLimits :
window:window ->
minWidth:int option ->
minHeight:int option ->
maxWidth:int option ->
maxHeight:int option ->
unit
val setWindowAspectRatio : window:window -> numer:int -> denom:int -> unit
val setWindowSize : window:window -> width:int -> height:int -> unit
val getFramebufferSize : window:window -> int * int
val getWindowFrameSize : window:window -> int * int * int * int
val iconifyWindow : window:window -> unit
val restoreWindow : window:window -> unit
val maximizeWindow : window:window -> unit
val showWindow : window:window -> unit
val hideWindow : window:window -> unit
val focusWindow : window:window -> unit
val getWindowAttrib : window:window -> attribute:'a WindowAttribute.t -> 'a
val getInputMode : window:window -> mode:'a input_mode -> 'a
val setInputMode : window:window -> mode:'a input_mode -> value:'a -> unit
val getKeyName : key:key -> scancode:int -> string option
val getMouseButton : window:window -> button:int -> bool
val getCursorPos : window:window -> float * float
val setCursorPos : window:window -> xpos:float -> ypos:float -> unit
val createStandardCursor : shape:cursor_shape -> cursor
val destroyCursor : cursor:cursor -> unit
val setKeyCallback :
window:window ->
f:(window -> key -> int -> key_action -> key_mod list -> unit) option ->
(window -> key -> int -> key_action -> key_mod list -> unit) option
val setJoystickCallback :
f:(int -> connection_event -> unit) option ->
(int -> connection_event -> unit) option
val setClipboardString : window:window -> string:string -> unit
val getClipboardString : window:window -> string
val makeContextCurrent : window:window option -> unit
val getCurrentContext : unit -> window option
val swapBuffers : window:window -> unit